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:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user