mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
- HOU: Added Vizier of the Anointed
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user