diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index d04d67be5a0..d3746a87047 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -2763,16 +2763,6 @@ public class AbilityUtils { return game.getPhaseHandler().getPlanarDiceSpecialActionThisTurn(); } - if (sq[0].equals("AllTypes")) { - List cards = getDefinedCards(c, sq[1], ctb); - - int amount = countCardTypesFromList(cards, false) + - countSuperTypesFromList(cards) + - countSubTypesFromList(cards); - - return doXMath(amount, expr, c, ctb); - } - if (sq[0].equals("TotalTurns")) { return doXMath(game.getPhaseHandler().getTurn(), expr, c, ctb); } @@ -2918,18 +2908,6 @@ public class AbilityUtils { return doXMath(colorSize[colorSize.length - 2], expr, c, ctb); } - if (sq[0].startsWith("ColorsCtrl")) { - final String restriction = l[0].substring(11); - final CardCollection list = CardLists.getValidCards(player.getCardsIn(ZoneType.Battlefield), restriction, player, c, ctb); - return doXMath(CardUtil.getColorsFromCards(list).countColors(), expr, c, ctb); - } - - if (sq[0].startsWith("ColorsDefined")) { - final String restriction = l[0].substring(14); - final CardCollection list = getDefinedCards(c, restriction, ctb); - return doXMath(CardUtil.getColorsFromCards(list).countColors(), expr, c, ctb); - } - // TODO move below to handlePaid if (sq[0].startsWith("SumPower")) { final String[] restrictions = l[0].split("_"); @@ -3776,6 +3754,10 @@ public class AbilityUtils { return Aggregates.max(paidList, Card::getCMC); } + if (string.equals("Colors")) { + return CardUtil.getColorsFromCards(paidList).countColors(); + } + if (string.equals("DifferentColorPair")) { final Set diffPair = new HashSet<>(); for (final Card card : paidList) { @@ -3805,6 +3787,12 @@ public class AbilityUtils { return doXMath(num, splitString.length > 1 ? splitString[1] : null, source, ctb); } + if (string.startsWith("AllTypes")) { + return countCardTypesFromList(paidList, false) + + countSuperTypesFromList(paidList) + + countSubTypesFromList(paidList); + } + if (string.startsWith("CardTypes")) { return doXMath(countCardTypesFromList(paidList, string.startsWith("CardTypesPermanent")), CardFactoryUtil.extractOperators(string), source, ctb); } diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 0ad36e3ae15..05b2fa73508 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1374,10 +1374,6 @@ public class CardProperty { if (!card.isEnchanted()) { return false; } - } else if (property.startsWith("unenchanted")) { - if (card.isEnchanted()) { - return false; - } } else if (property.startsWith("enchanting")) { if (!card.isEnchanting()) { return false; @@ -1386,10 +1382,6 @@ public class CardProperty { if (!card.isEquipped()) { return false; } - } else if (property.startsWith("unequipped")) { - if (card.isEquipped()) { - return false; - } } else if (property.startsWith("equipping")) { if (!card.isEquipping()) { return false; diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityAttackRestrict.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityAttackRestrict.java index 449445f667d..04f60a2e140 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityAttackRestrict.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityAttackRestrict.java @@ -8,8 +8,6 @@ import forge.game.zone.ZoneType; public class StaticAbilityAttackRestrict { - static String MODE = "AttackRestrict"; - static public int globalAttackRestrict(Game game) { int max = Integer.MAX_VALUE; for (final Card ca : game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)) { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttach.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttach.java index 5e56d7a9c58..8b2ba2bda27 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttach.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttach.java @@ -6,8 +6,6 @@ import forge.game.zone.ZoneType; public class StaticAbilityCantAttach { - static String MODE = "CantAttach"; - public static boolean cantAttach(final GameEntity target, final Card card, boolean checkSBA) { // CantTarget static abilities for (final Card ca : target.getGame().getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)) { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java index b842244fb32..9ecaba30463 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java @@ -25,8 +25,6 @@ import forge.game.GameEntity; import forge.game.ability.AbilityUtils; import forge.game.card.Card; import forge.game.card.CardCollection; -import forge.game.card.CardCollectionView; -import forge.game.card.CardPredicates; import forge.game.cost.Cost; import forge.game.keyword.Keyword; import forge.game.player.Player; @@ -94,22 +92,6 @@ public class StaticAbilityCantAttackBlock { } } - if (stAb.hasParam("UnlessDefenderControls")) { - String type = stAb.getParam("UnlessDefenderControls"); - CardCollectionView list = defender.getCardsIn(ZoneType.Battlefield); - if (list.anyMatch( - CardPredicates.restriction(type.split(","), hostCard.getController(), hostCard, stAb))) { - return false; - } - } - if (stAb.hasParam("IfDefenderControls")) { - String type = stAb.getParam("IfDefenderControls"); - CardCollectionView list = defender.getCardsIn(ZoneType.Battlefield); - if (!list.anyMatch( - CardPredicates.restriction(type.split(","), hostCard.getController(), hostCard, stAb))) { - return false; - } - } if (stAb.hasParam("DefenderNotNearestToYouInChosenDirection")) { if (hostCard.getChosenDirection() == null) { return false; diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantExile.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantExile.java index 98c5c271a8c..2b81b811c73 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantExile.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantExile.java @@ -7,8 +7,6 @@ import forge.game.zone.ZoneType; public class StaticAbilityCantExile { - static String MODE = "CantExile"; - public static boolean cantExile(final Card card, final SpellAbility cause, final boolean effect) { final Game game = card.getGame(); for (final Card ca : game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)) { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantPutCounter.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantPutCounter.java index 5e89f7c10d9..cc336310045 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantPutCounter.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantPutCounter.java @@ -8,8 +8,6 @@ import forge.game.zone.ZoneType; public class StaticAbilityCantPutCounter { - static String MODE = "CantPutCounter"; - public static boolean anyCantPutCounter(final Card card, final CounterType type) { final Game game = card.getGame(); for (final Card ca : game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)) { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCastWithFlash.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCastWithFlash.java index c33e6bd8889..498df35dedf 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCastWithFlash.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCastWithFlash.java @@ -9,8 +9,6 @@ import forge.game.zone.ZoneType; public class StaticAbilityCastWithFlash { - static String MODE = "CastWithFlash"; - public static boolean anyWithFlashNeedsInfo(final SpellAbility sa, final Card card, final Player activator) { final Game game = activator.getGame(); final CardCollection allp = new CardCollection(game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)); diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityMustTarget.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityMustTarget.java index 28a15948394..a18adc9f56d 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityMustTarget.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityMustTarget.java @@ -14,7 +14,6 @@ import forge.game.spellability.TargetRestrictions; import forge.game.zone.ZoneType; public class StaticAbilityMustTarget { - static String MODE = "MustTarget"; public static boolean filterMustTargetCards(Player targetingPlayer, List targets, final SpellAbility spellAbility) { //Only applied when the targeting player and controller are the same diff --git a/forge-gui/res/cardsfolder/a/akoum.txt b/forge-gui/res/cardsfolder/a/akoum.txt index 0068edb6057..5512e0ca61c 100644 --- a/forge-gui/res/cardsfolder/a/akoum.txt +++ b/forge-gui/res/cardsfolder/a/akoum.txt @@ -3,6 +3,6 @@ ManaCost:no cost Types:Plane Zendikar S:Mode$ CastWithFlash | ValidCard$ Enchantment | ValidSA$ Spell | EffectZone$ Command | Caster$ Player | Description$ Players may cast enchantment spells as though they had flash. T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, destroy target creature that isn't enchanted. -SVar:RolledChaos:DB$ Destroy | ValidTgts$ Creature.unenchanted | TgtPrompt$ Select target creature that isn't enchanted +SVar:RolledChaos:DB$ Destroy | ValidTgts$ Creature.!enchanted | TgtPrompt$ Select target creature that isn't enchanted SVar:AIRollPlanarDieParams:Mode$ Always | OppHasCreatureInPlay$ True | RollInMain1$ True Oracle:Players may cast enchantment spells as though they had flash.\nWhenever chaos ensues, destroy target creature that isn't enchanted. diff --git a/forge-gui/res/cardsfolder/a/armored_galleon.txt b/forge-gui/res/cardsfolder/a/armored_galleon.txt index c9afc4f4120..035bebeb3a0 100644 --- a/forge-gui/res/cardsfolder/a/armored_galleon.txt +++ b/forge-gui/res/cardsfolder/a/armored_galleon.txt @@ -2,5 +2,5 @@ Name:Armored Galleon ManaCost:4 U Types:Creature Human Pirate PT:5/4 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Armored Galleon can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/b/bog_serpent.txt b/forge-gui/res/cardsfolder/b/bog_serpent.txt index 8c2e55a3f49..7ae1917d405 100644 --- a/forge-gui/res/cardsfolder/b/bog_serpent.txt +++ b/forge-gui/res/cardsfolder/b/bog_serpent.txt @@ -2,7 +2,7 @@ Name:Bog Serpent ManaCost:5 B Types:Creature Serpent PT:5/5 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Swamp | Description$ CARDNAME can't attack unless defending player controls a Swamp. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsSwamp | Description$ CARDNAME can't attack unless defending player controls a Swamp. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Swamp.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Swamps, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlay:Swamp.YouCtrl diff --git a/forge-gui/res/cardsfolder/b/brainspoil.txt b/forge-gui/res/cardsfolder/b/brainspoil.txt index 679cd9c6f8d..fc386772eb5 100644 --- a/forge-gui/res/cardsfolder/b/brainspoil.txt +++ b/forge-gui/res/cardsfolder/b/brainspoil.txt @@ -1,6 +1,6 @@ Name:Brainspoil ManaCost:3 B B Types:Sorcery -A:SP$ Destroy | ValidTgts$ Creature.unenchanted | TgtPrompt$ Select target creature that isn't enchanted | NoRegen$ True | SpellDescription$ Destroy target creature that isn't enchanted. It can't be regenerated. +A:SP$ Destroy | ValidTgts$ Creature.!enchanted | TgtPrompt$ Select target creature that isn't enchanted | NoRegen$ True | SpellDescription$ Destroy target creature that isn't enchanted. It can't be regenerated. K:Transmute:1 B B Oracle:Destroy target creature that isn't enchanted. It can't be regenerated.\nTransmute {1}{B}{B} ({1}{B}{B}, Discard this card: Search your library for a card with the same mana value as this card, reveal it, put it into your hand, then shuffle. Transmute only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/b/branded_brawlers.txt b/forge-gui/res/cardsfolder/b/branded_brawlers.txt index cc506f83994..3f142a28bad 100644 --- a/forge-gui/res/cardsfolder/b/branded_brawlers.txt +++ b/forge-gui/res/cardsfolder/b/branded_brawlers.txt @@ -2,6 +2,6 @@ Name:Branded Brawlers ManaCost:R Types:Creature Human Soldier PT:2/2 -S:Mode$ CantAttack | ValidCard$ Card.Self | IfDefenderControls$ Land.untapped | Description$ CARDNAME can't attack if defending player controls an untapped land. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ !controlsLand.untapped | Description$ CARDNAME can't attack if defending player controls an untapped land. S:Mode$ CantBlock | ValidCard$ Card.Self | IsPresent$ Land.YouCtrl+untapped | Description$ CARDNAME can't block if you control an untapped land. Oracle:Branded Brawlers can't attack if defending player controls an untapped land.\nBranded Brawlers can't block if you control an untapped land. diff --git a/forge-gui/res/cardsfolder/c/case_of_the_shattered_pact.txt b/forge-gui/res/cardsfolder/c/case_of_the_shattered_pact.txt index 7d1a146f2b1..f29a7aa3f78 100644 --- a/forge-gui/res/cardsfolder/c/case_of_the_shattered_pact.txt +++ b/forge-gui/res/cardsfolder/c/case_of_the_shattered_pact.txt @@ -7,5 +7,5 @@ T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | IsPresent$ Card.Self+!Is SVar:TrigSolve:DB$ AlterAttribute | Defined$ Self | Attributes$ Solved T:Mode$ Phase | Phase$ BeginCombat | IsPresent$ Card.Self+IsSolved | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Solved — At the beginning of combat on your turn, target creature you control gains flying, double strike, and vigilance until end of turn. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | KW$ Flying & Double Strike & Vigilance -SVar:X:Count$ColorsCtrl Permanent +SVar:X:Count$Valid Permanent.YouCtrl$Colors Oracle:When this Case enters, search your library for a basic land card, reveal it, put it into your hand, then shuffle.\nTo solve — There are five colors among permanents you control. (If unsolved, solve at the beginning of your end step.)\nSolved — At the beginning of combat on your turn, target creature you control gains flying, double strike, and vigilance until end of turn. diff --git a/forge-gui/res/cardsfolder/c/chromatic_orrery.txt b/forge-gui/res/cardsfolder/c/chromatic_orrery.txt index faf1d86c76c..d9cb575ea8f 100644 --- a/forge-gui/res/cardsfolder/c/chromatic_orrery.txt +++ b/forge-gui/res/cardsfolder/c/chromatic_orrery.txt @@ -4,6 +4,6 @@ Types:Legendary Artifact S:Mode$ ManaConvert | ValidPlayer$ You | ManaConversion$ AnyType->AnyColor | Description$ You may spend mana as though it were mana of any color. A:AB$ Mana | Cost$ T | Produced$ C | Amount$ 5 | SpellDescription$ Add {C}{C}{C}{C}{C}. A:AB$ Draw | Cost$ 5 T | NumCards$ X | SpellDescription$ Draw a card for each color among permanents you control. -SVar:X:Count$ColorsCtrl Permanent +SVar:X:Count$Valid Permanent.YouCtrl$Colors SVar:NonStackingEffect:True Oracle:You may spend mana as though it were mana of any color.\n{T}: Add {C}{C}{C}{C}{C}.\n{5}, {T}: Draw a card for each color among permanents you control. diff --git a/forge-gui/res/cardsfolder/c/coalition_victory.txt b/forge-gui/res/cardsfolder/c/coalition_victory.txt index 9823438a5c8..11bddfa4ca3 100644 --- a/forge-gui/res/cardsfolder/c/coalition_victory.txt +++ b/forge-gui/res/cardsfolder/c/coalition_victory.txt @@ -2,7 +2,7 @@ Name:Coalition Victory ManaCost:3 W U B R G Types:Sorcery A:SP$ WinsGame | Defined$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ10 | SpellDescription$ You win the game if you control a land of each basic land type and a creature of each color. -SVar:Z:Count$ColorsCtrl Creature +SVar:Z:Count$Valid Creature.YouCtrl$Colors SVar:Y:Count$Domain SVar:X:SVar$Y/Plus.Z AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/c/conquerors_flail.txt b/forge-gui/res/cardsfolder/c/conquerors_flail.txt index 1379b39391a..0bc6ff4100a 100644 --- a/forge-gui/res/cardsfolder/c/conquerors_flail.txt +++ b/forge-gui/res/cardsfolder/c/conquerors_flail.txt @@ -3,6 +3,6 @@ ManaCost:2 Types:Artifact Equipment S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ X | AddToughness$ X | Description$ Equipped creature gets +1/+1 for each color among permanents you control. S:Mode$ CantBeCast | ValidCard$ Card | Condition$ PlayerTurn | Caster$ Opponent | IsPresent$ Card.Self+AttachedTo Creature | Description$ As long as CARDNAME is attached to a creature, your opponents can't cast spells during your turn. -SVar:X:Count$ColorsCtrl Permanent +SVar:X:Count$Valid Permanent.YouCtrl$Colors K:Equip:2 Oracle:Equipped creature gets +1/+1 for each color among permanents you control.\nAs long as Conqueror's Flail is attached to a creature, your opponents can't cast spells during your turn.\nEquip {2} diff --git a/forge-gui/res/cardsfolder/d/dandan.txt b/forge-gui/res/cardsfolder/d/dandan.txt index 343668c3b84..2bd7f6dcf4e 100644 --- a/forge-gui/res/cardsfolder/d/dandan.txt +++ b/forge-gui/res/cardsfolder/d/dandan.txt @@ -2,7 +2,7 @@ Name:Dandân ManaCost:U U Types:Creature Fish PT:4/1 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlay:Island.YouCtrl diff --git a/forge-gui/res/cardsfolder/d/deep_sea_serpent.txt b/forge-gui/res/cardsfolder/d/deep_sea_serpent.txt index 0a255c7de22..642ae6ef1de 100644 --- a/forge-gui/res/cardsfolder/d/deep_sea_serpent.txt +++ b/forge-gui/res/cardsfolder/d/deep_sea_serpent.txt @@ -2,5 +2,5 @@ Name:Deep-Sea Serpent ManaCost:4 U U Types:Creature Serpent PT:5/5 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Deep-Sea Serpent can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/d/dreamwinder.txt b/forge-gui/res/cardsfolder/d/dreamwinder.txt index a4bcfa0d60f..1e30b155ca5 100644 --- a/forge-gui/res/cardsfolder/d/dreamwinder.txt +++ b/forge-gui/res/cardsfolder/d/dreamwinder.txt @@ -2,7 +2,7 @@ Name:Dreamwinder ManaCost:3 U Types:Creature Serpent PT:4/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. A:AB$ Animate | Cost$ U Sac<1/Island> | ValidTgts$ Land | TgtPrompt$ Select target land | Types$ Island | RemoveLandTypes$ True | SpellDescription$ Target land becomes an Island until end of turn. AI:RemoveDeck:All Oracle:Dreamwinder can't attack unless defending player controls an Island.\n{U}, Sacrifice an Island: Target land becomes an Island until end of turn. diff --git a/forge-gui/res/cardsfolder/e/embiggen.txt b/forge-gui/res/cardsfolder/e/embiggen.txt index 5b21e7b6649..7163c374ab8 100644 --- a/forge-gui/res/cardsfolder/e/embiggen.txt +++ b/forge-gui/res/cardsfolder/e/embiggen.txt @@ -2,5 +2,5 @@ Name:Embiggen ManaCost:G Types:Instant A:SP$ Pump | Cost$ G | ValidTgts$ Creature.nonBrushwagg | TgtPrompt$ Select target non-Brushwagg creature | NumAtt$ +X | NumDef$ +X | SpellDescription$ Until end of turn, target non-Brushwagg creature gets +1/+1 for each supertype, card type, and subtype it has. -SVar:X:Count$AllTypes.Targeted +SVar:X:Targeted$AllTypes Oracle:Until end of turn, target non-Brushwagg creature gets +1/+1 for each supertype, card type, and subtype it has. diff --git a/forge-gui/res/cardsfolder/e/ethereal_whiskergill.txt b/forge-gui/res/cardsfolder/e/ethereal_whiskergill.txt index 548a5ea3a42..c1822393039 100644 --- a/forge-gui/res/cardsfolder/e/ethereal_whiskergill.txt +++ b/forge-gui/res/cardsfolder/e/ethereal_whiskergill.txt @@ -2,6 +2,6 @@ Name:Ethereal Whiskergill ManaCost:3 U Types:Creature Elemental PT:4/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. K:Flying Oracle:Flying\nEthereal Whiskergill can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/f/faeburrow_elder.txt b/forge-gui/res/cardsfolder/f/faeburrow_elder.txt index 3b65c041662..f0005710a4f 100644 --- a/forge-gui/res/cardsfolder/f/faeburrow_elder.txt +++ b/forge-gui/res/cardsfolder/f/faeburrow_elder.txt @@ -4,7 +4,7 @@ Types:Creature Treefolk Druid PT:0/0 K:Vigilance S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each color among permanents you control. -SVar:X:Count$ColorsCtrl Permanent +SVar:X:Count$Valid Permanent.YouCtrl$Colors A:AB$ Mana | Cost$ T | Produced$ Special EachColorAmong_Permanent.YouCtrl | SpellDescription$ For each color among permanents you control, add one mana of that color. AI:RemoveDeck:All Oracle:Vigilance\nFaeburrow Elder gets +1/+1 for each color among permanents you control.\n{T}: For each color among permanents you control, add one mana of that color. diff --git a/forge-gui/res/cardsfolder/f/floodchaser.txt b/forge-gui/res/cardsfolder/f/floodchaser.txt index 276a9f7cef6..bfa0507ff6f 100644 --- a/forge-gui/res/cardsfolder/f/floodchaser.txt +++ b/forge-gui/res/cardsfolder/f/floodchaser.txt @@ -3,7 +3,7 @@ ManaCost:5 U Types:Creature Elemental PT:0/0 K:etbCounter:P1P1:6 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. A:AB$ Animate | Cost$ U SubCounter<1/P1P1> | ValidTgts$ Land | TgtPrompt$ Select target land | Types$ Island | RemoveLandTypes$ True | SpellDescription$ Target land becomes an Island until end of turn. AI:RemoveDeck:All Oracle:Floodchaser enters with six +1/+1 counters on it.\nFloodchaser can't attack unless defending player controls an Island.\n{U}, Remove a +1/+1 counter from Floodchaser: Target land becomes an Island until end of turn. diff --git a/forge-gui/res/cardsfolder/g/general_tazri.txt b/forge-gui/res/cardsfolder/g/general_tazri.txt index 2e274900afd..842e16c7dd4 100644 --- a/forge-gui/res/cardsfolder/g/general_tazri.txt +++ b/forge-gui/res/cardsfolder/g/general_tazri.txt @@ -5,5 +5,5 @@ PT:3/4 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle. SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Creature.Ally | ChangeNum$ 1 | ShuffleNonMandatory$ True A:AB$ PumpAll | Cost$ W U B R G | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ +X | NumDef$ +X | SpellDescription$ Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures. -SVar:X:Count$ColorsCtrl Creature.Ally+YouCtrl +SVar:X:Count$Valid Creature.Ally+YouCtrl$Colors Oracle:When General Tazri enters, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle.\n{W}{U}{B}{R}{G}: Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures. diff --git a/forge-gui/res/cardsfolder/g/giant_shark.txt b/forge-gui/res/cardsfolder/g/giant_shark.txt index c43389536dd..81b9de0f11f 100644 --- a/forge-gui/res/cardsfolder/g/giant_shark.txt +++ b/forge-gui/res/cardsfolder/g/giant_shark.txt @@ -5,7 +5,7 @@ PT:4/4 T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature.wasDealtDamageThisTurn | ValidBlocker$ Card.Self | Execute$ TrigPumpShark | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature that has been dealt damage this turn, CARDNAME gets +2/+0 and gains trample until end of turn. T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature.wasDealtDamageThisTurn | Execute$ TrigPumpShark | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature that has been dealt damage this turn, CARDNAME gets +2/+0 and gains trample until end of turn. SVar:TrigPumpShark:DB$ Pump | Defined$ Self | NumAtt$ +2 | KW$ Trample -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlay:Island.YouCtrl diff --git a/forge-gui/res/cardsfolder/g/goblin_mutant.txt b/forge-gui/res/cardsfolder/g/goblin_mutant.txt index 95649eb406b..a20974129bf 100644 --- a/forge-gui/res/cardsfolder/g/goblin_mutant.txt +++ b/forge-gui/res/cardsfolder/g/goblin_mutant.txt @@ -3,6 +3,6 @@ ManaCost:2 R R Types:Creature Goblin Mutant PT:5/3 K:Trample -S:Mode$ CantAttack | ValidCard$ Card.Self | IfDefenderControls$ Creature.untapped+powerGE3 | Description$ CARDNAME can't attack if defending player controls an untapped creature with power 3 or greater. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ !controlsCreature.untapped+powerGE3 | Description$ CARDNAME can't attack if defending player controls an untapped creature with power 3 or greater. S:Mode$ CantBlockBy | ValidAttacker$ Creature.powerGE3 | ValidBlocker$ Creature.Self | Description$ CARDNAME can't block creatures with power 3 or greater. Oracle:Trample\nGoblin Mutant can't attack if defending player controls an untapped creature with power 3 or greater.\nGoblin Mutant can't block creatures with power 3 or greater. diff --git a/forge-gui/res/cardsfolder/g/goblin_rock_sled.txt b/forge-gui/res/cardsfolder/g/goblin_rock_sled.txt index 7ed175b9ad7..f7d167a7102 100644 --- a/forge-gui/res/cardsfolder/g/goblin_rock_sled.txt +++ b/forge-gui/res/cardsfolder/g/goblin_rock_sled.txt @@ -4,6 +4,6 @@ Types:Creature Goblin PT:3/1 K:Trample R:Event$ Untap | ActiveZones$ Battlefield | ValidCard$ Card.Self+attackedLastTurn | ValidStepTurnToController$ You | Layer$ CantHappen | Description$ CARDNAME doesn't untap during your untap step if it attacked during your last turn. -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Mountain | Description$ CARDNAME can't attack unless defending player controls a Mountain. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsMountain | Description$ CARDNAME can't attack unless defending player controls a Mountain. DeckHints:Name$Blood Moon|Magus of the Moon Oracle:Trample\nGoblin Rock Sled doesn't untap during your untap step if it attacked during your last turn.\nGoblin Rock Sled can't attack unless defending player controls a Mountain. diff --git a/forge-gui/res/cardsfolder/g/godhunter_octopus.txt b/forge-gui/res/cardsfolder/g/godhunter_octopus.txt index 42d3cb6c662..a00dd82ecc3 100644 --- a/forge-gui/res/cardsfolder/g/godhunter_octopus.txt +++ b/forge-gui/res/cardsfolder/g/godhunter_octopus.txt @@ -2,6 +2,6 @@ Name:Godhunter Octopus ManaCost:5 U Types:Creature Octopus PT:5/5 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Enchantment,Permanent.enchanted | Description$ CARDNAME can't attack unless defending player controls an enchantment or an enchanted permanent. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsEnchantment,Permanent.enchanted | Description$ CARDNAME can't attack unless defending player controls an enchantment or an enchanted permanent. AI:RemoveDeck:Random Oracle:Godhunter Octopus can't attack unless defending player controls an enchantment or an enchanted permanent. diff --git a/forge-gui/res/cardsfolder/g/gorilla_pack.txt b/forge-gui/res/cardsfolder/g/gorilla_pack.txt index 8b305bdebcd..d76145f16a8 100644 --- a/forge-gui/res/cardsfolder/g/gorilla_pack.txt +++ b/forge-gui/res/cardsfolder/g/gorilla_pack.txt @@ -2,7 +2,7 @@ Name:Gorilla Pack ManaCost:2 G Types:Creature Ape PT:3/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Forest | Description$ CARDNAME can't attack unless defending player controls a Forest. +S:Mode$ CantAttack | ValidCard$ Card.Self | UUnlessDefender$ controlsForest | Description$ CARDNAME can't attack unless defending player controls a Forest. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Forest.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Forests, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlay:Forest.YouCtrl diff --git a/forge-gui/res/cardsfolder/h/hammerhead_shark.txt b/forge-gui/res/cardsfolder/h/hammerhead_shark.txt index d79f37c998d..ead6d31de08 100644 --- a/forge-gui/res/cardsfolder/h/hammerhead_shark.txt +++ b/forge-gui/res/cardsfolder/h/hammerhead_shark.txt @@ -2,5 +2,5 @@ Name:Hammerhead Shark ManaCost:1 U Types:Creature Shark PT:2/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Hammerhead Shark can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/h/happily_ever_after.txt b/forge-gui/res/cardsfolder/h/happily_ever_after.txt index 9518c4789b5..c6b5db303a5 100644 --- a/forge-gui/res/cardsfolder/h/happily_ever_after.txt +++ b/forge-gui/res/cardsfolder/h/happily_ever_after.txt @@ -6,7 +6,7 @@ SVar:TrigGainLife:DB$ GainLife | Defined$ Player | LifeAmount$ 5 | SubAbility$ D SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 1 T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ Z | SVarCompare$ EQ11 | LifeTotal$ You | LifeAmount$ GEW | Execute$ TrigWin | TriggerDescription$ At the beginning of your upkeep, if there are five colors among permanents you control, there are six or more card types among permanents you control and/or cards in your graveyard, and your life total is greater than or equal to your starting life total, you win the game. SVar:TrigWin:DB$ WinsGame | Defined$ You -SVar:X:Count$ColorsCtrl Permanent/LimitMax.5 +SVar:X:Count$Valid Permanent.YouCtrl$Colors/LimitMax.5 SVar:Y:Count$ValidBattlefield,Graveyard Card.YouCtrl$CardTypes/LimitMax.6 SVar:Z:SVar$X/Plus.Y SVar:W:Count$YourStartingLife diff --git a/forge-gui/res/cardsfolder/i/inspire_awe.txt b/forge-gui/res/cardsfolder/i/inspire_awe.txt index 965a7a95f15..4ffb76f2ac9 100644 --- a/forge-gui/res/cardsfolder/i/inspire_awe.txt +++ b/forge-gui/res/cardsfolder/i/inspire_awe.txt @@ -2,6 +2,6 @@ Name:Inspire Awe ManaCost:3 G Types:Instant A:SP$ Effect | ReplacementEffects$ Curse | SubAbility$ DBScry | SpellDescription$ Prevent all combat damage that would be dealt this turn except combat damage that would be dealt by enchanted creatures and enchantment creatures. Scry 2. -SVar:Curse:Event$ DamageDone | Prevent$ True | IsCombat$ True | ActiveZones$ Command | ValidSource$ Creature.unenchanted+nonEnchantment | Description$ Prevent all combat damage that would be dealt this turn except by enchanted creatures and enchantment creatures. +SVar:Curse:Event$ DamageDone | Prevent$ True | IsCombat$ True | ActiveZones$ Command | ValidSource$ Creature.!enchanted+nonEnchantment | Description$ Prevent all combat damage that would be dealt this turn except by enchanted creatures and enchantment creatures. SVar:DBScry:DB$ Scry | ScryNum$ 2 Oracle:Prevent all combat damage that would be dealt this turn except combat damage that would be dealt by enchanted creatures and enchantment creatures. Scry 2. diff --git a/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt b/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt index daab23e29b7..f873ee25693 100644 --- a/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt +++ b/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt @@ -2,7 +2,7 @@ Name:Island Fish Jasconius ManaCost:4 U U U Types:Creature Fish PT:6/8 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ This creature can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ This creature can't attack unless defending player controls an Island. R:Event$ Untap | ValidCard$ Card.Self | ValidStepTurnToController$ You | Layer$ CantHappen | Description$ This creature doesn't untap during your untap step. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice this creature. SVar:TrigSac:DB$ Sacrifice diff --git a/forge-gui/res/cardsfolder/k/kukemssa_serpent.txt b/forge-gui/res/cardsfolder/k/kukemssa_serpent.txt index ada9836877f..544d0b8a7f6 100644 --- a/forge-gui/res/cardsfolder/k/kukemssa_serpent.txt +++ b/forge-gui/res/cardsfolder/k/kukemssa_serpent.txt @@ -2,7 +2,7 @@ Name:Kukemssa Serpent ManaCost:3 U Types:Creature Serpent PT:4/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. A:AB$ Animate | Cost$ U Sac<1/Island> | ValidTgts$ Land.OppCtrl | TgtPrompt$ Select target land an opponent controls | Types$ Island | RemoveLandTypes$ True | SpellDescription$ Target land an opponent controls becomes an Island until end of turn. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice diff --git a/forge-gui/res/cardsfolder/l/lurking_green_dragon.txt b/forge-gui/res/cardsfolder/l/lurking_green_dragon.txt index 821c4dda8ab..13cb16dd9b9 100644 --- a/forge-gui/res/cardsfolder/l/lurking_green_dragon.txt +++ b/forge-gui/res/cardsfolder/l/lurking_green_dragon.txt @@ -3,6 +3,6 @@ ManaCost:3 G Types:Creature Dragon PT:4/4 K:Flying -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Creature.withFlying | Description$ CARDNAME can't attack unless defending player controls a creature with flying. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsCreature.withFlying | Description$ CARDNAME can't attack unless defending player controls a creature with flying. AI:RemoveDeck:Random Oracle:Flying\nLurking Green Dragon can't attack unless defending player controls a creature with flying. diff --git a/forge-gui/res/cardsfolder/m/manta_ray.txt b/forge-gui/res/cardsfolder/m/manta_ray.txt index c15d11e7053..95fce0705b7 100644 --- a/forge-gui/res/cardsfolder/m/manta_ray.txt +++ b/forge-gui/res/cardsfolder/m/manta_ray.txt @@ -2,7 +2,7 @@ Name:Manta Ray ManaCost:1 U U Types:Creature Fish PT:3/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonBlue | Description$ CARDNAME can't be blocked except by blue creatures. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice diff --git a/forge-gui/res/cardsfolder/m/marjhan.txt b/forge-gui/res/cardsfolder/m/marjhan.txt index 102678ba636..20731780ad6 100644 --- a/forge-gui/res/cardsfolder/m/marjhan.txt +++ b/forge-gui/res/cardsfolder/m/marjhan.txt @@ -3,7 +3,7 @@ ManaCost:5 U U Types:Creature Serpent PT:8/8 R:Event$ Untap | ValidCard$ Card.Self | ValidStepTurnToController$ You | Layer$ CantHappen | Description$ This creature doesn't untap during your untap step. -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ This creature can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ This creature can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice this creature. SVar:TrigSac:DB$ Sacrifice A:AB$ Untap | Cost$ U U Sac<1/Creature> | ActivationPhases$ Upkeep | PlayerTurn$ True | SpellDescription$ Untap this creature. Activate only during your upkeep. diff --git a/forge-gui/res/cardsfolder/m/merchant_ship.txt b/forge-gui/res/cardsfolder/m/merchant_ship.txt index eb68f0f9bba..658937014f3 100644 --- a/forge-gui/res/cardsfolder/m/merchant_ship.txt +++ b/forge-gui/res/cardsfolder/m/merchant_ship.txt @@ -2,7 +2,7 @@ Name:Merchant Ship ManaCost:U Types:Creature Human PT:0/2 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you gain 2 life. diff --git a/forge-gui/res/cardsfolder/m/mogg_jailer.txt b/forge-gui/res/cardsfolder/m/mogg_jailer.txt index 9dc9864c0dc..96e46b6f281 100644 --- a/forge-gui/res/cardsfolder/m/mogg_jailer.txt +++ b/forge-gui/res/cardsfolder/m/mogg_jailer.txt @@ -2,5 +2,5 @@ Name:Mogg Jailer ManaCost:1 R Types:Creature Goblin PT:2/2 -S:Mode$ CantAttack | ValidCard$ Card.Self | IfDefenderControls$ Creature.untapped+powerLE2 | Description$ CARDNAME can't attack if defending player controls an untapped creature with power 2 or less. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ !controlsCreature.untapped+powerLE2 | Description$ CARDNAME can't attack if defending player controls an untapped creature with power 2 or less. Oracle:Mogg Jailer can't attack if defending player controls an untapped creature with power 2 or less. diff --git a/forge-gui/res/cardsfolder/m/moonveil_regent.txt b/forge-gui/res/cardsfolder/m/moonveil_regent.txt index baeee7921ca..3cb3a06126c 100644 --- a/forge-gui/res/cardsfolder/m/moonveil_regent.txt +++ b/forge-gui/res/cardsfolder/m/moonveil_regent.txt @@ -8,6 +8,6 @@ SVar:TrigDraw:AB$ Draw | Cost$ Discard<0/Hand> | NumCards$ X T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDealDamage | TriggerDescription$ When CARDNAME dies, it deals X damage to any target, where X is the number of colors among permanents you control. SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Any | NumDmg$ Y SVar:X:TriggeredCard$CardNumColors -SVar:Y:Count$ColorsCtrl Permanent +SVar:Y:Count$Valid Permanent.YouCtrl$Colors DeckHas:Ability$Discard Oracle:Flying\nWhenever you cast a spell, you may discard your hand. If you do, draw a card for each of that spell's colors.\nWhen Moonveil Regent dies, it deals X damage to any target, where X is the number of colors among permanents you control. diff --git a/forge-gui/res/cardsfolder/o/orgg.txt b/forge-gui/res/cardsfolder/o/orgg.txt index f6a98dd2f60..0a744453d4d 100644 --- a/forge-gui/res/cardsfolder/o/orgg.txt +++ b/forge-gui/res/cardsfolder/o/orgg.txt @@ -3,6 +3,6 @@ ManaCost:3 R R Types:Creature Orgg PT:6/6 K:Trample -S:Mode$ CantAttack | ValidCard$ Card.Self | IfDefenderControls$ Creature.untapped+powerGE3 | Description$ CARDNAME can't attack if defending player controls an untapped creature with power 3 or greater. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ !controlsCreature.untapped+powerGE3 | Description$ CARDNAME can't attack if defending player controls an untapped creature with power 3 or greater. S:Mode$ CantBlockBy | ValidAttacker$ Creature.powerGE3 | ValidBlocker$ Creature.Self | Description$ CARDNAME can't block creatures with power 3 or greater. Oracle:Trample\nOrgg can't attack if defending player controls an untapped creature with power 3 or greater.\nOrgg can't block creatures with power 3 or greater. diff --git a/forge-gui/res/cardsfolder/p/pirate_ship.txt b/forge-gui/res/cardsfolder/p/pirate_ship.txt index a99cc3e92ea..90cfa7b57b1 100644 --- a/forge-gui/res/cardsfolder/p/pirate_ship.txt +++ b/forge-gui/res/cardsfolder/p/pirate_ship.txt @@ -2,7 +2,7 @@ Name:Pirate Ship ManaCost:4 U Types:Creature Human Pirate PT:4/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice A:AB$ DealDamage | Cost$ T | ValidTgts$ Any | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to any target. diff --git a/forge-gui/res/cardsfolder/r/red_cliffs_armada.txt b/forge-gui/res/cardsfolder/r/red_cliffs_armada.txt index f43fc5544fa..0e01fbd5022 100644 --- a/forge-gui/res/cardsfolder/r/red_cliffs_armada.txt +++ b/forge-gui/res/cardsfolder/r/red_cliffs_armada.txt @@ -2,5 +2,5 @@ Name:Red Cliffs Armada ManaCost:4 U Types:Creature Human Soldier PT:5/4 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Red Cliffs Armada can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/r/ronom_serpent.txt b/forge-gui/res/cardsfolder/r/ronom_serpent.txt index 724e12143bf..7654960deec 100644 --- a/forge-gui/res/cardsfolder/r/ronom_serpent.txt +++ b/forge-gui/res/cardsfolder/r/ronom_serpent.txt @@ -2,7 +2,7 @@ Name:Ronom Serpent ManaCost:5 U Types:Snow Creature Serpent PT:5/6 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Land.Snow | Description$ CARDNAME can't attack unless defending player controls a snow land. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsLand.Snow | Description$ CARDNAME can't attack unless defending player controls a snow land. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Land.Snow+YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no snow lands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlay:Land.Snow+YouCtrl diff --git a/forge-gui/res/cardsfolder/s/sea_monster.txt b/forge-gui/res/cardsfolder/s/sea_monster.txt index 7d325a42a34..fdfbb6e0028 100644 --- a/forge-gui/res/cardsfolder/s/sea_monster.txt +++ b/forge-gui/res/cardsfolder/s/sea_monster.txt @@ -2,5 +2,5 @@ Name:Sea Monster ManaCost:4 U U Types:Creature Serpent PT:6/6 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Sea Monster can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/s/sea_serpent.txt b/forge-gui/res/cardsfolder/s/sea_serpent.txt index d2730916a3e..34643865553 100644 --- a/forge-gui/res/cardsfolder/s/sea_serpent.txt +++ b/forge-gui/res/cardsfolder/s/sea_serpent.txt @@ -2,7 +2,7 @@ Name:Sea Serpent ManaCost:5 U Types:Creature Serpent PT:5/5 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlay:Island.YouCtrl diff --git a/forge-gui/res/cardsfolder/s/sealock_monster.txt b/forge-gui/res/cardsfolder/s/sealock_monster.txt index fa239d43a77..2961d5623ed 100644 --- a/forge-gui/res/cardsfolder/s/sealock_monster.txt +++ b/forge-gui/res/cardsfolder/s/sealock_monster.txt @@ -2,7 +2,7 @@ Name:Sealock Monster ManaCost:3 U U Types:Creature Octopus PT:5/5 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. K:Monstrosity:3:5 U U T:Mode$ BecomeMonstrous | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigAnimate | TriggerDescription$ When CARDNAME becomes monstrous, target land becomes an Island in addition to its other types. SVar:TrigAnimate:DB$ Animate | ValidTgts$ Land | AITgts$ Land.OppCtrl | Types$ Island | Duration$ Permanent | IsCurse$ True diff --git a/forge-gui/res/cardsfolder/s/serpent_of_the_endless_sea.txt b/forge-gui/res/cardsfolder/s/serpent_of_the_endless_sea.txt index 288cc99941d..c6705911dae 100644 --- a/forge-gui/res/cardsfolder/s/serpent_of_the_endless_sea.txt +++ b/forge-gui/res/cardsfolder/s/serpent_of_the_endless_sea.txt @@ -2,7 +2,7 @@ Name:Serpent of the Endless Sea ManaCost:4 U Types:Creature Serpent PT:*/* -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. S:Mode$ Continuous | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of Islands you control. SVar:X:Count$Valid Island.YouCtrl SVar:BuffedBy:Island diff --git a/forge-gui/res/cardsfolder/s/sisay_weatherlight_captain.txt b/forge-gui/res/cardsfolder/s/sisay_weatherlight_captain.txt index e81cea187ac..d95c1e877be 100644 --- a/forge-gui/res/cardsfolder/s/sisay_weatherlight_captain.txt +++ b/forge-gui/res/cardsfolder/s/sisay_weatherlight_captain.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Legendary Creature Human Soldier PT:2/2 S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each color among other legendary permanents you control. -SVar:X:Count$ColorsCtrl Permanent.Other+Legendary +SVar:X:Count$Valid Permanent.YouCtrl+Other+Legendary$Colors A:AB$ ChangeZone | Cost$ W U B R G | Origin$ Library | Destination$ Battlefield | ChangeType$ Permanent.Legendary+cmcLTY | ChangeNum$ 1 | SpellDescription$ Search your library for a legendary permanent card with mana value less than NICKNAME's power, put that card onto the battlefield, then shuffle. SVar:Y:Count$CardPower DeckHints:Type$Legendary diff --git a/forge-gui/res/cardsfolder/s/slipstream_eel.txt b/forge-gui/res/cardsfolder/s/slipstream_eel.txt index a0e22671a65..68e7ba28623 100644 --- a/forge-gui/res/cardsfolder/s/slipstream_eel.txt +++ b/forge-gui/res/cardsfolder/s/slipstream_eel.txt @@ -2,6 +2,6 @@ Name:Slipstream Eel ManaCost:5 U U Types:Creature Fish Beast PT:6/6 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. K:Cycling:1 U Oracle:Slipstream Eel can't attack unless defending player controls an Island.\nCycling {1}{U} ({1}{U}, Discard this card: Draw a card.) diff --git a/forge-gui/res/cardsfolder/s/slipstream_serpent.txt b/forge-gui/res/cardsfolder/s/slipstream_serpent.txt index 5ce2b3a8abf..aec62647943 100644 --- a/forge-gui/res/cardsfolder/s/slipstream_serpent.txt +++ b/forge-gui/res/cardsfolder/s/slipstream_serpent.txt @@ -3,7 +3,7 @@ ManaCost:7 U Types:Creature Serpent PT:6/6 K:Morph:5 U -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlay:Island.YouCtrl diff --git a/forge-gui/res/cardsfolder/s/soul_of_ravnica.txt b/forge-gui/res/cardsfolder/s/soul_of_ravnica.txt index f5154424c5f..ab6f7e26679 100644 --- a/forge-gui/res/cardsfolder/s/soul_of_ravnica.txt +++ b/forge-gui/res/cardsfolder/s/soul_of_ravnica.txt @@ -5,6 +5,6 @@ PT:6/6 K:Flying A:AB$ Draw | Cost$ 5 U U | NumCards$ X | SpellDescription$ Draw a card for each color among permanents you control. A:AB$ Draw | Cost$ 5 U U ExileFromGrave<1/CARDNAME> | ActivationZone$ Graveyard | NumCards$ X | SpellDescription$ Draw a card for each color among permanents you control. -SVar:X:Count$ColorsCtrl Permanent +SVar:X:Count$Valid Permanent.YouCtrl$Colors DeckNeeds:Color$White|Red|Green|Black Oracle:Flying\n{5}{U}{U}: Draw a card for each color among permanents you control.\n{5}{U}{U}, Exile Soul of Ravnica from your graveyard: Draw a card for each color among permanents you control. diff --git a/forge-gui/res/cardsfolder/s/spirit_of_resistance.txt b/forge-gui/res/cardsfolder/s/spirit_of_resistance.txt index 06d76384647..afd949288a8 100644 --- a/forge-gui/res/cardsfolder/s/spirit_of_resistance.txt +++ b/forge-gui/res/cardsfolder/s/spirit_of_resistance.txt @@ -2,7 +2,7 @@ Name:Spirit of Resistance ManaCost:2 W Types:Enchantment R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ You | Prevent$ True | CheckSVar$ X | SVarCompare$ EQ5 | Description$ As long as you control a permanent of each color, prevent all damage that would be dealt to you. -SVar:X:Count$ColorsCtrl Permanent +SVar:X:Count$Valid Permanent.YouCtrl$Colors SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:As long as you control a permanent of each color, prevent all damage that would be dealt to you. diff --git a/forge-gui/res/cardsfolder/s/staff_of_eden_vaults_key.txt b/forge-gui/res/cardsfolder/s/staff_of_eden_vaults_key.txt index 6b577683dd5..0e12ca3a513 100644 --- a/forge-gui/res/cardsfolder/s/staff_of_eden_vaults_key.txt +++ b/forge-gui/res/cardsfolder/s/staff_of_eden_vaults_key.txt @@ -4,5 +4,5 @@ Types:Legendary Artifact T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters, put target legendary permanent card not named Staff of Eden, Vault's Key from a graveyard onto the battlefield under your control. SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Permanent.Legendary+notnamedStaff of Eden; Vault's Key | GainControl$ True | ChangeNum$ 1 | Mandatory$ True | TgtPrompt$ Choose target legendary permanent card not named Staff of Eden, Vault's Key in a graveyard A:AB$ Draw | Cost$ T | NumCards$ Count$Valid Permanent.YouCtrl+YouDontOwn | SpellDescription$ Draw a card for each permanent you control but don't own. -SVar:X:Count$ColorsCtrl Permanent +SVar:X:Count$Valid Permanent.YouCtrl$Colors Oracle:When Staff of Eden, Vault's Key enters, put target legendary permanent card not named Staff of Eden, Vault's Key from a graveyard onto the battlefield under your control.\n{T}: Draw a card for each permanent you control but don't own. diff --git a/forge-gui/res/cardsfolder/s/steam_frigate.txt b/forge-gui/res/cardsfolder/s/steam_frigate.txt index b73af1f22f7..0f58321fdc6 100644 --- a/forge-gui/res/cardsfolder/s/steam_frigate.txt +++ b/forge-gui/res/cardsfolder/s/steam_frigate.txt @@ -2,5 +2,5 @@ Name:Steam Frigate ManaCost:2 U Types:Creature Human Pirate PT:3/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Steam Frigate can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/s/sunbird_standard_sunbird_effigy.txt b/forge-gui/res/cardsfolder/s/sunbird_standard_sunbird_effigy.txt index c9fd728d9d0..9dc3d9aaefd 100644 --- a/forge-gui/res/cardsfolder/s/sunbird_standard_sunbird_effigy.txt +++ b/forge-gui/res/cardsfolder/s/sunbird_standard_sunbird_effigy.txt @@ -20,6 +20,6 @@ K:Flying K:Vigilance K:Haste S:Mode$ Continuous | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of colors among the exiled cards used to craft it. -SVar:X:Count$ColorsDefined ExiledWith +SVar:X:ExiledWith$Colors A:AB$ Mana | Cost$ T | Produced$ Special EachColorAmongDefined_ExiledWith | SpellDescription$ For each color among the exiled cards used to craft CARDNAME, add one mana of that color. Oracle:Flying, vigilance, haste\nSunbird Effigy's power and toughness are each equal to the number of colors among the exiled cards used to craft it.\n{T}: For each color among the exiled cards used to craft Sunbird Effigy, add one mana of that color. diff --git a/forge-gui/res/cardsfolder/t/time_elemental.txt b/forge-gui/res/cardsfolder/t/time_elemental.txt index af41b47d6d2..df7271f5063 100644 --- a/forge-gui/res/cardsfolder/t/time_elemental.txt +++ b/forge-gui/res/cardsfolder/t/time_elemental.txt @@ -2,7 +2,7 @@ Name:Time Elemental ManaCost:2 U Types:Creature Elemental PT:0/2 -A:AB$ ChangeZone | Cost$ 2 U U T | ValidTgts$ Permanent.unenchanted | TgtPrompt$ Select target unenchanted permanent | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target permanent that isn't enchanted to its owner's hand. +A:AB$ ChangeZone | Cost$ 2 U U T | ValidTgts$ Permanent.!enchanted | TgtPrompt$ Select target unenchanted permanent | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target permanent that isn't enchanted to its owner's hand. T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelayedTrig | TriggerDescription$ When CARDNAME attacks or blocks, at end of combat, sacrifice it and it deals 5 damage to you. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DelayedTrig | Secondary$ True | TriggerDescription$ When CARDNAME attacks or blocks, at end of combat, sacrifice it and it deals 5 damage to you. SVar:DelayedTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ At end of combat, sacrifice CARDNAME and CARDNAME deals 5 damage to you. diff --git a/forge-gui/res/cardsfolder/v/veiled_serpent.txt b/forge-gui/res/cardsfolder/v/veiled_serpent.txt index 0c2ef5fa1fd..2ea446d1e17 100644 --- a/forge-gui/res/cardsfolder/v/veiled_serpent.txt +++ b/forge-gui/res/cardsfolder/v/veiled_serpent.txt @@ -4,5 +4,5 @@ Types:Enchantment T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Opponent | TriggerZones$ Battlefield | IsPresent$ Card.Self+Enchantment | Execute$ TrigAnimate | TriggerDescription$ When an opponent casts a spell, if CARDNAME is an enchantment, CARDNAME becomes a 4/4 Serpent creature with "This creature can't attack unless defending player controls an Island." SVar:TrigAnimate:DB$ Animate | Defined$ Self | Power$ 4 | Toughness$ 4 | staticAbilities$ VeiledSerpentST | Types$ Creature,Serpent | RemoveCardTypes$ True | RemoveCreatureTypes$ True | Duration$ Permanent K:Cycling:2 -SVar:VeiledSerpentST:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +SVar:VeiledSerpentST:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:When an opponent casts a spell, if Veiled Serpent is an enchantment, Veiled Serpent becomes a 4/4 Serpent creature with "This creature can't attack unless defending player controls an Island."\nCycling {2} ({2}, Discard this card: Draw a card.) diff --git a/forge-gui/res/cardsfolder/v/veteran_brawlers.txt b/forge-gui/res/cardsfolder/v/veteran_brawlers.txt index 0cde1453822..fc8ddc6a610 100644 --- a/forge-gui/res/cardsfolder/v/veteran_brawlers.txt +++ b/forge-gui/res/cardsfolder/v/veteran_brawlers.txt @@ -2,6 +2,6 @@ Name:Veteran Brawlers ManaCost:1 R Types:Creature Human Soldier PT:4/4 -S:Mode$ CantAttack | ValidCard$ Card.Self | IfDefenderControls$ Land.untapped | Description$ CARDNAME can't attack if defending player controls an untapped land. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ !controlsLand.untapped | Description$ CARDNAME can't attack if defending player controls an untapped land. S:Mode$ CantBlock | ValidCard$ Card.Self | IsPresent$ Land.YouCtrl+untapped | Description$ CARDNAME can't block if you control an untapped land. Oracle:Veteran Brawlers can't attack if defending player controls an untapped land.\nVeteran Brawlers can't block if you control an untapped land. diff --git a/forge-gui/res/cardsfolder/v/vodalian_knights.txt b/forge-gui/res/cardsfolder/v/vodalian_knights.txt index 3bcf64e6d93..44db7859124 100644 --- a/forge-gui/res/cardsfolder/v/vodalian_knights.txt +++ b/forge-gui/res/cardsfolder/v/vodalian_knights.txt @@ -3,7 +3,7 @@ ManaCost:1 U U Types:Creature Merfolk Knight PT:2/2 K:First Strike -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice A:AB$ Pump | Cost$ U | Defined$ Self | KW$ Flying | SpellDescription$ CARDNAME gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/v/vodalian_serpent.txt b/forge-gui/res/cardsfolder/v/vodalian_serpent.txt index f5305ec3b20..b2f078f305b 100644 --- a/forge-gui/res/cardsfolder/v/vodalian_serpent.txt +++ b/forge-gui/res/cardsfolder/v/vodalian_serpent.txt @@ -2,7 +2,7 @@ Name:Vodalian Serpent ManaCost:3 U Types:Creature Serpent PT:2/2 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. K:Kicker:2 K:etbCounter:P1P1:4:CheckSVar$ WasKicked:If CARDNAME was kicked, it enters with four +1/+1 counters on it. SVar:WasKicked:Count$Kicked.1.0 diff --git a/forge-gui/res/cardsfolder/w/whimsy.txt b/forge-gui/res/cardsfolder/w/whimsy.txt index 4e5a0d51294..050bc1b5c00 100644 --- a/forge-gui/res/cardsfolder/w/whimsy.txt +++ b/forge-gui/res/cardsfolder/w/whimsy.txt @@ -3,7 +3,7 @@ ManaCost:X U U Types:Sorcery A:SP$ Repeat | MaxRepeat$ X | RepeatSubAbility$ DBGenericChoice | AILogic$ MaxX | StackDescription$ SpellDescription | SpellDescription$ Perform X random actions. SVar:DBGenericChoice:DB$ GenericChoice | ShowChoice$ Description | AtRandom$ True | Choices$ ToHand,Untap,Tap,Damage,Draw3,DestroyGain,DestroyAE,Gain3,Anoint,DestroyCL,Mill2,Wasp,Nevinyrral,Suleiman,Pandora,Discard,Fog,Sindbad -SVar:ToHand:DB$ ChooseCard | Choices$ Permanent.unenchanted | AtRandom$ True | SubAbility$ DBChangeZone3 | SpellDescription$ Return a permanent that isn't enchanted chosen at random to its owner's hand. +SVar:ToHand:DB$ ChooseCard | Choices$ Permanent.!enchanted | AtRandom$ True | SubAbility$ DBChangeZone3 | SpellDescription$ Return a permanent that isn't enchanted chosen at random to its owner's hand. SVar:DBChangeZone3:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBCleanup SVar:Untap:DB$ ChooseCard | Choices$ Artifact.tapped,Creature.tapped,Land.tapped | AtRandom$ True | SubAbility$ DBUntap4 | SpellDescription$ Untap an artifact, creature or land chosen at random. SVar:DBUntap4:DB$ Untap | Defined$ ChosenCard | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/w/whimwader.txt b/forge-gui/res/cardsfolder/w/whimwader.txt index 1a2e59a7a83..3f246bce974 100644 --- a/forge-gui/res/cardsfolder/w/whimwader.txt +++ b/forge-gui/res/cardsfolder/w/whimwader.txt @@ -2,5 +2,5 @@ Name:Whimwader ManaCost:4 U Types:Creature Elemental PT:6/4 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Permanent.Blue | Description$ CARDNAME can't attack unless defending player controls a blue permanent. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsPermanent.Blue | Description$ CARDNAME can't attack unless defending player controls a blue permanent. Oracle:Whimwader can't attack unless defending player controls a blue permanent. diff --git a/forge-gui/res/cardsfolder/w/winds_of_rath.txt b/forge-gui/res/cardsfolder/w/winds_of_rath.txt index 77bc06a5245..efb4755b595 100644 --- a/forge-gui/res/cardsfolder/w/winds_of_rath.txt +++ b/forge-gui/res/cardsfolder/w/winds_of_rath.txt @@ -1,5 +1,5 @@ Name:Winds of Rath ManaCost:3 W W Types:Sorcery -A:SP$ DestroyAll | ValidCards$ Creature.unenchanted | NoRegen$ True | SpellDescription$ Destroy all creatures that aren't enchanted. They can't be regenerated. +A:SP$ DestroyAll | ValidCards$ Creature.!enchanted | NoRegen$ True | SpellDescription$ Destroy all creatures that aren't enchanted. They can't be regenerated. Oracle:Destroy all creatures that aren't enchanted. They can't be regenerated. diff --git a/forge-gui/res/cardsfolder/w/wu_warship.txt b/forge-gui/res/cardsfolder/w/wu_warship.txt index 4446aca322a..9aec78da8e9 100644 --- a/forge-gui/res/cardsfolder/w/wu_warship.txt +++ b/forge-gui/res/cardsfolder/w/wu_warship.txt @@ -2,5 +2,5 @@ Name:Wu Warship ManaCost:2 U Types:Creature Human Soldier PT:3/3 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Wu Warship can't attack unless defending player controls an Island. diff --git a/forge-gui/res/cardsfolder/z/zhou_yu_chief_commander.txt b/forge-gui/res/cardsfolder/z/zhou_yu_chief_commander.txt index 2f994943cf3..a40927ea51c 100644 --- a/forge-gui/res/cardsfolder/z/zhou_yu_chief_commander.txt +++ b/forge-gui/res/cardsfolder/z/zhou_yu_chief_commander.txt @@ -2,5 +2,5 @@ Name:Zhou Yu, Chief Commander ManaCost:5 U U Types:Legendary Creature Human Soldier PT:8/8 -S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Description$ CARDNAME can't attack unless defending player controls an Island. +S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefender$ controlsIsland | Description$ CARDNAME can't attack unless defending player controls an Island. Oracle:Zhou Yu, Chief Commander can't attack unless defending player controls an Island. diff --git a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java index 28218163fbb..e2507afe970 100644 --- a/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java +++ b/forge-gui/src/main/java/forge/gui/card/CardScriptParser.java @@ -469,7 +469,7 @@ public final class CardScriptParser { "gotBlockedThisTurn", "greatestPower", "yardGreatestPower", "leastPower", "leastToughness", "greatestCMC", "greatestRememberedCMC", "lowestRememberedCMC", "lowestCMC", - "enchanted", "unenchanted", "enchanting", "equipped", "unequipped", + "enchanted", "enchanting", "equipped", "equipping", "modified", "token", "nonToken", "hasXCost", "suspended", "delved", "attacking", "attackingYou", "notattacking", "attackedBySourceThisCombat", "blocking", "blockingSource",