- 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

2
.gitattributes vendored
View File

@@ -720,6 +720,7 @@ forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java -text
forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java -text
forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java svneol=native#text/plain
forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java svneol=native#text/plain
forge-game/src/main/java/forge/game/trigger/TriggerEmbalmOrEternalize.java -text
forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java -text
forge-game/src/main/java/forge/game/trigger/TriggerExerted.java -text
forge-game/src/main/java/forge/game/trigger/TriggerExploited.java -text
@@ -17042,6 +17043,7 @@ forge-gui/res/cardsfolder/upcoming/torment_of_venom.txt -text
forge-gui/res/cardsfolder/upcoming/uncage_the_menagerie.txt -text
forge-gui/res/cardsfolder/upcoming/unesh_criosphinx_sovereign.txt -text
forge-gui/res/cardsfolder/upcoming/visage_of_bolas.txt -text
forge-gui/res/cardsfolder/upcoming/vizier_of_the_anointed.txt -text
forge-gui/res/cardsfolder/upcoming/vizier_of_the_true.txt -text
forge-gui/res/cardsfolder/upcoming/wasp_of_the_bitter_end.txt -text
forge-gui/res/cardsfolder/upcoming/wildfire_eternal.txt -text

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),

View File

@@ -4,7 +4,7 @@ Types:Creature Horse
PT:5/5
S:Mode$ Continuous | Affected$ Creature.Horse+Other+YouCtrl | AddKeyword$ Indestructible | Description$ Other Horses you control have indestructible.
SVar:PlayMain1:TRUE
SVar:BuffedBy:Sliver
SVar:BuffedBy:Horse
T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | CheckSVar$ YouLifeGained | SVarCompare$ GE1 | Execute$ TrigToken | TriggerDescription$ At the beginning of each end step, if you gained life this turn, create a 5/5 white Horse creature token.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Horse | TokenTypes$ Creature,Horse | TokenOwner$ You | TokenColors$ White | TokenPower$ 5 | TokenToughness$ 5 | TokenImage$ w 5 5 Horse HOU
SVar:YouLifeGained:Count$LifeYouGainedThisTurn

View File

@@ -0,0 +1,11 @@
Name:Vizier of the Anointed
ManaCost:3 U
Types:Creature Human Cleric
PT:2/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ VizierSearch | TriggerDescription$ When CARDNAME enters the battlefield, search your library for a creature card with embalm or eternalize, put it in your graveyard, then shuffle your library.
SVar:VizierSearch:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | ChangeNum$ 1 | ChangeType$ Creature.hasEmbalm+YouCtrl,Creature.hasEternalize+YouCtrl
T:Mode$ EmbalmOrEternalize | ValidPlayer$ You | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you eternalize or embalm a creature, draw a card.
SVar:TrigDraw:DB$ Draw | NumCards$ 1
SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/vizier_of_the_anointed.jpg
Oracle:When Vizier of the Anointed enters the battlefield, search your library for a creature card with embalm or eternalize, put it in your graveyard, then shuffle your library.\nWhenever you eternalize or embalm a creature, draw a card.