diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index 54e43d95dfb..9bd7cf1b9ce 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -20,7 +20,6 @@ package forge.game.card; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; - import forge.ImageKeys; import forge.StaticData; import forge.card.*; @@ -368,7 +367,7 @@ public class CardFactory { triggerSB.append("that planar deck and turn it face up"); StringBuilder saSB = new StringBuilder(); - saSB.append("AB$ RollPlanarDice | Cost$ X | SorcerySpeed$ True | AnyPlayer$ True | ActivationZone$ Command | "); + saSB.append("AB$ RollPlanarDice | Cost$ X | SorcerySpeed$ True | Activator$ Player | ActivationZone$ Command | "); saSB.append("SpellDescription$ Roll the planar dice. X is equal to the amount of times the planar die has been rolled this turn."); card.setSVar("RolledWalk", "DB$ Planeswalk | Cost$ 0"); diff --git a/forge-game/src/main/java/forge/game/player/PlayerProperty.java b/forge-game/src/main/java/forge/game/player/PlayerProperty.java index 18593cbb8aa..16a68e6bfbe 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerProperty.java +++ b/forge-game/src/main/java/forge/game/player/PlayerProperty.java @@ -1,11 +1,5 @@ package forge.game.player; -import java.util.ArrayList; -import java.util.List; - -import forge.util.TextUtil; -import org.apache.commons.lang3.StringUtils; - import forge.game.Game; import forge.game.ability.AbilityUtils; import forge.game.card.Card; @@ -16,6 +10,11 @@ import forge.game.card.CardPredicates.Presets; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; import forge.util.Expressions; +import forge.util.TextUtil; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; public class PlayerProperty { @@ -207,6 +206,11 @@ public class PlayerProperty { if (!player.isEnchantedBy(source)) { return false; } + } else if (property.equals("EnchantedController")) { + Card enchanting = source.getEnchantingCard(); + if (enchanting != null && !player.equals(enchanting.getController())) { + return false; + } } else if (property.equals("Chosen")) { if (source.getChosenPlayer() == null || !source.getChosenPlayer().equals(player)) { return false; diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java index b481162c529..35a487c8878 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityRestriction.java @@ -110,24 +110,8 @@ public class SpellAbilityRestriction extends SpellAbilityVariables { this.setOpponentTurn(true); } - if (params.containsKey("AnyPlayer")) { - this.setAnyPlayer(true); - } - - if (params.containsKey("AnyOpponent")) { - this.setOpponentOnly(true); - } - - if (params.containsKey("EnchantedControllerActivator")) { - this.setEnchantedControllerOnly(true); - } - - if (params.containsKey("AttackedPlayerActivator")) { - this.setAttackedPlayerOnly(true); - } - - if (params.containsKey("OwnerOnly")) { - this.setOwnerOnly(true); + if (params.containsKey("Activator")) { + this.setActivator(params.get("Activator")); } if (params.containsKey("ActivationLimit")) { @@ -329,39 +313,16 @@ public class SpellAbilityRestriction extends SpellAbilityVariables { final Game game = activator.getGame(); final Combat combat = game.getPhaseHandler().getCombat(); - if (this.isAnyPlayer()) { - return true; - } - - if (this.isOwnerOnly()) { - return activator.equals(c.getOwner()); - } - - if (this.isAttackedPlayerOnly() && combat != null) { - Player attacked = combat.getDefendingPlayerRelatedTo(c); - return activator.equals(attacked); - } - - if (activator.equals(c.getController()) && !this.isOpponentOnly() && !isEnchantedControllerOnly()) { - return true; - } - - if (activator.isOpponentOf(c.getController()) && this.isOpponentOnly()) { - return true; - } - - if (c.getEnchantingCard() != null && activator.equals(c.getEnchantingCard().getController()) && this.isEnchantedControllerOnly()) { - return true; - } - if (sa.isSpell()) { + // Spells should always default to "controller" but use mayPlay check. final CardPlayOption o = c.mayPlay(sa.getMayPlay()); if (o != null && o.getPlayer() == activator) { return true; } } - - return false; + + String validPlayer = this.getActivator(); + return activator.isValid(validPlayer, activator, c, sa); } public final boolean checkOtherRestrictions(final Card c, final SpellAbility sa, final Player activator) { diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java index c9579cf6f69..2ade34a0f00 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityVariables.java @@ -17,15 +17,14 @@ */ package forge.game.spellability; -import java.util.EnumSet; -import java.util.Set; - import com.google.common.collect.Sets; - import forge.game.GameType; import forge.game.phase.PhaseType; import forge.game.zone.ZoneType; +import java.util.EnumSet; +import java.util.Set; + /** *

* SpellAbilityVariables class. @@ -61,11 +60,7 @@ public class SpellAbilityVariables implements Cloneable { this.gameTypes = Sets.newEnumSet(sav.getGameTypes(), GameType.class); this.sorcerySpeed = sav.isSorcerySpeed(); this.instantSpeed = sav.isInstantSpeed(); - this.anyPlayer = sav.isAnyPlayer(); - this.opponentOnly = sav.isOpponentOnly(); - this.enchantedControllerOnly = sav.isEnchantedControllerOnly(); - this.attackedPlayerOnly = sav.isAttackedPlayerOnly(); - this.ownerOnly = sav.isOwnerOnly(); + this.activator = sav.getActivator(); this.opponentTurn = sav.isOpponentTurn(); this.playerTurn = sav.isPlayerTurn(); this.activationLimit = sav.getActivationLimit(); @@ -113,7 +108,7 @@ public class SpellAbilityVariables implements Cloneable { private boolean instantSpeed = false; /** The b any player. */ - private boolean anyPlayer = false; + private String activator = "Player.Controller"; /** The b opponent only. */ private boolean opponentOnly = false; @@ -265,62 +260,28 @@ public class SpellAbilityVariables implements Cloneable { return this.zone; } - /** - *

- * setSorcerySpeed. - *

- * - * @param bSpeed - * a boolean. - */ public final void setSorcerySpeed(final boolean bSpeed) { this.sorcerySpeed = bSpeed; } - /** - *

- * getSorcerySpeed. - *

- * - * @return a boolean. - */ public final boolean isSorcerySpeed() { return this.sorcerySpeed; } - /** - *

- * setInstantSpeed. - *

- * - * @param bSpeed - * a boolean. - */ public final void setInstantSpeed(final boolean bSpeed) { this.instantSpeed = bSpeed; } - /** - *

- * getInstantSpeed. - *

- * - * @return a boolean. - */ public final boolean isInstantSpeed() { return this.instantSpeed; } - /** - *

- * setAnyPlayer. - *

- * - * @param anyPlayer - * a boolean. - */ - public final void setAnyPlayer(final boolean anyPlayer) { - this.anyPlayer = anyPlayer; + public final void setActivator(final String player) { + this.activator = player; + } + + public String getActivator() { + return this.activator; } /** @@ -864,69 +825,6 @@ public class SpellAbilityVariables implements Cloneable { return this.isPresent; } - /** - * Checks if is any player. - * - * @return the anyPlayer - */ - public final boolean isAnyPlayer() { - return this.anyPlayer; - } - - /** - * @return the opponentOnly - */ - public boolean isOpponentOnly() { - return opponentOnly; - } - - /** - * @param opponentOnly the opponentOnly to set - */ - public void setOpponentOnly(boolean opponentOnly) { - this.opponentOnly = opponentOnly; - } - - /** - * @return the opponentOnly - */ - public boolean isAttackedPlayerOnly() { return attackedPlayerOnly; } - - public void setAttackedPlayerOnly(boolean attackedPlayerOnly) { - this.attackedPlayerOnly = attackedPlayerOnly; - } - - /** - * @return the opponentOnly - */ - public boolean isEnchantedControllerOnly() { - return enchantedControllerOnly; - } - - public void setEnchantedControllerOnly(boolean enchantedControllerOnly) { - this.enchantedControllerOnly = enchantedControllerOnly; - } - /** - * @return the ownerOnly - */ - public boolean isOwnerOnly() { - return ownerOnly; - } - - /** - * @param ownerOnly the ownerOnly to set - */ - public void setOwnerOnly(boolean ownerOnly) { - this.ownerOnly = ownerOnly; - } - /** - *

- * Setter for the field ColorToCheck. - *

- * - * @param s - * a {@link java.lang.String} object. - */ public final void setColorToCheck(final String s) { this.chosenColors = s; } diff --git a/forge-gui/res/cardsfolder/a/aether_storm.txt b/forge-gui/res/cardsfolder/a/aether_storm.txt index be348fb280a..d4f045f12d6 100644 --- a/forge-gui/res/cardsfolder/a/aether_storm.txt +++ b/forge-gui/res/cardsfolder/a/aether_storm.txt @@ -2,7 +2,7 @@ Name:Aether Storm ManaCost:3 U Types:Enchantment S:Mode$ CantBeCast | ValidCard$ Creature | Description$ Creature spells can't be cast. -A:AB$ Destroy | Cost$ PayLife<4> | Defined$ Self | NoReg$ True | AnyPlayer$ True | SpellDescription$ Destroy CARDNAME. It can't be regenerated. Any player may activate this ability. +A:AB$ Destroy | Cost$ PayLife<4> | Defined$ Self | NoReg$ True | Activator$ Player | SpellDescription$ Destroy CARDNAME. It can't be regenerated. Any player may activate this ability. AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/aether_storm.jpg Oracle:Creature spells can't be cast.\nPay 4 life: Destroy Aether Storm. It can't be regenerated. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/a/armageddon_clock.txt b/forge-gui/res/cardsfolder/a/armageddon_clock.txt index 5ae083b0ebe..e2798f50f88 100644 --- a/forge-gui/res/cardsfolder/a/armageddon_clock.txt +++ b/forge-gui/res/cardsfolder/a/armageddon_clock.txt @@ -3,7 +3,7 @@ ManaCost:6 Types:Artifact T:Mode$ Phase | Phase$ Draw | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your draw step, CARDNAME deals damage equal to the number of doom counters on it to each player. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, put a doom counter on CARDNAME. -A:AB$ RemoveCounter | Cost$ 4 | CounterType$ DOOM | CounterNum$ 1 | ActivationPhases$ Upkeep | AnyPlayer$ True | SpellDescription$ Remove a doom counter from CARDNAME. Any player may activate this ability but only during any upkeep step. +A:AB$ RemoveCounter | Cost$ 4 | CounterType$ DOOM | CounterNum$ 1 | ActivationPhases$ Upkeep | Activator$ Player | SpellDescription$ Remove a doom counter from CARDNAME. Any player may activate this ability but only during any upkeep step. SVar:TrigDealDamage:DB$DealDamage | Defined$ Player | NumDmg$ X | References$ X SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ DOOM | CounterNum$ 1 SVar:X:Count$CardCounters.DOOM diff --git a/forge-gui/res/cardsfolder/c/capricopian.txt b/forge-gui/res/cardsfolder/c/capricopian.txt index 1da4a34bbca..0f465c0f297 100755 --- a/forge-gui/res/cardsfolder/c/capricopian.txt +++ b/forge-gui/res/cardsfolder/c/capricopian.txt @@ -4,7 +4,7 @@ Types:Creature Goat Hydra PT:0/0 K:etbCounter:P1P1:X SVar:X:Count$xPaid -A:AB$ PutCounter | Cost$ 2 | AttackedPlayerActivator$ True | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBReselect | ActivationPhases$ Declare Attackers | AILogic$ AlwaysWithNoTgt | SpellDescription$ Put a +1/+1 counter on CARDNAME, then you may reselect which player CARDNAME is attacking. Only the player CARDNAME is attacking may activate this ability and only during the declare attackers step. (It can't attack its controller.) +A:AB$ PutCounter | Cost$ 2 | Activator$ Player.attackedBySourceThisCombat | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBReselect | ActivationPhases$ Declare Attackers | AILogic$ AlwaysWithNoTgt | SpellDescription$ Put a +1/+1 counter on CARDNAME, then you may reselect which player CARDNAME is attacking. Only the player CARDNAME is attacking may activate this ability and only during the declare attackers step. (It can't attack its controller.) SVar:DBReselect:DB$ ChangeCombatants | Defined$ Self | AILogic$ WeakestOppExceptCtrl DeckHas:Ability$Counters Oracle:Capricopian enters the battlefield with X +1/+1 counters on it.\n{2}: Put a +1/+1 counter on Capricopian, then you may reselect which player Capricopian is attacking. Only the player Capricopian is attacking may activate this ability and only during the declare attackers step. (It can't attack its controller.) diff --git a/forge-gui/res/cardsfolder/c/clergy_of_the_holy_nimbus.txt b/forge-gui/res/cardsfolder/c/clergy_of_the_holy_nimbus.txt index a3a78204c0d..1d73b141f44 100644 --- a/forge-gui/res/cardsfolder/c/clergy_of_the_holy_nimbus.txt +++ b/forge-gui/res/cardsfolder/c/clergy_of_the_holy_nimbus.txt @@ -3,6 +3,6 @@ ManaCost:W Types:Creature Human Cleric PT:1/1 K:If CARDNAME would be destroyed, regenerate it. -A:AB$ Pump | Cost$ 1 | AnyOpponent$ True | Defined$ Self | KW$ HIDDEN CARDNAME can't be regenerated. | IsCurse$ True | SpellDescription$ CARDNAME can't be regenerated this turn. Only any opponent may activate this ability. +A:AB$ Pump | Cost$ 1 | Activator$ Player.Opponent | Defined$ Self | KW$ HIDDEN CARDNAME can't be regenerated. | IsCurse$ True | SpellDescription$ CARDNAME can't be regenerated this turn. Only any opponent may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/clergy_of_the_holy_nimbus.jpg Oracle:If Clergy of the Holy Nimbus would be destroyed, regenerate it.\n{1}: Clergy of the Holy Nimbus can't be regenerated this turn. Only any opponent may activate this ability. diff --git a/forge-gui/res/cardsfolder/d/deadly_designs.txt b/forge-gui/res/cardsfolder/d/deadly_designs.txt index d4ba465eaa7..2664a6ff96d 100644 --- a/forge-gui/res/cardsfolder/d/deadly_designs.txt +++ b/forge-gui/res/cardsfolder/d/deadly_designs.txt @@ -1,7 +1,7 @@ Name:Deadly Designs ManaCost:1 B Types:Enchantment -A:AB$ PutCounter | Cost$ 2 | CounterType$ PLOT | CounterNum$ 1 | AnyPlayer$ True | SpellDescription$ Put a plot counter on CARDNAME. Any player may activate this ability. +A:AB$ PutCounter | Cost$ 2 | CounterType$ PLOT | CounterNum$ 1 | Activator$ Player | SpellDescription$ Put a plot counter on CARDNAME. Any player may activate this ability. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Card.Self+counters_GE5_PLOT | Execute$ TrigSac | TriggerDescription$ When there are five or more plot counters on CARDNAME, sacrifice it. If you do, destroy up to two target creatures. SVar:TrigSac:DB$ Sacrifice | RememberSacrificed$ True | SubAbility$ DBDestroy SVar:DBDestroy:DB$ Destroy | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBCleanup | TgtPrompt$ Select target creature diff --git a/forge-gui/res/cardsfolder/e/endbringers_revel.txt b/forge-gui/res/cardsfolder/e/endbringers_revel.txt index 4b9c208c3c6..73fd80ce851 100644 --- a/forge-gui/res/cardsfolder/e/endbringers_revel.txt +++ b/forge-gui/res/cardsfolder/e/endbringers_revel.txt @@ -1,7 +1,7 @@ Name:Endbringer's Revel ManaCost:2 B Types:Enchantment -A:AB$ ChangeZone | Cost$ 4 | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature | TgtPrompt$ Select target creature from any graveyard | AnyPlayer$ True | SorcerySpeed$ True | SpellDescription$ Return target creature card from a graveyard to its owner's hand. Any player may activate this ability but only any time they could cast a sorcery. +A:AB$ ChangeZone | Cost$ 4 | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature | TgtPrompt$ Select target creature from any graveyard | Activator$ Player | SorcerySpeed$ True | SpellDescription$ Return target creature card from a graveyard to its owner's hand. Any player may activate this ability but only any time they could cast a sorcery. SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/endbringers_revel.jpg Oracle:{4}: Return target creature card from a graveyard to its owner's hand. Any player may activate this ability but only any time they could cast a sorcery. diff --git a/forge-gui/res/cardsfolder/e/excavation.txt b/forge-gui/res/cardsfolder/e/excavation.txt index b60ccb70e30..4d29fbca08a 100644 --- a/forge-gui/res/cardsfolder/e/excavation.txt +++ b/forge-gui/res/cardsfolder/e/excavation.txt @@ -1,7 +1,7 @@ Name:Excavation ManaCost:1 U Types:Enchantment -A:AB$ Draw | Cost$ 1 Sac<1/Land> | NumCards$ 1 | AnyPlayer$ True | SpellDescription$ Draw a card. Any player may activate this ability. +A:AB$ Draw | Cost$ 1 Sac<1/Land> | NumCards$ 1 | Activator$ Player | SpellDescription$ Draw a card. Any player may activate this ability. SVar:NonStackingEffect:True AI:RemoveDeck:Random SVar:Picture:http://www.wizards.com/global/images/magic/general/excavation.jpg diff --git a/forge-gui/res/cardsfolder/f/feral_hydra.txt b/forge-gui/res/cardsfolder/f/feral_hydra.txt index 078e471cf56..5ffc51c97ba 100644 --- a/forge-gui/res/cardsfolder/f/feral_hydra.txt +++ b/forge-gui/res/cardsfolder/f/feral_hydra.txt @@ -4,6 +4,6 @@ Types:Creature Hydra Beast PT:0/0 K:etbCounter:P1P1:X SVar:X:Count$xPaid -A:AB$ PutCounter | Cost$ 3 | CounterType$ P1P1 | CounterNum$ 1 | AnyPlayer$ True | SpellDescription$ Put a +1/+1 counter on CARDNAME. Any player may activate this ability. +A:AB$ PutCounter | Cost$ 3 | CounterType$ P1P1 | CounterNum$ 1 | Activator$ Player | SpellDescription$ Put a +1/+1 counter on CARDNAME. Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/feral_hydra.jpg Oracle:Feral Hydra enters the battlefield with X +1/+1 counters on it.\n{3}: Put a +1/+1 counter on Feral Hydra. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/f/flailing_manticore.txt b/forge-gui/res/cardsfolder/f/flailing_manticore.txt index 2d2d8335371..53919c69128 100644 --- a/forge-gui/res/cardsfolder/f/flailing_manticore.txt +++ b/forge-gui/res/cardsfolder/f/flailing_manticore.txt @@ -4,8 +4,8 @@ Types:Creature Manticore PT:3/3 K:Flying K:First Strike -A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ +1 | AnyPlayer$ True | SpellDescription$ CARDNAME gets +1/+1 until end of turn. Any player may activate this ability. -A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ -1 | AnyPlayer$ True | IsCurse$ True | SpellDescription$ CARDNAME gets -1/-1 until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ +1 | Activator$ Player | SpellDescription$ CARDNAME gets +1/+1 until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ -1 | Activator$ Player | IsCurse$ True | SpellDescription$ CARDNAME gets -1/-1 until end of turn. Any player may activate this ability. AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/flailing_manticore.jpg Oracle:Flying, first strike\n{1}: Flailing Manticore gets +1/+1 until end of turn. Any player may activate this ability.\n{1}: Flailing Manticore gets -1/-1 until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/f/flailing_ogre.txt b/forge-gui/res/cardsfolder/f/flailing_ogre.txt index 65dd77a5ad7..966a6e6c3db 100644 --- a/forge-gui/res/cardsfolder/f/flailing_ogre.txt +++ b/forge-gui/res/cardsfolder/f/flailing_ogre.txt @@ -2,8 +2,8 @@ Name:Flailing Ogre ManaCost:2 R Types:Creature Ogre PT:3/3 -A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ +1 | AnyPlayer$ True | SpellDescription$ CARDNAME gets +1/+1 until end of turn. Any player may activate this ability. -A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ -1 | AnyPlayer$ True | IsCurse$ True | SpellDescription$ CARDNAME gets -1/-1 until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ +1 | Activator$ Player | SpellDescription$ CARDNAME gets +1/+1 until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ -1 | Activator$ Player | IsCurse$ True | SpellDescription$ CARDNAME gets -1/-1 until end of turn. Any player may activate this ability. AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/flailing_ogre.jpg Oracle:{1}: Flailing Ogre gets +1/+1 until end of turn. Any player may activate this ability.\n{1}: Flailing Ogre gets -1/-1 until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/f/flailing_soldier.txt b/forge-gui/res/cardsfolder/f/flailing_soldier.txt index 2a225fed5ab..c188371cf3e 100644 --- a/forge-gui/res/cardsfolder/f/flailing_soldier.txt +++ b/forge-gui/res/cardsfolder/f/flailing_soldier.txt @@ -2,8 +2,8 @@ Name:Flailing Soldier ManaCost:R Types:Creature Human Soldier PT:2/2 -A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ +1 | AnyPlayer$ True | SpellDescription$ CARDNAME gets +1/+1 until end of turn. Any player may activate this ability. -A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ -1 | AnyPlayer$ True | IsCurse$ True | SpellDescription$ CARDNAME gets -1/-1 until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ 1 | NumAtt$ +1 | NumDef$ +1 | Activator$ Player | SpellDescription$ CARDNAME gets +1/+1 until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ 1 | NumAtt$ -1 | NumDef$ -1 | Activator$ Player | IsCurse$ True | SpellDescription$ CARDNAME gets -1/-1 until end of turn. Any player may activate this ability. AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/flailing_soldier.jpg Oracle:{1}: Flailing Soldier gets +1/+1 until end of turn. Any player may activate this ability.\n{1}: Flailing Soldier gets -1/-1 until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/g/glittering_lion.txt b/forge-gui/res/cardsfolder/g/glittering_lion.txt index 52fadb3e4ff..56b58de9c2f 100644 --- a/forge-gui/res/cardsfolder/g/glittering_lion.txt +++ b/forge-gui/res/cardsfolder/g/glittering_lion.txt @@ -3,6 +3,6 @@ ManaCost:2 W Types:Creature Cat PT:2/2 K:Prevent all damage that would be dealt to CARDNAME. -A:AB$ Debuff | Cost$ 3 | Defined$ Self | Keywords$ Prevent all damage that would be dealt to CARDNAME. | AnyPlayer$ True | SpellDescription$ Until end of turn, CARDNAME loses "Prevent all damage that would be dealt to CARDNAME." Any player may activate this ability. +A:AB$ Debuff | Cost$ 3 | Defined$ Self | Keywords$ Prevent all damage that would be dealt to CARDNAME. | Activator$ Player | SpellDescription$ Until end of turn, CARDNAME loses "Prevent all damage that would be dealt to CARDNAME." Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/glittering_lion.jpg Oracle:Prevent all damage that would be dealt to Glittering Lion.\n{3}: Until end of turn, Glittering Lion loses "Prevent all damage that would be dealt to Glittering Lion." Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/g/glittering_lynx.txt b/forge-gui/res/cardsfolder/g/glittering_lynx.txt index 87107f7f41f..fd5309b7aef 100644 --- a/forge-gui/res/cardsfolder/g/glittering_lynx.txt +++ b/forge-gui/res/cardsfolder/g/glittering_lynx.txt @@ -3,6 +3,6 @@ ManaCost:W Types:Creature Cat PT:1/1 K:Prevent all damage that would be dealt to CARDNAME. -A:AB$ Debuff | Cost$ 2 | Defined$ Self | Keywords$ Prevent all damage that would be dealt to CARDNAME. | AnyPlayer$ True | SpellDescription$ Until end of turn, CARDNAME loses "Prevent all damage that would be dealt to CARDNAME." Any player may activate this ability. +A:AB$ Debuff | Cost$ 2 | Defined$ Self | Keywords$ Prevent all damage that would be dealt to CARDNAME. | Activator$ Player | SpellDescription$ Until end of turn, CARDNAME loses "Prevent all damage that would be dealt to CARDNAME." Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/glittering_lynx.jpg Oracle:Prevent all damage that would be dealt to Glittering Lynx.\n{2}: Until end of turn, Glittering Lynx loses "Prevent all damage that would be dealt to Glittering Lynx." Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/i/ifh_biff_efreet.txt b/forge-gui/res/cardsfolder/i/ifh_biff_efreet.txt index 1639f9392c2..926ed85fa9a 100644 --- a/forge-gui/res/cardsfolder/i/ifh_biff_efreet.txt +++ b/forge-gui/res/cardsfolder/i/ifh_biff_efreet.txt @@ -3,6 +3,6 @@ ManaCost:2 G G Types:Creature Efreet PT:3/3 K:Flying -A:AB$ DamageAll | Cost$ G | NumDmg$ 1 | ValidCards$ Creature.withFlying | ValidPlayers$ Player | ValidDescription$ each creature with flying and each player. | AnyPlayer$ True | SpellDescription$ CARDNAME deals 1 damage to each creature with flying and each player. Any player may activate this ability. +A:AB$ DamageAll | Cost$ G | NumDmg$ 1 | ValidCards$ Creature.withFlying | ValidPlayers$ Player | ValidDescription$ each creature with flying and each player. | Activator$ Player | SpellDescription$ CARDNAME deals 1 damage to each creature with flying and each player. Any player may activate this ability. SVar:Picture:http://resources.wizards.com/magic/cards/an/en-us/card947.jpg Oracle:Flying\n{G}: Ifh-Biff Efreet deals 1 damage to each creature with flying and each player. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/i/infinite_hourglass.txt b/forge-gui/res/cardsfolder/i/infinite_hourglass.txt index 33c2264e429..2af57779fe3 100644 --- a/forge-gui/res/cardsfolder/i/infinite_hourglass.txt +++ b/forge-gui/res/cardsfolder/i/infinite_hourglass.txt @@ -6,7 +6,7 @@ SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ TIME | Counter S:Mode$ Continuous | Affected$ Creature | AddPower$ X | Description$ All creatures get +1/+0 for each time counter on CARDNAME. SVar:X:Count$CardCounters.TIME #TODO: Improve the AI for this -A:AB$ RemoveCounter | Cost$ 3 | CounterType$ TIME | CounterNum$ 1 | ActivationPhases$ Upkeep | AnyPlayer$ True | AILogic$ Never | SpellDescription$ Remove a time counter from CARDNAME. Any player may activate this ability but only during any upkeep step. +A:AB$ RemoveCounter | Cost$ 3 | CounterType$ TIME | CounterNum$ 1 | ActivationPhases$ Upkeep | Activator$ Player | AILogic$ Never | SpellDescription$ Remove a time counter from CARDNAME. Any player may activate this ability but only during any upkeep step. AI:RemoveDeck:Random SVar:Picture:http://www.wizards.com/global/images/magic/general/infinite_hourglass.jpg Oracle:At the beginning of your upkeep, put a time counter on Infinite Hourglass.\nAll creatures get +1/+0 for each time counter on Infinite Hourglass.\n{3}: Remove a time counter from Infinite Hourglass. Any player may activate this ability but only during any upkeep step. diff --git a/forge-gui/res/cardsfolder/k/knight_of_the_holy_nimbus.txt b/forge-gui/res/cardsfolder/k/knight_of_the_holy_nimbus.txt index b6aa021f14b..81bc30adb0c 100644 --- a/forge-gui/res/cardsfolder/k/knight_of_the_holy_nimbus.txt +++ b/forge-gui/res/cardsfolder/k/knight_of_the_holy_nimbus.txt @@ -4,6 +4,6 @@ Types:Creature Human Rebel Knight PT:2/2 K:Flanking K:If CARDNAME would be destroyed, regenerate it. -A:AB$ Pump | Cost$ 2 | AnyOpponent$ True | Defined$ Self | KW$ HIDDEN CARDNAME can't be regenerated. | IsCurse$ True | SpellDescription$ CARDNAME can't be regenerated this turn. Only any opponent may activate this ability. +A:AB$ Pump | Cost$ 2 | Activator$ Player.Opponent | Defined$ Self | KW$ HIDDEN CARDNAME can't be regenerated. | IsCurse$ True | SpellDescription$ CARDNAME can't be regenerated this turn. Only any opponent may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/knight_of_the_holy_nimbus.jpg Oracle:Flanking (Whenever a creature without flanking blocks this creature, the blocking creature gets -1/-1 until end of turn.)\nIf Knight of the Holy Nimbus would be destroyed, regenerate it.\n{2}: Knight of the Holy Nimbus can't be regenerated this turn. Only any opponent may activate this ability. diff --git a/forge-gui/res/cardsfolder/l/lands_edge.txt b/forge-gui/res/cardsfolder/l/lands_edge.txt index 2a5ba7afaef..225fbc92859 100644 --- a/forge-gui/res/cardsfolder/l/lands_edge.txt +++ b/forge-gui/res/cardsfolder/l/lands_edge.txt @@ -1,7 +1,7 @@ Name:Land's Edge ManaCost:1 R R Types:World Enchantment -A:AB$ DealDamage | Cost$ Discard<1/Card> | ValidTgts$ Player,Planeswalker | NumDmg$ X | References$ X | AnyPlayer$ True | AILogic$ DiscardLands | SpellDescription$ If the discarded card was a land card, CARDNAME deals 2 damage to target player or planeswalker. Any player may activate this ability. +A:AB$ DealDamage | Cost$ Discard<1/Card> | ValidTgts$ Player,Planeswalker | NumDmg$ X | References$ X | Activator$ Player | AILogic$ DiscardLands | SpellDescription$ If the discarded card was a land card, CARDNAME deals 2 damage to target player or planeswalker. Any player may activate this ability. SVar:X:Discarded$Valid Land/Times.2 AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/lands_edge.jpg diff --git a/forge-gui/res/cardsfolder/l/lethal_vapors.txt b/forge-gui/res/cardsfolder/l/lethal_vapors.txt index 5cc5b9e2506..ca94f623446 100644 --- a/forge-gui/res/cardsfolder/l/lethal_vapors.txt +++ b/forge-gui/res/cardsfolder/l/lethal_vapors.txt @@ -3,7 +3,7 @@ ManaCost:2 B B Types:Enchantment T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Creature | Execute$ TrigDestroy | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature enters the battlefield, destroy it. SVar:TrigDestroy:DB$ Destroy | Defined$ TriggeredCard -A:AB$ Destroy | Cost$ 0 | Defined$ Self | SubAbility$ DBSkipTurn | AnyPlayer$ True | AILogic$ WillSkipTurn | SpellDescription$ Destroy CARDNAME. You skip your next turn. Any player may activate this ability. +A:AB$ Destroy | Cost$ 0 | Defined$ Self | SubAbility$ DBSkipTurn | Activator$ Player | AILogic$ WillSkipTurn | SpellDescription$ Destroy CARDNAME. You skip your next turn. Any player may activate this ability. SVar:DBSkipTurn:DB$ SkipTurn | Defined$ You | NumTurns$ 1 | AILogic$ Always SVar:AICurseEffect:DestroyCreature AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/l/lightning_storm.txt b/forge-gui/res/cardsfolder/l/lightning_storm.txt index c6f81bc3a8c..a99b213a255 100644 --- a/forge-gui/res/cardsfolder/l/lightning_storm.txt +++ b/forge-gui/res/cardsfolder/l/lightning_storm.txt @@ -3,7 +3,7 @@ ManaCost:1 R R Types:Instant A:SP$ DealDamage | Cost$ 1 R R | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals X damage to any target, where X is 3 plus the number of charge counters on it. SVar:X:Count$CardCounters.CHARGE/Plus.3 -A:AB$ PutCounter | Cost$ Discard<1/Land> | CounterType$ CHARGE | CounterNum$ 2 | Defined$ Self | ActivationZone$ Stack | SubAbility$ DBChangeTarget | AnyPlayer$ True | SpellDescription$ Put two charge counters on CARDNAME. You may choose a new target for it. Any player may activate this ability but only if CARDNAME is on the stack. +A:AB$ PutCounter | Cost$ Discard<1/Land> | CounterType$ CHARGE | CounterNum$ 2 | Defined$ Self | ActivationZone$ Stack | SubAbility$ DBChangeTarget | Activator$ Player | SpellDescription$ Put two charge counters on CARDNAME. You may choose a new target for it. Any player may activate this ability but only if CARDNAME is on the stack. SVar:DBChangeTarget:DB$ ChangeTargets | Defined$ SourceFirstSpell | Optional$ True AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/lightning_storm.jpg diff --git a/forge-gui/res/cardsfolder/m/mana_cache.txt b/forge-gui/res/cardsfolder/m/mana_cache.txt index d3c0d6aa5cf..e39547400e4 100644 --- a/forge-gui/res/cardsfolder/m/mana_cache.txt +++ b/forge-gui/res/cardsfolder/m/mana_cache.txt @@ -4,7 +4,7 @@ Types:Enchantment T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | Execute$ TrigCounters | TriggerDescription$ At the beginning of each player’s end step, put a charge counter on CARDNAME for each untapped land that player controls. SVar:TrigCounters:DB$ PutCounter | Defined$ Self | CounterType$ CHARGE | CounterNum$ X | References$ X SVar:X:Count$Valid Land.ActivePlayerCtrl+untapped -A:AB$ Mana | Cost$ SubCounter<1/CHARGE> | Produced$ C | AnyPlayer$ True | PlayerTurn$ True | ActivationPhases$ Upkeep->Main2 | SpellDescription$ Add {C}. Any player may activate this ability but only during their turn before the end step. +A:AB$ Mana | Cost$ SubCounter<1/CHARGE> | Produced$ C | Activator$ Player | PlayerTurn$ True | ActivationPhases$ Upkeep->Main2 | SpellDescription$ Add {C}. Any player may activate this ability but only during their turn before the end step. AI:RemoveDeck:All #Until Agetian can sort the AI use/misuse of this card Oracle:At the beginning of each player’s end step, put a charge counter on Mana Cache for each untapped land that player controls.\nRemove a charge counter from Mana Cache: Add {C}. Any player may activate this ability but only during their turn before the end step. diff --git a/forge-gui/res/cardsfolder/m/mercenaries.txt b/forge-gui/res/cardsfolder/m/mercenaries.txt index 3f0b98ecf15..42ca24b97ed 100644 --- a/forge-gui/res/cardsfolder/m/mercenaries.txt +++ b/forge-gui/res/cardsfolder/m/mercenaries.txt @@ -2,7 +2,7 @@ Name:Mercenaries ManaCost:3 W Types:Creature Human Mercenary PT:3/3 -A:AB$ Effect | Cost$ 3 | EffectOwner$ You | AnyPlayer$ True | ReplacementEffects$ Bribe | SVars$ Bribe,ExileEffect | RememberObjects$ Self | AILogic$ Bribe | SpellDescription$ The next time CARDNAME would deal damage to you this turn, prevent that damage. Any player may activate this ability. +A:AB$ Effect | Cost$ 3 | EffectOwner$ You | Activator$ Player | ReplacementEffects$ Bribe | SVars$ Bribe,ExileEffect | RememberObjects$ Self | AILogic$ Bribe | SpellDescription$ The next time CARDNAME would deal damage to you this turn, prevent that damage. Any player may activate this ability. SVar:Bribe:Event$ DamageDone | ValidSource$ Card.IsRemembered | ValidTarget$ You | ReplaceWith$ ExileEffect | PreventionEffect$ True | Description$ The next time EFFECTSOURCE would deal damage to you this turn, prevent that damage. SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile Oracle:{3}: The next time Mercenaries would deal damage to you this turn, prevent that damage. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/m/merseine.txt b/forge-gui/res/cardsfolder/m/merseine.txt index c910269e334..f9b4f44444c 100644 --- a/forge-gui/res/cardsfolder/m/merseine.txt +++ b/forge-gui/res/cardsfolder/m/merseine.txt @@ -5,7 +5,7 @@ K:Enchant creature A:SP$ Attach | Cost$ 2 U U | ValidTgts$ Creature | AILogic$ KeepTapped | AITgts$ Card.cmcGE2 K:etbCounter:NET:3 S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | CheckSVar$ X | Description$ Enchanted creature doesn't untap during its controller's untap step if Merseine has a net counter on it. -A:AB$ RemoveCounter | EnchantedControllerActivator$ True | Cost$ Mana<1\EnchantedCost> | CostDesc$ Pay enchanted creature's mana cost: | CounterType$ NET | CounterNum$ 1 | SpellDescription$ Remove a net counter from CARDNAME. Any player may activate this ability, but only if they control the enchanted creature. +A:AB$ RemoveCounter | Activator$ Player.EnchantedController | Cost$ Mana<1\EnchantedCost> | CostDesc$ Pay enchanted creature's mana cost: | CounterType$ NET | CounterNum$ 1 | SpellDescription$ Remove a net counter from CARDNAME. Any player may activate this ability, but only if they control the enchanted creature. SVar:X:Count$CardCounters.NET SVar:Picture:http://www.wizards.com/global/images/magic/general/Merseine.jpg Oracle:Enchant creature\nMerseine enters the battlefield with three net counters on it.\nEnchanted creature doesn't untap during its controller's untap step if Merseine has a net counter on it.\nPay enchanted creature's mana cost: Remove a net counter from Merseine. Any player may activate this ability, but only if they control the enchanted creature. diff --git a/forge-gui/res/cardsfolder/n/nullhide_ferox.txt b/forge-gui/res/cardsfolder/n/nullhide_ferox.txt index feb90b4637a..0e95237ab10 100644 --- a/forge-gui/res/cardsfolder/n/nullhide_ferox.txt +++ b/forge-gui/res/cardsfolder/n/nullhide_ferox.txt @@ -4,7 +4,7 @@ Types:Creature Beast PT:6/6 K:Hexproof S:Mode$ CantBeCast | ValidCard$ Card.nonCreature | Caster$ You | Description$ You can't cast noncreature spells. -A:AB$ Animate | Cost$ 2 | Defined$ Self | RemoveAllAbilities$ True | AnyPlayer$ True | AILogic$ Curse | SpellDescription$ CARDNAME loses all abilities until end of turn. Any player may activate this ability. +A:AB$ Animate | Cost$ 2 | Defined$ Self | RemoveAllAbilities$ True | Activator$ Player | AILogic$ Curse | SpellDescription$ CARDNAME loses all abilities until end of turn. Any player may activate this ability. R:Event$ Discard | ActiveZones$ Hand | ValidCard$ Card.Self | ValidSource$ Card.OppCtrl | ReplaceWith$ SurpriseETB | DiscardFromEffect$ True | Description$ If a spell or ability an opponent controls causes you to discard CARDNAME, put it onto the battlefield instead of putting it into your graveyard. SVar:SurpriseETB:DB$ ChangeZone | DefinedPlayer$ ReplacedPlayer | Defined$ ReplacedCard | Origin$ Hand | Destination$ Battlefield SVar:DiscardMeByOpp:2 diff --git a/forge-gui/res/cardsfolder/o/oonas_prowler.txt b/forge-gui/res/cardsfolder/o/oonas_prowler.txt index 8f8f018d958..0144350c0d0 100644 --- a/forge-gui/res/cardsfolder/o/oonas_prowler.txt +++ b/forge-gui/res/cardsfolder/o/oonas_prowler.txt @@ -3,6 +3,6 @@ ManaCost:1 B Types:Creature Faerie Rogue PT:3/1 K:Flying -A:AB$ Pump | Cost$ Discard<1/Card> | Defined$ Self | NumAtt$ -2 | AnyPlayer$ True | SpellDescription$ Oona's Prowler gets -2/-0 until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ Discard<1/Card> | Defined$ Self | NumAtt$ -2 | Activator$ Player | SpellDescription$ Oona's Prowler gets -2/-0 until end of turn. Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/oonas_prowler.jpg Oracle:Flying\nDiscard a card: Oona's Prowler gets -2/-0 until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/p/personal_incarnation.txt b/forge-gui/res/cardsfolder/p/personal_incarnation.txt index b14d54f7de9..a2d3ebbc1a5 100644 --- a/forge-gui/res/cardsfolder/p/personal_incarnation.txt +++ b/forge-gui/res/cardsfolder/p/personal_incarnation.txt @@ -2,7 +2,7 @@ Name:Personal Incarnation ManaCost:3 W W W Types:Creature Avatar Incarnation PT:6/6 -A:AB$ Effect | Cost$ 0 | Name$ Personal Incarnation Redirection | ReplacementEffects$ RedirectDamage | SVars$ RedirectDmg | References$ RedirectDamage,RedirectDmg | Duration$ HostLeavesOrEOT | EffectOwner$ CardOwner | SpellDescription$ The next 1 damage that would be dealt to CARDNAME this turn is dealt to its owner instead. Only CARDNAME's owner may activate this ability. +A:AB$ Effect | Cost$ 0 | Activator$ Player.Owner | Name$ Personal Incarnation Redirection | ReplacementEffects$ RedirectDamage | SVars$ RedirectDmg | References$ RedirectDamage,RedirectDmg | Duration$ HostLeavesOrEOT | EffectOwner$ CardOwner | SpellDescription$ The next 1 damage that would be dealt to CARDNAME this turn is dealt to its owner instead. Only CARDNAME's owner may activate this ability. SVar:RedirectDamage:Event$ DamageDone | ValidTarget$ Creature.EffectSource | ReplaceWith$ RedirectDmg | DamageTarget$ You | Description$ The next 1 damage that would be dealt to EFFECTSOURCE this turn is dealt to its owner instead. Only EFFECTSOURCE's owner may activate this ability. SVar:RedirectDmg:DB$ ReplaceSplitDamage | DamageTarget$ You T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigLoseLife | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, its owner loses half their life, rounded up. diff --git a/forge-gui/res/cardsfolder/q/quicksilver_wall.txt b/forge-gui/res/cardsfolder/q/quicksilver_wall.txt index d972724bebb..a2205ec964e 100644 --- a/forge-gui/res/cardsfolder/q/quicksilver_wall.txt +++ b/forge-gui/res/cardsfolder/q/quicksilver_wall.txt @@ -2,7 +2,7 @@ Name:Quicksilver Wall ManaCost:2 U Types:Creature Wall PT:1/6 -A:AB$ ChangeZone | Cost$ 4 | Origin$ Battlefield | Destination$ Hand | AnyPlayer$ True | SpellDescription$ Return CARDNAME to its owner's hand. Any player may activate this ability. +A:AB$ ChangeZone | Cost$ 4 | Origin$ Battlefield | Destination$ Hand | Activator$ Player | SpellDescription$ Return CARDNAME to its owner's hand. Any player may activate this ability. K:Defender SVar:Picture:http://www.wizards.com/global/images/magic/general/quicksilver_wall.jpg Oracle:Defender (This creature can't attack.)\n{4}: Return Quicksilver Wall to its owner's hand. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/r/ribbon_snake.txt b/forge-gui/res/cardsfolder/r/ribbon_snake.txt index 01413745499..553e2b183d4 100644 --- a/forge-gui/res/cardsfolder/r/ribbon_snake.txt +++ b/forge-gui/res/cardsfolder/r/ribbon_snake.txt @@ -3,6 +3,6 @@ ManaCost:1 U U Types:Creature Snake PT:2/3 K:Flying -A:AB$ Debuff | Cost$ 2 | Defined$ Self | Keywords$ Flying | AnyPlayer$ True | SpellDescription$ CARDNAME loses flying until end of turn. Any player may activate this ability. +A:AB$ Debuff | Cost$ 2 | Defined$ Self | Keywords$ Flying | Activator$ Player | SpellDescription$ CARDNAME loses flying until end of turn. Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/ribbon_snake.jpg Oracle:Flying\n{2}: Ribbon Snake loses flying until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/s/sailmonger.txt b/forge-gui/res/cardsfolder/s/sailmonger.txt index 8f53c2ee014..78cc9eef207 100644 --- a/forge-gui/res/cardsfolder/s/sailmonger.txt +++ b/forge-gui/res/cardsfolder/s/sailmonger.txt @@ -2,6 +2,6 @@ Name:Sailmonger ManaCost:3 U Types:Creature Human Monger PT:3/3 -A:AB$ Pump | Cost$ 2 | AnyPlayer$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Flying | SpellDescription$ Target creature gains flying until end of turn. Any player may activate this ability. +A:AB$ Pump | Cost$ 2 | Activator$ Player | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Flying | SpellDescription$ Target creature gains flying until end of turn. Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/sailmonger.jpg Oracle:{2}: Target creature gains flying until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/s/samite_sanctuary.txt b/forge-gui/res/cardsfolder/s/samite_sanctuary.txt index 6125128bdf0..6e5b63ef2e9 100644 --- a/forge-gui/res/cardsfolder/s/samite_sanctuary.txt +++ b/forge-gui/res/cardsfolder/s/samite_sanctuary.txt @@ -1,7 +1,7 @@ Name:Samite Sanctuary ManaCost:2 W Types:Enchantment -A:AB$ PreventDamage | Cost$ 2 | ValidTgts$ Creature | Amount$ 1 | TgtPrompt$ Select target creature | AnyPlayer$ True | SpellDescription$ Prevent the next 1 damage that would be dealt to target creature this turn. Any player may activate this ability. +A:AB$ PreventDamage | Cost$ 2 | ValidTgts$ Creature | Amount$ 1 | TgtPrompt$ Select target creature | Activator$ Player | SpellDescription$ Prevent the next 1 damage that would be dealt to target creature this turn. Any player may activate this ability. AI:RemoveDeck:Random SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/samite_sanctuary.jpg diff --git a/forge-gui/res/cardsfolder/s/saproling_cluster.txt b/forge-gui/res/cardsfolder/s/saproling_cluster.txt index 921cb740e05..354df1dbc41 100644 --- a/forge-gui/res/cardsfolder/s/saproling_cluster.txt +++ b/forge-gui/res/cardsfolder/s/saproling_cluster.txt @@ -1,7 +1,7 @@ Name:Saproling Cluster ManaCost:1 G Types:Enchantment -A:AB$ Token | Cost$ 1 Discard<1/Card> | TokenAmount$ 1 | TokenScript$ g_1_1_saproling | TokenOwner$ You | LegacyImage$ g 1 1 saproling nms | AnyPlayer$ True | SpellDescription$ Create a 1/1 green Saproling creature token. Any player may activate this ability. +A:AB$ Token | Cost$ 1 Discard<1/Card> | TokenAmount$ 1 | TokenScript$ g_1_1_saproling | TokenOwner$ You | LegacyImage$ g 1 1 saproling nms | Activator$ Player | SpellDescription$ Create a 1/1 green Saproling creature token. Any player may activate this ability. AI:RemoveDeck:All SVar:NonStackingEffect:True DeckHas:Ability$Discard & Ability$Token diff --git a/forge-gui/res/cardsfolder/s/scandalmonger.txt b/forge-gui/res/cardsfolder/s/scandalmonger.txt index 30b7622f466..5f49615e7a4 100644 --- a/forge-gui/res/cardsfolder/s/scandalmonger.txt +++ b/forge-gui/res/cardsfolder/s/scandalmonger.txt @@ -2,7 +2,7 @@ Name:Scandalmonger ManaCost:3 B Types:Creature Boar Monger PT:3/3 -A:AB$ Discard | Cost$ 2 | ValidTgts$ Player | NumCards$ 1 | Mode$ TgtChoose | SorcerySpeed$ True | AnyPlayer$ True | IsCurse$ True | SpellDescription$ Target player discards a card. Any player may activate this ability but only any time they could cast a sorcery. +A:AB$ Discard | Cost$ 2 | ValidTgts$ Player | NumCards$ 1 | Mode$ TgtChoose | SorcerySpeed$ True | Activator$ Player | IsCurse$ True | SpellDescription$ Target player discards a card. Any player may activate this ability but only any time they could cast a sorcery. AI:RemoveDeck:Random SVar:Picture:http://www.wizards.com/global/images/magic/general/scandalmonger.jpg Oracle:{2}: Target player discards a card. Any player may activate this ability but only any time they could cast a sorcery. diff --git a/forge-gui/res/cardsfolder/s/soul_ransom.txt b/forge-gui/res/cardsfolder/s/soul_ransom.txt index 691659ef7ad..cc13f58cb6c 100644 --- a/forge-gui/res/cardsfolder/s/soul_ransom.txt +++ b/forge-gui/res/cardsfolder/s/soul_ransom.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 2 U B | ValidTgts$ Creature | AILogic$ GainControl S:Mode$ Continuous | Affected$ Card.EnchantedBy | GainControl$ You | Description$ You control enchanted creature. -A:AB$ Sacrifice | Cost$ Discard<2/Card> | AnyOpponent$ True | SacValid$ Self | SubAbility$ DBDraw | SpellDescription$ CARDNAME's controller sacrifices it, then draws two cards. Only any opponent may activate this ability. +A:AB$ Sacrifice | Cost$ Discard<2/Card> | Activator$ Player.Opponent | SacValid$ Self | SubAbility$ DBDraw | SpellDescription$ CARDNAME's controller sacrifices it, then draws two cards. Only any opponent may activate this ability. SVar:DBDraw:DB$ Draw | NumCards$ 2 | Defined$ SourceController SVar:Picture:http://www.wizards.com/global/images/magic/general/soul_ransom.jpg Oracle:Enchant creature\nYou control enchanted creature.\nDiscard two cards: Soul Ransom's controller sacrifices it, then draws two cards. Only any opponent may activate this ability. diff --git a/forge-gui/res/cardsfolder/s/squallmonger.txt b/forge-gui/res/cardsfolder/s/squallmonger.txt index 844190c5d1c..f9ef61d0650 100644 --- a/forge-gui/res/cardsfolder/s/squallmonger.txt +++ b/forge-gui/res/cardsfolder/s/squallmonger.txt @@ -2,7 +2,7 @@ Name:Squallmonger ManaCost:3 G Types:Creature Monger PT:3/3 -A:AB$ DamageAll | Cost$ 2 | NumDmg$ 1 | ValidCards$ Creature.withFlying | ValidPlayers$ Player | AnyPlayer$ True | ValidDescription$ each creature with flying and and each player. | SpellDescription$ CARDNAME deals 1 damage to each creature with flying and each player. Any player may activate this ability. +A:AB$ DamageAll | Cost$ 2 | NumDmg$ 1 | ValidCards$ Creature.withFlying | ValidPlayers$ Player | Activator$ Player | ValidDescription$ each creature with flying and and each player. | SpellDescription$ CARDNAME deals 1 damage to each creature with flying and each player. Any player may activate this ability. AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/squallmonger.jpg Oracle:{2}: Squallmonger deals 1 damage to each creature with flying and each player. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/t/task_mage_assembly.txt b/forge-gui/res/cardsfolder/t/task_mage_assembly.txt index e5fff1a8834..5081772710b 100644 --- a/forge-gui/res/cardsfolder/t/task_mage_assembly.txt +++ b/forge-gui/res/cardsfolder/t/task_mage_assembly.txt @@ -3,7 +3,7 @@ ManaCost:2 R Types:Enchantment T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Creature | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When there are no creatures on the battlefield, sacrifice CARDNAME. SVar:TrigSac:DB$Sacrifice | Defined$ Self -A:AB$ DealDamage | Cost$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 1 | AnyPlayer$ True | SorcerySpeed$ True | SpellDescription$ CARDNAME deals 1 damage to target creature. Any player may activate this ability but only any time they could cast a sorcery. +A:AB$ DealDamage | Cost$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 1 | Activator$ Player | SorcerySpeed$ True | SpellDescription$ CARDNAME deals 1 damage to target creature. Any player may activate this ability but only any time they could cast a sorcery. SVar:NeedsToPlay:Creature.YouCtrl SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/task_mage_assembly.jpg diff --git a/forge-gui/res/cardsfolder/t/tidal_control.txt b/forge-gui/res/cardsfolder/t/tidal_control.txt index 0d93f51c53f..2fd33651abb 100644 --- a/forge-gui/res/cardsfolder/t/tidal_control.txt +++ b/forge-gui/res/cardsfolder/t/tidal_control.txt @@ -2,8 +2,8 @@ Name:Tidal Control ManaCost:1 U U Types:Enchantment K:Cumulative upkeep:2 -A:AB$ Counter | Cost$ 2 | TargetType$ Spell | TgtPrompt$ Select target red or green spell | ValidTgts$ Card.Green,Card.Red | AnyPlayer$ True | SpellDescription$ Counter target red or green spell. Any player may activate this ability. -A:AB$ Counter | Cost$ PayLife<2> | TargetType$ Spell | TgtPrompt$ Select target red of green spell | ValidTgts$ Card.Green,Card.Red | AnyPlayer$ True | SpellDescription$ Counter target red or green spell. Any player may activate this ability. +A:AB$ Counter | Cost$ 2 | TargetType$ Spell | TgtPrompt$ Select target red or green spell | ValidTgts$ Card.Green,Card.Red | Activator$ Player | SpellDescription$ Counter target red or green spell. Any player may activate this ability. +A:AB$ Counter | Cost$ PayLife<2> | TargetType$ Spell | TgtPrompt$ Select target red of green spell | ValidTgts$ Card.Green,Card.Red | Activator$ Player | SpellDescription$ Counter target red or green spell. Any player may activate this ability. AI:RemoveDeck:All AI:RemoveDeck:Random SVar:Picture:http://www.wizards.com/global/images/magic/general/tidal_control.jpg diff --git a/forge-gui/res/cardsfolder/v/vintara_elephant.txt b/forge-gui/res/cardsfolder/v/vintara_elephant.txt index 6492a1afdba..91e4834bd08 100644 --- a/forge-gui/res/cardsfolder/v/vintara_elephant.txt +++ b/forge-gui/res/cardsfolder/v/vintara_elephant.txt @@ -3,6 +3,6 @@ ManaCost:4 G Types:Creature Elephant PT:4/3 K:Trample -A:AB$ Debuff | Cost$ 3 | Defined$ Self | Keywords$ Trample | AnyPlayer$ True | SpellDescription$ CARDNAME loses trample until end of turn. Any player may activate this ability. +A:AB$ Debuff | Cost$ 3 | Defined$ Self | Keywords$ Trample | Activator$ Player | SpellDescription$ CARDNAME loses trample until end of turn. Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/vintara_elephant.jpg Oracle:Trample\n{3}: Vintara Elephant loses trample until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/v/volraths_dungeon.txt b/forge-gui/res/cardsfolder/v/volraths_dungeon.txt index e7a2b30f6a8..63c5c801ec3 100644 --- a/forge-gui/res/cardsfolder/v/volraths_dungeon.txt +++ b/forge-gui/res/cardsfolder/v/volraths_dungeon.txt @@ -1,7 +1,7 @@ Name:Volrath's Dungeon ManaCost:2 B B Types:Enchantment -A:AB$ Destroy | Cost$ PayLife<5> | Defined$ Self | PlayerTurn$ True | AnyPlayer$ True | SpellDescription$ Destroy CARDNAME. Any player may activate this ability but only during their turn. +A:AB$ Destroy | Cost$ PayLife<5> | Defined$ Self | PlayerTurn$ True | Activator$ Player | SpellDescription$ Destroy CARDNAME. Any player may activate this ability but only during their turn. A:AB$ ChangeZone | Cost$ Discard<1/Card> | ValidTgts$ Player | TgtPrompt$ Select target player | Origin$ Hand | Destination$ Library | ChangeType$ Card | ChangeNum$ 1 | Chooser$ Targeted | LibraryPosition$ 0 | SorcerySpeed$ True | SpellDescription$ Target player puts a card from their hand on top of their library. Activate this ability only any time you could cast a sorcery. AI:RemoveDeck:Random SVar:Picture:http://www.wizards.com/global/images/magic/general/volraths_dungeon.jpg diff --git a/forge-gui/res/cardsfolder/w/wall_of_vipers.txt b/forge-gui/res/cardsfolder/w/wall_of_vipers.txt index 12052c48d26..9f213ea3319 100644 --- a/forge-gui/res/cardsfolder/w/wall_of_vipers.txt +++ b/forge-gui/res/cardsfolder/w/wall_of_vipers.txt @@ -3,7 +3,7 @@ ManaCost:2 B Types:Creature Snake Wall PT:2/4 K:Defender -A:AB$ Destroy | Cost$ 3 | Defined$ Self | AnyPlayer$ True | SubAbility$ SnakeBite | SpellDescription$ Destroy CARDNAME and target creature it's blocking. Any player may activate this ability. +A:AB$ Destroy | Cost$ 3 | Defined$ Self | Activator$ Player | SubAbility$ SnakeBite | SpellDescription$ Destroy CARDNAME and target creature it's blocking. Any player may activate this ability. SVar:SnakeBite:DB$ Destroy | ValidTgts$ Creature.blockedBySource AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/wall_of_vipers.jpg diff --git a/forge-gui/res/cardsfolder/w/warmonger.txt b/forge-gui/res/cardsfolder/w/warmonger.txt index f98167c64e8..0195086b0da 100644 --- a/forge-gui/res/cardsfolder/w/warmonger.txt +++ b/forge-gui/res/cardsfolder/w/warmonger.txt @@ -2,7 +2,7 @@ Name:Warmonger ManaCost:3 R Types:Creature Minotaur Monger PT:3/3 -A:AB$ DamageAll | Cost$ 2 | NumDmg$ 1 | ValidCards$ Creature.withoutFlying | ValidPlayers$ Player | AnyPlayer$ True | ValidDescription$ each creature without flying and and each player. | SpellDescription$ CARDNAME deals 1 damage to each creature without flying and each player. Any player may activate this ability. +A:AB$ DamageAll | Cost$ 2 | NumDmg$ 1 | ValidCards$ Creature.withoutFlying | ValidPlayers$ Player | Activator$ Player | ValidDescription$ each creature without flying and and each player. | SpellDescription$ CARDNAME deals 1 damage to each creature without flying and each player. Any player may activate this ability. AI:RemoveDeck:Random SVar:Picture:http://www.wizards.com/global/images/magic/general/warmonger.jpg Oracle:{2}: Warmonger deals 1 damage to each creature without flying and each player. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/w/well_of_knowledge.txt b/forge-gui/res/cardsfolder/w/well_of_knowledge.txt index 673167e0bc2..f360cdcbe42 100644 --- a/forge-gui/res/cardsfolder/w/well_of_knowledge.txt +++ b/forge-gui/res/cardsfolder/w/well_of_knowledge.txt @@ -1,7 +1,7 @@ Name:Well of Knowledge ManaCost:3 Types:Artifact -A:AB$ Draw | Cost$ 2 | NumCards$ 1 | AnyPlayer$ True | PlayerTurn$ True | ActivationPhases$ Draw | SpellDescription$ Draw a card. Any player may activate this ability but only during their draw step. +A:AB$ Draw | Cost$ 2 | NumCards$ 1 | Activator$ Player | PlayerTurn$ True | ActivationPhases$ Draw | SpellDescription$ Draw a card. Any player may activate this ability but only during their draw step. SVar:Picture:http://www.wizards.com/global/images/magic/general/well_of_knowledge.jpg SVar:NonStackingEffect:True Oracle:{2}: Draw a card. Any player may activate this ability but only during their draw step. diff --git a/forge-gui/res/cardsfolder/w/wishmonger.txt b/forge-gui/res/cardsfolder/w/wishmonger.txt index eb8d808e114..86f8471b666 100644 --- a/forge-gui/res/cardsfolder/w/wishmonger.txt +++ b/forge-gui/res/cardsfolder/w/wishmonger.txt @@ -2,7 +2,7 @@ Name:Wishmonger ManaCost:3 W Types:Creature Unicorn Monger PT:3/3 -A:AB$ Protection | Cost$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | Gains$ Choice | Choser$ Controller | AnyPlayer$ True | Choices$ AnyColor | SpellDescription$ Target creature gains protection from the color of its controller's choice until end of turn. Any player may activate this ability. +A:AB$ Protection | Cost$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | Gains$ Choice | Choser$ Controller | Activator$ Player | Choices$ AnyColor | SpellDescription$ Target creature gains protection from the color of its controller's choice until end of turn. Any player may activate this ability. AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/wishmonger.jpg Oracle:{2}: Target creature gains protection from the color of its controller's choice until end of turn. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/x/xantcha_sleeper_agent.txt b/forge-gui/res/cardsfolder/x/xantcha_sleeper_agent.txt index d8a1a9c936a..0aa64a90128 100644 --- a/forge-gui/res/cardsfolder/x/xantcha_sleeper_agent.txt +++ b/forge-gui/res/cardsfolder/x/xantcha_sleeper_agent.txt @@ -8,6 +8,6 @@ SVar:DBChooseOpp:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | Ch SVar:MoveToPlay:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Battlefield | Defined$ ReplacedCard | GainControl$ True | NewController$ ChosenPlayer | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearChosenPlayer$ True S:Mode$ CantAttack | ValidCard$ Card.Self | Target$ Player.CardOwner,Planeswalker.ControlledBy Player.CardOwner | Description$ CARDNAME can't attack its owner or planeswalkers its owner controls. -A:AB$ Draw | Cost$ 3 | NumCards$ 1 | AnyPlayer$ True | SubAbility$ DBLoseLife | SpellDescription$ Xantcha's controller loses 2 life and you draw a card. Any player may activate this ability. +A:AB$ Draw | Cost$ 3 | NumCards$ 1 | Activator$ Player | SubAbility$ DBLoseLife | SpellDescription$ Xantcha's controller loses 2 life and you draw a card. Any player may activate this ability. SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 2 | Defined$ CardController Oracle:Xantcha, Sleeper Agent enters the battlefield under the control of an opponent of your choice.\nXantcha attacks each combat if able and can't attack its owner or planeswalkers its owner controls.\n{3}: Xantcha's controller loses 2 life and you draw a card. Any player may activate this ability. diff --git a/forge-gui/res/cardsfolder/z/zerapa_minotaur.txt b/forge-gui/res/cardsfolder/z/zerapa_minotaur.txt index f70c899d163..0693b34536f 100644 --- a/forge-gui/res/cardsfolder/z/zerapa_minotaur.txt +++ b/forge-gui/res/cardsfolder/z/zerapa_minotaur.txt @@ -3,6 +3,6 @@ ManaCost:2 R R Types:Creature Minotaur PT:3/3 K:First Strike -A:AB$ Debuff | Cost$ 2 | Defined$ Self | Keywords$ First Strike | AnyPlayer$ True | SpellDescription$ CARDNAME loses first strike until end of turn. Any player may activate this ability. +A:AB$ Debuff | Cost$ 2 | Defined$ Self | Keywords$ First Strike | Activator$ Player | SpellDescription$ CARDNAME loses first strike until end of turn. Any player may activate this ability. SVar:Picture:http://www.wizards.com/global/images/magic/general/zerapa_minotaur.jpg Oracle:First strike\n{2}: Zerapa Minotaur loses first strike until end of turn. Any player may activate this ability.