- HOU: Added Vizier of the Anointed

This commit is contained in:
swordshine
2017-06-29 02:33:42 +00:00
parent a890c0dbd5
commit 2c91682a23
7 changed files with 84 additions and 1 deletions

View File

@@ -28,6 +28,7 @@ import forge.game.spellability.SpellAbility;
import forge.game.staticability.StaticAbility;
import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerHandler;
import forge.game.trigger.TriggerType;
import forge.game.zone.ZoneType;
import forge.item.PaperCard;
import forge.util.Aggregates;
@@ -37,6 +38,7 @@ import forge.util.PredicateString.StringOp;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -399,6 +401,13 @@ public class CopyPermanentEffect extends SpellAbilityEffect {
if (sa.hasParam("ImprintCopied")) {
hostCard.addImprintedCards(crds);
}
if (sa.hasParam("Embalm") || sa.hasParam("Eternalize")) {
// Trigger EmbalmOrEternalize!
final HashMap<String, Object> runParams = new HashMap<String, Object>();
runParams.put("Card", sa.getHostCard());
runParams.put("Player", sa.getActivatingPlayer());
sa.getHostCard().getGame().getTriggerHandler().runTrigger(TriggerType.EmbalmOrEternalize, runParams, false);
}
} // end canBeTargetedBy
} // end foreach Card
} // end resolve

View File

@@ -4850,6 +4850,20 @@ public class Card extends GameEntity implements Comparable<Card> {
}
}
return false;
} else if (property.startsWith("hasEmbalm")) {
for (final SpellAbility sa : getSpellAbilities()) {
if (sa.getApi() == ApiType.CopyPermanent && sa.hasParam("Embalm")) {
return true;
}
}
return false;
} else if (property.startsWith("hasEternalize")) {
for (final SpellAbility sa : getSpellAbilities()) {
if (sa.getApi() == ApiType.CopyPermanent && sa.hasParam("Eternalize")) {
return true;
}
}
return false;
} else if (property.startsWith("DrawnThisTurn")) {
if (!getDrawnThisTurn()) {
return false;

View File

@@ -0,0 +1,46 @@
package forge.game.trigger;
import forge.game.card.Card;
import forge.game.spellability.SpellAbility;
import java.util.Map;
public class TriggerEmbalmOrEternalize extends Trigger {
public TriggerEmbalmOrEternalize(final java.util.Map<String, String> params, final Card host, final boolean intrinsic) {
super(params, host, intrinsic);
}
@Override
public boolean performTest(Map<String, Object> runParams2) {
if (this.mapParams.containsKey("ValidCard")) {
if (!matchesValid(runParams2.get("Card"), this.mapParams.get("ValidCard").split(","),
this.getHostCard())) {
return false;
}
}
if (this.mapParams.containsKey("ValidPlayer")) {
if (!matchesValid(runParams2.get("Player"), this.mapParams.get("ValidPlayer").split(","),
this.getHostCard())) {
return false;
}
}
return true;
}
@Override
public void setTriggeringObjects(SpellAbility sa) {
sa.setTriggeringObject("Card", this.getRunParams().get("Card"));
sa.setTriggeringObject("Player", this.getRunParams().get("Player"));
}
@Override
public String getImportantStackObjects(SpellAbility sa) {
StringBuilder sb = new StringBuilder();
sb.append("Card: ").append(sa.getTriggeringObject("Card"));
sb.append(" ");
sb.append("Player: ").append(sa.getTriggeringObject("Player"));
return sb.toString();
}
}

View File

@@ -46,6 +46,7 @@ public enum TriggerType {
Devoured(TriggerDevoured.class),
Discarded(TriggerDiscarded.class),
Drawn(TriggerDrawn.class),
EmbalmOrEternalize(TriggerEmbalmOrEternalize.class),
Evolved(TriggerEvolved.class),
Exerted(TriggerExerted.class),
Exploited(TriggerExploited.class),