diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index cbbde47a278..e537d3c6972 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -1554,7 +1554,7 @@ public class ComputerUtil { Iterables.addAll(objects, ComputerUtil.predictThreatenedObjects(ai, sa, spell)); } if (top) { - break; // only evaluate top-stack + break; // only evaluate top-stack } } diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java b/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java index da96861d9a5..82620607240 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAllAi.java @@ -85,9 +85,6 @@ public class PumpAllAi extends PumpAiBase { CardCollection comp = CardLists.getValidCards(ai.getCardsIn(ZoneType.Battlefield), valid, source.getController(), source, sa); CardCollection human = CardLists.getValidCards(opp.getCardsIn(ZoneType.Battlefield), valid, source.getController(), source, sa); - if (!game.getStack().isEmpty() && !sa.isCurse()) { - return pumpAgainstRemoval(ai, sa, comp); - } if (sa.isCurse()) { if (defense < 0) { // try to destroy creatures comp = CardLists.filter(comp, new Predicate() { @@ -143,6 +140,10 @@ public class PumpAllAi extends PumpAiBase { return (ComputerUtilCard.evaluateCreatureList(comp) + 200) < ComputerUtilCard.evaluateCreatureList(human); } // end Curse + if (!game.getStack().isEmpty()) { + return pumpAgainstRemoval(ai, sa, comp); + } + return !CardLists.getValidCards(getPumpCreatures(ai, sa, defense, power, keywords, false), valid, source.getController(), source, sa).isEmpty(); } // pumpAllCanPlayAI() @@ -153,6 +154,11 @@ public class PumpAllAi extends PumpAiBase { @Override protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) { + // it might help so take it + if (!sa.usesTargeting() && !sa.isCurse() && sa.getParam("ValidCards") != null && sa.getParam("ValidCards").contains("YouCtrl")) { + return true; + } + // important to call canPlay first so targets are added if needed return canPlayAI(ai, sa) || mandatory; } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java index d8a21d239c1..ae677e85f7c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChooseNumberEffect.java @@ -36,8 +36,7 @@ public class ChooseNumberEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { final Card card = sa.getHostCard(); - //final int min = sa.containsKey("Min") ? Integer.parseInt(sa.get("Min")) : 0; - //final int max = sa.containsKey("Max") ? Integer.parseInt(sa.get("Max")) : 99; + final boolean random = sa.hasParam("Random"); final boolean anyNumber = sa.hasParam("ChooseAnyNumber"); final boolean secretlyChoose = sa.hasParam("SecretlyChoose"); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index cd5dbe0c895..e845cc1d8ae 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -278,7 +278,7 @@ public class CountersPutEffect extends SpellAbilityEffect { params.put("Target", obj); params.put("CounterType", counterType); divrem++; - if ((divrem == tgtObjects.size()) || (counterRemain == 1)) { counterAmount = counterRemain; } + if (divrem == tgtObjects.size() || counterRemain == 1) { counterAmount = counterRemain; } else { counterAmount = pc.chooseNumber(sa, Localizer.getInstance().getMessage ("lblHowManyCountersThis", CardTranslation.getTranslatedName(gameCard.getName())), diff --git a/forge-game/src/main/java/forge/game/ability/effects/DamageEachEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DamageEachEffect.java index 1871bea5b8e..2418d638416 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DamageEachEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DamageEachEffect.java @@ -92,7 +92,6 @@ public class DamageEachEffect extends DamageBaseEffect { // TODO shouldn't that be using Num or something first? final int dmg = AbilityUtils.calculateAmount(source, "X", sa); - // System.out.println(source+" deals "+dmg+" damage to "+o.toString()); if (o instanceof Card) { final Card c = (Card) o; if (c.isInPlay() && (!targeted || c.canBeTargetedBy(sa))) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/GameDrawEffect.java b/forge-game/src/main/java/forge/game/ability/effects/GameDrawEffect.java index ca97d0e409c..ab6ed5a4a05 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/GameDrawEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/GameDrawEffect.java @@ -24,4 +24,3 @@ public class GameDrawEffect extends SpellAbilityEffect { } } - diff --git a/forge-game/src/main/java/forge/game/ability/effects/LifeLoseEffect.java b/forge-game/src/main/java/forge/game/ability/effects/LifeLoseEffect.java index 39693308a68..a73d03c59ca 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/LifeLoseEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/LifeLoseEffect.java @@ -33,7 +33,6 @@ public class LifeLoseEffect extends SpellAbilityEffect { */ @Override public void resolve(SpellAbility sa) { - int lifeLost = 0; final int lifeAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("LifeAmount"), sa); diff --git a/forge-game/src/main/java/forge/game/ability/effects/PoisonEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PoisonEffect.java index d8502b8f679..ae278ce2f34 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PoisonEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PoisonEffect.java @@ -17,54 +17,53 @@ import forge.util.Lang; * */ - public class PoisonEffect extends SpellAbilityEffect { +public class PoisonEffect extends SpellAbilityEffect { - /* (non-Javadoc) - * @see forge.game.ability.SpellAbilityEffect#resolve(forge.game.spellability.SpellAbility) - */ - @Override - public void resolve(SpellAbility sa) { - final Card host = sa.getHostCard(); - final Game game = host.getGame(); - final int amount = AbilityUtils.calculateAmount(host, sa.getParam("Num"), sa); + /* (non-Javadoc) + * @see forge.game.ability.SpellAbilityEffect#resolve(forge.game.spellability.SpellAbility) + */ + @Override + public void resolve(SpellAbility sa) { + final Card host = sa.getHostCard(); + final Game game = host.getGame(); + final int amount = AbilityUtils.calculateAmount(host, sa.getParam("Num"), sa); - GameEntityCounterTable table = new GameEntityCounterTable(); - for (final Player p : getTargetPlayers(sa)) { - if ((!sa.usesTargeting()) || p.canBeTargetedBy(sa)) { - if (amount >= 0) { - p.addPoisonCounters(amount, host, table); - } else { - p.removePoisonCounters(-amount, host); - } + GameEntityCounterTable table = new GameEntityCounterTable(); + for (final Player p : getTargetPlayers(sa)) { + if ((!sa.usesTargeting()) || p.canBeTargetedBy(sa)) { + if (amount >= 0) { + p.addPoisonCounters(amount, host, table); + } else { + p.removePoisonCounters(-amount, host); } } - table.triggerCountersPutAll(game); } - - /* (non-Javadoc) - * @see forge.game.ability.SpellAbilityEffect#getStackDescription(forge.game.spellability.SpellAbility) - */ - @Override - protected String getStackDescription(SpellAbility sa) { - final StringBuilder sb = new StringBuilder(); - final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("Num"), sa); - - final List tgtPlayers = getTargetPlayers(sa); - - sb.append(Lang.joinHomogenous(tgtPlayers)); - sb.append(" "); - - sb.append("get"); - if (tgtPlayers.size() < 2) { - sb.append("s"); - } - - String type = CounterEnumType.POISON.getName() + " counter"; - - sb.append(" ").append(Lang.nounWithAmount(amount, type)).append("."); - - return sb.toString(); - } - + table.triggerCountersPutAll(game); } + /* (non-Javadoc) + * @see forge.game.ability.SpellAbilityEffect#getStackDescription(forge.game.spellability.SpellAbility) + */ + @Override + protected String getStackDescription(SpellAbility sa) { + final StringBuilder sb = new StringBuilder(); + final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("Num"), sa); + + final List tgtPlayers = getTargetPlayers(sa); + + sb.append(Lang.joinHomogenous(tgtPlayers)); + sb.append(" "); + + sb.append("get"); + if (tgtPlayers.size() < 2) { + sb.append("s"); + } + + String type = CounterEnumType.POISON.getName() + " counter"; + + sb.append(" ").append(Lang.nounWithAmount(amount, type)).append("."); + + return sb.toString(); + } + +} diff --git a/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java index 5328f6a9170..0952a509c33 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RollDiceEffect.java @@ -76,6 +76,9 @@ public class RollDiceEffect extends SpellAbilityEffect { int roll = MyRandom.getRandom().nextInt(sides) + 1; rolls.add(roll); total += roll; + if (sa.hasParam("RememberRoll")) { + host.addRemembered(roll); + } } if (amount > 0) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java index 5bd8ad4edef..c684ce10121 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TwoPilesEffect.java @@ -17,10 +17,6 @@ import forge.util.Localizer; public class TwoPilesEffect extends SpellAbilityEffect { - // ************************************************************************* - // ***************************** TwoPiles ********************************** - // ************************************************************************* - /* (non-Javadoc) * @see forge.card.abilityfactory.SpellEffect#getStackDescription(java.util.Map, forge.card.spellability.SpellAbility) */ @@ -106,10 +102,6 @@ public class TwoPilesEffect extends SpellAbilityEffect { final CardCollection pile2 = new CardCollection(pool); pile2.removeAll(pile1); - //System.out.println("Pile 1:" + pile1); - //System.out.println("Pile 2:" + pile2); - - if (isLeftRightPile) { pile1WasChosen = true; } else { diff --git a/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java b/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java index 33fb9613ce2..6c17181028d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/VentureEffect.java @@ -42,7 +42,7 @@ public class VentureEffect extends SpellAbilityEffect { } } - // Create a new dugeon card chosen by player in command zone. + // Create a new dungeon card chosen by player in command zone. List dungeonCards = StaticData.instance().getVariantCards().getAllCards( Predicates.compose(CardRulesPredicates.Presets.IS_DUNGEON, PaperCard.FN_GET_RULES)); List faces = new ArrayList<>(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/VAssignGenericAmount.java b/forge-gui-desktop/src/main/java/forge/screens/match/VAssignGenericAmount.java index 6e140c7575c..26b5aa5a97c 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/VAssignGenericAmount.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/VAssignGenericAmount.java @@ -175,7 +175,7 @@ public class VAssignGenericAmount { btnReset.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { resetAssignedAmount(); initialAssignAmount(); } }); - // Final UI layout + // Final UI layout pnlMain.setLayout(new MigLayout("insets 0, gap 0, wrap 2, ax center")); pnlMain.add(pnlSource, "w 125px!, h 160px!, gap 50px 0 0 15px"); pnlMain.add(pnlInfo, "gap 20px 0 0 15px"); diff --git a/forge-gui/res/cardsfolder/a/acorn_catapult.txt b/forge-gui/res/cardsfolder/a/acorn_catapult.txt index fda98892e17..e3a2f903dac 100644 --- a/forge-gui/res/cardsfolder/a/acorn_catapult.txt +++ b/forge-gui/res/cardsfolder/a/acorn_catapult.txt @@ -1,9 +1,8 @@ Name:Acorn Catapult ManaCost:4 Types:Artifact -A:AB$ DealDamage | Cost$ 1 T | NumDmg$ 1 | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | SubAbility$ SquirrelTokenCtrl | SpellDescription$ CARDNAME deals 1 damage to any target. That permanent's controller or that player creates a 1/1 green Squirrel creature token. -SVar:SquirrelTokenCtrl:DB$ Token | TokenAmount$ 1 | TokenScript$ g_1_1_squirrel | TokenOwner$ Targeted | SubAbility$ SquirrelTokenPlayer | ConditionDefined$ Targeted | ConditionPresent$ Card.Creature | ConditionCompare$ EQ0 | LegacyImage$ g 1 1 squirrel cmd -SVar:SquirrelTokenPlayer:DB$ Token | TokenAmount$ 1 | TokenScript$ g_1_1_squirrel | TokenOwner$ TargetedController | ConditionDefined$ Targeted | ConditionPresent$ Card.Creature | ConditionCompare$ GE1 | LegacyImage$ g 1 1 squirrel cmd +A:AB$ DealDamage | Cost$ 1 T | NumDmg$ 1 | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | SubAbility$ SquirrelToken | SpellDescription$ CARDNAME deals 1 damage to any target. That permanent's controller or that player creates a 1/1 green Squirrel creature token. +SVar:SquirrelToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_1_1_squirrel | TokenOwner$ TargetedOrController | LegacyImage$ g 1 1 squirrel cmd AI:RemoveDeck:All SVar:Picture:http://www.wizards.com/global/images/magic/general/acorn_catapult.jpg Oracle:{1}, {T}: Acorn Catapult deals 1 damage to any target. That permanent's controller or that player creates a 1/1 green Squirrel creature token. diff --git a/forge-gui/res/cardsfolder/a/aggressive_instinct.txt b/forge-gui/res/cardsfolder/a/aggressive_instinct.txt index 1320fd273c5..ad943f9a605 100644 --- a/forge-gui/res/cardsfolder/a/aggressive_instinct.txt +++ b/forge-gui/res/cardsfolder/a/aggressive_instinct.txt @@ -2,6 +2,6 @@ Name:Aggressive Instinct ManaCost:1 G Types:Sorcery A:SP$ Pump | Cost$ 1 G | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target creature you control deals damage equal to its power to target creature you don't control -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower Oracle:Target creature you control deals damage equal to its power to target creature you don't control. diff --git a/forge-gui/res/cardsfolder/a/akoum_battlesinger.txt b/forge-gui/res/cardsfolder/a/akoum_battlesinger.txt index 75b295ba71d..405a92bf4e4 100644 --- a/forge-gui/res/cardsfolder/a/akoum_battlesinger.txt +++ b/forge-gui/res/cardsfolder/a/akoum_battlesinger.txt @@ -3,8 +3,7 @@ ManaCost:1 R Types:Creature Human Berserker Ally PT:1/1 K:Haste -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigPumpAll | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control get +1/+0 until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control get +1/+0 until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigPumpAll | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control get +1/+0 until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 SVar:BuffedBy:Ally Oracle:Haste\nWhenever Akoum Battlesinger or another Ally enters the battlefield under your control, you may have Ally creatures you control get +1/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/a/ambuscade.txt b/forge-gui/res/cardsfolder/a/ambuscade.txt index a81da7a413d..daaf01c57ea 100644 --- a/forge-gui/res/cardsfolder/a/ambuscade.txt +++ b/forge-gui/res/cardsfolder/a/ambuscade.txt @@ -2,7 +2,7 @@ Name:Ambuscade ManaCost:2 G Types:Instant A:SP$ Pump | Cost$ 2 G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ +1 | SubAbility$ DBDealDamage | AILogic$ Fight | SpellDescription$ Target creature you control gets +1/+0 until end of turn. It deals damage equal to its power to target creature an opponent controls. -SVar:DBDealDamage:DB$ DealDamage | ValidTgts$ Creature.OppCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature an opponent controls | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:DBDealDamage:DB$ DealDamage | ValidTgts$ Creature.OppCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature an opponent controls | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/ambuscade.jpg -Oracle:Target creature you control gets +1/+0 until end of turn. It deals damage equal to its power to target creature an opponent controls. \ No newline at end of file +Oracle:Target creature you control gets +1/+0 until end of turn. It deals damage equal to its power to target creature an opponent controls. diff --git a/forge-gui/res/cardsfolder/c/chasm_guide.txt b/forge-gui/res/cardsfolder/c/chasm_guide.txt index 00beb89cff0..937be81eac5 100644 --- a/forge-gui/res/cardsfolder/c/chasm_guide.txt +++ b/forge-gui/res/cardsfolder/c/chasm_guide.txt @@ -2,8 +2,7 @@ Name:Chasm Guide ManaCost:3 R Types:Creature Goblin Scout Ally PT:3/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Haste SVar:PlayMain1:ALWAYS SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/c/clear_shot.txt b/forge-gui/res/cardsfolder/c/clear_shot.txt index d133e2a3c78..6add62135c2 100644 --- a/forge-gui/res/cardsfolder/c/clear_shot.txt +++ b/forge-gui/res/cardsfolder/c/clear_shot.txt @@ -2,7 +2,7 @@ Name:Clear Shot ManaCost:2 G Types:Instant A:SP$ Pump | Cost$ 2 G | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | NumAtt$ +1 | NumDef$ +1 | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target creature you control gets +1/+1 until end of turn. It deals damage equal to its power to target creature you don't control. -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/clear_shot.jpg Oracle:Target creature you control gets +1/+1 until end of turn. It deals damage equal to its power to target creature you don't control. diff --git a/forge-gui/res/cardsfolder/f/firemantle_mage.txt b/forge-gui/res/cardsfolder/f/firemantle_mage.txt index c6f2352410b..396405b0239 100644 --- a/forge-gui/res/cardsfolder/f/firemantle_mage.txt +++ b/forge-gui/res/cardsfolder/f/firemantle_mage.txt @@ -2,8 +2,7 @@ Name:Firemantle Mage ManaCost:2 R Types:Creature Human Shaman Ally PT:2/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.) -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.) +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.) SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Menace SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/g/goblin_welder.txt b/forge-gui/res/cardsfolder/g/goblin_welder.txt index 45f42ac6308..70e30b2c1de 100644 --- a/forge-gui/res/cardsfolder/g/goblin_welder.txt +++ b/forge-gui/res/cardsfolder/g/goblin_welder.txt @@ -2,8 +2,8 @@ Name:Goblin Welder ManaCost:R Types:Creature Goblin Artificer PT:1/1 -A:AB$ Pump | Cost$ T | ValidTgts$ Artifact | TgtPrompt$ Select target artifact a player controls | RememberObjects$ Targeted | Condition$ AllTargetsLegal | SubAbility$ DBTargetYard | SpellDescription$ Choose target artifact a player controls and target artifact card in that player's graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield. | StackDescription$ None -SVar:DBTargetYard:DB$ Pump | ValidTgts$ Artifact | TgtPrompt$ Select target artifact card in that player's graveyard | TgtZone$ Graveyard | PumpZone$ Graveyard | TargetsWithSameController$ True | ImprintCards$ Targeted | Condition$ AllTargetsLegal | StackDescription$ If both targets are still legal as this ability resolves, {p:TargetedController} simultaneously sacrifices {c:ParentTarget} and returns {c:Targeted} to the battlefield. | SubAbility$ DBSacrifice +A:AB$ Pump | Cost$ T | ValidTgts$ Artifact | TgtPrompt$ Select target artifact a player controls | RememberObjects$ ThisTargetedCard | Condition$ AllTargetsLegal | SubAbility$ DBTargetYard | SpellDescription$ Choose target artifact a player controls and target artifact card in that player's graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield. | StackDescription$ None +SVar:DBTargetYard:DB$ Pump | ValidTgts$ Artifact | TgtPrompt$ Select target artifact card in that player's graveyard | TgtZone$ Graveyard | PumpZone$ Graveyard | TargetsWithSameController$ True | ImprintCards$ ThisTargetedCard | Condition$ AllTargetsLegal | StackDescription$ If both targets are still legal as this ability resolves, {p:TargetedController} simultaneously sacrifices {c:ParentTarget} and returns {c:Targeted} to the battlefield. | SubAbility$ DBSacrifice SVar:DBSacrifice:DB$ SacrificeAll | ValidCards$ Card.IsRemembered | ConditionDefined$ Remembered | ConditionPresent$ Artifact | ConditionCompare$ GE1 | ConditionCheckSVar$ CheckImprint | ConditionSVarCompare$ GE1 | SubAbility$ DBReturn | StackDescription$ None SVar:DBReturn:DB$ ChangeZone | Defined$ Imprinted | Origin$ Graveyard | Destination$ Battlefield | SubAbility$ DBCleanup | ConditionDefined$ Remembered | ConditionPresent$ Artifact | ConditionCompare$ GE1 | ConditionCheckSVar$ CheckImprint | ConditionSVarCompare$ GE1 | StackDescription$ None SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True diff --git a/forge-gui/res/cardsfolder/h/hagra_diabolist.txt b/forge-gui/res/cardsfolder/h/hagra_diabolist.txt index c1204860f97..6decef85886 100644 --- a/forge-gui/res/cardsfolder/h/hagra_diabolist.txt +++ b/forge-gui/res/cardsfolder/h/hagra_diabolist.txt @@ -2,8 +2,7 @@ Name:Hagra Diabolist ManaCost:4 B Types:Creature Ogre Shaman Ally PT:3/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have target player lose life equal to the number of Allies you control. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigLoseLife | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have target player lose life equal to the number of Allies you control. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have target player lose life equal to the number of Allies you control. SVar:TrigLoseLife:DB$LoseLife | ValidTgts$ Player | LifeAmount$ NumAllies | TgtPrompt$ Select a target player. SVar:NumAllies:Count$Valid Ally.YouCtrl SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/h/hero_of_goma_fada.txt b/forge-gui/res/cardsfolder/h/hero_of_goma_fada.txt index c6d4bc55c21..b71cabe1f79 100644 --- a/forge-gui/res/cardsfolder/h/hero_of_goma_fada.txt +++ b/forge-gui/res/cardsfolder/h/hero_of_goma_fada.txt @@ -2,8 +2,7 @@ Name:Hero of Goma Fada ManaCost:4 W Types:Creature Human Knight Ally PT:4/3 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Indestructible SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/h/highland_berserker.txt b/forge-gui/res/cardsfolder/h/highland_berserker.txt index caeac485877..91e73198218 100644 --- a/forge-gui/res/cardsfolder/h/highland_berserker.txt +++ b/forge-gui/res/cardsfolder/h/highland_berserker.txt @@ -2,8 +2,7 @@ Name:Highland Berserker ManaCost:1 R Types:Creature Human Berserker Ally PT:2/1 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control gain first strike until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPump | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control gain first strike until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control gain first strike until end of turn. SVar:TrigPump:DB$ PumpAll | ValidCards$ Ally.YouCtrl | KW$ First Strike SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/h/hunters_edge.txt b/forge-gui/res/cardsfolder/h/hunters_edge.txt index 19b5d2207a7..e0cfb0f407e 100644 --- a/forge-gui/res/cardsfolder/h/hunters_edge.txt +++ b/forge-gui/res/cardsfolder/h/hunters_edge.txt @@ -1,8 +1,8 @@ Name:Hunter's Edge ManaCost:3 G Types:Sorcery -A:SP$ PutCounter | Cost$ 3 G | ValidTgts$ Creature.YouCtrl | CounterType$ P1P1 | | TgtPrompt$ Select target creature you control to put a +1/+1 counter | SubAbility$ DBDamage | SpellDescription$ Put a +1/+1 counter on target creature you control. Then that creature deals damage equal to its power to target creature you don't control. -SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creaturer you don't control | NumDmg$ X | DamageSource$ ParentTarget +A:SP$ PutCounter | Cost$ 3 G | ValidTgts$ Creature.YouCtrl | CounterType$ P1P1 | TgtPrompt$ Select target creature you control | SubAbility$ DBDamage | StackDescription$ Put a +1/+1 counter on {c:ThisTargetedCard}. | SpellDescription$ Put a +1/+1 counter on target creature you control. Then that creature deals damage equal to its power to target creature you don't control. +SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget | AILogic$ PowerDmg | StackDescription$ Then {c:ParentTarget} deals damage equal to its power to {c:ThisTargetedCard}. SVar:X:ParentTargeted$CardPower DeckHas:Ability$Counters Oracle:Put a +1/+1 counter on target creature you control. Then that creature deals damage equal to its power to target creature you don't control. diff --git a/forge-gui/res/cardsfolder/k/kabira_evangel.txt b/forge-gui/res/cardsfolder/k/kabira_evangel.txt index 629f6db4d1e..b735048624c 100644 --- a/forge-gui/res/cardsfolder/k/kabira_evangel.txt +++ b/forge-gui/res/cardsfolder/k/kabira_evangel.txt @@ -2,8 +2,7 @@ Name:Kabira Evangel ManaCost:2 W Types:Creature Human Cleric Ally PT:2/3 -T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigProt | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may choose a color. If you do, Allies you control gain protection from the chosen color until end of turn. -T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigProt | OptionalDecider$ You | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may choose a color. If you do, Allies you control gain protection from the chosen color until end of turn. +T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigProt | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may choose a color. If you do, Allies you control gain protection from the chosen color until end of turn. SVar:TrigProt:DB$ProtectionAll | ValidCards$ Card.Ally+YouCtrl | Gains$ Choice | Choices$ AnyColor SVar:Picture:http://www.wizards.com/global/images/magic/general/kabira_evangel.jpg Oracle:Whenever Kabira Evangel or another Ally enters the battlefield under your control, you may choose a color. If you do, Allies you control gain protection from the chosen color until end of turn. diff --git a/forge-gui/res/cardsfolder/k/kor_bladewhirl.txt b/forge-gui/res/cardsfolder/k/kor_bladewhirl.txt index d71feccae8a..cb9ab24cbfb 100644 --- a/forge-gui/res/cardsfolder/k/kor_bladewhirl.txt +++ b/forge-gui/res/cardsfolder/k/kor_bladewhirl.txt @@ -2,8 +2,7 @@ Name:Kor Bladewhirl ManaCost:1 W Types:Creature Kor Soldier Ally PT:2/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ First Strike SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/l/lantern_scout.txt b/forge-gui/res/cardsfolder/l/lantern_scout.txt index 3f2beff5631..f8330392bcb 100644 --- a/forge-gui/res/cardsfolder/l/lantern_scout.txt +++ b/forge-gui/res/cardsfolder/l/lantern_scout.txt @@ -2,8 +2,7 @@ Name:Lantern Scout ManaCost:2 W Types:Creature Human Scout Ally PT:3/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Lifelink SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/l/lathiel_the_bounteous_dawn.txt b/forge-gui/res/cardsfolder/l/lathiel_the_bounteous_dawn.txt index 8c5349649ca..3f5fd792ac2 100755 --- a/forge-gui/res/cardsfolder/l/lathiel_the_bounteous_dawn.txt +++ b/forge-gui/res/cardsfolder/l/lathiel_the_bounteous_dawn.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Unicorn PT:2/2 K:Lifelink T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of each end step, if you gained life this turn, distribute up to that many +1/+1 counters among any number of other target creatures. -SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.Other | TgtPrompt$ Select any number of other target creatures to distribute counters to | CounterType$ P1P1 | TargetMin$ 0 | TargetMax$ X | DividedAsYouChoose$ X +SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.Other | TgtPrompt$ Select any number of other target creatures to distribute counters to | CounterType$ P1P1 | TargetMin$ 0 | TargetMax$ X | DividedAsYouChoose$ X | DividedUpTo$ True SVar:X:Count$LifeYouGainedThisTurn DeckHints:Ability$LifeGain DeckHas:Ability$Counters & Ability$LifeGain diff --git a/forge-gui/res/cardsfolder/m/makindi_patrol.txt b/forge-gui/res/cardsfolder/m/makindi_patrol.txt index 1423d141228..fb1eea567e7 100644 --- a/forge-gui/res/cardsfolder/m/makindi_patrol.txt +++ b/forge-gui/res/cardsfolder/m/makindi_patrol.txt @@ -2,8 +2,7 @@ Name:Makindi Patrol ManaCost:2 W Types:Creature Human Knight Ally PT:2/3 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Vigilance SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/m/murasa_pyromancer.txt b/forge-gui/res/cardsfolder/m/murasa_pyromancer.txt index c59b4da83fb..dd6cfecfc49 100644 --- a/forge-gui/res/cardsfolder/m/murasa_pyromancer.txt +++ b/forge-gui/res/cardsfolder/m/murasa_pyromancer.txt @@ -2,8 +2,7 @@ Name:Murasa Pyromancer ManaCost:4 R R Types:Creature Human Shaman Ally PT:3/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have CARDNAME deal damage to target creature equal to the number of Allies you control. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have CARDNAME deal damage to target creature equal to the number of Allies you control. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have CARDNAME deal damage to target creature equal to the number of Allies you control. SVar:TrigDamage:DB$DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ NumAllies SVar:NumAllies:Count$Valid Ally.YouCtrl SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/n/natures_way.txt b/forge-gui/res/cardsfolder/n/natures_way.txt index f117c3130f6..4853ce3b1b6 100644 --- a/forge-gui/res/cardsfolder/n/natures_way.txt +++ b/forge-gui/res/cardsfolder/n/natures_way.txt @@ -2,7 +2,7 @@ Name:Nature's Way ManaCost:1 G Types:Sorcery A:SP$ Pump | Cost$ 1 G | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | KW$ Vigilance & Trample | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target creature you control gains vigilance and trample until end of turn. It deals damage equal to its power to target creature you don't control. -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/natures_way.jpg Oracle:Target creature you control gains vigilance and trample until end of turn. It deals damage equal to its power to target creature you don't control. diff --git a/forge-gui/res/cardsfolder/o/ondu_champion.txt b/forge-gui/res/cardsfolder/o/ondu_champion.txt index c003273347d..1f5b40842ae 100644 --- a/forge-gui/res/cardsfolder/o/ondu_champion.txt +++ b/forge-gui/res/cardsfolder/o/ondu_champion.txt @@ -2,8 +2,7 @@ Name:Ondu Champion ManaCost:2 R R Types:Creature Minotaur Warrior Ally PT:4/3 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Trample SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/o/ondu_cleric.txt b/forge-gui/res/cardsfolder/o/ondu_cleric.txt index 59670fe7818..d1c456a4265 100644 --- a/forge-gui/res/cardsfolder/o/ondu_cleric.txt +++ b/forge-gui/res/cardsfolder/o/ondu_cleric.txt @@ -2,8 +2,7 @@ Name:Ondu Cleric ManaCost:1 W Types:Creature Kor Cleric Ally PT:1/1 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self| OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may gain life equal to the number of Allies you control. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may gain life equal to the number of Allies you control. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may gain life equal to the number of Allies you control. SVar:TrigGainLife:DB$GainLife | Defined$ You | LifeAmount$ X SVar:X:Count$Valid Ally.YouCtrl SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/p/prismari_command.txt b/forge-gui/res/cardsfolder/p/prismari_command.txt index a7639d63ff7..631d9f04c91 100644 --- a/forge-gui/res/cardsfolder/p/prismari_command.txt +++ b/forge-gui/res/cardsfolder/p/prismari_command.txt @@ -4,8 +4,8 @@ Types:Instant A:SP$ Charm | Cost$ 1 U R | Choices$ DBShock,DBLoot,DBTreasure,DBShatter | CharmNum$ 2 SVar:DBShock:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to any target. SVar:DBLoot:DB$ Draw | NumCards$ 2 | ValidTgts$ Player | TgtPrompt$ Choose a player | SpellDescription$ • Target player draws two cards, then discards two cards. | SubAbility$ DBDiscard -SVar:DBDiscard:DB$ Discard | Defined$ Targeted | NumCards$ 2 | Mode$ TgtChoose -SVar:DBTreasure:DB$ Token | ValidTgts$ Player | TgtPrompt$ Select target player | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You | SpellDescription$ • Target player creates a Treasure token. +SVar:DBDiscard:DB$ Discard | Defined$ ParentTarget | NumCards$ 2 | Mode$ TgtChoose +SVar:DBTreasure:DB$ Token | ValidTgts$ Player | TgtPrompt$ Select target player | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ ThisTargetedPlayer | SpellDescription$ • Target player creates a Treasure token. SVar:DBShatter:DB$ Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact. | SpellDescription$ • Destroy target artifact. DeckHas:Ability$Token Oracle:Choose two —\n• Prismari Command deals 2 damage to any target.\n• Target player draws two cards, then discards two cards.\n• Target player creates a Treasure token.\n• Destroy target artifact. diff --git a/forge-gui/res/cardsfolder/r/rabid_bite.txt b/forge-gui/res/cardsfolder/r/rabid_bite.txt index b12ff224209..7ee4a3727bf 100644 --- a/forge-gui/res/cardsfolder/r/rabid_bite.txt +++ b/forge-gui/res/cardsfolder/r/rabid_bite.txt @@ -2,7 +2,7 @@ Name:Rabid Bite ManaCost:1 G Types:Sorcery A:SP$ Pump | Cost$ 1 G | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target creature you control deals damage equal to its power to target creature you don't control -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/rabid_bite.jpg Oracle:Target creature you control deals damage equal to its power to target creature you don't control. diff --git a/forge-gui/res/cardsfolder/r/ram_through.txt b/forge-gui/res/cardsfolder/r/ram_through.txt index af7155ee67c..7f819088274 100644 --- a/forge-gui/res/cardsfolder/r/ram_through.txt +++ b/forge-gui/res/cardsfolder/r/ram_through.txt @@ -2,6 +2,6 @@ Name:Ram Through ManaCost:1 G Types:Instant A:SP$ Pump | Cost$ 1 G | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | StackDescription$ SpellDescription | SpellDescription$ Target creature you control deals damage equal to its power to target creature you don't control. If the creature you control has trample, excess damage is dealt to that creature's controller instead. -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget | ExcessDamage$ TargetedController | ExcessDamageCondition$ Card.withTrample | StackDescription$ None +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget | ExcessDamage$ TargetedController | ExcessDamageCondition$ Card.withTrample | StackDescription$ None SVar:X:ParentTargeted$CardPower Oracle:Target creature you control deals damage equal to its power to target creature you don't control. If the creature you control has trample, excess damage is dealt to that creature's controller instead. diff --git a/forge-gui/res/cardsfolder/r/resolute_blademaster.txt b/forge-gui/res/cardsfolder/r/resolute_blademaster.txt index 7798c263209..39dcefdb594 100644 --- a/forge-gui/res/cardsfolder/r/resolute_blademaster.txt +++ b/forge-gui/res/cardsfolder/r/resolute_blademaster.txt @@ -2,8 +2,7 @@ Name:Resolute Blademaster ManaCost:3 R W Types:Creature Human Soldier Ally PT:2/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Double Strike SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/s/said_done.txt b/forge-gui/res/cardsfolder/s/said_done.txt index 2bd2bc09fff..01df17f5f76 100644 --- a/forge-gui/res/cardsfolder/s/said_done.txt +++ b/forge-gui/res/cardsfolder/s/said_done.txt @@ -11,5 +11,5 @@ Name:Done ManaCost:3 U Types:Instant A:SP$ Tap | Cost$ 3 U | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Choose up to two target creatures | ValidTgts$ Creature | SubAbility$ TrigPump | StackDescription$ SpellDescription | SpellDescription$ Tap up to two target creatures. They don't untap during their controllers' next untap step. -SVar:TrigPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True | StackDescription$ None +SVar:TrigPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent | StackDescription$ None Oracle:Tap up to two target creatures. They don't untap during their controllers' next untap step. diff --git a/forge-gui/res/cardsfolder/s/seascape_aerialist.txt b/forge-gui/res/cardsfolder/s/seascape_aerialist.txt index 53e8e68e210..202d703712d 100644 --- a/forge-gui/res/cardsfolder/s/seascape_aerialist.txt +++ b/forge-gui/res/cardsfolder/s/seascape_aerialist.txt @@ -2,8 +2,7 @@ Name:Seascape Aerialist ManaCost:4 U Types:Creature Merfolk Wizard Ally PT:2/3 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control gain flying until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPump | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control gain flying until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Ally creatures you control gain flying until end of turn. SVar:TrigPump:DB$ PumpAll | ValidCards$ Ally.YouCtrl | KW$ Flying SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/s/shadrix_silverquill.txt b/forge-gui/res/cardsfolder/s/shadrix_silverquill.txt index d950be76040..ae7ea2ae45a 100644 --- a/forge-gui/res/cardsfolder/s/shadrix_silverquill.txt +++ b/forge-gui/res/cardsfolder/s/shadrix_silverquill.txt @@ -6,9 +6,9 @@ K:Flying K:Double Strike T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCharm | TriggerDescription$ At the beginning of combat on your turn, you may ABILITY SVar:TrigCharm:DB$ Charm | CharmNum$ 2 | Optional$ True | Choices$ Token,Card,Counters | AdditionalDescription$ Each mode must target a different player. -SVar:Token:DB$ Token | ValidTgts$ Player | TargetUnique$ True | TgtPrompt$ Select target player to create a 2/1 white and black inkling creature token with flying | TokenAmount$ 1 | TokenScript$ wb_2_1_inkling_flying | TokenOwner$ TargetedPlayer | SpellDescription$ Target player creates a 2/1 white and black Inkling creature token with flying. +SVar:Token:DB$ Token | ValidTgts$ Player | TargetUnique$ True | TgtPrompt$ Select target player to create a 2/1 white and black inkling creature token with flying | TokenAmount$ 1 | TokenScript$ wb_2_1_inkling_flying | TokenOwner$ ThisTargetedPlayer | SpellDescription$ Target player creates a 2/1 white and black Inkling creature token with flying. SVar:Card:DB$ Draw | ValidTgts$ Player | TargetUnique$ True | TgtPrompt$ Select target player to draw a card and lose 1 life | SubAbility$ DBLoseLife | SpellDescription$ Target player draws a card and loses 1 life. -SVar:DBLoseLife:DB$ LoseLife | Defined$ Targeted | LifeAmount$ 1 +SVar:DBLoseLife:DB$ LoseLife | Defined$ ParentTarget | LifeAmount$ 1 SVar:Counters:DB$ PutCounterAll | ValidTgts$ Player | Placer$ TargetedPlayer | TargetUnique$ True | TgtPrompt$ Select target player to put a +1/+1 counter on each creature they control | ValidCards$ Creature.TargetedPlayerCtrl | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Target player puts a +1/+1 counter on each creature they control. DeckHas:Ability$Token & Ability$Counters Oracle:Flying, double strike\nAt the beginning of combat on your turn, you may choose two. Each mode must target a different player.\n• Target player creates a 2/1 white and black Inkling creature token with flying.\n• Target player draws a card and loses 1 life.\n• Target player puts a +1/+1 counter on each creature they control. diff --git a/forge-gui/res/cardsfolder/s/silverquill_command.txt b/forge-gui/res/cardsfolder/s/silverquill_command.txt index f9f126608b2..9b0986489c6 100644 --- a/forge-gui/res/cardsfolder/s/silverquill_command.txt +++ b/forge-gui/res/cardsfolder/s/silverquill_command.txt @@ -5,6 +5,6 @@ A:SP$ Charm | Cost$ 2 W B | Choices$ DBPump,DBReturn,DBDraw,SacCreature | CharmN SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 3 | NumDef$ 3 | KW$ Flying | SpellDescription$ Target creature gets +3/+3 and gains flying until end of turn. SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Card.Creature+cmcLE2+YouOwn | TgtPrompt$ Select target creature card with mana value 2 or less | SpellDescription$ Return target creature card with mana value 2 or less from your graveyard to the battlefield. SVar:DBDraw:DB$ Draw | ValidTgts$ Player | NumCards$ 1 | SubAbility$ DBLoseLife | SpellDescription$ Target player draws a card and loses 1 life. -SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1 | Defined$ Targeted +SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1 | Defined$ ParentTarget SVar:SacCreature:DB$ Sacrifice | ValidTgts$ Opponent | SacValid$ Creature | SpellDescription$ Target opponent sacrifices a creature. Oracle:Choose two —\n• Target creature gets +3/+3 and gains flying until end of turn.\n• Return target creature card with mana value 2 or less from your graveyard to the battlefield.\n• Target player draws a card and loses 1 life.\n• Target opponent sacrifices a creature. diff --git a/forge-gui/res/cardsfolder/s/souls_fire.txt b/forge-gui/res/cardsfolder/s/souls_fire.txt index 02dc64c8e6b..11459e57b1a 100644 --- a/forge-gui/res/cardsfolder/s/souls_fire.txt +++ b/forge-gui/res/cardsfolder/s/souls_fire.txt @@ -2,7 +2,7 @@ Name:Soul's Fire ManaCost:2 R Types:Instant A:SP$ Pump | Cost$ 2 R | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target creature you control deals damage equal to its power to any target. -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | AILogic$ PowerDmg | TgtPrompt$ Select any target | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | AILogic$ PowerDmg | TgtPrompt$ Select any target | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/souls_fire.jpg Oracle:Target creature you control deals damage equal to its power to any target. diff --git a/forge-gui/res/cardsfolder/s/spirit_flare.txt b/forge-gui/res/cardsfolder/s/spirit_flare.txt index 10d62fba2fc..ced3bf37798 100644 --- a/forge-gui/res/cardsfolder/s/spirit_flare.txt +++ b/forge-gui/res/cardsfolder/s/spirit_flare.txt @@ -2,10 +2,8 @@ Name:Spirit Flare ManaCost:3 W Types:Instant K:Flashback:1 W PayLife<3> -A:SP$ Tap | Cost$ 3 W | TgtPrompt$ Select target untapped creature you control | ValidTgts$ Creature.untapped+YouCtrl | SubAbility$ SpiritDmg | RememberTapped$ True | SpellDescription$ Tap target untapped creature you control. If you do, it deals damage equal to its power to target attacking or blocking creature an opponent controls. -SVar:SpiritDmg:DB$ DealDamage | ValidTgts$ Creature.attacking+OppCtrl,Creature.blocking+OppCtrl | TgtPrompt$ Select target attacking or blocking creature an opponent controls | NumDmg$ SpiritStrength | ConditionCheckSVar$ WasTapped | ConditionSVarCompare$ GE1 -SVar:SpiritStrength:Remembered$CardPower -SVar:WasTapped:Remembered$Amount -AI:RemoveDeck:All +A:SP$ Tap | Cost$ 3 W | TgtPrompt$ Select target untapped creature you control | ValidTgts$ Creature.untapped+YouCtrl | SubAbility$ SpiritDmg | SpellDescription$ Tap target untapped creature you control. If you do, it deals damage equal to its power to target attacking or blocking creature an opponent controls. +SVar:SpiritDmg:DB$ DealDamage | ValidTgts$ Creature.attacking+OppCtrl,Creature.blocking+OppCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target attacking or blocking creature an opponent controls | NumDmg$ X | DamageSource$ ParentTarget +SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/spirit_flare.jpg Oracle:Tap target untapped creature you control. If you do, it deals damage equal to its power to target attacking or blocking creature an opponent controls.\nFlashback—{1}{W}, Pay 3 life. (You may cast this card from your graveyard for its flashback cost. Then exile it.) diff --git a/forge-gui/res/cardsfolder/t/tail_slash.txt b/forge-gui/res/cardsfolder/t/tail_slash.txt index 849754a6cbd..ff44b39b644 100644 --- a/forge-gui/res/cardsfolder/t/tail_slash.txt +++ b/forge-gui/res/cardsfolder/t/tail_slash.txt @@ -2,7 +2,7 @@ Name:Tail Slash ManaCost:2 R Types:Instant A:SP$ Pump | Cost$ 2 R | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you control | SubAbility$ TailDamage | StackDescription$ None | SpellDescription$ Target creature you control deals damage equal to its power to target creature you don't control. -SVar:TailDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:TailDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/tail_strike.jpg Oracle:Target creature you control deals damage equal to its power to target creature you don't control. diff --git a/forge-gui/res/cardsfolder/t/tajuru_archer.txt b/forge-gui/res/cardsfolder/t/tajuru_archer.txt index e40f0f756ef..271f18b6082 100644 --- a/forge-gui/res/cardsfolder/t/tajuru_archer.txt +++ b/forge-gui/res/cardsfolder/t/tajuru_archer.txt @@ -2,8 +2,7 @@ Name:Tajuru Archer ManaCost:2 G Types:Creature Elf Archer Ally PT:1/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self| OptionalDecider$ You | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have CARDNAME deal damage to target creature with flying equal to the number of Allies you control. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have CARDNAME deal damage to target creature with flying equal to the number of Allies you control. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have CARDNAME deal damage to target creature with flying equal to the number of Allies you control. SVar:TrigDamage:DB$DealDamage | ValidTgts$ Creature.withFlying | NumDmg$ NumAllies | TgtPrompt$ Select a target creature with flying. SVar:NumAllies:Count$Valid Ally.YouCtrl SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/t/tajuru_beastmaster.txt b/forge-gui/res/cardsfolder/t/tajuru_beastmaster.txt index 3609516ddaf..13a5c826f92 100644 --- a/forge-gui/res/cardsfolder/t/tajuru_beastmaster.txt +++ b/forge-gui/res/cardsfolder/t/tajuru_beastmaster.txt @@ -2,8 +2,7 @@ Name:Tajuru Beastmaster ManaCost:5 G Types:Creature Elf Warrior Ally PT:5/5 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control get +1/+1 until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control get +1/+1 until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control get +1/+1 until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | NumAtt$ 1 | NumDef$ 1 SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/t/tajuru_warcaller.txt b/forge-gui/res/cardsfolder/t/tajuru_warcaller.txt index 88641024c51..8aee5fa8517 100644 --- a/forge-gui/res/cardsfolder/t/tajuru_warcaller.txt +++ b/forge-gui/res/cardsfolder/t/tajuru_warcaller.txt @@ -2,8 +2,7 @@ Name:Tajuru Warcaller ManaCost:3 G G Types:Creature Elf Warrior Ally PT:2/1 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TrigPumpAll | TriggerDescription$ Rally — Whenever CARDNAME or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | NumAtt$ +2 | NumDef$ +2 SVar:PlayMain1:TRUE SVar:BuffedBy:Ally diff --git a/forge-gui/res/cardsfolder/t/talus_paladin.txt b/forge-gui/res/cardsfolder/t/talus_paladin.txt index 0cf75592d69..db41c73255e 100644 --- a/forge-gui/res/cardsfolder/t/talus_paladin.txt +++ b/forge-gui/res/cardsfolder/t/talus_paladin.txt @@ -2,8 +2,7 @@ Name:Talus Paladin ManaCost:3 W Types:Creature Human Knight Ally PT:2/3 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigPumpAll | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Allies you control gain lifelink until end of turn, and you may put a +1/+1 counter on CARDNAME. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigPumpAll | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Allies you control gain lifelink until end of turn, and you may put a +1/+1 counter on CARDNAME. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigPumpAll | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may have Allies you control gain lifelink until end of turn, and you may put a +1/+1 counter on CARDNAME. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Ally.YouCtrl | KW$ Lifelink | SubAbility$ DBCounter SVar:DBCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | OptionalDecider$ You SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/t/thrash_threat.txt b/forge-gui/res/cardsfolder/t/thrash_threat.txt index be712640725..f5023e26b47 100644 --- a/forge-gui/res/cardsfolder/t/thrash_threat.txt +++ b/forge-gui/res/cardsfolder/t/thrash_threat.txt @@ -3,7 +3,7 @@ ManaCost:R/G R/G AlternateMode: Split Types:Instant A:SP$ Pump | Cost$ RG RG | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | StackDescription$ None | SpellDescription$ Target creature you control deals damage equal to its power to target creature you don't control -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl,Planeswalker.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature or planeswalker you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl,Planeswalker.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature or planeswalker you don't control | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower Oracle:Target creature you control deals damage equal to its power to target creature or planeswalker you don't control. diff --git a/forge-gui/res/cardsfolder/t/tuktuk_grunts.txt b/forge-gui/res/cardsfolder/t/tuktuk_grunts.txt index 383dd857edc..23a8c8f9f1c 100644 --- a/forge-gui/res/cardsfolder/t/tuktuk_grunts.txt +++ b/forge-gui/res/cardsfolder/t/tuktuk_grunts.txt @@ -3,8 +3,7 @@ ManaCost:4 R Types:Creature Goblin Warrior Ally PT:2/2 K:Haste -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may put a +1/+1 counter on CARDNAME. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPutCounter | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may put a +1/+1 counter on CARDNAME. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may put a +1/+1 counter on CARDNAME. SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 SVar:BuffedBy:Ally SVar:Picture:http://www.wizards.com/global/images/magic/general/tuktuk_grunts.jpg diff --git a/forge-gui/res/cardsfolder/t/tuktuk_scrapper.txt b/forge-gui/res/cardsfolder/t/tuktuk_scrapper.txt index 288621d08da..2377f4025a7 100644 --- a/forge-gui/res/cardsfolder/t/tuktuk_scrapper.txt +++ b/forge-gui/res/cardsfolder/t/tuktuk_scrapper.txt @@ -2,8 +2,7 @@ Name:Tuktuk Scrapper ManaCost:3 R Types:Creature Goblin Artificer Ally PT:2/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TuktukDestroy | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may destroy target artifact. If that artifact is put into a graveyard this way, Tuktuk Scrapper deals damage to that artifact's controller equal to the number of Allies you control. -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Ally.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TuktukDestroy | Secondary$ True | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may destroy target artifact. If that artifact is put into a graveyard this way, Tuktuk Scrapper deals damage to that artifact's controller equal to the number of Allies you control. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Ally.Other+YouCtrl | Execute$ TuktukDestroy | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME or another Ally enters the battlefield under your control, you may destroy target artifact. If that artifact is put into a graveyard this way, Tuktuk Scrapper deals damage to that artifact's controller equal to the number of Allies you control. SVar:TuktukDestroy:DB$ Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact | RememberDestroyed$ True | SubAbility$ TuktukDamage | SpellDescription$ If that artifact is put into a graveyard this way, SVar:TuktukDamage:DB$ DealDamage | Defined$ TargetedController | NumDmg$ X | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/upcoming/aberrant_mind_sorceror.txt b/forge-gui/res/cardsfolder/upcoming/aberrant_mind_sorceror.txt new file mode 100644 index 00000000000..cbbbeed05ec --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/aberrant_mind_sorceror.txt @@ -0,0 +1,10 @@ +Name:Aberrant Mind Sorcerer +ManaCost:4 U +Types:Creature Human Elf Shaman +PT:3/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigPump | TriggerDescription$ Psionic Spells – When CARDNAME enters the battlefield, choose target instant or sorcery card in your graveyard, then roll a d20. +SVar:TrigPump:DB$ Pump | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtZone$ Graveyard | TgtPrompt$ Choose target instant or sorcery card in your graveyard | SubAbility$ DBRollDice +SVar:DBRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-9:DBLibrary,10-20:DBHand +SVar:DBLibrary:DB$ ChangeZone | Defined$ Targeted | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 0 | Optional$ True | SpellDescription$ 1-9 VERT You may put that card on top of your library. +SVar:DBHand:DB$ ChangeZone | Defined$ Targeted | Origin$ Graveyard | Destination$ Hand | SpellDescription$ 10-20 VERT Return that card to your hand. +Oracle:Psionic Spells — When Aberrant Mind Sorcerer enters the battlefield, choose target instant or sorcery card in your graveyard, then roll a d20.\n1-9 | You may put that card on top of your library.\n10-20 | Return that card to your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/arborea_pegasus.txt b/forge-gui/res/cardsfolder/upcoming/arborea_pegasus.txt new file mode 100644 index 00000000000..646e66c8b3b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/arborea_pegasus.txt @@ -0,0 +1,9 @@ +Name:Arborea Pegasus +ManaCost:3 W +Types:Creature Pegasus +PT:2/3 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, target creature gets +1/+1 and gains flying until end of turn. +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | NumDef$ 1 | KW$ Flying +SVar:PlayMain1:TRUE +Oracle:Flying\nWhen Arborea Pegasus enters the battlefield, target creature gets +1/+1 and gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/blink_dog.txt b/forge-gui/res/cardsfolder/upcoming/blink_dog.txt index a190f2ad714..8187b822a7f 100644 --- a/forge-gui/res/cardsfolder/upcoming/blink_dog.txt +++ b/forge-gui/res/cardsfolder/upcoming/blink_dog.txt @@ -3,5 +3,5 @@ ManaCost:2 W Types:Creature Dog PT:1/1 K:Double Strike -A:AB$ Phases | Cost$ 3 W | Defined$ Self | SpellDescription$ Teleport — CARDNAME phases out. +A:AB$ Phases | Cost$ 3 W | Defined$ Self | PrecostDesc$ Teleport — | SpellDescription$ CARDNAME phases out. Oracle:Double strike\nTeleport — {3}{W}: Blink Dog phases out. (Treat it and anything attached to it as though they don't exist until your next turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/check_for_traps.txt b/forge-gui/res/cardsfolder/upcoming/check_for_traps.txt index eb690948269..c7a37d6ee36 100644 --- a/forge-gui/res/cardsfolder/upcoming/check_for_traps.txt +++ b/forge-gui/res/cardsfolder/upcoming/check_for_traps.txt @@ -1,9 +1,9 @@ Name:Check for Traps ManaCost:1 B Types:Sorcery -A:SP$ ChangeZone | Cost$ 1 B | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | DefinedPlayer$ Targeted | Chooser$ You | ChangeType$ Card.nonLand | ChangeNum$ 1 | IsCurse$ True | Mandatory$ True | RememberChanged$ True | SubAbility$ TheyLose | SpellDescription$ Target opponent reveals their hand. You choose a nonland card from it. Exile that card. If an instant card or a card with flash is exiled this way, they lose 1 life. Otherwise, you lose 1 life. -SVar:TheyLose:DB$ LoseLife | Defined$ RememberedOwner | LifeAmount$ 1 | ConditionCheckSVar$ X | SubAbility$ YouLose -SVar:YouLose:DB$ LoseLife | LifeAmount$ 1 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBCleanup +A:SP$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Defined$ Targeted | SubAbility$ DBExile | StackDescription$ {p:Targeted} reveals their hand. | SpellDescription$ Target opponent reveals their hand. You choose a nonland card from it. Exile that card. If an instant card or a card with flash is exiled this way, they lose 1 life. Otherwise, you lose 1 life. +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | DefinedPlayer$ Targeted | Chooser$ You | ChangeType$ Card.nonLand | ChangeNum$ 1 | Mandatory$ True | RememberChanged$ True | SubAbility$ TheyLose | StackDescription$ {p:You} chooses a nonland card from it. Exile that card. +SVar:TheyLose:DB$ LoseLife | Defined$ Targeted | LifeAmount$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Instant,Card.withFlash | SubAbility$ YouLose | StackDescription$ If an instant card or a card with flash is exiled this way, {p:Targeted} loses 1 life. +SVar:YouLose:DB$ LoseLife | LifeAmount$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Instant,Card.withFlash | ConditionCompare$ EQ0 | SubAbility$ DBCleanup | StackDescription$ Otherwise, {p:You} loses 1 life. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Remembered$Valid Instant,Card.withFlash Oracle:Target opponent reveals their hand. You choose a nonland card from it. Exile that card. If an instant card or a card with flash is exiled this way, they lose 1 life. Otherwise, you lose 1 life. diff --git a/forge-gui/res/cardsfolder/upcoming/clever_conjurer.txt b/forge-gui/res/cardsfolder/upcoming/clever_conjurer.txt index f05c302fc13..a6168a4752b 100644 --- a/forge-gui/res/cardsfolder/upcoming/clever_conjurer.txt +++ b/forge-gui/res/cardsfolder/upcoming/clever_conjurer.txt @@ -2,5 +2,5 @@ Name:Clever Conjurer ManaCost:2 U Types:Creature Gnome Wizard PT:2/3 -A:AB$ Untap | Cost$ T | ValidTgts$ Permanent.Other+notnamedClever Conjurer | TgtPrompt$ Select another target permanent not named Clever Conjurer | SorcerySpeed$ True | SpellDescription$ Untap target permanent not named Clever Conjurer. Activate only as a sorcery. +A:AB$ Untap | Cost$ T | ValidTgts$ Permanent.Other+notnamedClever Conjurer | TgtPrompt$ Select another target permanent not named CARDNAME | SorcerySpeed$ True | PrecostDesc$ Mage Hand — | SpellDescription$ Untap target permanent not named CARDNAME. Activate only as a sorcery. Oracle:Mage Hand — {T}: Untap target permanent not named Clever Conjurer. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/upcoming/contact_other_plane.txt b/forge-gui/res/cardsfolder/upcoming/contact_other_plane.txt new file mode 100644 index 00000000000..13be30474b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/contact_other_plane.txt @@ -0,0 +1,9 @@ +Name:Contact Other Plane +ManaCost:3 U +Types:Instant +A:SP$ RollDice | Cost$ 3 U | Sides$ 20 | ResultSubAbilities$ 1-9:DBDraw2,10-19:DBScry2,20:DBScry3 | SpellDescription$ Roll a d20. +SVar:DBDraw2:DB$ Draw | NumCards$ 2 | SpellDescription$ 1-9 VERT Draw two cards. +SVar:DBScry2:DB$ Scry | ScryNum$ 2 | SubAbility$ DBDraw2 | SpellDescription$ 10-19 VERT Scry 2, then draw two cards. +SVar:DBScry3:DB$ Scry | ScryNum$ 3 | SubAbility$ DBDraw3 | SpellDescription$ 20 VERT Scry 3, then draw three cards. +SVar:DBDraw3:DB$ Draw | NumCards$ 3 +Oracle:Roll a d20.\n1-9 | Draw two cards.\n10-19 | Scry 2, then draw two cards.\n20 | Scry 3, then draw three cards. diff --git a/forge-gui/res/cardsfolder/upcoming/dragon_turtle.txt b/forge-gui/res/cardsfolder/upcoming/dragon_turtle.txt new file mode 100644 index 00000000000..dde98d4d2e7 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dragon_turtle.txt @@ -0,0 +1,11 @@ +Name:Dragon Turtle +ManaCost:1 U U +Types:Creature Dragon Turtle +PT:3/5 +K:Flash +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Drag Below – When CARDNAME enters the battlefield, tap it and up to one target creature an opponent controls. They don’t untap during their controllers' next untap steps. +SVar:TrigTap:DB$ Tap | Defined$ Self | RememberTapped$ True | SubAbility$ DBTap +SVar:DBTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select up to one target creature an opponent controls | TargetMin$ 0 | TargetMax$ 1 | AlwaysRemember$ True | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:Flash\nDrag Below — When Dragon Turtle enters the battlefield, tap it and up to one target creature an opponent controls. They don’t untap during their controllers' next untap steps. diff --git a/forge-gui/res/cardsfolder/upcoming/drider.txt b/forge-gui/res/cardsfolder/upcoming/drider.txt new file mode 100644 index 00000000000..7818bdc5b33 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/drider.txt @@ -0,0 +1,9 @@ +Name:Drider +ManaCost:4 B +Types:Creature Elf Spider +PT:4/3 +K:Reach +T:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ TrigToken | CombatDamage$ True | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a 2/1 black Spider creature token with menace and reach. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_2_1_spider_menace_reach | TokenOwner$ You +DeckHas:Ability$Token +Oracle:Reach\nWhenever Drider deals combat damage to a player, create a 2/1 black Spider creature token with menace and reach. diff --git a/forge-gui/res/cardsfolder/upcoming/dueling_rapier.txt b/forge-gui/res/cardsfolder/upcoming/dueling_rapier.txt new file mode 100644 index 00000000000..7d1d3348fac --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dueling_rapier.txt @@ -0,0 +1,9 @@ +Name:Dueling Rapier +ManaCost:R +Types:Artifact Equipment +K:Flash +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control. +SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | Description$ Equipped creature gets +2/+0. +K:Equip:3 +Oracle:Flash\nWhen Dueling Rapier enters the battlefield, attach it to target creature you control.\nEquipped creature gets +2/+0.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/upcoming/goblin_morningstar.txt b/forge-gui/res/cardsfolder/upcoming/goblin_morningstar.txt new file mode 100644 index 00000000000..a8514887484 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/goblin_morningstar.txt @@ -0,0 +1,12 @@ +Name:Goblin Morningstar +ManaCost:1 R +Types:Artifact Equipment +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddKeyword$ Trample | Description$ Equipped creature gets +1/+0 and has trample. +K:Equip:1 R +T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigRollDice | TriggerDescription$ When CARDNAME enters the battlefield, ABILITY +SVar:TrigRollDice:DB$ RollDice | Sides$ 20 | RememberRoll$ True | SubAbility$ DBToken | SpellDescription$ roll a d20. +SVar:DBToken:DB$ Token | TokenScript$ r_1_1_goblin | SubAbility$ DBAttach | RememberTokens$ True | SpellDescription$ 1-9 VERT Create a 1/1 red Goblin creature token. +SVar:DBAttach:DB$ Attach | Defined$ Remembered | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | SpellDescription$ 10-20 VERT Create a 1/1 red Goblin creature token, then attach CARDNAME to it. +SVar:X:Count$RememberedNumber +DeckHas:Ability$Token +Oracle:Equipped creature gets +1/+0 and has trample.\nEquip {1}{R}\nWhen Goblin Morningstar enters the battlefield, roll a d20.\n1-9 | Create a 1/1 red Goblin creature token.\n10-20 | Create a 1/1 red Goblin creature token, then attach Goblin Morningstar to it. diff --git a/forge-gui/res/cardsfolder/upcoming/guild_thief.txt b/forge-gui/res/cardsfolder/upcoming/guild_thief.txt new file mode 100644 index 00000000000..a8274e8699c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/guild_thief.txt @@ -0,0 +1,9 @@ +Name:Guild Thief +ManaCost:1 U +Types:Creature Orc Rogue +PT:1/1 +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, put a +1/+1 counter on it. +SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +A:AB$ Pump | Cost$ 3 U | Defined$ Self | KW$ HIDDEN Unblockable | SpellDescription$ Cunning Action — CARDNAME can't be blocked this turn. +DeckHas:Ability$Counters +Oracle:Whenever Guild Thief deals combat damage to a player, put a +1/+1 counter on it.\nCunning Action — {3}{U}: Guild Thief can't be blocked this turn. diff --git a/forge-gui/res/cardsfolder/upcoming/hill_giant_herdgorger.txt b/forge-gui/res/cardsfolder/upcoming/hill_giant_herdgorger.txt new file mode 100644 index 00000000000..3931273fcd0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hill_giant_herdgorger.txt @@ -0,0 +1,8 @@ +Name:Hill Giant Herdgorger +ManaCost:4 G G +Types:Creature Giant +PT:7/6 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerDescription$ When CARDNAME enters the battlefield, you gain 3 life. +SVar:TrigGainLife:DB$ GainLife | LifeAmount$ 3 +DeckHas:Ability$LifeGain +Oracle:When Hill Giant Herdgorger enters the battlefield, you gain 3 life. diff --git a/forge-gui/res/cardsfolder/upcoming/hoard_robber.txt b/forge-gui/res/cardsfolder/upcoming/hoard_robber.txt new file mode 100644 index 00000000000..d643cce3350 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/hoard_robber.txt @@ -0,0 +1,8 @@ +Name:Hoard Robber +ManaCost:1 B +Types:Creature Tiefling Rogue +PT:1/3 +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigTreasure | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a Treasure token. (It’s an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.") +SVar:TrigTreasure:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You +DeckHas:Ability$Token +Oracle:Whenever Hoard Robber deals combat damage to a player, create a Treasure token. (It’s an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.") diff --git a/forge-gui/res/cardsfolder/upcoming/iron_golem.txt b/forge-gui/res/cardsfolder/upcoming/iron_golem.txt new file mode 100644 index 00000000000..868878aa41f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/iron_golem.txt @@ -0,0 +1,8 @@ +Name:Iron Golem +ManaCost:4 +Types:Artifact Creature Golem +PT:5/3 +K:Vigilance +K:CARDNAME attacks each combat if able. +K:CARDNAME blocks each combat if able. +Oracle:Vigilance\nIron Golem attacks or blocks each combat if able. diff --git a/forge-gui/res/cardsfolder/upcoming/long_rest.txt b/forge-gui/res/cardsfolder/upcoming/long_rest.txt new file mode 100644 index 00000000000..4f4bcec21f5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/long_rest.txt @@ -0,0 +1,12 @@ +Name:Long Rest +ManaCost:X G G G +Types:Sorcery +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TargetMin$ X | TargetMax$ X | TgtPrompt$ Choose X target cards to return from your graveyard | TargetsWithDifferentCMC$ True | ValidTgts$ Card.YouOwn | RememberChanged$ True | SubAbility$ DBSetLife | StackDescription$ Return X target cards with different mana values from your graveyard to your hand. ({c:Targeted}) | SpellDescription$ Return X target cards with different mana values from your graveyard to your hand. If eight or more cards were returned to your hand this way, your life total becomes equal to your starting life total. Exile Long Rest. +SVar:DBSetLife:DB$ SetLife | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE8 | Defined$ You | LifeAmount$ Y | SubAbility$ DBExile | StackDescription$ If eight or more cards were returned to your hand this way, your life total becomes equal to your starting life total. +SVar:DBExile:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Count$xPaid +SVar:Y:Count$YourStartingLife +DeckHas:Ability$Graveyard +DeckHints:Type$Discard +Oracle:Return X target cards with different mana values from your graveyard to your hand. If eight or more cards were returned to your hand this way, your life total becomes equal to your starting life total. Exile Long Rest. diff --git a/forge-gui/res/cardsfolder/upcoming/moon_blessed_cleric.txt b/forge-gui/res/cardsfolder/upcoming/moon_blessed_cleric.txt new file mode 100644 index 00000000000..5c951cf9929 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/moon_blessed_cleric.txt @@ -0,0 +1,7 @@ +Name:Moon-Blessed Cleric +ManaCost:2 W +Types:Creature Human Elf Cleric +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ Divine Intervention — When CARDNAME enters the battlefield, you may search your library for an enchantment card, reveal it, then shuffle and put that card on top. +SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | ChangeType$ Enchantment.YouOwn | ChangeNum$ 1 | ShuffleNonMandatory$ True +Oracle:Divine Intervention — When Moon-Blessed Cleric enters the battlefield, you may search your library for an enchantment card, reveal it, then shuffle and put that card on top. diff --git a/forge-gui/res/cardsfolder/upcoming/neverwinter_dryad.txt b/forge-gui/res/cardsfolder/upcoming/neverwinter_dryad.txt new file mode 100644 index 00000000000..3fb954771bf --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/neverwinter_dryad.txt @@ -0,0 +1,6 @@ +Name:Neverwinter Dryad +ManaCost:G +Types:Creature Dryad +PT:1/1 +A:AB$ ChangeZone | Cost$ 2 Sac<1/CARDNAME> | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Forest+Basic | ChangeNum$ 1 | SpellDescription$ Search your library for a basic Forest card, put it onto the battlefield tapped, then shuffle. +Oracle:{2}, Sacrifice Neverwinter Dryad: Search your library for a basic Forest card, put it onto the battlefield tapped, then shuffle. diff --git a/forge-gui/res/cardsfolder/upcoming/ochre_jelly.txt b/forge-gui/res/cardsfolder/upcoming/ochre_jelly.txt new file mode 100644 index 00000000000..d705b0faaeb --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ochre_jelly.txt @@ -0,0 +1,13 @@ +Name:Ochre Jelly +ManaCost:X G +Types:Creature Ooze +PT:0/0 +K:Trample +K:etbCounter:P1P1:X +SVar:X:Count$xPaid +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self+counters_GE2_P1P1 | TriggerZones$ Battlefield | Execute$ TrigDelayTrigger | TriggerDescription$ Split – When CARDNAME dies, if it had two or more +1/+1 counters on it, create a token that’s a copy of it at the beginning of the next end step. That token enters the battlefield with half that many +1/+1 counters on it, rounded down. +SVar:TrigDelayTrigger:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | RememberObjects$ TriggeredCardLKICopy | CopyTriggeringObjects$ True | Execute$ TrigCopy | TriggerDescription$ Create a token that’s a copy of it at the beginning of the next end step. That token enters the battlefield with half that many +1/+1 counters on it, rounded down. +SVar:TrigCopy:DB$ CopyPermanent | Defined$ DelayTriggerRememberedLKI | WithCountersType$ P1P1 | WithCountersAmount$ Y +SVar:Y:TriggeredCard$CardCounters.P1P1/HalfDown +DeckHas:Ability$Counters & Ability$Token +Oracle:Trample\nOchre Jelly enters the battlefield with X +1/+1 counters on it.\nSplit — When Ochre Jelly dies, if it had two or more +1/+1 counters on it, create a token that’s a copy of it at the beginning of the next end step. That token enters the battlefield with half that many +1/+1 counters on it, rounded down. diff --git a/forge-gui/res/cardsfolder/upcoming/paladins_shield.txt b/forge-gui/res/cardsfolder/upcoming/paladins_shield.txt new file mode 100644 index 00000000000..6b1e362582b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/paladins_shield.txt @@ -0,0 +1,9 @@ +Name:Paladin's Shield +ManaCost:1 W +Types:Artifact Equipment +K:Flash +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control. +SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddToughness$ 2 | Description$ Equipped creature gets +0/+2. +K:Equip:3 +Oracle:Flash\nWhen Paladin's Shield enters the battlefield, attach it to target creature you control.\nEquipped creature gets +0/+2.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/upcoming/potion_of_healing.txt b/forge-gui/res/cardsfolder/upcoming/potion_of_healing.txt new file mode 100644 index 00000000000..7c6cd4ffb0c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/potion_of_healing.txt @@ -0,0 +1,8 @@ +Name:Potion of Healing +ManaCost:1 W +Types:Artifact +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card. +SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ 1 +A:AB$ GainLife | Cost$ W T Sac<1/CARDNAME> | LifeAmount$ 3 | SpellDescription$ You gain 3 life. +DeckHas:Ability$LifeGain +Oracle:When Potion of Healing enters the battlefield, draw a card.\n{W}, {T}, Sacrifice Potion of Healing: You gain 3 life. diff --git a/forge-gui/res/cardsfolder/upcoming/shocking_grasp.txt b/forge-gui/res/cardsfolder/upcoming/shocking_grasp.txt new file mode 100644 index 00000000000..f632d2867b7 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/shocking_grasp.txt @@ -0,0 +1,6 @@ +Name:Shocking Grasp +ManaCost:1 U +Types:Instant +A:SP$ Pump | Cost$ 1 U | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -2 | IsCurse$ True | SubAbility$ DBDraw | SpellDescription$ Target creature gets -2/-0 until end of turn. Draw a card. +SVar:DBDraw:DB$ Draw | NumCards$ 1 +Oracle:Target creature gets -2/-0 until end of turn.\nDraw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/skeletal_swarming.txt b/forge-gui/res/cardsfolder/upcoming/skeletal_swarming.txt new file mode 100644 index 00000000000..e0bce7036af --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/skeletal_swarming.txt @@ -0,0 +1,11 @@ +Name:Skeletal Swarming +ManaCost:3 B G +Types:Enchantment +S:Mode$ Continuous | Affected$ Skeleton.YouCtrl | AddKeyword$ Trample | AddHiddenKeyword$ CARDNAME attacks each combat if able. | AddPower$ AffectedX | Description$ Each Skeleton you control has trample, attacks each combat if able, and gets +X/+0, where X is the number of other Skeletons you control. +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of your end step, create a tapped 1/1 black Skeleton creature token. If a creature died this turn, create two of those tokens instead. +SVar:TrigToken:DB$ Token | TokenScript$ b_1_1_skeleton | TokenTapped$ True | TokenAmount$ Y +SVar:AffectedX:Count$Valid Skeleton.YouCtrl+Other +SVar:Y:Count$Morbid.2.1 +DeckHas:Ability$Token +DeckHints:Type$Skeleton +Oracle:Each Skeleton you control has trample, attacks each combat if able, and gets +X/+0, where X is the number of other Skeletons you control.\nAt the beginning of your end step, create a tapped 1/1 black Skeleton creature token. If a creature died this turn, create two of those tokens instead. diff --git a/forge-gui/res/cardsfolder/upcoming/soulknife_spy.txt b/forge-gui/res/cardsfolder/upcoming/soulknife_spy.txt new file mode 100644 index 00000000000..5ed11377cb3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/soulknife_spy.txt @@ -0,0 +1,7 @@ +Name:Soulknife Spy +ManaCost:2 U +Types:Creature Elf Rogue +PT:3/2 +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDraw | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +Oracle:Whenever Soulknife Spy deals combat damage to a player, draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/steadfast_paladin.txt b/forge-gui/res/cardsfolder/upcoming/steadfast_paladin.txt new file mode 100644 index 00000000000..b6b39e596a8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/steadfast_paladin.txt @@ -0,0 +1,6 @@ +Name:Steadfast Paladin +ManaCost:1 W +Types:Creature Dwarf Knight +PT:2/2 +K:Lifelink +Oracle:Lifelink diff --git a/forge-gui/res/cardsfolder/upcoming/underdark_basilisk.txt b/forge-gui/res/cardsfolder/upcoming/underdark_basilisk.txt new file mode 100644 index 00000000000..de9222d9bbf --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/underdark_basilisk.txt @@ -0,0 +1,6 @@ +Name:Underdark Basilisk +ManaCost:1 G +Types:Creature Basilisk +PT:1/2 +K:Deathtouch +Oracle:Deathtouch diff --git a/forge-gui/res/cardsfolder/v/verdant_command.txt b/forge-gui/res/cardsfolder/v/verdant_command.txt index 277c9b93584..43e0bbff75b 100644 --- a/forge-gui/res/cardsfolder/v/verdant_command.txt +++ b/forge-gui/res/cardsfolder/v/verdant_command.txt @@ -2,7 +2,7 @@ Name:Verdant Command ManaCost:1 G Types:Instant A:SP$ Charm | Cost$ 1 G | Choices$ DBToken,DBCounter,DBExile,DBGainLife | CharmNum$ 2 -SVar:DBToken:DB$ Token | ValidTgts$ Player | TgtPrompt$ Select target player | TokenAmount$ 2 | TokenScript$ g_1_1_squirrel | TokenTapped$ True | TokenOwner$ TargetedPlayer | SpellDescription$ • Target player creates two tapped 1/1 green Squirrel creature tokens. +SVar:DBToken:DB$ Token | ValidTgts$ Player | TgtPrompt$ Select target player | TokenAmount$ 2 | TokenScript$ g_1_1_squirrel | TokenTapped$ True | TokenOwner$ ThisTargetedPlayer | SpellDescription$ • Target player creates two tapped 1/1 green Squirrel creature tokens. SVar:DBCounter:DB$ Counter | TargetType$ Activated | TgtPrompt$ Select target loyalty ability of a planeswalker | ValidTgts$ Planeswalker | SpellDescription$ • Counter target loyalty ability of a planeswalker. SVar:DBExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Card | TgtPrompt$ Select target card from a graveyard | SpellDescription$ • Exile target card from a graveyard. SVar:DBGainLife:DB$ GainLife | ValidTgts$ Player | TgtPrompt$ Select target player to gain life | LifeAmount$ 3 | SpellDescription$ • Target player gains 3 life. diff --git a/forge-gui/res/cardsfolder/v/vivien_of_the_arkbow.txt b/forge-gui/res/cardsfolder/v/vivien_of_the_arkbow.txt index 5bf545b72ef..f80b214dbbd 100644 --- a/forge-gui/res/cardsfolder/v/vivien_of_the_arkbow.txt +++ b/forge-gui/res/cardsfolder/v/vivien_of_the_arkbow.txt @@ -3,7 +3,7 @@ ManaCost:4 G G Types:Legendary Planeswalker Vivien A:AB$ PutCounter | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | CounterNum$ 2 | CounterType$ P1P1 | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature | TgtPrompt$ Select target creature | AIActivateLast$ True | SpellDescription$ Put two +1/+1 counters on up to one target creature. A:AB$ Pump | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature.YouCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you control | SubAbility$ TailDamage | StackDescription$ None | SpellDescription$ Target creature you control deals damage equal to its power to target creature you don't control. -SVar:TailDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | ConditionDefined$ Targeted | ConditionPresent$ Creature | ConditionCompare$ EQ1 | DamageSource$ ParentTarget +SVar:TailDamage:DB$ DealDamage | ValidTgts$ Creature.YouDontCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature you don't control | NumDmg$ X | DamageSource$ ParentTarget SVar:X:ParentTargeted$CardPower A:AB$ PumpAll | Cost$ SubCounter<9/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidCards$ Creature.YouCtrl | NumAtt$ +4 | NumDef$ +4 | KW$ Trample | SpellDescription$ Creatures you control get +4/+4 and gain trample until end of turn. DeckHas:Ability$Token diff --git a/forge-gui/res/cardsfolder/w/wing_puncture.txt b/forge-gui/res/cardsfolder/w/wing_puncture.txt index 5fdef5e2fdc..38db6e090c3 100644 --- a/forge-gui/res/cardsfolder/w/wing_puncture.txt +++ b/forge-gui/res/cardsfolder/w/wing_puncture.txt @@ -1,10 +1,8 @@ Name:Wing Puncture ManaCost:G Types:Instant -A:SP$ Pump | Cost$ G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | RememberObjects$ Targeted | SpellDescription$ Target creature you control deals damage equal to its power to target creature with flying. -SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying | NumDmg$ X | DamageSource$ Remembered | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Remembered$CardPower -AI:RemoveDeck:All +A:SP$ Pump | Cost$ G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | SpellDescription$ Target creature you control deals damage equal to its power to target creature with flying. +SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.withFlying | AILogic$ PowerDmg | TgtPrompt$ Select target creature with flying | NumDmg$ X | DamageSource$ ParentTarget +SVar:X:ParentTargeted$CardPower SVar:Picture:http://www.wizards.com/global/images/magic/general/wing_puncture.jpg Oracle:Target creature you control deals damage equal to its power to target creature with flying. diff --git a/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt b/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt index 119956c3e91..a8c9555bb06 100644 --- a/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt +++ b/forge-gui/res/editions/Dungeons & Dragons Adventures in the Forgotten Realms.txt @@ -269,26 +269,26 @@ ScryfallCode=AFR 259 R Lair of the Hydra 260 U Temple of the Dragon Queen 261 R Treasure Vault -262 C Plains -263 C Plains -264 C Plains -265 C Plains -266 C Island -267 C Island -268 C Island -269 C Island -270 C Swamp -271 C Swamp -272 C Swamp -273 C Swamp -274 C Mountain -275 C Mountain -276 C Mountain -277 C Mountain -278 C Forest -279 C Forest -280 C Forest -281 C Forest +262 L Plains +263 L Plains +264 L Plains +265 L Plains +266 L Island +267 L Island +268 L Island +269 L Island +270 L Swamp +271 L Swamp +272 L Swamp +273 L Swamp +274 L Mountain +275 L Mountain +276 L Mountain +277 L Mountain +278 L Forest +279 L Forest +280 L Forest +281 L Forest [borderless] 282 M Grand Master of Flowers diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index e0cc94bac98..1ba5a50046b 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -2559,7 +2559,7 @@ lblLibraryNCards=Bibliothek ({0}) lblExileNCards=Exil ({0}) lblFlashbackNCards=Rückblende-Karten ({0}) lblCommandZoneNCards=Komandozone ({0}) -lblAnteZoneNCards=Ante zone ({0}) +lblAnteZoneNCards=Ante-Zone ({0}) lblSideboardNCards=Sideboard ({0}) lblWhiteManaOfN=Weißes Mana ({0}) lblBlueManaOfN=Blaues Mana ({0}) diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java index 8ab0d742dae..0453e296a91 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java @@ -98,15 +98,15 @@ public final class InputSelectTargets extends InputSyncronizedBase { sb.append(sa.getHostCard()).append(" - ").append(tgt.getVTSelection()); } if (!targetDepth.entrySet().isEmpty()) { - sb.append("\nTargeted: "); + sb.append("\nTargeted: "); } for (final Entry o : targetDepth.entrySet()) { //if it's not in gdx port landscape mode, append the linebreak - if(!ForgeConstants.isGdxPortLandscape) + if (!ForgeConstants.isGdxPortLandscape) sb.append("\n"); sb.append(o.getKey()); //if it's in gdx port landscape mode, instead append the comma with space... - if(ForgeConstants.isGdxPortLandscape) + if (ForgeConstants.isGdxPortLandscape) sb.append(", "); if (o.getValue() > 1) { sb.append(TextUtil.concatNoSpace(" (", String.valueOf(o.getValue()), " times)")); @@ -128,7 +128,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { "(Targeting ERROR)", ""); showMessage(message, sa.getView()); - if ((divisionValues != null && !divisionValues.isEmpty()) && sa.getMinTargets() == 0 && sa.getTargets().size() == 0) { + if (divisionValues != null && !divisionValues.isEmpty() && sa.getMinTargets() == 0 && sa.getTargets().size() == 0) { // extra logic for Divided with min targets = 0, should only work if num targets are 0 too getController().getGui().updateButtons(getOwner(), true, true, false); } else if (!sa.isMinTargetChosen() || (divisionValues != null && !divisionValues.isEmpty())){ @@ -279,7 +279,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { return false; } - if ((divisionValues != null && !divisionValues.isEmpty())) { + if (divisionValues != null && !divisionValues.isEmpty()) { Boolean val = onDividedAsYouChoose(card); if (val != null) { return val; @@ -321,7 +321,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { return; } - if ((divisionValues != null && !divisionValues.isEmpty())) { + if (divisionValues != null && !divisionValues.isEmpty()) { Boolean val = onDividedAsYouChoose(player); if (val != null) { return; diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 652ecb0547c..7a7e894c172 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -1972,16 +1972,24 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont boolean result = select.chooseTargets(null, null, null, false, canFilterMustTarget); + final List targets = currentAbility.getTargets().getTargetEntities(); + int amount = currentAbility.getStillToDivide(); + // assign divided as you choose values - if (result && currentAbility.isDividedAsYouChoose() && currentAbility.getStillToDivide() > 0) { - int amount = currentAbility.getStillToDivide(); - final List targets = currentAbility.getTargets().getTargetEntities(); + if (result && targets.size() > 0 && amount > 0) { + if (currentAbility.hasParam("DividedUpTo")) { + amount = chooseNumber(currentAbility, localizer.getMessage("lblHowMany"), targets.size(), amount); + } if (targets.size() == 1) { currentAbility.addDividedAllocation(targets.get(0), amount); } else if (targets.size() == amount) { for (GameEntity e : targets) { currentAbility.addDividedAllocation(e, 1); } + } else if (amount == 0) { + for (GameEntity e : targets) { + currentAbility.addDividedAllocation(e, 0); + } } else if (targets.size() > amount) { return false; } else {