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 93449202f3c..9beb675215f 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1296,6 +1296,7 @@ public class AbilityUtils { public static FCollection getDefinedSpellAbilities(final Card card, final String def, final CardTraitBase sa) { final FCollection sas = new FCollection<>(); final String defined = (def == null) ? "Self" : applyAbilityTextChangeEffects(def, sa); // default to Self + final Player player = sa instanceof SpellAbility ? ((SpellAbility)sa).getActivatingPlayer() : card.getController(); final Game game = card.getGame(); SpellAbility s = null; @@ -1359,6 +1360,14 @@ public class AbilityUtils { } } } + } else if (defined.startsWith("ValidStack")) { + String[] valid = defined.split(" ", 2); + for (SpellAbilityStackInstance stackInstance : game.getStack()) { + SpellAbility instanceSA = stackInstance.getSpellAbility(); + if (instanceSA != null && instanceSA.isValid(valid[1], player, card, s)) { + sas.add(instanceSA); + } + } } if (s != null) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java index 1a0359fdb5a..ec9cca4e8ca 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java @@ -24,28 +24,12 @@ import java.util.Map; public class CounterEffect extends SpellAbilityEffect { @Override protected String getStackDescription(SpellAbility sa) { - final Game game = sa.getActivatingPlayer().getGame(); - final StringBuilder sb = new StringBuilder(); - final List sas; - - if (sa.hasParam("AllValid")) { - sas = Lists.newArrayList(); - for (SpellAbilityStackInstance si : game.getStack()) { - SpellAbility spell = si.getSpellAbility(); - if (!spell.isValid(sa.getParam("AllValid").split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa)) { - continue; - } - sas.add(spell); - } - } else { - sas = getTargetSpells(sa); - } sb.append("Counter"); boolean isAbility = false; - for (final SpellAbility tgtSA : sas) { + for (final SpellAbility tgtSA : getTargetSpells(sa)) { sb.append(" "); sb.append(tgtSA.getHostCard()); isAbility = tgtSA.isAbility(); @@ -69,26 +53,10 @@ public class CounterEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { final Game game = sa.getActivatingPlayer().getGame(); - // TODO Before this resolves we should see if any of our targets are - // still on the stack - final List sas; - - if (sa.hasParam("AllValid")) { - sas = Lists.newArrayList(); - for (SpellAbilityStackInstance si : game.getStack()) { - SpellAbility spell = si.getSpellAbility(); - if (!spell.isValid(sa.getParam("AllValid").split(","), sa.getActivatingPlayer(), sa.getHostCard(), sa)) { - continue; - } - sas.add(spell); - } - } else { - sas = getTargetSpells(sa); - } Map params = AbilityKey.newMap(); CardZoneTable table = new CardZoneTable(); - for (final SpellAbility tgtSA : sas) { + for (final SpellAbility tgtSA : getTargetSpells(sa)) { final Card tgtSACard = tgtSA.getHostCard(); // should remember even that spell cannot be countered // currently all effects using this are targeted in case the spell gets countered before diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java index 081450c75e3..e90f3ae22c5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpAllEffect.java @@ -78,7 +78,7 @@ public class PumpAllEffect extends SpellAbilityEffect { tgtC.addHiddenExtrinsicKeywords(timestamp, 0, hiddenkws); } - if (sa.hasParam("RememberAllPumped")) { + if (sa.hasParam("RememberPumped")) { sa.getHostCard().addRemembered(tgtC); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java index eac0bd64f28..be178cf1e77 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PumpEffect.java @@ -115,6 +115,10 @@ public class PumpEffect extends SpellAbilityEffect { addLeaveBattlefieldReplacement(gameCard, sa, sa.getParam("LeaveBattlefield")); } + if (sa.hasParam("RememberPumped")) { + host.addRemembered(gameCard); + } + if (!"Permanent".equals(duration) && !perpetual) { // If not Permanent, remove Pumped at EOT final GameCommand untilEOT = new GameCommand() { diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index dfad3aee377..34e48d2cd28 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -2905,7 +2905,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { } else if (keyword.startsWith("Entwine") || keyword.startsWith("Madness") || keyword.startsWith("Miracle") || keyword.startsWith("Recover") || keyword.startsWith("Escape") || keyword.startsWith("Foretell:") - || keyword.startsWith("Disturb")) { + || keyword.startsWith("Disturb") || keyword.startsWith("Overload")) { final String[] k = keyword.split(":"); final Cost cost = new Cost(k[1], false); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 13c5f511c77..097220edac6 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -74,6 +74,7 @@ import forge.game.spellability.Spell; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityRestriction; import forge.game.spellability.SpellPermanent; +import forge.game.spellability.TargetRestrictions; import forge.game.staticability.StaticAbility; import forge.game.staticability.StaticAbilityCantBeCast; import forge.game.trigger.Trigger; @@ -3244,6 +3245,50 @@ public class CardFactoryUtil { sa.setIntrinsic(intrinsic); sa.setAlternativeCost(AlternativeCost.Outlast); inst.addSpellAbility(sa); + } else if (keyword.startsWith("Overload")) { + final String[] k = keyword.split(":"); + final Cost overloadCost = new Cost(k[1], false); + final SpellAbility newSA = card.getFirstSpellAbility().copyWithDefinedCost(overloadCost); + + TargetRestrictions tgt = newSA.getTargetRestrictions(); + String defined = String.join(",", tgt.getValidTgts()); + + if (tgt.canTgtPlayer()) { + newSA.putParam("Defined", defined); + } else { + String zoneDef = ""; + if (!tgt.getZone().contains(ZoneType.Battlefield)) { + zoneDef = StringUtils.join(tgt.getZone(), ","); + } + if (newSA.hasParam("TargetType")) { + defined = defined.replaceAll("Card", newSA.getParam("TargetType")); + } + newSA.putParam("Defined", "Valid" + zoneDef + " " + defined); + } + newSA.setTargetRestrictions(null); + + if (host.isInstant() || host.isSorcery()) { + newSA.putParam("Secondary", "True"); + } + newSA.putParam("PrecostDesc", "Overload"); + newSA.putParam("CostDesc", ManaCostParser.parse(k[1])); + + // makes new StackDescription + String stackD = newSA.getDescription().replaceAll("Target", "Each") + .replaceAll("target", "each"); + newSA.putParam("StackDescription", stackD); + + // makes new SpellDescription + final StringBuilder sb = new StringBuilder(); + sb.append(newSA.getCostDescription()); + sb.append("(").append(inst.getReminderText()).append(")"); + newSA.setDescription(sb.toString()); + // need to store them for additional copies + newSA.getOriginalMapParams().putAll(newSA.getMapParams()); + + newSA.setIntrinsic(intrinsic); + newSA.setAlternativeCost(AlternativeCost.Overload); + inst.addSpellAbility(newSA); } else if (keyword.startsWith("Prototype")) { final String[] k = keyword.split(":"); if (k.length < 4) { diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index e0c530e32eb..4a7d46da450 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -134,6 +134,7 @@ public enum Keyword { NINJUTSU("Ninjutsu", Ninjutsu.class, false, "%s, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your %s tapped and attacking."), OUTLAST("Outlast", KeywordWithCost.class, false, "%s, {T}: Put a +1/+1 counter on this creature. Outlast only as a sorcery."), OFFERING("Offering", KeywordWithType.class, false, "You may cast this card any time you could cast an instant by sacrificing a %1$s and paying the difference in mana costs between this and the sacrificed %1$s. Mana cost includes color."), + OVERLOAD("Overload", KeywordWithCost.class, false, "You may cast this spell for its overload cost. If you do, change its text by replacing all instances of \"target\" with \"each.\""), PARTNER("Partner", Partner.class, true, "You can have two commanders if both have partner."), PERSIST("Persist", SimpleKeyword.class, false, "When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it."), PHASING("Phasing", SimpleKeyword.class, true, "This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist."), diff --git a/forge-game/src/main/java/forge/game/spellability/AlternativeCost.java b/forge-game/src/main/java/forge/game/spellability/AlternativeCost.java index b33858ff990..d3fdaefe002 100644 --- a/forge-game/src/main/java/forge/game/spellability/AlternativeCost.java +++ b/forge-game/src/main/java/forge/game/spellability/AlternativeCost.java @@ -17,6 +17,7 @@ public enum AlternativeCost { Mutate, Offering, Outlast, // ActivatedAbility + Overload, Prowl, Spectacle, Surge; diff --git a/forge-gui/res/cardsfolder/b/blustersquall.txt b/forge-gui/res/cardsfolder/b/blustersquall.txt index 5fad47ba4ce..31182be62f7 100644 --- a/forge-gui/res/cardsfolder/b/blustersquall.txt +++ b/forge-gui/res/cardsfolder/b/blustersquall.txt @@ -1,6 +1,6 @@ Name:Blustersquall ManaCost:U Types:Instant -A:SP$ Tap | Cost$ U | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | SpellDescription$ Tap target creature you don't control. -A:SP$ TapAll | Cost$ 3 U | ValidCards$ Creature.YouDontCtrl | ValidDescription$ each creature you don't control. | PrecostDesc$ Overload | CostDesc$ {3}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Tap each creature you don't control. +A:SP$ Tap | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | SpellDescription$ Tap target creature you don't control. +K:Overload:3 U Oracle:Tap target creature you don't control.\nOverload {3}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/b/break_the_ice.txt b/forge-gui/res/cardsfolder/b/break_the_ice.txt index c31f72a1cb2..c99a1410b0a 100644 --- a/forge-gui/res/cardsfolder/b/break_the_ice.txt +++ b/forge-gui/res/cardsfolder/b/break_the_ice.txt @@ -1,7 +1,7 @@ Name:Break the Ice ManaCost:B B Types:Sorcery -A:SP$ Destroy | Cost$ B B | ValidTgts$ Land.Snow,Land.canProduceManaColor Colorless | TgtPrompt$ Select target land that is snow or could produce {C} | SpellDescription$ Destroy target land that is snow or could produce {C}. -A:SP$ DestroyAll | Cost$ 4 B B | NonBasicSpell$ True | ValidCards$ Land.Snow,Land.canProduceManaColor Colorless | PrecostDesc$ Overload | CostDesc$ {4}{B}{B} | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +A:SP$ Destroy | ValidTgts$ Land.Snow,Land.canProduceManaColor Colorless | TgtPrompt$ Select target land that is snow or could produce {C} | SpellDescription$ Destroy target land that is snow or could produce {C}. +K:Overload:4 B B AI:RemoveDeck:Random Oracle:Destroy target land that is snow or could produce {C}.\nOverload {4}{B}{B} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/c/chemisters_trick.txt b/forge-gui/res/cardsfolder/c/chemisters_trick.txt index 21b9f5d7113..c67bbc43fc9 100644 --- a/forge-gui/res/cardsfolder/c/chemisters_trick.txt +++ b/forge-gui/res/cardsfolder/c/chemisters_trick.txt @@ -1,9 +1,9 @@ Name:Chemister's Trick ManaCost:U R Types:Instant -A:SP$ Pump | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumAtt$ -2 | RememberTargets$ True | SubAbility$ DBAnimate | StackDescription$ {c:Targeted} gets -2/-0 until end of turn and attacks this turn if able. | SpellDescription$ Target creature you don't control gets -2/-0 until end of turn and attacks this turn if able. -A:SP$ PumpAll | Cost$ 3 U R | ValidCards$ Creature.YouDontCtrl | ValidDescription$ each creature you don't control. | NumAtt$ -2 | RememberAllPumped$ True | SubAbility$ DBAnimate | PrecostDesc$ Overload | CostDesc$ {3}{U}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each creature you don't control gets -2/-0 until end of turn and attacks this turn if able. -SVar:DBAnimate:DB$ Effect | Defined$ Remembered | StaticAbilities$ MustAttack | SubAbility$ DBCleanup | StackDescription$ None| RememberObjects$ Remembered | ExileOnMoved$ Battlefield +A:SP$ Pump | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumAtt$ -2 | RememberPumped$ True | SubAbility$ DBAnimate | StackDescription$ {c:Targeted} gets -2/-0 until end of turn and attacks this turn if able. | SpellDescription$ Target creature you don't control gets -2/-0 until end of turn and attacks this turn if able. +SVar:DBAnimate:DB$ Effect | StaticAbilities$ MustAttack | StackDescription$ None | RememberObjects$ Remembered | ForgetOnMoved$ Battlefield | SubAbility$ DBCleanup SVar:MustAttack:Mode$ MustAttack | ValidCreature$ Card.IsRemembered | Description$ This creature attacks this turn if able. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Overload:3 U R Oracle:Target creature you don't control gets -2/-0 until end of turn and attacks this turn if able.\nOverload {3}{U}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/c/counterflux.txt b/forge-gui/res/cardsfolder/c/counterflux.txt index 47b2286e4dc..d679b3823c0 100644 --- a/forge-gui/res/cardsfolder/c/counterflux.txt +++ b/forge-gui/res/cardsfolder/c/counterflux.txt @@ -2,6 +2,6 @@ Name:Counterflux ManaCost:U U R Types:Instant R:Event$ Counter | ValidCard$ Card.Self | ValidSA$ Spell | Layer$ CantHappen | Description$ This spell can't be countered. -A:SP$ Counter | Cost$ U U R | TargetType$ Spell | TgtPrompt$ Select target spell you don't control. | ValidTgts$ Card.YouDontCtrl | SpellDescription$ Counter target spell you don't control. -A:SP$ Counter | Cost$ 1 U U R | AllValid$ Spell.YouDontCtrl | PrecostDesc$ Overload | CostDesc$ {1}{U}{U}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Counter each spell you don't control. +A:SP$ Counter | TargetType$ Spell | TgtPrompt$ Select target spell you don't control. | ValidTgts$ Card.YouDontCtrl | SpellDescription$ Counter target spell you don't control. +K:Overload:1 U U R Oracle:This spell can't be countered.\nCounter target spell you don't control.\nOverload {1}{U}{U}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/c/cyclonic_rift.txt b/forge-gui/res/cardsfolder/c/cyclonic_rift.txt index 42bd79095f6..6d0877932dc 100644 --- a/forge-gui/res/cardsfolder/c/cyclonic_rift.txt +++ b/forge-gui/res/cardsfolder/c/cyclonic_rift.txt @@ -1,6 +1,6 @@ Name:Cyclonic Rift ManaCost:1 U Types:Instant -A:SP$ ChangeZone | Cost$ 1 U | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select target nonland permanent you don't control | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target nonland permanent you don't control to its owner's hand. -A:SP$ ChangeZoneAll | Cost$ 6 U | ChangeType$ Permanent.nonLand+YouDontCtrl | Origin$ Battlefield | Destination$ Hand | PrecostDesc$ Overload | CostDesc$ {6}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Return each nonland permanent you don't control to its owner's hand. +A:SP$ ChangeZone | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select target nonland permanent you don't control | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target nonland permanent you don't control to its owner's hand. +K:Overload:6 U Oracle:Return target nonland permanent you don't control to its owner's hand.\nOverload {6}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/d/downsize.txt b/forge-gui/res/cardsfolder/d/downsize.txt index 0c6c25b1578..bd7cae53bd5 100644 --- a/forge-gui/res/cardsfolder/d/downsize.txt +++ b/forge-gui/res/cardsfolder/d/downsize.txt @@ -1,6 +1,6 @@ Name:Downsize ManaCost:U Types:Instant -A:SP$ Pump | Cost$ U | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumAtt$ -4 | SpellDescription$ Target creature you don't control gets -4/-0 until end of turn. -A:SP$ PumpAll | Cost$ 2 U | ValidCards$ Creature.YouDontCtrl | ValidDescription$ each creature you don't control. | NumAtt$ -4 | PrecostDesc$ Overload | CostDesc$ {2}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each creature you don't control gets -4/-0 until end of turn. +A:SP$ Pump | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumAtt$ -4 | SpellDescription$ Target creature you don't control gets -4/-0 until end of turn. +K:Overload:2 U Oracle:Target creature you don't control gets -4/-0 until end of turn.\nOverload {2}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/d/dragonshift.txt b/forge-gui/res/cardsfolder/d/dragonshift.txt index c79aabe0031..df9d3be21f4 100644 --- a/forge-gui/res/cardsfolder/d/dragonshift.txt +++ b/forge-gui/res/cardsfolder/d/dragonshift.txt @@ -1,7 +1,7 @@ Name:Dragonshift ManaCost:1 U R Types:Instant -A:SP$ Animate | Cost$ 1 U R | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature | Power$ 4 | Toughness$ 4 | Keywords$ Flying | RemoveAllAbilities$ True | Colors$ Blue,Red | OverwriteColors$ True | Types$ Dragon | RemoveCreatureTypes$ True | SpellDescription$ Until end of turn, target creature you control becomes a blue and red Dragon with base power and toughness 4/4, loses all abilites, and gains flying. -A:SP$ AnimateAll | Cost$ 3 U U R R | ValidCards$ Creature.YouCtrl | Power$ 4 | Toughness$ 4 | Keywords$ Flying | RemoveAllAbilities$ True | Colors$ Blue,Red | OverwriteColors$ True | Types$ Dragon | RemoveCreatureTypes$ True | PrecostDesc$ Overload | CostDesc$ {3}{U}{U}{R}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Until end of turn, each creature you control becomes a blue and red Dragon with base power and toughness 4/4, loses all abilites, and gains flying. +A:SP$ Animate | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature | Power$ 4 | Toughness$ 4 | Keywords$ Flying | RemoveAllAbilities$ True | Colors$ Blue,Red | OverwriteColors$ True | Types$ Dragon | RemoveCreatureTypes$ True | SpellDescription$ Until end of turn, target creature you control becomes a blue and red Dragon with base power and toughness 4/4, loses all abilites, and gains flying. +K:Overload:3 U U R R AI:RemoveDeck:All Oracle:Until end of turn, target creature you control becomes a blue and red Dragon with base power and toughness 4/4, loses all abilities, and gains flying.\nOverload {3}{U}{U}{R}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/d/dynacharge.txt b/forge-gui/res/cardsfolder/d/dynacharge.txt index 73ea55b61f1..caebbde9f50 100644 --- a/forge-gui/res/cardsfolder/d/dynacharge.txt +++ b/forge-gui/res/cardsfolder/d/dynacharge.txt @@ -1,6 +1,6 @@ Name:Dynacharge ManaCost:R Types:Instant -A:SP$ Pump | Cost$ R | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control. | NumAtt$ 2 | SpellDescription$ Target creature you control gets +2/+0 until end of turn. -A:SP$ PumpAll | Cost$ 2 R | ValidCards$ Creature.YouCtrl | NumAtt$ 2 | PrecostDesc$ Overload | CostDesc$ {2}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each creature you control gets +2/+0 until end of turn. +A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control. | NumAtt$ 2 | SpellDescription$ Target creature you control gets +2/+0 until end of turn. +K:Overload:2 R Oracle:Target creature you control gets +2/+0 until end of turn.\nOverload {2}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/e/electrickery.txt b/forge-gui/res/cardsfolder/e/electrickery.txt index 749d11f01f2..16c1b34a0b0 100644 --- a/forge-gui/res/cardsfolder/e/electrickery.txt +++ b/forge-gui/res/cardsfolder/e/electrickery.txt @@ -1,6 +1,6 @@ Name:Electrickery ManaCost:R Types:Instant -A:SP$ DealDamage | Cost$ R | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control. | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature you don't control. -A:SP$ DamageAll | Cost$ 1 R | ValidCards$ Creature.YouDontCtrl | ValidDescription$ each creature you don't control. | NumDmg$ 1 | PrecostDesc$ Overload | CostDesc$ {1}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +A:SP$ DealDamage | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control. | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature you don't control. +K:Overload:1 R Oracle:Electrickery deals 1 damage to target creature you don't control.\nOverload {1}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/f/flickerform.txt b/forge-gui/res/cardsfolder/f/flickerform.txt index bde87878e84..c2e726498aa 100644 --- a/forge-gui/res/cardsfolder/f/flickerform.txt +++ b/forge-gui/res/cardsfolder/f/flickerform.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AITgts$ Creature.nonToken | AILogic$ Pump A:AB$ Pump | Cost$ 2 W W | Defined$ Enchanted | ImprintCards$ Enchanted | StackDescription$ SpellDescription | SubAbility$ DBRemAura | SpellDescription$ Exile enchanted creature and all Auras attached to it. At the beginning of the next end step, return that card to the battlefield under its owner's control. If you do, return the other cards exiled this way to the battlefield under their owners' control attached to that creature. -SVar:DBRemAura:DB$ PumpAll | ValidCards$ Card.IsImprinted,Aura.AttachedTo Creature.IsImprinted | RememberAllPumped$ True | StackDescription$ None | SubAbility$ DBChangeZoneAll +SVar:DBRemAura:DB$ PumpAll | ValidCards$ Card.IsImprinted,Aura.AttachedTo Creature.IsImprinted | RememberPumped$ True | StackDescription$ None | SubAbility$ DBChangeZoneAll SVar:DBChangeZoneAll:DB$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Card.IsRemembered | SubAbility$ DelayedEffect SVar:DelayedEffect:DB$ Effect | Name$ Flickerform Effect | Triggers$ TrigEOT | RememberObjects$ Remembered | ImprintCards$ Imprinted | Duration$ Permanent | SubAbility$ DBCleanup SVar:TrigEOT:Mode$ Phase | Phase$ End of Turn | Execute$ FlickerformReturn | OneOff$ True | TriggerZones$ Command | TriggerDescription$ At the beginning of the next end step, return that card to the battlefield under its owner's control. diff --git a/forge-gui/res/cardsfolder/g/getaway_car.txt b/forge-gui/res/cardsfolder/g/getaway_car.txt index b61757c1454..240265df93b 100644 --- a/forge-gui/res/cardsfolder/g/getaway_car.txt +++ b/forge-gui/res/cardsfolder/g/getaway_car.txt @@ -4,7 +4,7 @@ Types:Artifact Vehicle PT:4/3 K:Haste T:Mode$ BecomesCrewed | ValidVehicle$ Card.Self | Execute$ RememberCrew | Static$ True -SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberAllPumped$ True +SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberPumped$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBCleanup | Static$ True T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ DBCleanup | Static$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/g/golden_argosy.txt b/forge-gui/res/cardsfolder/g/golden_argosy.txt index 119b04f4d8f..92508a73e30 100644 --- a/forge-gui/res/cardsfolder/g/golden_argosy.txt +++ b/forge-gui/res/cardsfolder/g/golden_argosy.txt @@ -3,7 +3,7 @@ ManaCost:4 Types:Legendary Artifact Vehicle PT:3/6 T:Mode$ BecomesCrewed | ValidVehicle$ Card.Self | Execute$ RememberCrew | Static$ True -SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberAllPumped$ True +SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberPumped$ True T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigFlicker | TriggerDescription$ Whenever CARDNAME attacks, exile each creature that crewed it this turn. Return them to the battlefield tapped under their owner's control at the beginning of the next end step. SVar:TrigFlicker:DB$ ChangeZoneAll | ChangeType$ Creature.IsRemembered | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | RememberObjects$ RememberedLKI | SubAbility$ DBCleanup | TriggerDescription$ Return them to the battlefield tapped under their owner's control at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/g/grimoire_thief.txt b/forge-gui/res/cardsfolder/g/grimoire_thief.txt index 9a6400a24d6..9354d31a662 100644 --- a/forge-gui/res/cardsfolder/g/grimoire_thief.txt +++ b/forge-gui/res/cardsfolder/g/grimoire_thief.txt @@ -6,7 +6,7 @@ T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ W SVar:TrigExile:DB$ Dig | ValidTgts$ Opponent | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True S:Mode$ Continuous | Affected$ Card.IsRemembered+ExiledWithSource | AffectedZone$ Exile | MayLookAt$ You | Description$ You may look at cards exiled with CARDNAME. A:AB$ SetState | Cost$ U Sac<1/CARDNAME> | Defined$ Remembered | Mode$ TurnFaceUp | SubAbility$ DBCounter | SpellDescription$ Turn all cards exiled with CARDNAME face up. Counter all spells with those names. -SVar:DBCounter:DB$ Counter | AllValid$ Spell.sharesNameWith Remembered.ExiledWithSource | SubAbility$ DBCleanup +SVar:DBCounter:DB$ Counter | Defined$ ValidStack Spell.sharesNameWith Remembered.ExiledWithSource | SubAbility$ DBCleanup T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup diff --git a/forge-gui/res/cardsfolder/h/harsh_mercy.txt b/forge-gui/res/cardsfolder/h/harsh_mercy.txt index a0b4dedbd44..6ced5c41b9c 100644 --- a/forge-gui/res/cardsfolder/h/harsh_mercy.txt +++ b/forge-gui/res/cardsfolder/h/harsh_mercy.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Sorcery A:SP$ RepeatEach | Cost$ 2 W | RepeatPlayers$ Player | RepeatSubAbility$ DBChooseType | SubAbility$ DBDestroyAll | StackDescription$ SpellDescription | SpellDescription$ Each player chooses a creature type. Destroy all creatures that aren't of a type chosen this way. They can't be regenerated. SVar:DBChooseType:DB$ ChooseType | Defined$ Player.IsRemembered | Type$ Creature | AILogic$ MostProminentComputerControls | SubAbility$ DBRemember -SVar:DBRemember:DB$ PumpAll | ValidCards$ Creature.ChosenType | RememberAllPumped$ True +SVar:DBRemember:DB$ PumpAll | ValidCards$ Creature.ChosenType | RememberPumped$ True SVar:DBDestroyAll:DB$ DestroyAll | ValidCards$ Creature.IsNotRemembered | NoRegen$ True | SubAbility$ DBCleanup | StackDescription$ None SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/k/kadenas_silencer.txt b/forge-gui/res/cardsfolder/k/kadenas_silencer.txt index 01a894087cd..da507778aea 100644 --- a/forge-gui/res/cardsfolder/k/kadenas_silencer.txt +++ b/forge-gui/res/cardsfolder/k/kadenas_silencer.txt @@ -3,6 +3,6 @@ ManaCost:1 U Types:Creature Naga Wizard PT:2/1 T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, counter all abilities your opponents control. -SVar:TrigCounter:DB$ Counter | AllValid$ Activated.OppCtrl,Triggered.OppCtrl +SVar:TrigCounter:DB$ Counter | Defined$ ValidStack Activated.OppCtrl,Triggered.OppCtrl K:Megamorph:1 U Oracle:When Kadena's Silencer is turned face up, counter all abilities your opponents control.\nMegamorph {1}{U} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its megamorph cost and put a +1/+1 counter on it.) diff --git a/forge-gui/res/cardsfolder/m/march_of_progress.txt b/forge-gui/res/cardsfolder/m/march_of_progress.txt index 0bafa45b497..e2437a22cc9 100644 --- a/forge-gui/res/cardsfolder/m/march_of_progress.txt +++ b/forge-gui/res/cardsfolder/m/march_of_progress.txt @@ -1,8 +1,8 @@ Name:March of Progress ManaCost:2 U Types:Sorcery -A:SP$ CopyPermanent | Cost$ 2 U | ValidTgts$ Artifact.Creature+YouCtrl | TgtPrompt$ Select target artifact creature you control | SpellDescription$ Choose target artifact creature you control. For each creature chosen this way, create a token that's a copy of it. -A:SP$ CopyPermanent | Cost$ 6 U | PrecostDesc$ Overload | CostDesc$ {6}{U} | Defined$ Valid Artifact.Creature+YouCtrl | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Choose each artifact creature you control. For each creature chosen this way, create a token that's a copy of it. +A:SP$ CopyPermanent | ValidTgts$ Artifact.Creature+YouCtrl | TgtPrompt$ Select target artifact creature you control | SpellDescription$ Choose target artifact creature you control. For each creature chosen this way, create a token that's a copy of it. +K:Overload:6 U DeckHas:Ability$Token DeckNeeds:Type$Artifact Oracle:Choose target artifact creature you control. For each creature chosen this way, create a token that's a copy of it.\nOverload {6}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/m/mind_rake.txt b/forge-gui/res/cardsfolder/m/mind_rake.txt index 2c3b370a947..c6b33f21434 100644 --- a/forge-gui/res/cardsfolder/m/mind_rake.txt +++ b/forge-gui/res/cardsfolder/m/mind_rake.txt @@ -1,6 +1,6 @@ Name:Mind Rake ManaCost:2 B Types:Sorcery -A:SP$ Discard | Cost$ 2 B | ValidTgts$ Player | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Target player discards two cards. -A:SP$ Discard | Cost$ 1 B | Defined$ Player | PrecostDesc$ Overload | CostDesc$ {1}{B} | NonBasicSpell$ True | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each player discards two cards. +A:SP$ Discard | ValidTgts$ Player | NumCards$ 2 | Mode$ TgtChoose | SpellDescription$ Target player discards two cards. +K:Overload:1 B Oracle:Target player discards two cards.\nOverload {1}{B} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/m/mizzium_mortars.txt b/forge-gui/res/cardsfolder/m/mizzium_mortars.txt index 594a93fb471..39bf9446f59 100644 --- a/forge-gui/res/cardsfolder/m/mizzium_mortars.txt +++ b/forge-gui/res/cardsfolder/m/mizzium_mortars.txt @@ -1,6 +1,6 @@ Name:Mizzium Mortars ManaCost:1 R Types:Sorcery -A:SP$ DealDamage | Cost$ 1 R | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumDmg$ 4 | SpellDescription$ CARDNAME deals 4 damage to target creature you don't control. -A:SP$ DamageAll | Cost$ 3 R R R | ValidCards$ Creature.YouDontCtrl | ValidDescription$ each creature you don't control. | NumDmg$ 4 | PrecostDesc$ Overload | CostDesc$ {3}{R}{R}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +A:SP$ DealDamage | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumDmg$ 4 | SpellDescription$ CARDNAME deals 4 damage to target creature you don't control. +K:Overload:3 R R R Oracle:Mizzium Mortars deals 4 damage to target creature you don't control.\nOverload {3}{R}{R}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/m/mizzium_skin.txt b/forge-gui/res/cardsfolder/m/mizzium_skin.txt index 344e4877232..598e34191f4 100644 --- a/forge-gui/res/cardsfolder/m/mizzium_skin.txt +++ b/forge-gui/res/cardsfolder/m/mizzium_skin.txt @@ -1,6 +1,6 @@ Name:Mizzium Skin ManaCost:U Types:Instant -A:SP$ Pump | Cost$ U | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumDef$ +1 | KW$ Hexproof | SpellDescription$ Target creature you control gets +0/+1 and gains hexproof until end of turn. -A:SP$ PumpAll | Cost$ 1 U | ValidCards$ Creature.YouCtrl | ValidDescription$ each creature you control. | NumDef$ +1 | KW$ Hexproof | PrecostDesc$ Overload | CostDesc$ {1}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each creature you control gets +0/+1 and gains hexproof until end of turn. +A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumDef$ +1 | KW$ Hexproof | SpellDescription$ Target creature you control gets +0/+1 and gains hexproof until end of turn. +K:Overload:1 U Oracle:Target creature you control gets +0/+1 and gains hexproof until end of turn.\nOverload {1}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/m/mizzixs_mastery.txt b/forge-gui/res/cardsfolder/m/mizzixs_mastery.txt index 86adc5bf7da..af60c8c2794 100644 --- a/forge-gui/res/cardsfolder/m/mizzixs_mastery.txt +++ b/forge-gui/res/cardsfolder/m/mizzixs_mastery.txt @@ -1,10 +1,10 @@ Name:Mizzix's Mastery ManaCost:3 R Types:Sorcery -A:SP$ ChangeZone | Cost$ 3 R | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target instant or sorcery card in a graveyard | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | RememberChanged$ True | SubAbility$ DBPlay | SpellDescription$ Exile target card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. Exile Mizzix's Mastery. -A:SP$ ChangeZoneAll | Cost$ 5 R R R | NonBasicSpell$ True | Origin$ Graveyard | Destination$ Exile | ChangeType$ Instant.YouOwn,Sorcery.YouOwn | RememberChanged$ True | SubAbility$ DBPlay | PrecostDesc$ Overload | CostDesc$ {5}{R}{R}{R} | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Exile each card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. -SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Exile | Controller$ You | CopyCard$ True | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | Amount$ All | SubAbility$ ExileMe -SVar:ExileMe:DB$ ChangeZoneAll | Origin$ Stack | Destination$ Exile | ChangeType$ Card.Self | SubAbility$ DBCleanup +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target instant or sorcery card in a graveyard | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | RememberChanged$ True | SubAbility$ DBPlay | SpellDescription$ Exile target card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. Exile CARDNAME. +SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidZone$ Exile | Controller$ You | CopyCard$ True | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | Amount$ All | SubAbility$ ExileMe +SVar:ExileMe:DB$ ChangeZone | Defined$ Self | Origin$ Stack | Destination$ Exile | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Overload:5 R R R AI:RemoveDeck:All Oracle:Exile target card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. Exile Mizzix's Mastery.\nOverload {5}{R}{R}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/p/patriarchs_bidding.txt b/forge-gui/res/cardsfolder/p/patriarchs_bidding.txt index 028becfc3bc..b01a602611b 100644 --- a/forge-gui/res/cardsfolder/p/patriarchs_bidding.txt +++ b/forge-gui/res/cardsfolder/p/patriarchs_bidding.txt @@ -3,7 +3,7 @@ ManaCost:3 B B Types:Sorcery A:SP$ RepeatEach | Cost$ 3 B B | RepeatPlayers$ Player | RepeatSubAbility$ DBChooseType | SubAbility$ DBBidding | StackDescription$ SpellDescription | SpellDescription$ Each player chooses a creature type. Each player returns all creature cards of a type chosen this way from their graveyard to the battlefield. SVar:DBChooseType:DB$ ChooseType | Defined$ Player.IsRemembered | Type$ Creature | AILogic$ MostProminentInComputerGraveyard | SubAbility$ DBRemember -SVar:DBRemember:DB$ PumpAll | ValidCards$ Creature.ChosenType | RememberAllPumped$ True | PumpZone$ Graveyard +SVar:DBRemember:DB$ PumpAll | ValidCards$ Creature.ChosenType | RememberPumped$ True | PumpZone$ Graveyard SVar:DBBidding:DB$ ChangeZoneAll | ChangeType$ Creature.IsRemembered | Origin$ Graveyard | Destination$ Battlefield | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/p/phyrexian_grimoire.txt b/forge-gui/res/cardsfolder/p/phyrexian_grimoire.txt index be21c780092..048b6661b0b 100644 --- a/forge-gui/res/cardsfolder/p/phyrexian_grimoire.txt +++ b/forge-gui/res/cardsfolder/p/phyrexian_grimoire.txt @@ -1,7 +1,7 @@ Name:Phyrexian Grimoire ManaCost:3 Types:Artifact -A:AB$ PumpAll | Cost$ 4 T | ValidCards$ Card.TopGraveyard2+YouCtrl | PumpZone$ Graveyard | RememberAllPumped$ True | SubAbility$ DBChoose | StackDescription$ None | SpellDescription$ Target opponent chooses one of the top two cards of your graveyard. Exile that card and put the other one into your hand. +A:AB$ PumpAll | Cost$ 4 T | ValidCards$ Card.TopGraveyard2+YouCtrl | PumpZone$ Graveyard | RememberPumped$ True | SubAbility$ DBChoose | StackDescription$ None | SpellDescription$ Target opponent chooses one of the top two cards of your graveyard. Exile that card and put the other one into your hand. SVar:DBChoose:DB$ ChooseCard | ValidTgts$ Opponent | Choices$ Card.IsRemembered | ChoiceZone$ Graveyard | Mandatory$ True | ForgetChosen$ True | SubAbility$ DBExile SVar:DBExile:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Graveyard | Destination$ Exile | SubAbility$ DBReturn SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Graveyard | Destination$ Hand | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/r/reverse_the_polarity.txt b/forge-gui/res/cardsfolder/r/reverse_the_polarity.txt index 3023b90ec66..7c30faded90 100644 --- a/forge-gui/res/cardsfolder/r/reverse_the_polarity.txt +++ b/forge-gui/res/cardsfolder/r/reverse_the_polarity.txt @@ -2,7 +2,7 @@ Name:Reverse the Polarity ManaCost:1 U U Types:Instant A:SP$ Charm | Choices$ DBCounter,DBSwitch,DBUnblockable -SVar:DBCounter:DB$ Counter | AllValid$ Spell.Other | SpellDescription$ Counter all other spells. +SVar:DBCounter:DB$ Counter | Defined$ ValidStack Spell.Other | SpellDescription$ Counter all other spells. SVar:DBSwitch:DB$ PumpAll | ValidCards$ Creature | KW$ HIDDEN CARDNAME's power and toughness are switched | SpellDescription$ Switch each creature's power and toughness until end of turn. SVar:DBUnblockable:DB$ Effect | StaticAbilities$ Unblockable | SpellDescription$ Creatures can't be blocked this turn. SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Creature | Description$ Creatures can't be blocked this turn. diff --git a/forge-gui/res/cardsfolder/r/rise_and_shine.txt b/forge-gui/res/cardsfolder/r/rise_and_shine.txt index 3b2078532ec..f3cb6a22dbf 100644 --- a/forge-gui/res/cardsfolder/r/rise_and_shine.txt +++ b/forge-gui/res/cardsfolder/r/rise_and_shine.txt @@ -2,9 +2,9 @@ Name:Rise and Shine ManaCost:1 U Types:Sorcery A:SP$ Animate | ValidTgts$ Artifact.nonCreature+YouCtrl | TgtPrompt$ Select target noncreature artifact you control | Types$ Artifact,Creature | Duration$ Permanent | Power$ 0 | Toughness$ 0 | RememberAnimated$ True | SubAbility$ DBPutCounter | StackDescription$ {c:Targeted} becomes a 0/0 artifact creature. {p:You} puts four +1/+1 counters on each artifact that became a creature this way. | SpellDescription$ Target noncreature artifact you control becomes a 0/0 artifact creature. Put four +1/+1 counters on each artifact that became a creature this way. -A:SP$ AnimateAll | Cost$ 4 U U | ValidCards$ Artifact.nonCreature+YouCtrl | Types$ Artifact,Creature | Duration$ Permanent | Power$ 0 | Toughness$ 0 | PrecostDesc$ Overload | CostDesc$ {4}{U}{U} | NonBasicSpell$ True | RememberAnimated$ True | SubAbility$ DBPutCounter | StackDescription$ Each noncreature artifact {p:You} controls becomes a 0/0 artifact creature. {p:You} puts four +1/+1 counters on each artifact that became a creature this way. | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") SVar:DBPutCounter:DB$ PutCounter | Defined$ Remembered | CounterType$ P1P1 | CounterNum$ 4 | SubAbility$ DBCleanup | StackDescription$ None SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Overload:4 U U DeckHas:Ability$Counters DeckNeeds:Type$Artifact Oracle:Target noncreature artifact you control becomes a 0/0 artifact creature. Put four +1/+1 counters on each artifact that became a creature this way.\nOverload {4}{U}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/s/scale_up.txt b/forge-gui/res/cardsfolder/s/scale_up.txt index 239cc08ce42..9533e22595f 100644 --- a/forge-gui/res/cardsfolder/s/scale_up.txt +++ b/forge-gui/res/cardsfolder/s/scale_up.txt @@ -1,6 +1,6 @@ Name:Scale Up ManaCost:G Types:Sorcery -A:SP$ Animate | Cost$ G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Power$ 6 | Toughness$ 4 | Colors$ Green | OverwriteColors$ True | Types$ Wurm | SpellDescription$ Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4. -A:SP$ AnimateAll | Cost$ 4 G G | PrecostDesc$ Overload | CostDesc$ {4}{G}{G} | NonBasicSpell$ True | ValidCards$ Creature.YouCtrl | Power$ 6 | Toughness$ 4 | Colors$ Green | OverwriteColors$ True | Types$ Wurm | SpellDescription$ Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4. +A:SP$ Animate | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Power$ 6 | Toughness$ 4 | Colors$ Green | OverwriteColors$ True | Types$ Wurm | SpellDescription$ Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4. +K:Overload:4 G G Oracle:Until end of turn, target creature you control becomes a green Wurm with base power and toughness 6/4.\nOverload {4}{G}{G} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/s/season_of_the_witch.txt b/forge-gui/res/cardsfolder/s/season_of_the_witch.txt index d5582e7de87..bebbb313b23 100644 --- a/forge-gui/res/cardsfolder/s/season_of_the_witch.txt +++ b/forge-gui/res/cardsfolder/s/season_of_the_witch.txt @@ -3,7 +3,7 @@ ManaCost:B B B Types:Enchantment K:UpkeepCost:PayLife<2> T:Mode$ Phase | Mode$ Phase | Phase$ Declare Attackers | Execute$ TrigMarkCouldAttack | Static$ True -SVar:TrigMarkCouldAttack:DB$ PumpAll | ValidCards$ Creature.couldAttackButNotAttacking | RememberAllPumped$ True +SVar:TrigMarkCouldAttack:DB$ PumpAll | ValidCards$ Creature.couldAttackButNotAttacking | RememberPumped$ True T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigDestroyAll | TriggerDescription$ At the beginning of the end step, destroy all untapped creatures that didn't attack this turn, except for creatures that couldn't attack. SVar:TrigDestroyAll:DB$ DestroyAll | ValidCards$ Creature.untapped+IsRemembered T:Mode$ Phase | Phase$ Cleanup | Execute$ TrigCleanup | Static$ True diff --git a/forge-gui/res/cardsfolder/s/smogbelcher_chariot.txt b/forge-gui/res/cardsfolder/s/smogbelcher_chariot.txt index 1e9b9e5ccd8..400784bbd54 100644 --- a/forge-gui/res/cardsfolder/s/smogbelcher_chariot.txt +++ b/forge-gui/res/cardsfolder/s/smogbelcher_chariot.txt @@ -6,7 +6,7 @@ K:Menace K:Deathtouch K:Lifelink T:Mode$ BecomesCrewed | ValidVehicle$ Card.Self | Execute$ RememberCrew | Static$ True -SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberAllPumped$ True +SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberPumped$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBCleanup | Static$ True T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ DBCleanup | Static$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/s/spectacular_showdown.txt b/forge-gui/res/cardsfolder/s/spectacular_showdown.txt index 15f6613efc6..530de764076 100644 --- a/forge-gui/res/cardsfolder/s/spectacular_showdown.txt +++ b/forge-gui/res/cardsfolder/s/spectacular_showdown.txt @@ -3,7 +3,7 @@ ManaCost:1 R Types:Sorcery A:SP$ PutCounter | ValidTgts$ Creature | CounterType$ Double Strike | RememberPut$ True | SubAbility$ DBGoad | SpellDescription$ Put a double strike counter on target creature, then goad each creature that had a double strike counter put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.) SVar:DBGoad:DB$ Goad | Defined$ Remembered | DefinedDesc$ each creature that had a double strike counter put on it this way | SubAbility$ DBCleanup -A:SP$ PutCounterAll | PrecostDesc$ Overload | Cost$ 4 R R R | ValidCards$ Creature | CounterType$ Double Strike | RememberPut$ True | SubAbility$ DBGoad | CostDesc$ {4}{R}{R}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Put a double strike counter on each creature. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Overload:4 R R R DeckHas:Ability$Counters Oracle:Put a double strike counter on target creature, then goad each creature that had a double strike counter put on it this way. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.)\nOverload {4}{R}{R}{R} (You may cast this spell for its overload cost. If you do, change "target" in its text to "each.") diff --git a/forge-gui/res/cardsfolder/s/stirring_address.txt b/forge-gui/res/cardsfolder/s/stirring_address.txt index 9b44d702c6e..321bccc3e6a 100644 --- a/forge-gui/res/cardsfolder/s/stirring_address.txt +++ b/forge-gui/res/cardsfolder/s/stirring_address.txt @@ -1,6 +1,6 @@ Name:Stirring Address ManaCost:1 W Types:Instant -A:SP$ Pump | Cost$ 1 W | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Target creature you control gets +2/+2 until end of turn. -A:SP$ PumpAll | Cost$ 5 W | PrecostDesc$ Overload | CostDesc$ {5}{W} | NonBasicSpell$ True | ValidCards$ Creature.YouCtrl | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each creature you control gets +2/+2 until end of turn. +A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Target creature you control gets +2/+2 until end of turn. +K:Overload:5 W Oracle:Target creature you control gets +2/+2 until end of turn.\nOverload {5}{W} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/s/storrev_devkarin_lich.txt b/forge-gui/res/cardsfolder/s/storrev_devkarin_lich.txt index 5fc9c01e8fb..2a108c9fa5c 100644 --- a/forge-gui/res/cardsfolder/s/storrev_devkarin_lich.txt +++ b/forge-gui/res/cardsfolder/s/storrev_devkarin_lich.txt @@ -5,7 +5,7 @@ PT:5/4 K:Trample T:Mode$ Phase | Phase$ BeginCombat | Static$ True | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ CleanupAndRemember SVar:CleanupAndRemember:DB$ Cleanup | ClearRemembered$ True | SubAbility$ RememberTargets -SVar:RememberTargets:DB$ PumpAll | PumpZone$ Graveyard | ValidCards$ Creature.YouOwn,Planeswalker.YouOwn | RememberAllPumped$ True +SVar:RememberTargets:DB$ PumpAll | PumpZone$ Graveyard | ValidCards$ Creature.YouOwn,Planeswalker.YouOwn | RememberPumped$ True T:Mode$ Phase | Phase$ EndCombat | Static$ True | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ JustCleanup SVar:JustCleanup:DB$ Cleanup | ClearRemembered$ True T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player,Planeswalker | CombatDamage$ True | Execute$ TrigChange | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player or planeswalker, return to your hand target creature or planeswalker card in your graveyard that wasn't put there this combat. diff --git a/forge-gui/res/cardsfolder/s/street_spasm.txt b/forge-gui/res/cardsfolder/s/street_spasm.txt index 7677f3727b9..8506b709697 100644 --- a/forge-gui/res/cardsfolder/s/street_spasm.txt +++ b/forge-gui/res/cardsfolder/s/street_spasm.txt @@ -1,7 +1,7 @@ Name:Street Spasm ManaCost:X R Types:Instant -A:SP$ DealDamage | Cost$ X R | ValidTgts$ Creature.withoutFlying+YouDontCtrl | TgtPrompt$ Select target creature without flying you don't control. | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to target creature without flying you don't control. -A:SP$ DamageAll | Cost$ X X R R | ValidCards$ Creature.withoutFlying+YouDontCtrl | ValidDescription$ each creature without flying you don't control. | NumDmg$ X | PrecostDesc$ Overload | CostDesc$ {X}{X}{R}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +A:SP$ DealDamage | ValidTgts$ Creature.withoutFlying+YouDontCtrl | TgtPrompt$ Select target creature without flying you don't control. | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to target creature without flying you don't control. +K:Overload:X X R R SVar:X:Count$xPaid Oracle:Street Spasm deals X damage to target creature without flying you don't control.\nOverload {X}{X}{R}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/s/subterranean_schooner.txt b/forge-gui/res/cardsfolder/s/subterranean_schooner.txt index b3eae3eb52d..47432ed6ea7 100644 --- a/forge-gui/res/cardsfolder/s/subterranean_schooner.txt +++ b/forge-gui/res/cardsfolder/s/subterranean_schooner.txt @@ -4,7 +4,7 @@ Types:Artifact Vehicle PT:3/4 K:Crew:1 T:Mode$ BecomesCrewed | ValidVehicle$ Card.Self | Execute$ RememberCrew | Static$ True -SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberAllPumped$ True +SVar:RememberCrew:DB$ PumpAll | ValidCards$ Creature.TriggeredCrew | RememberPumped$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBCleanup | Static$ True T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | TriggerZones$ Battlefield | Execute$ DBCleanup | Static$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/s/summary_dismissal.txt b/forge-gui/res/cardsfolder/s/summary_dismissal.txt index 452b404f9bb..d7125d1dcf5 100644 --- a/forge-gui/res/cardsfolder/s/summary_dismissal.txt +++ b/forge-gui/res/cardsfolder/s/summary_dismissal.txt @@ -2,6 +2,6 @@ Name:Summary Dismissal ManaCost:2 U U Types:Instant A:SP$ ChangeZoneAll | Cost$ 2 U U | ChangeType$ Card.Other | Origin$ Stack | Destination$ Exile | Fizzle$ True | SubAbility$ DBCounter | SpellDescription$ Exile all other spells and counter all abilities. -SVar:DBCounter:DB$ Counter | AllValid$ Activated,Triggered +SVar:DBCounter:DB$ Counter | Defined$ ValidStack Activated,Triggered AI:RemoveDeck:All Oracle:Exile all other spells and counter all abilities. diff --git a/forge-gui/res/cardsfolder/s/swift_silence.txt b/forge-gui/res/cardsfolder/s/swift_silence.txt index 53235c62c04..33d4ea52353 100644 --- a/forge-gui/res/cardsfolder/s/swift_silence.txt +++ b/forge-gui/res/cardsfolder/s/swift_silence.txt @@ -1,7 +1,7 @@ Name:Swift Silence ManaCost:2 W U U Types:Instant -A:SP$ Counter | Cost$ 2 W U U | AllValid$ Spell.Other | RememberCountered$ True | SubAbility$ DBDraw | SpellDescription$ Counter all other spells. Draw a card for each spell countered this way. +A:SP$ Counter | Defined$ ValidStack Spell.Other | RememberCountered$ True | SubAbility$ DBDraw | SpellDescription$ Counter all other spells. Draw a card for each spell countered this way. SVar:DBDraw:DB$ Draw | NumCards$ X | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Amount diff --git a/forge-gui/res/cardsfolder/t/teleportal.txt b/forge-gui/res/cardsfolder/t/teleportal.txt index fa94babc196..1f27314e2e9 100644 --- a/forge-gui/res/cardsfolder/t/teleportal.txt +++ b/forge-gui/res/cardsfolder/t/teleportal.txt @@ -1,10 +1,9 @@ Name:Teleportal ManaCost:U R Types:Sorcery -A:SP$ Pump | Cost$ U R | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ 1 | SubAbility$ DBUnblockable | StackDescription$ {c:Targeted} gets +2/+0 until end of turn and can't be blocked this turn. | SpellDescription$ Target creature you control gets +1/+0 until end of turn and can't be blocked this turn. -SVar:DBUnblockable:DB$ Effect | RememberObjects$ Targeted | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable +A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ 1 | RememberPumped$ True | SubAbility$ DBUnblockable | StackDescription$ {c:Targeted} gets +2/+0 until end of turn and can't be blocked this turn. | SpellDescription$ Target creature you control gets +1/+0 until end of turn and can't be blocked this turn. +SVar:DBUnblockable:DB$ Effect | RememberObjects$ Remembered | ForgetOnMoved$ Battlefield | StaticAbilities$ Unblockable | SubAbility$ DBCleanup SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ This creature can't be blocked this turn. -A:SP$ PumpAll | Cost$ 3 U R | ValidCards$ Creature.YouCtrl | ValidDescription$ each creature you control. | NumAtt$ 1 | PrecostDesc$ Overload | CostDesc$ {3}{U}{R} | NonBasicSpell$ True | SubAbility$ DBEffect | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") | StackDescription$ Each creature you control gets +1/+0 until end of turn and can't be blocked this turn. -SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl | ForgetOnMoved$ Battlefield | StaticAbilities$ AllUnblockable -SVar:AllUnblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ These creatures can't be blocked this turn. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +K:Overload:3 U R Oracle:Target creature you control gets +1/+0 until end of turn and can't be blocked this turn.\nOverload {3}{U}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/t/thran_weaponry.txt b/forge-gui/res/cardsfolder/t/thran_weaponry.txt index ab63aaf1888..f1f3ec1f883 100644 --- a/forge-gui/res/cardsfolder/t/thran_weaponry.txt +++ b/forge-gui/res/cardsfolder/t/thran_weaponry.txt @@ -3,7 +3,7 @@ ManaCost:4 Types:Artifact K:Echo:4 K:You may choose not to untap CARDNAME during your untap step. -A:AB$ PumpAll | Cost$ 2 T | ValidCards$ Creature | RememberAllPumped$ True | SpellDescription$ All creatures get +2/+2 for as long as CARDNAME remains tapped. +A:AB$ PumpAll | Cost$ 2 T | ValidCards$ Creature | RememberPumped$ True | SpellDescription$ All creatures get +2/+2 for as long as CARDNAME remains tapped. S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2 | AddToughness$ 2 T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/u/unforge.txt b/forge-gui/res/cardsfolder/u/unforge.txt index be318d58284..728d8daf249 100644 --- a/forge-gui/res/cardsfolder/u/unforge.txt +++ b/forge-gui/res/cardsfolder/u/unforge.txt @@ -2,7 +2,7 @@ Name:Unforge ManaCost:2 R Types:Instant A:SP$ Pump | Cost$ 2 R | ValidTgts$ Equipment | IsCurse$ True | SubAbility$ DBRem | StackDescription$ SpellDescription | SpellDescription$ Destroy target Equipment. If that Equipment was attached to a creature, CARDNAME deals 2 damage to that creature. -SVar:DBRem:DB$ PumpAll | ValidCards$ Creature.EquippedByTargeted | RememberAllPumped$ True | StackDescription$ None | SubAbility$ DBDestroy +SVar:DBRem:DB$ PumpAll | ValidCards$ Creature.EquippedByTargeted | RememberPumped$ True | StackDescription$ None | SubAbility$ DBDestroy SVar:DBDestroy:DB$ Destroy | Defined$ Targeted | SubAbility$ DBDmg | StackDescription$ None SVar:DBDmg:DB$ DealDamage | Defined$ Remembered | NumDmg$ 2 | ConditionDefined$ Remembered | ConditionPresent$ Creature | ConditionCompare$ EQ1 | StackDescription$ None | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/v/vandalblast.txt b/forge-gui/res/cardsfolder/v/vandalblast.txt index 91ac51c9141..f3a6a66bf18 100644 --- a/forge-gui/res/cardsfolder/v/vandalblast.txt +++ b/forge-gui/res/cardsfolder/v/vandalblast.txt @@ -1,6 +1,6 @@ Name:Vandalblast ManaCost:R Types:Sorcery -A:SP$ Destroy | Cost$ R | ValidTgts$ Artifact.YouDontCtrl | TgtPrompt$ Select target artifact you don't control | SpellDescription$ Destroy target artifact you don't control. -A:SP$ DestroyAll | Cost$ 4 R | ValidCards$ Artifact.YouDontCtrl | PrecostDesc$ Overload | CostDesc$ {4}{R} | NonBasicSpell$ True | StackDescription$ Destroy each artifact you don't control. | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +A:SP$ Destroy | ValidTgts$ Artifact.YouDontCtrl | TgtPrompt$ Select target artifact you don't control | SpellDescription$ Destroy target artifact you don't control. +K:Overload:4 R Oracle:Destroy target artifact you don't control.\nOverload {4}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/w/weapon_surge.txt b/forge-gui/res/cardsfolder/w/weapon_surge.txt index 428bdff492c..c6c1ae35641 100644 --- a/forge-gui/res/cardsfolder/w/weapon_surge.txt +++ b/forge-gui/res/cardsfolder/w/weapon_surge.txt @@ -1,6 +1,6 @@ Name:Weapon Surge ManaCost:R Types:Instant -A:SP$ Pump | Cost$ R | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +1 | KW$ First Strike | SpellDescription$ Target creature you control gets +1/+0 and gains first strike until end of turn. -A:SP$ PumpAll | Cost$ 1 R | ValidCards$ Creature.YouCtrl | ValidDescription$ each creature you control. | NumAtt$ +1 | KW$ First Strike | PrecostDesc$ Overload | CostDesc$ {1}{R} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.".) | StackDescription$ Each creature you control gets +1/+0 and gains first strike until end of turn. +A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +1 | KW$ First Strike | SpellDescription$ Target creature you control gets +1/+0 and gains first strike until end of turn. +K:Overload:1 R Oracle:Target creature you control gets +1/+0 and gains first strike until end of turn.\nOverload {1}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") diff --git a/forge-gui/res/cardsfolder/w/winds_of_abandon.txt b/forge-gui/res/cardsfolder/w/winds_of_abandon.txt index da99b81c127..3b74fbb9364 100644 --- a/forge-gui/res/cardsfolder/w/winds_of_abandon.txt +++ b/forge-gui/res/cardsfolder/w/winds_of_abandon.txt @@ -1,10 +1,10 @@ Name:Winds of Abandon ManaCost:1 W Types:Sorcery -A:SP$ ChangeZone | Cost$ 1 W | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | SubAbility$ DBGetLandsAll | RememberLKI$ True | SpellDescription$ Exile target creature you don't control. For each creature exiled this way, its controller searches their library for a basic land card. Those players put those cards onto the battlefield tapped, then shuffle. -A:SP$ ChangeZoneAll | Cost$ 4 W W | ChangeType$ Creature.YouDontCtrl | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | SubAbility$ DBGetLandsAll | PrecostDesc$ Overload | CostDesc$ {4}{W}{W} | NonBasicSpell$ True | AILogic$ Main1 | SpellDescription$ (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +A:SP$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | SubAbility$ DBGetLandsAll | RememberLKI$ True | SpellDescription$ Exile target creature you don't control. For each creature exiled this way, its controller searches their library for a basic land card. Those players put those cards onto the battlefield tapped, then shuffle. SVar:DBGetLandsAll:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ DBGetLandsOne | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBGetLandsOne:DB$ ChangeZone | Optional$ True | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ X | DefinedPlayer$ Player.IsRemembered | ShuffleNonMandatory$ False | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 SVar:X:RememberedLKI$FilterControlledByRemembered_Number$1 +K:Overload:4 W W Oracle:Exile target creature you don't control. For each creature exiled this way, its controller searches their library for a basic land card. Those players put those cards onto the battlefield tapped, then shuffle.\nOverload {4}{W}{W} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")