From d954f9dcb3ba21bee9093d17a8ac41fd000ecf86 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 1 Nov 2022 14:37:51 +0100 Subject: [PATCH 1/7] Cleanup --- .../java/forge/ai/ability/ChooseTypeAi.java | 4 +--- .../java/forge/ai/ability/CountersPutAi.java | 4 ++-- .../main/java/forge/ai/ability/UntapAi.java | 18 ++++-------------- .../src/main/java/forge/game/PlanarDice.java | 9 +++------ .../ability/effects/ChangeZoneAllEffect.java | 3 +-- .../game/ability/effects/ChangeZoneEffect.java | 3 +-- .../game/ability/effects/ClashEffect.java | 6 ++---- .../game/ability/effects/FlipCoinEffect.java | 3 +-- .../game/ability/effects/MakeCardEffect.java | 3 +-- .../game/ability/effects/RollDiceEffect.java | 6 ++---- .../game/ability/effects/RunChaosEffect.java | 3 +-- .../game/ability/effects/TokenEffectBase.java | 3 +-- .../java/forge/game/card/CardFactoryUtil.java | 2 +- .../main/java/forge/game/combat/Combat.java | 2 +- .../main/java/forge/game/cost/CostDiscard.java | 3 +-- .../java/forge/game/phase/PhaseHandler.java | 9 +++------ forge-gui/res/cardsfolder/e/echo_chamber.txt | 2 +- .../res/cardsfolder/e/elvish_reclaimer.txt | 3 +-- forge-gui/res/cardsfolder/f/false_dawn.txt | 2 +- forge-gui/res/cardsfolder/g/gorilla_titan.txt | 3 +-- .../res/cardsfolder/m/murasa_behemoth.txt | 3 +-- .../upcoming/mishra_eminent_one.txt | 2 +- 22 files changed, 32 insertions(+), 64 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/ChooseTypeAi.java b/forge-ai/src/main/java/forge/ai/ability/ChooseTypeAi.java index 4ce3c0d70a1..9180a411769 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChooseTypeAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChooseTypeAi.java @@ -4,8 +4,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import com.google.common.base.Predicates; - import com.google.common.collect.Iterables; import forge.ai.AiCardMemory; import forge.ai.ComputerUtilAbility; @@ -82,7 +80,7 @@ public class ChooseTypeAi extends SpellAbilityAi { if (maxX > 1) { CardCollection cre = CardLists.filter(aiPlayer.getCardsIn(ZoneType.Battlefield), - Predicates.and(CardPredicates.isType(chosenType), CardPredicates.Presets.UNTAPPED)); + CardPredicates.isType(chosenType), CardPredicates.Presets.UNTAPPED); if (!cre.isEmpty()) { for (Card c: cre) { avgPower += c.getNetPower(); diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java index c30cba8b3eb..be5237ec294 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersPutAi.java @@ -302,8 +302,8 @@ public class CountersPutAi extends CountersAi { } CardCollection oppCreats = CardLists.filter(ai.getOpponents().getCreaturesInPlay(), - Predicates.and(Predicates.not(CardPredicates.hasCounter(CounterType.getType(type))), - CardPredicates.isTargetableBy(sa))); + Predicates.not(CardPredicates.hasCounter(CounterType.getType(type))), + CardPredicates.isTargetableBy(sa)); if (!oppCreats.isEmpty()) { Card bestCreat = ComputerUtilCard.getBestCreatureAI(oppCreats); diff --git a/forge-ai/src/main/java/forge/ai/ability/UntapAi.java b/forge-ai/src/main/java/forge/ai/ability/UntapAi.java index 894f4ae8394..fa0f929247b 100644 --- a/forge-ai/src/main/java/forge/ai/ability/UntapAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/UntapAi.java @@ -373,13 +373,8 @@ public class UntapAi extends SpellAbilityAi { reduced.decreaseShard(ManaCostShard.GENERIC, untappingCards.size()); if (ComputerUtilMana.canPayManaCost(reduced, ab, ai, false)) { CardCollection manaLandsTapped = CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), - Predicates.and(Presets.LANDS_PRODUCING_MANA, Presets.TAPPED)); - manaLandsTapped = CardLists.filter(manaLandsTapped, new Predicate() { - @Override - public boolean apply(Card card) { - return card.isValid(sa.getParam("ValidTgts"), ai, source, null); - } - }); + Presets.LANDS_PRODUCING_MANA, Presets.TAPPED); + manaLandsTapped = CardLists.getValidCards(manaLandsTapped, sa.getParam("ValidTgts"), ai, source, null); if (!manaLandsTapped.isEmpty()) { // already have a tapped land, so agree to proceed with untapping it @@ -388,13 +383,8 @@ public class UntapAi extends SpellAbilityAi { // pool one additional mana by tapping a land to try to ramp to something CardCollection manaLands = CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), - Predicates.and(Presets.LANDS_PRODUCING_MANA, Presets.UNTAPPED)); - manaLands = CardLists.filter(manaLands, new Predicate() { - @Override - public boolean apply(Card card) { - return card.isValid(sa.getParam("ValidTgts"), ai, source, null); - } - }); + Presets.LANDS_PRODUCING_MANA, Presets.UNTAPPED); + manaLands = CardLists.getValidCards(manaLands, sa.getParam("ValidTgts"), ai, source, null); if (manaLands.isEmpty()) { // nothing to untap diff --git a/forge-game/src/main/java/forge/game/PlanarDice.java b/forge-game/src/main/java/forge/game/PlanarDice.java index 80380a2bd6a..d767ddb8c97 100644 --- a/forge-game/src/main/java/forge/game/PlanarDice.java +++ b/forge-game/src/main/java/forge/game/PlanarDice.java @@ -41,20 +41,17 @@ public enum PlanarDice { trigRes = Chaos; } - Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, roller); + Map runParams = AbilityKey.mapFromPlayer(roller); runParams.put(AbilityKey.Result, trigRes); roller.getGame().getTriggerHandler().runTrigger(TriggerType.PlanarDice, runParams,false); // Also run normal RolledDie and RolledDieOnce triggers - runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, roller); + runParams = AbilityKey.mapFromPlayer(roller); runParams.put(AbilityKey.Sides, 6); runParams.put(AbilityKey.Result, 0); roller.getGame().getTriggerHandler().runTrigger(TriggerType.RolledDie, runParams, false); - runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, roller); + runParams = AbilityKey.mapFromPlayer(roller); runParams.put(AbilityKey.Sides, 6); runParams.put(AbilityKey.Result, Arrays.asList(0)); roller.getGame().getTriggerHandler().runTrigger(TriggerType.RolledDieOnce, runParams, false); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index f204db8466e..a5c036f608a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.Map; import com.google.common.collect.Iterables; -import com.google.common.collect.Maps; import forge.game.Game; import forge.game.GameActionUtil; @@ -164,7 +163,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { } } - Map moveParams = Maps.newEnumMap(AbilityKey.class); + Map moveParams = AbilityKey.newMap(); moveParams.put(AbilityKey.LastStateBattlefield, lastStateBattlefield); moveParams.put(AbilityKey.LastStateGraveyard, lastStateGraveyard); diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 08aad2989f1..a9ca1b728c2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -1074,8 +1074,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { //some kind of reset here? } } - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, decider); + final Map runParams = AbilityKey.mapFromPlayer(decider); runParams.put(AbilityKey.Target, Lists.newArrayList(player)); decider.getGame().getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java index 460a5af7b32..07a24506ef2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java @@ -48,12 +48,10 @@ public class ClashEffect extends SpellAbilityEffect { } // Run triggers - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, player); + final Map runParams = AbilityKey.mapFromPlayer(player); runParams.put(AbilityKey.Won, player.equals(winner) ? "True" : "False"); source.getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams, false); - final Map runParams2 = AbilityKey.newMap(); - runParams2.put(AbilityKey.Player, opponent); + final Map runParams2 = AbilityKey.mapFromPlayer(opponent); runParams2.put(AbilityKey.Won, opponent.equals(winner) ? "True" : "False"); source.getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams2, false); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java index cc6fc4d903c..7fa29f5644b 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java @@ -293,8 +293,7 @@ public class FlipCoinEffect extends SpellAbilityEffect { caller.getGame().getAction().notifyOfValue(sa, caller, wonFlip ? Localizer.getInstance().getMessage("lblWin") : Localizer.getInstance().getMessage("lblLose"), null); // Run triggers - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, caller); + final Map runParams = AbilityKey.mapFromPlayer(caller); runParams.put(AbilityKey.Result, wonFlip); caller.getGame().getTriggerHandler().runTrigger(TriggerType.FlippedCoin, runParams, false); } while (sa.hasParam("FlipUntilYouLose") && wonFlip); diff --git a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java index e1575c9d4ad..5314b1ba075 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java @@ -130,8 +130,7 @@ public class MakeCardEffect extends SpellAbilityEffect { counterTable.replaceCounterEffect(game, sa, true); if (sa.hasParam("Conjure")) { - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, player); + final Map runParams = AbilityKey.mapFromPlayer(player); runParams.put(AbilityKey.Cards, madeCards); runParams.put(AbilityKey.Cause, sa); //-- currently not needed game.getTriggerHandler().runTrigger(TriggerType.ConjureAll, runParams, false); 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 dc18f35e4a4..ce0edbecc69 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 @@ -109,15 +109,13 @@ public class RollDiceEffect extends SpellAbilityEffect { // Run triggers for (Integer roll : rolls) { - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, player); + final Map runParams = AbilityKey.mapFromPlayer(player); runParams.put(AbilityKey.Sides, sides); runParams.put(AbilityKey.Modifier, modifier); runParams.put(AbilityKey.Result, roll); player.getGame().getTriggerHandler().runTrigger(TriggerType.RolledDie, runParams, false); } - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, player); + final Map runParams = AbilityKey.mapFromPlayer(player); runParams.put(AbilityKey.Sides, sides); runParams.put(AbilityKey.Result, rolls); player.getGame().getTriggerHandler().runTrigger(TriggerType.RolledDieOnce, runParams, false); diff --git a/forge-game/src/main/java/forge/game/ability/effects/RunChaosEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RunChaosEffect.java index 1f2ab0d4ac1..de2784f0418 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RunChaosEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RunChaosEffect.java @@ -20,8 +20,7 @@ public class RunChaosEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { - Map map = AbilityKey.newMap(); - map.put(AbilityKey.Player, sa.getActivatingPlayer()); + Map map = AbilityKey.mapFromPlayer(sa.getActivatingPlayer()); map.put(AbilityKey.Result, PlanarDice.Chaos); List validSA = Lists.newArrayList(); diff --git a/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java b/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java index 402511c8ecf..4aea0dfab89 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java +++ b/forge-game/src/main/java/forge/game/ability/effects/TokenEffectBase.java @@ -9,7 +9,6 @@ import org.apache.commons.lang3.mutable.MutableBoolean; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.google.common.collect.Table; @@ -108,7 +107,7 @@ public abstract class TokenEffectBase extends SpellAbilityEffect { CardCollectionView lastStateBattlefield = game.copyLastStateBattlefield(); CardCollectionView lastStateGraveyard = game.copyLastStateGraveyard(); - Map moveParams = Maps.newEnumMap(AbilityKey.class); + Map moveParams = AbilityKey.newMap(); moveParams.put(AbilityKey.LastStateBattlefield, lastStateBattlefield); moveParams.put(AbilityKey.LastStateGraveyard, lastStateGraveyard); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 5f13a072f71..f5d7696f32c 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -119,7 +119,7 @@ public class CardFactoryUtil { CardCollectionView lastStateBattlefield = game.copyLastStateBattlefield(); CardCollectionView lastStateGraveyard = game.copyLastStateGraveyard(); - Map moveParams = Maps.newEnumMap(AbilityKey.class); + Map moveParams = AbilityKey.newMap(); moveParams.put(AbilityKey.LastStateBattlefield, lastStateBattlefield); moveParams.put(AbilityKey.LastStateGraveyard, lastStateGraveyard); diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index a980aac9cd8..3c84a335955 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -678,7 +678,7 @@ public class Combat { // Run Unblocked Trigger final Map runParams = AbilityKey.newMap(); runParams.put(AbilityKey.Attacker, attacker); - runParams.put(AbilityKey.Defender,getDefenderByAttacker(attacker)); + runParams.put(AbilityKey.Defender, getDefenderByAttacker(attacker)); runParams.put(AbilityKey.DefendingPlayer, getDefenderPlayerByAttacker(attacker)); game.getTriggerHandler().runTrigger(TriggerType.AttackerUnblocked, runParams, false); } diff --git a/forge-game/src/main/java/forge/game/cost/CostDiscard.java b/forge-game/src/main/java/forge/game/cost/CostDiscard.java index 9f42dadffc7..192cbd7bd5c 100644 --- a/forge-game/src/main/java/forge/game/cost/CostDiscard.java +++ b/forge-game/src/main/java/forge/game/cost/CostDiscard.java @@ -236,8 +236,7 @@ public class CostDiscard extends CostPartWithList { super.handleChangeZoneTrigger(payer, ability, targetCards); if (!targetCards.isEmpty()) { - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, payer); + final Map runParams = AbilityKey.mapFromPlayer(payer); runParams.put(AbilityKey.Cards, new CardCollection(targetCards)); runParams.put(AbilityKey.Cause, ability); runParams.put(AbilityKey.FirstTime, firstTime); diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index a359794804f..6291d80ba58 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -397,8 +397,7 @@ public class PhaseHandler implements java.io.Serializable { table.triggerChangesZoneAll(game, null); if (!discarded.isEmpty()) { - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, playerTurn); + final Map runParams = AbilityKey.mapFromPlayer(playerTurn); runParams.put(AbilityKey.Cards, discarded); runParams.put(AbilityKey.Cause, null); runParams.put(AbilityKey.FirstTime, firstDiscarded); @@ -440,9 +439,8 @@ public class PhaseHandler implements java.io.Serializable { if (!skipped) { // Run triggers if phase isn't being skipped - final Map runParams = AbilityKey.newMap(); + final Map runParams = AbilityKey.mapFromPlayer(playerTurn); runParams.put(AbilityKey.Phase, phase.nameForScripts); - runParams.put(AbilityKey.Player, playerTurn); game.getTriggerHandler().runTrigger(TriggerType.Phase, runParams, false); } @@ -519,8 +517,7 @@ public class PhaseHandler implements java.io.Serializable { game.getCleanup().executeUntil(playerTurn); // "Trigger" for begin turn to get around a phase skipping - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Player, playerTurn); + final Map runParams = AbilityKey.mapFromPlayer(playerTurn); game.getTriggerHandler().runTrigger(TriggerType.TurnBegin, runParams, false); } planarDiceRolledthisTurn = 0; diff --git a/forge-gui/res/cardsfolder/e/echo_chamber.txt b/forge-gui/res/cardsfolder/e/echo_chamber.txt index 28694f6a717..b9158d93272 100644 --- a/forge-gui/res/cardsfolder/e/echo_chamber.txt +++ b/forge-gui/res/cardsfolder/e/echo_chamber.txt @@ -1,5 +1,5 @@ Name:Echo Chamber ManaCost:4 Types:Artifact -A:AB$ CopyPermanent | Cost$ 4 T | ValidTgts$ Creature | TargetingPlayer$ Player.Opponent | TargetingPlayerControls$ True | TgtPrompt$ Select target creature you control | PumpKeywords$ Haste | AtEOT$ Exile | SorcerySpeed$ True | SpellDescription$ An opponent chooses target creature they control. Create a token that's a copy of that creature. That token gains haste until end of turn. Exile the token at the beginning of the next end step. Activate only as a sorcery. +A:AB$ CopyPermanent | Cost$ 4 T | ValidTgts$ Creature | TargetingPlayer$ Player.Opponent | TargetingPlayerControls$ True | TgtPrompt$ Select target creature you control | PumpKeywords$ Haste | PumpDuration$ EOT | AtEOT$ Exile | SorcerySpeed$ True | SpellDescription$ An opponent chooses target creature they control. Create a token that's a copy of that creature. That token gains haste until end of turn. Exile the token at the beginning of the next end step. Activate only as a sorcery. Oracle:{4}, {T}: An opponent chooses target creature they control. Create a token that's a copy of that creature. That token gains haste until end of turn. Exile the token at the beginning of the next end step. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt b/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt index 66ef177d2d3..a26ee5999a3 100644 --- a/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt +++ b/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt @@ -2,8 +2,7 @@ Name:Elvish Reclaimer ManaCost:G Types:Creature Elf Warrior PT:1/2 -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE3 | Description$ CARDNAME gets +2/+2 as long as there are three or more land cards in your graveyard. -SVar:X:Count$TypeInYourYard.Land +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Land.YouOwn | PresentZone$ Graveyard | Description$ CARDNAME gets +2/+2 as long as there are three or more land cards in your graveyard. A:AB$ ChangeZone | Cost$ 2 T Sac<1/Land> | Origin$ Library | Destination$ Battlefield | ChangeType$ Land | ChangeNum$ 1 | Tapped$ True | SpellDescription$ Search your library for a land card, put it onto the battlefield tapped, then shuffle. AI:RemoveDeck:Random Oracle:Elvish Reclaimer gets +2/+2 as long as there are three or more land cards in your graveyard.\n{2}, {T}, Sacrifice a land: Search your library for a land card, put it onto the battlefield tapped, then shuffle. diff --git a/forge-gui/res/cardsfolder/f/false_dawn.txt b/forge-gui/res/cardsfolder/f/false_dawn.txt index 486b751db56..9d58b2ea668 100644 --- a/forge-gui/res/cardsfolder/f/false_dawn.txt +++ b/forge-gui/res/cardsfolder/f/false_dawn.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Sorcery A:SP$ Effect | Cost$ 1 W | ReplacementEffects$ FDRep | StaticAbilities$ FDManaConvertion | SubAbility$ DBDraw | SpellDescription$ Until end of turn, spells and abilities you control that would add colored mana instead add that much white mana. Until end of turn, you may spend white mana as though it were mana of any color. Draw a card. SVar:DBDraw:DB$ Draw | NumCards$ 1 -SVar:FDRep:Event$ ProduceMana | ActiveZones$ Command | ValidCard$ Card.YouCtrl | ReplaceWith$ ProduceW | Description$ Spells and abilities you control that would add colored mana add that much white mana instead. +SVar:FDRep:Event$ ProduceMana | ActiveZones$ Command | ValidAbility$ SpellAbility.YouCtrl | ReplaceWith$ ProduceW | Description$ Spells and abilities you control that would add colored mana add that much white mana instead. SVar:ProduceW:DB$ ReplaceMana | ReplaceColor$ W SVar:FDManaConvertion:Mode$ Continuous | EffectZone$ Command | Affected$ You | ManaConversion$ W->AnyColor | Description$ You may spend white mana as though it were mana of any color. AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/g/gorilla_titan.txt b/forge-gui/res/cardsfolder/g/gorilla_titan.txt index 98e8b0cb638..15bb501e542 100644 --- a/forge-gui/res/cardsfolder/g/gorilla_titan.txt +++ b/forge-gui/res/cardsfolder/g/gorilla_titan.txt @@ -3,6 +3,5 @@ ManaCost:3 G G Types:Creature Ape PT:4/4 K:Trample -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 4 | AddToughness$ 4 | CheckSVar$ X | SVarCompare$ EQ0 | Description$ CARDNAME gets +4/+4 as long as there are no cards in your graveyard. -SVar:X:Count$InYourYard +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 4 | AddToughness$ 4 | IsPresent$ Card.YouOwn | PresentZone$ Graveyard | PresentCompare$ EQ0 | Description$ CARDNAME gets +4/+4 as long as there are no cards in your graveyard. Oracle:Trample\nGorilla Titan gets +4/+4 as long as there are no cards in your graveyard. diff --git a/forge-gui/res/cardsfolder/m/murasa_behemoth.txt b/forge-gui/res/cardsfolder/m/murasa_behemoth.txt index 44a9a367221..78d24fb4978 100644 --- a/forge-gui/res/cardsfolder/m/murasa_behemoth.txt +++ b/forge-gui/res/cardsfolder/m/murasa_behemoth.txt @@ -3,6 +3,5 @@ ManaCost:4 G G Types:Creature Beast PT:5/5 K:Trample -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 3 | CheckSVar$ X | SVarCompare$ GE1 | Description$ CARDNAME gets +3/+3 as long as there is a land card in your graveyard. -SVar:X:Count$TypeInYourYard.Land +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 3 | AddToughness$ 3 | IsPresent$ Land.YouOwn | PresentZone$ Graveyard | Description$ CARDNAME gets +3/+3 as long as there is a land card in your graveyard. Oracle:Trample\nMurasa Behemoth gets +3/+3 as long as there is a land card in your graveyard. diff --git a/forge-gui/res/cardsfolder/upcoming/mishra_eminent_one.txt b/forge-gui/res/cardsfolder/upcoming/mishra_eminent_one.txt index 6bc2f9f415c..19affa1960d 100644 --- a/forge-gui/res/cardsfolder/upcoming/mishra_eminent_one.txt +++ b/forge-gui/res/cardsfolder/upcoming/mishra_eminent_one.txt @@ -3,7 +3,7 @@ ManaCost:2 U B R Types:Legendary Creature Human Artificer PT:5/4 T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCopy | TriggerDescription$ At the beginning of combat on your turn, create a token that's a copy of target noncreature artifact you control, except its name is Mishra's Warform and it's a 4/4 Construct artifact creature in addition to its other types. It gains haste until end of turn. Sacrifice it at the beginning of the next end step. -SVar:TrigCopy:DB$ CopyPermanent | ValidTgts$ Artifact.nonCreature+YouCtrl | TgtPrompt$ Select target noncreature artifact you control | AddTypes$ Creature & Construct | PumpKeywords$ Haste | AtEOT$ Sacrifice | NewName$ Mishra's Warform | SetPower$ 4 | SetToughness$ 4 +SVar:TrigCopy:DB$ CopyPermanent | ValidTgts$ Artifact.nonCreature+YouCtrl | TgtPrompt$ Select target noncreature artifact you control | AddTypes$ Creature & Construct | PumpKeywords$ Haste | PumpDuration$ EOT | AtEOT$ Sacrifice | NewName$ Mishra's Warform | SetPower$ 4 | SetToughness$ 4 DeckHints:Type$Artifact DeckHas:Type$Construct & Ability$Sacrifice|Token SVar:PlayMain1:TRUE From a18761e9362cb3f57e3028453af09909d8cd84ff Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 1 Nov 2022 15:03:57 +0100 Subject: [PATCH 2/7] Fix Rampage --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 4 ++-- .../java/forge/game/trigger/TriggerAttackerBlocked.java | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index f5d7696f32c..6f8bf19d7f4 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1615,7 +1615,7 @@ public class CardFactoryUtil { final String n = k[1]; final String trigStr = "Mode$ AttackerBlocked | ValidCard$ Card.Self | TriggerZones$ Battlefield " + - " | ValidBlocker$ Creature | MinBlockers$ 1 | Secondary$ True " + + " | ValidBlocker$ Creature | Secondary$ True " + " | TriggerDescription$ Rampage " + n + " (" + inst.getReminderText() + ")"; final String effect = "DB$ Pump | Defined$ TriggeredAttackerLKICopy" + @@ -1626,7 +1626,7 @@ public class CardFactoryUtil { SpellAbility sa = AbilityFactory.getAbility(effect, card); sa.setSVar("Rampage" + n, "SVar$RampageCount/Times." + n); - sa.setSVar("RampageCount", "TriggerCount$NumBlockers/Minus.1"); + sa.setSVar("RampageCount", "Count$Valid Creature.blockingTriggeredAttacker/Minus.1"); sa.setIntrinsic(intrinsic); trigger.setOverridingAbility(sa); inst.addTrigger(trigger); diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java index e80d92c2259..43aea39da57 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java @@ -59,12 +59,6 @@ public class TriggerAttackerBlocked extends Trigger { return false; } - if (hasParam("MinBlockers")) { - if ((int) runParams.get(AbilityKey.NumBlockers) < Integer.valueOf(getParam("MinBlockers"))) { - return false; - } - } - if (hasParam("ValidBlocker")) { @SuppressWarnings("unchecked") int count = CardLists.getValidCardCount( From 6fe60b81988701ec8e39c7c6b1c4d1d94ef59801 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 1 Nov 2022 15:04:37 +0100 Subject: [PATCH 3/7] Update cards --- forge-gui/res/cardsfolder/b/barreling_attack.txt | 2 +- forge-gui/res/cardsfolder/b/beastmasters_magemark.txt | 2 +- forge-gui/res/cardsfolder/b/berserk_murlodont.txt | 2 +- forge-gui/res/cardsfolder/e/elvish_berserker.txt | 2 +- forge-gui/res/cardsfolder/g/gang_of_elk.txt | 2 +- forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt | 2 +- forge-gui/res/cardsfolder/j/johtull_wurm.txt | 2 +- forge-gui/res/cardsfolder/j/jungle_wurm.txt | 2 +- forge-gui/res/cardsfolder/r/rabid_elephant.txt | 2 +- forge-gui/res/cardsfolder/s/sparring_golem.txt | 2 +- forge-gui/res/cardsfolder/s/spined_sliver.txt | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/forge-gui/res/cardsfolder/b/barreling_attack.txt b/forge-gui/res/cardsfolder/b/barreling_attack.txt index 2b717d695e5..285d18025bf 100644 --- a/forge-gui/res/cardsfolder/b/barreling_attack.txt +++ b/forge-gui/res/cardsfolder/b/barreling_attack.txt @@ -5,5 +5,5 @@ A:SP$ Pump | Cost$ 2 R R | ValidTgts$ Creature | TgtPrompt$ Select target creatu SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | Triggers$ TrigBounce | ForgetOnMoved$ Battlefield SVar:TrigBounce:Mode$ AttackerBlocked | ValidCard$ Card.IsRemembered | TriggerZones$ Command | Execute$ ABBarrelingPump | TriggerDescription$ When CARDNAME becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. SVar:ABBarrelingPump:DB$ Pump | Defined$ Remembered | NumAtt$ +BarrelingX | NumDef$ +BarrelingX -SVar:BarrelingX:TriggerCount$NumBlockers +SVar:BarrelingX:Count$Valid Creature.blockingTriggeredAttacker Oracle:Target creature gains trample until end of turn. When that creature becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt b/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt index 8c6bda35796..b1ea41e7f9a 100644 --- a/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt +++ b/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt @@ -6,5 +6,5 @@ A:SP$ Attach | Cost$ 2 G | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.enchanted+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Creatures you control that are enchanted get +1/+1. T:Mode$ AttackerBlocked | ValidCard$ Creature.enchanted+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control that's enchanted becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers +SVar:X:Count$Valid Creature.blockingTriggeredAttacker Oracle:Enchant creature\nCreatures you control that are enchanted get +1/+1.\nWhenever a creature you control that's enchanted becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/b/berserk_murlodont.txt b/forge-gui/res/cardsfolder/b/berserk_murlodont.txt index c6f771dd47d..2846168e599 100644 --- a/forge-gui/res/cardsfolder/b/berserk_murlodont.txt +++ b/forge-gui/res/cardsfolder/b/berserk_murlodont.txt @@ -4,6 +4,6 @@ Types:Creature Beast PT:3/3 T:Mode$ AttackerBlocked | ValidCard$ Beast | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Beast becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers +SVar:X:Count$Valid Creature.blockingTriggeredAttacker DeckHints:Type$Beast Oracle:Whenever a Beast becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/e/elvish_berserker.txt b/forge-gui/res/cardsfolder/e/elvish_berserker.txt index cd2e353354a..88b87c5a958 100644 --- a/forge-gui/res/cardsfolder/e/elvish_berserker.txt +++ b/forge-gui/res/cardsfolder/e/elvish_berserker.txt @@ -4,5 +4,5 @@ Types:Creature Elf Berserker PT:1/1 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers +SVar:X:Count$Valid Creature.blockingTriggeredAttacker Oracle:Whenever Elvish Berserker becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/g/gang_of_elk.txt b/forge-gui/res/cardsfolder/g/gang_of_elk.txt index 4976a6a27c2..3c8c89b74f8 100644 --- a/forge-gui/res/cardsfolder/g/gang_of_elk.txt +++ b/forge-gui/res/cardsfolder/g/gang_of_elk.txt @@ -4,5 +4,5 @@ Types:Creature Elk Beast PT:5/4 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets +2/+2 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers/Times.2 +SVar:X:Count$Valid Creature.blockingTriggeredAttacker/Times.2 Oracle:Whenever Gang of Elk becomes blocked, it gets +2/+2 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt b/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt index 74f28e25ccc..6313eda586a 100644 --- a/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt +++ b/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt @@ -4,5 +4,5 @@ Types:Legendary Creature Elf Warrior PT:4/4 T:Mode$ AttackerBlocked | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control becomes blocked, it gets +3/+3 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers/Times.3 +SVar:X:Count$Valid Creature.blockingTriggeredAttacker/Times.3 Oracle:Whenever a creature you control becomes blocked, it gets +3/+3 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/j/johtull_wurm.txt b/forge-gui/res/cardsfolder/j/johtull_wurm.txt index 349333b245d..6cec44a1eb4 100644 --- a/forge-gui/res/cardsfolder/j/johtull_wurm.txt +++ b/forge-gui/res/cardsfolder/j/johtull_wurm.txt @@ -5,5 +5,5 @@ PT:6/6 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets -2/-1 until end of turn for each creature blocking it beyond the first. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ -X | NumDef$ -Y SVar:X:SVar$Y/Twice -SVar:Y:TriggerCount$NumBlockers/Minus.1 +SVar:Y:Count$Valid Creature.blockingTriggeredAttacker/Minus.1 Oracle:Whenever Johtull Wurm becomes blocked, it gets -2/-1 until end of turn for each creature blocking it beyond the first. diff --git a/forge-gui/res/cardsfolder/j/jungle_wurm.txt b/forge-gui/res/cardsfolder/j/jungle_wurm.txt index c3e1d05586d..d32a040b72c 100644 --- a/forge-gui/res/cardsfolder/j/jungle_wurm.txt +++ b/forge-gui/res/cardsfolder/j/jungle_wurm.txt @@ -4,5 +4,5 @@ Types:Creature Wurm PT:5/5 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets -1/-1 until end of turn for each creature blocking it beyond the first. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ -X | NumDef$ -X -SVar:X:TriggerCount$NumBlockers/Minus.1 +SVar:X:Count$Valid Creature.blockingTriggeredAttacker/Minus.1 Oracle:Whenever Jungle Wurm becomes blocked, it gets -1/-1 until end of turn for each creature blocking it beyond the first. diff --git a/forge-gui/res/cardsfolder/r/rabid_elephant.txt b/forge-gui/res/cardsfolder/r/rabid_elephant.txt index bc04037592c..0b5ea3761d3 100644 --- a/forge-gui/res/cardsfolder/r/rabid_elephant.txt +++ b/forge-gui/res/cardsfolder/r/rabid_elephant.txt @@ -4,5 +4,5 @@ Types:Creature Elephant PT:3/4 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets +2/+2 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers/Times.2 +SVar:X:Count$Valid Creature.blockingTriggeredAttacker/Times.2 Oracle:Whenever Rabid Elephant becomes blocked, it gets +2/+2 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/s/sparring_golem.txt b/forge-gui/res/cardsfolder/s/sparring_golem.txt index ea9022f1202..0f9e2591baa 100644 --- a/forge-gui/res/cardsfolder/s/sparring_golem.txt +++ b/forge-gui/res/cardsfolder/s/sparring_golem.txt @@ -4,5 +4,5 @@ Types:Artifact Creature Golem PT:2/2 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers +SVar:X:Count$Valid Creature.blockingTriggeredAttacker Oracle:Whenever Sparring Golem becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/s/spined_sliver.txt b/forge-gui/res/cardsfolder/s/spined_sliver.txt index 0be2b3ab03b..029fa5a2170 100644 --- a/forge-gui/res/cardsfolder/s/spined_sliver.txt +++ b/forge-gui/res/cardsfolder/s/spined_sliver.txt @@ -4,6 +4,6 @@ Types:Creature Sliver PT:2/2 T:Mode$ AttackerBlocked | ValidCard$ Sliver | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Sliver becomes blocked, that Sliver gets +1/+1 until end of turn for each creature blocking it. SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X -SVar:X:TriggerCount$NumBlockers +SVar:X:Count$Valid Creature.blockingTriggeredAttacker SVar:PlayMain1:TRUE Oracle:Whenever a Sliver becomes blocked, that Sliver gets +1/+1 until end of turn for each creature blocking it. From e9806beebd87eada70e6d1bcafed1410067ef1fc Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 1 Nov 2022 15:14:47 +0100 Subject: [PATCH 4/7] Remove NumBlockers --- .../src/main/java/forge/game/ability/AbilityKey.java | 1 - .../main/java/forge/game/ability/SpellAbilityEffect.java | 1 - .../forge/game/ability/effects/BecomesBlockedEffect.java | 1 - .../main/java/forge/game/ability/effects/BlockEffect.java | 1 - .../src/main/java/forge/game/phase/PhaseHandler.java | 1 - .../java/forge/game/trigger/TriggerAttackerBlocked.java | 7 ++++--- 6 files changed, 4 insertions(+), 8 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityKey.java b/forge-game/src/main/java/forge/game/ability/AbilityKey.java index f1665142615..f294102e414 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityKey.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityKey.java @@ -90,7 +90,6 @@ public enum AbilityKey { NewCounterAmount("NewCounterAmount"), NoPreventDamage("NoPreventDamage"), Num("Num"), // TODO confirm that this and NumThisTurn can be merged - NumBlockers("NumBlockers"), NumThisTurn("NumThisTurn"), Number("Number"), Object("Object"), diff --git a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java index d9a8f8fa3df..97996f91b5b 100644 --- a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java @@ -644,7 +644,6 @@ public abstract class SpellAbilityEffect { final Map runParams = AbilityKey.newMap(); runParams.put(AbilityKey.Attacker, attacker); runParams.put(AbilityKey.Blockers, blockers); - runParams.put(AbilityKey.NumBlockers, blockers.size()); runParams.put(AbilityKey.Defender, combat.getDefenderByAttacker(attacker)); runParams.put(AbilityKey.DefendingPlayer, combat.getDefenderPlayerByAttacker(attacker)); game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); diff --git a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java index d227abea28e..3e31e6f37fa 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java @@ -41,7 +41,6 @@ public class BecomesBlockedEffect extends SpellAbilityEffect { final Map runParams = AbilityKey.newMap(); runParams.put(AbilityKey.Attacker, c); runParams.put(AbilityKey.Blockers, Lists.newArrayList()); - runParams.put(AbilityKey.NumBlockers, 0); runParams.put(AbilityKey.Defender, game.getCombat().getDefenderByAttacker(c)); runParams.put(AbilityKey.DefendingPlayer, game.getCombat().getDefenderPlayerByAttacker(c)); game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); diff --git a/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java index 04c9afa2e4d..c0dd41e7048 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java @@ -79,7 +79,6 @@ public class BlockEffect extends SpellAbilityEffect { final Map runParams = AbilityKey.newMap(); runParams.put(AbilityKey.Attacker, attacker); runParams.put(AbilityKey.Blockers, blockers); - runParams.put(AbilityKey.NumBlockers, blockers.size()); runParams.put(AbilityKey.Defender, combat.getDefenderByAttacker(attacker)); runParams.put(AbilityKey.DefendingPlayer, combat.getDefenderPlayerByAttacker(attacker)); game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 6291d80ba58..2617e306759 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -791,7 +791,6 @@ public class PhaseHandler implements java.io.Serializable { final Map runParams = AbilityKey.newMap(); runParams.put(AbilityKey.Attacker, a); runParams.put(AbilityKey.Blockers, blockers); - runParams.put(AbilityKey.NumBlockers, blockers.size()); runParams.put(AbilityKey.Defender, combat.getDefenderByAttacker(a)); runParams.put(AbilityKey.DefendingPlayer, combat.getDefenderPlayerByAttacker(a)); game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java index 43aea39da57..152d184f683 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java @@ -19,6 +19,8 @@ package forge.game.trigger; import java.util.Map; +import com.google.common.collect.Iterables; + import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardLists; @@ -83,8 +85,7 @@ public class TriggerAttackerBlocked extends Trigger { AbilityKey.Attacker, AbilityKey.Blockers, AbilityKey.Defender, - AbilityKey.DefendingPlayer, - AbilityKey.NumBlockers + AbilityKey.DefendingPlayer ); } @@ -92,7 +93,7 @@ public class TriggerAttackerBlocked extends Trigger { public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); sb.append(Localizer.getInstance().getMessage("lblAttacker")).append(": ").append(sa.getTriggeringObject(AbilityKey.Attacker)).append(", "); - sb.append(Localizer.getInstance().getMessage("lblNumberBlockers")).append(": ").append(sa.getTriggeringObject(AbilityKey.NumBlockers)); + sb.append(Localizer.getInstance().getMessage("lblNumberBlockers")).append(": ").append(Iterables.size((Iterable) sa.getTriggeringObject(AbilityKey.Blockers))); return sb.toString(); } } From d656bed11c6317a6f79efcc9554475e555183e07 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 1 Nov 2022 15:25:14 +0100 Subject: [PATCH 5/7] Update AI checks --- .../src/main/java/forge/ai/AiBlockController.java | 2 +- .../src/main/java/forge/ai/ComputerUtilCombat.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiBlockController.java b/forge-ai/src/main/java/forge/ai/AiBlockController.java index 2ce4527e901..d1e09092537 100644 --- a/forge-ai/src/main/java/forge/ai/AiBlockController.java +++ b/forge-ai/src/main/java/forge/ai/AiBlockController.java @@ -352,7 +352,7 @@ public class AiBlockController { if (ab.getApi() == ApiType.Pump && "Self".equals(ab.getParam("Defined"))) { String rawP = ab.getParam("NumAtt"); String rawT = ab.getParam("NumDef"); - if ("+X".equals(rawP) && "+X".equals(rawT) && "TriggerCount$NumBlockers".equals(card.getSVar("X"))) { + if ("+X".equals(rawP) && "+X".equals(rawT) && card.getSVar("X").startsWith("Count$Valid Creature.blockingTriggeredAttacker")) { return true; } // TODO: maybe also predict calculated bonus above certain threshold? diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index 5f30d9cbbad..13e83303229 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -1286,8 +1286,8 @@ public class ComputerUtilCombat { power += Integer.parseInt(att); } else { String bonus = AbilityUtils.getSVar(sa, att); - if (bonus.contains("TriggerCount$NumBlockers")) { - bonus = TextUtil.fastReplace(bonus, "TriggerCount$NumBlockers", "Number$1"); + if (bonus.contains("Count$Valid Creature.blockingTriggeredAttacker")) { + bonus = TextUtil.fastReplace(bonus, "Count$Valid Creature.blockingTriggeredAttacker", "Number$1"); } else if (bonus.contains("TriggeredPlayersDefenders$Amount")) { // for Melee bonus = TextUtil.fastReplace(bonus, "TriggeredPlayersDefenders$Amount", "Number$1"); } else if (bonus.contains("TriggeredAttacker$CardPower")) { // e.g. Arahbo, Roar of the World @@ -1475,8 +1475,8 @@ public class ComputerUtilCombat { toughness += Integer.parseInt(def); } else { String bonus = AbilityUtils.getSVar(sa, def); - if (bonus.contains("TriggerCount$NumBlockers")) { - bonus = TextUtil.fastReplace(bonus, "TriggerCount$NumBlockers", "Number$1"); + if (bonus.contains("Count$Valid Creature.blockingTriggeredAttacker")) { + bonus = TextUtil.fastReplace(bonus, "Count$Valid Creature.blockingTriggeredAttacker", "Number$1"); } else if (bonus.contains("TriggeredPlayersDefenders$Amount")) { // for Melee bonus = TextUtil.fastReplace(bonus, "TriggeredPlayersDefenders$Amount", "Number$1"); } @@ -1507,8 +1507,8 @@ public class ComputerUtilCombat { toughness += Integer.parseInt(def); } else { String bonus = AbilityUtils.getSVar(sa, def); - if (bonus.contains("TriggerCount$NumBlockers")) { - bonus = TextUtil.fastReplace(bonus, "TriggerCount$NumBlockers", "Number$1"); + if (bonus.contains("Count$Valid Creature.blockingTriggeredAttacker")) { + bonus = TextUtil.fastReplace(bonus, "Count$Valid Creature.blockingTriggeredAttacker", "Number$1"); } else if (bonus.contains("TriggeredPlayersDefenders$Amount")) { // for Melee bonus = TextUtil.fastReplace(bonus, "TriggeredPlayersDefenders$Amount", "Number$1"); } From 64a9481a80d8d033686967bee5ee4cc2b4b24cba Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 1 Nov 2022 15:47:31 +0100 Subject: [PATCH 6/7] Fix missing LKI --- forge-gui/res/cardsfolder/a/adrianas_valor.txt | 2 +- forge-gui/res/cardsfolder/a/ageless_sentinels.txt | 2 +- forge-gui/res/cardsfolder/a/aisling_leprechaun.txt | 4 ++-- forge-gui/res/cardsfolder/a/altar_of_the_goyf.txt | 2 +- forge-gui/res/cardsfolder/a/angelic_exaltation.txt | 2 +- forge-gui/res/cardsfolder/a/anthem_of_rakdos.txt | 2 +- forge-gui/res/cardsfolder/a/arahbo_roar_of_the_world.txt | 2 +- forge-gui/res/cardsfolder/a/asari_captain.txt | 2 +- forge-gui/res/cardsfolder/a/atarka_world_render.txt | 2 +- forge-gui/res/cardsfolder/b/barbed_foliage.txt | 2 +- forge-gui/res/cardsfolder/b/barreling_attack.txt | 2 +- forge-gui/res/cardsfolder/b/battle_cry.txt | 2 +- forge-gui/res/cardsfolder/b/battlegrace_angel.txt | 2 +- forge-gui/res/cardsfolder/b/beastmasters_magemark.txt | 2 +- forge-gui/res/cardsfolder/b/berserk_murlodont.txt | 2 +- forge-gui/res/cardsfolder/b/bestial_fury.txt | 2 +- forge-gui/res/cardsfolder/b/briar_patch.txt | 2 +- forge-gui/res/cardsfolder/c/catacomb_dragon.txt | 2 +- forge-gui/res/cardsfolder/c/chainflail_centipede.txt | 2 +- forge-gui/res/cardsfolder/c/cleric_of_chill_depths.txt | 2 +- forge-gui/res/cardsfolder/c/crown_of_doom.txt | 2 +- forge-gui/res/cardsfolder/d/death_kiss.txt | 2 +- forge-gui/res/cardsfolder/d/dhalsim_pliable_pacifist.txt | 4 ++-- forge-gui/res/cardsfolder/d/dreadhorde_invasion.txt | 2 +- forge-gui/res/cardsfolder/d/dream_fighter.txt | 8 ++++---- forge-gui/res/cardsfolder/e/eiganjo_exemplar.txt | 2 +- forge-gui/res/cardsfolder/e/elder_land_wurm.txt | 2 +- forge-gui/res/cardsfolder/e/elvish_reclaimer.txt | 2 +- forge-gui/res/cardsfolder/f/fervent_charge.txt | 2 +- forge-gui/res/cardsfolder/f/finest_hour.txt | 2 +- forge-gui/res/cardsfolder/f/flailing_drake.txt | 4 ++-- forge-gui/res/cardsfolder/g/gahiji_honored_one.txt | 2 +- forge-gui/res/cardsfolder/g/garruk_apex_predator.txt | 2 +- forge-gui/res/cardsfolder/g/gaze_of_pain.txt | 2 +- .../res/cardsfolder/g/general_marhault_elsdragon.txt | 2 +- forge-gui/res/cardsfolder/g/glory_bearers.txt | 2 +- forge-gui/res/cardsfolder/g/goblin_flotilla.txt | 4 ++-- forge-gui/res/cardsfolder/g/gravity_well.txt | 2 +- forge-gui/res/cardsfolder/g/gustcloak_savior.txt | 4 ++-- forge-gui/res/cardsfolder/h/hedron_blade.txt | 2 +- forge-gui/res/cardsfolder/i/imprison.txt | 8 ++++---- forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt | 2 +- forge-gui/res/cardsfolder/k/kitsune_ace.txt | 2 +- forge-gui/res/cardsfolder/k/kragma_warcaller.txt | 2 +- forge-gui/res/cardsfolder/l/labyrinth_minotaur.txt | 2 +- forge-gui/res/cardsfolder/l/laccolith_rig.txt | 2 +- forge-gui/res/cardsfolder/l/lim_duls_cohort.txt | 4 ++-- forge-gui/res/cardsfolder/l/lost_in_the_woods.txt | 2 +- forge-gui/res/cardsfolder/m/mammoth_harness.txt | 4 ++-- forge-gui/res/cardsfolder/m/master_symmetrist.txt | 2 +- forge-gui/res/cardsfolder/m/mazzy_truesword_paladin.txt | 2 +- forge-gui/res/cardsfolder/m/melee.txt | 4 ++-- forge-gui/res/cardsfolder/m/mindbender_spores.txt | 2 +- forge-gui/res/cardsfolder/m/momentum_rumbler.txt | 2 +- forge-gui/res/cardsfolder/o/ondu_rising.txt | 2 +- forge-gui/res/cardsfolder/p/pact_weapon.txt | 2 +- forge-gui/res/cardsfolder/r/rafiq_of_the_many.txt | 2 +- forge-gui/res/cardsfolder/r/raiyuu_storms_edge.txt | 2 +- forge-gui/res/cardsfolder/r/reyav_master_smith.txt | 2 +- forge-gui/res/cardsfolder/r/righteous_indignation.txt | 2 +- forge-gui/res/cardsfolder/s/selfless_samurai.txt | 2 +- forge-gui/res/cardsfolder/s/shared_animosity.txt | 2 +- forge-gui/res/cardsfolder/s/shield_of_the_righteous.txt | 2 +- forge-gui/res/cardsfolder/s/skyboon_evangelist.txt | 2 +- forge-gui/res/cardsfolder/s/slab_hammer.txt | 2 +- forge-gui/res/cardsfolder/s/somberwald_alpha.txt | 2 +- forge-gui/res/cardsfolder/s/song_of_blood.txt | 2 +- forge-gui/res/cardsfolder/s/soulblade_corrupter.txt | 2 +- forge-gui/res/cardsfolder/s/spiked_ripsaw.txt | 2 +- forge-gui/res/cardsfolder/s/spined_sliver.txt | 2 +- forge-gui/res/cardsfolder/s/stitchers_graft.txt | 2 +- forge-gui/res/cardsfolder/s/stonebrow_krosan_hero.txt | 2 +- forge-gui/res/cardsfolder/s/stonehoof_chieftain.txt | 2 +- forge-gui/res/cardsfolder/t/talruum_champion.txt | 4 ++-- forge-gui/res/cardsfolder/t/thunderous_might.txt | 2 +- .../res/cardsfolder/t/two_handed_axe_sweeping_cleave.txt | 2 +- forge-gui/res/cardsfolder/u/unstoppable_ash.txt | 2 +- forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt | 2 +- forge-gui/res/cardsfolder/upcoming/genestealer_locus.txt | 4 ++-- forge-gui/res/cardsfolder/v/vertigo_spawn.txt | 4 ++-- forge-gui/res/cardsfolder/w/wall_of_frost.txt | 2 +- forge-gui/res/cardsfolder/w/wand_of_orcus.txt | 4 ++-- forge-gui/res/cardsfolder/w/witherscale_wurm.txt | 4 ++-- forge-gui/res/tokenscripts/u_0_2_illusion_mesmerize.txt | 2 +- 84 files changed, 103 insertions(+), 103 deletions(-) diff --git a/forge-gui/res/cardsfolder/a/adrianas_valor.txt b/forge-gui/res/cardsfolder/a/adrianas_valor.txt index bb32fe15c4f..676195c82ec 100644 --- a/forge-gui/res/cardsfolder/a/adrianas_valor.txt +++ b/forge-gui/res/cardsfolder/a/adrianas_valor.txt @@ -3,6 +3,6 @@ ManaCost:no cost Types:Conspiracy K:Hidden agenda T:Mode$ Attacks | ValidCard$ Creature.NamedCard+YouCtrl | Execute$ TrigPump | TriggerZones$ Command | TriggerDescription$ Whenever a creature you control with the chosen name attacks, you may pay {W}. If you do, that creature gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it.) -SVar:TrigPump:AB$ Pump | Cost$ W | Defined$ TriggeredAttacker | KW$ Indestructible +SVar:TrigPump:AB$ Pump | Cost$ W | Defined$ TriggeredAttackerLKICopy | KW$ Indestructible SVar:AgendaLogic:BestCreatureInComputerDeck Oracle:Hidden agenda (Start the game with this conspiracy face down in the command zone and secretly choose a card name. You may turn this conspiracy face up any time and reveal that name.)\nWhenever a creature you control with the chosen name attacks, you may pay {W}. If you do, that creature gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it.) diff --git a/forge-gui/res/cardsfolder/a/ageless_sentinels.txt b/forge-gui/res/cardsfolder/a/ageless_sentinels.txt index 55519a50eb1..403f68001a8 100644 --- a/forge-gui/res/cardsfolder/a/ageless_sentinels.txt +++ b/forge-gui/res/cardsfolder/a/ageless_sentinels.txt @@ -5,5 +5,5 @@ PT:4/4 K:Flying K:Defender T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ Animate | TriggerDescription$ When CARDNAME blocks, it becomes a Bird Giant, and it loses defender. -SVar:Animate:DB$ Animate | Defined$ TriggeredBlocker | Types$ Bird,Giant | RemoveCreatureTypes$ True | RemoveKeywords$ Defender | Duration$ Permanent +SVar:Animate:DB$ Animate | Defined$ TriggeredBlockerLKICopy | Types$ Bird,Giant | RemoveCreatureTypes$ True | RemoveKeywords$ Defender | Duration$ Permanent Oracle:Defender (This creature can't attack.)\nFlying\nWhen Ageless Sentinels blocks, it becomes a Bird Giant, and it loses defender. (It's no longer a Wall. This effect lasts indefinitely.) diff --git a/forge-gui/res/cardsfolder/a/aisling_leprechaun.txt b/forge-gui/res/cardsfolder/a/aisling_leprechaun.txt index b416a274fb5..481d73ba178 100644 --- a/forge-gui/res/cardsfolder/a/aisling_leprechaun.txt +++ b/forge-gui/res/cardsfolder/a/aisling_leprechaun.txt @@ -4,6 +4,6 @@ Types:Creature Faerie PT:1/1 T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ TrigAnimateAttacker | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature becomes green. (This effect lasts indefinitely.) T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | Execute$ TrigAnimateBlocker | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature becomes green. (This effect lasts indefinitely.) -SVar:TrigAnimateAttacker:DB$ Animate | Defined$ TriggeredAttacker | Colors$ Green | OverwriteColors$ True | Duration$ Permanent -SVar:TrigAnimateBlocker:DB$ Animate | Defined$ TriggeredBlocker | Colors$ Green | OverwriteColors$ True | Duration$ Permanent +SVar:TrigAnimateAttacker:DB$ Animate | Defined$ TriggeredAttackerLKICopy | Colors$ Green | OverwriteColors$ True | Duration$ Permanent +SVar:TrigAnimateBlocker:DB$ Animate | Defined$ TriggeredBlockerLKICopy | Colors$ Green | OverwriteColors$ True | Duration$ Permanent Oracle:Whenever Aisling Leprechaun blocks or becomes blocked by a creature, that creature becomes green. (This effect lasts indefinitely.) diff --git a/forge-gui/res/cardsfolder/a/altar_of_the_goyf.txt b/forge-gui/res/cardsfolder/a/altar_of_the_goyf.txt index c6fa9a06f94..e28f467596c 100644 --- a/forge-gui/res/cardsfolder/a/altar_of_the_goyf.txt +++ b/forge-gui/res/cardsfolder/a/altar_of_the_goyf.txt @@ -2,7 +2,7 @@ Name:Altar of the Goyf ManaCost:5 Types:Tribal Artifact Lhurgoyf T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of card types among cards in all graveyards. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X | NumDef$ +X S:Mode$ Continuous | Affected$ Creature.Lhurgoyf+YouCtrl | AddKeyword$ Trample | Description$ Lhurgoyf creatures you control have trample. SVar:X:Count$CardTypes.ValidGraveyard Card SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/a/angelic_exaltation.txt b/forge-gui/res/cardsfolder/a/angelic_exaltation.txt index bf08a8026bd..02326b20204 100644 --- a/forge-gui/res/cardsfolder/a/angelic_exaltation.txt +++ b/forge-gui/res/cardsfolder/a/angelic_exaltation.txt @@ -2,7 +2,7 @@ Name:Angelic Exaltation ManaCost:3 W Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of creatures you control. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X | NumDef$ +X SVar:X:Count$Valid Creature.YouCtrl SVar:PlayMain1:TRUE Oracle:Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of creatures you control. diff --git a/forge-gui/res/cardsfolder/a/anthem_of_rakdos.txt b/forge-gui/res/cardsfolder/a/anthem_of_rakdos.txt index 05098fbb51c..ca2edd84286 100644 --- a/forge-gui/res/cardsfolder/a/anthem_of_rakdos.txt +++ b/forge-gui/res/cardsfolder/a/anthem_of_rakdos.txt @@ -2,7 +2,7 @@ Name:Anthem of Rakdos ManaCost:2 B R R Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ AnthemPump | TriggerDescription$ Whenever a creature you control attacks, it gets +2/+0 until end of turn and CARDNAME deals 1 damage to you. -SVar:AnthemPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ 2 | SubAbility$ RakdosBurn +SVar:AnthemPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ 2 | SubAbility$ RakdosBurn SVar:RakdosBurn:DB$ DealDamage | Defined$ You | NumDmg$ 1 R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.YouCtrl,Emblem.YouCtrl | ValidTarget$ Permanent,Player | Hellbent$ True | ReplaceWith$ DmgTwice | Description$ Hellbent — As long as you have no cards in hand, if a source you control would deal damage to a permanent or player, it deals double that damage to that permanent or player instead. SVar:DmgTwice:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ X diff --git a/forge-gui/res/cardsfolder/a/arahbo_roar_of_the_world.txt b/forge-gui/res/cardsfolder/a/arahbo_roar_of_the_world.txt index 15c5d5b6295..70636b3a15d 100644 --- a/forge-gui/res/cardsfolder/a/arahbo_roar_of_the_world.txt +++ b/forge-gui/res/cardsfolder/a/arahbo_roar_of_the_world.txt @@ -6,7 +6,7 @@ T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefiel T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Command | IsPresent$ Card.Self | PresentZone$ Command | Execute$ TrigPump1 | Secondary$ True SVar:TrigPump1:DB$ Pump | ValidTgts$ Creature.Cat+YouCtrl+Other | TgtPrompt$ Select another target Cat you control | NumAtt$ 3 | NumDef$ 3 T:Mode$ Attacks | ValidCard$ Creature.Cat+Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump2 | TriggerDescription$ Whenever another Cat you control attacks, you may pay {1}{G}{W}. If you do, it gains trample and gets +X/+X until end of turn, where X is its power. -SVar:TrigPump2:AB$ Pump | Cost$ 1 G W | Defined$ TriggeredAttacker | KW$ Trample | NumAtt$ X | NumDef$ X +SVar:TrigPump2:AB$ Pump | Cost$ 1 G W | Defined$ TriggeredAttackerLKICopy | KW$ Trample | NumAtt$ X | NumDef$ X SVar:X:TriggeredAttacker$CardPower SVar:BuffedBy:Cat SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/a/asari_captain.txt b/forge-gui/res/cardsfolder/a/asari_captain.txt index 4c6f4102339..0a16b3e2d79 100644 --- a/forge-gui/res/cardsfolder/a/asari_captain.txt +++ b/forge-gui/res/cardsfolder/a/asari_captain.txt @@ -4,7 +4,7 @@ Types:Creature Human Samurai PT:4/3 K:Haste T:Mode$ Attacks | ValidCard$ Samurai.YouCtrl,Warrior.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Samurai or Warrior you control attacks alone, it gets +1/+0 until end of turn for each Samurai or Warrior you control. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X SVar:X:Count$Valid Samurai.YouCtrl,Warrior.YouCtrl DeckHints:Type$Samurai|Warrior Oracle:Haste\nWhenever a Samurai or Warrior you control attacks alone, it gets +1/+0 until end of turn for each Samurai or Warrior you control. diff --git a/forge-gui/res/cardsfolder/a/atarka_world_render.txt b/forge-gui/res/cardsfolder/a/atarka_world_render.txt index 2a7d627800d..7a47cbfa29f 100644 --- a/forge-gui/res/cardsfolder/a/atarka_world_render.txt +++ b/forge-gui/res/cardsfolder/a/atarka_world_render.txt @@ -5,7 +5,7 @@ PT:6/4 K:Flying K:Trample T:Mode$ Attacks | ValidCard$ Dragon.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Dragon you control attacks, it gains double strike until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Double Strike +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Double Strike SVar:BuffedBy:Dragon SVar:PlayMain1:TRUE DeckHints:Type$Dragon diff --git a/forge-gui/res/cardsfolder/b/barbed_foliage.txt b/forge-gui/res/cardsfolder/b/barbed_foliage.txt index 47953ea4cf6..6ba2a78a9c8 100644 --- a/forge-gui/res/cardsfolder/b/barbed_foliage.txt +++ b/forge-gui/res/cardsfolder/b/barbed_foliage.txt @@ -2,7 +2,7 @@ Name:Barbed Foliage ManaCost:2 G G Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature | Attacked$ You | Execute$ TrigDebuff | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature attacks you, it loses flanking until end of turn. -SVar:TrigDebuff:DB$ Debuff | Defined$ TriggeredAttacker | Keywords$ Flanking +SVar:TrigDebuff:DB$ Debuff | Defined$ TriggeredAttackerLKICopy | Keywords$ Flanking T:Mode$ Attacks | ValidCard$ Creature.withoutFlying | Attacked$ You | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature without flying attacks you, CARDNAME deals 1 damage to it. SVar:TrigDamage:DB$ DealDamage | NumDmg$ 1 | Defined$ TriggeredAttacker Oracle:Whenever a creature attacks you, it loses flanking until end of turn.\nWhenever a creature without flying attacks you, Barbed Foliage deals 1 damage to it. diff --git a/forge-gui/res/cardsfolder/b/barreling_attack.txt b/forge-gui/res/cardsfolder/b/barreling_attack.txt index 285d18025bf..439c86091e0 100644 --- a/forge-gui/res/cardsfolder/b/barreling_attack.txt +++ b/forge-gui/res/cardsfolder/b/barreling_attack.txt @@ -4,6 +4,6 @@ Types:Instant A:SP$ Pump | Cost$ 2 R R | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Trample | SubAbility$ DBEffect | SpellDescription$ Target creature gains trample until end of turn. When that creature becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | Triggers$ TrigBounce | ForgetOnMoved$ Battlefield SVar:TrigBounce:Mode$ AttackerBlocked | ValidCard$ Card.IsRemembered | TriggerZones$ Command | Execute$ ABBarrelingPump | TriggerDescription$ When CARDNAME becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. -SVar:ABBarrelingPump:DB$ Pump | Defined$ Remembered | NumAtt$ +BarrelingX | NumDef$ +BarrelingX +SVar:ABBarrelingPump:DB$ Pump | Defined$ RememberedLKI | NumAtt$ +BarrelingX | NumDef$ +BarrelingX SVar:BarrelingX:Count$Valid Creature.blockingTriggeredAttacker Oracle:Target creature gains trample until end of turn. When that creature becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/b/battle_cry.txt b/forge-gui/res/cardsfolder/b/battle_cry.txt index 9964cb58c0f..99cc48c5080 100644 --- a/forge-gui/res/cardsfolder/b/battle_cry.txt +++ b/forge-gui/res/cardsfolder/b/battle_cry.txt @@ -4,6 +4,6 @@ Types:Instant A:SP$ UntapAll | Cost$ 2 W | ValidCards$ Creature.White+YouCtrl | SubAbility$ Battlecry | SpellDescription$ Untap all white creatures you control. Whenever a creature blocks this turn, it gets +0/+1 until end of turn. SVar:Battlecry:DB$ Effect | Triggers$ TrigBlocking SVar:TrigBlocking:Mode$ AttackerBlocked | Execute$ Pump | TriggerDescription$ Whenever a creature blocks this turn, it gets +0/+1 until end of turn. -SVar:Pump:DB$ Pump | Defined$ TriggeredBlocker | NumDef$ 1 +SVar:Pump:DB$ Pump | Defined$ TriggeredBlockerLKICopy | NumDef$ 1 AI:RemoveDeck:All Oracle:Untap all white creatures you control.\nWhenever a creature blocks this turn, it gets +0/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/b/battlegrace_angel.txt b/forge-gui/res/cardsfolder/b/battlegrace_angel.txt index 6d2655e6422..5a62867f9e2 100644 --- a/forge-gui/res/cardsfolder/b/battlegrace_angel.txt +++ b/forge-gui/res/cardsfolder/b/battlegrace_angel.txt @@ -5,6 +5,6 @@ PT:4/4 K:Flying K:Exalted T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks alone, it gains lifelink until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Lifelink +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Lifelink DeckHas:Ability$LifeGain Oracle:Flying\nExalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)\nWhenever a creature you control attacks alone, it gains lifelink until end of turn. diff --git a/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt b/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt index b1ea41e7f9a..54a3b01e43a 100644 --- a/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt +++ b/forge-gui/res/cardsfolder/b/beastmasters_magemark.txt @@ -5,6 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ 2 G | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.enchanted+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Creatures you control that are enchanted get +1/+1. T:Mode$ AttackerBlocked | ValidCard$ Creature.enchanted+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control that's enchanted becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X | NumDef$ +X SVar:X:Count$Valid Creature.blockingTriggeredAttacker Oracle:Enchant creature\nCreatures you control that are enchanted get +1/+1.\nWhenever a creature you control that's enchanted becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/b/berserk_murlodont.txt b/forge-gui/res/cardsfolder/b/berserk_murlodont.txt index 2846168e599..f8deec3e1a9 100644 --- a/forge-gui/res/cardsfolder/b/berserk_murlodont.txt +++ b/forge-gui/res/cardsfolder/b/berserk_murlodont.txt @@ -3,7 +3,7 @@ ManaCost:4 G Types:Creature Beast PT:3/3 T:Mode$ AttackerBlocked | ValidCard$ Beast | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Beast becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X | NumDef$ +X SVar:X:Count$Valid Creature.blockingTriggeredAttacker DeckHints:Type$Beast Oracle:Whenever a Beast becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/b/bestial_fury.txt b/forge-gui/res/cardsfolder/b/bestial_fury.txt index f116658abc3..f476ddfc06d 100644 --- a/forge-gui/res/cardsfolder/b/bestial_fury.txt +++ b/forge-gui/res/cardsfolder/b/bestial_fury.txt @@ -7,5 +7,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S T:Mode$ AttackerBlocked | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever enchanted creature becomes blocked, it gets +4/+0 and gains trample until end of turn. SVar:DelTrigSlowtrip:DB$ DelayedTrigger | NextTurn$ True | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | TriggerDescription$ Draw a card. SVar:DrawSlowtrip:DB$ Draw | NumCards$ 1 | Defined$ You -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +4 | KW$ Trample +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +4 | KW$ Trample Oracle:Enchant creature\nWhen Bestial Fury enters the battlefield, draw a card at the beginning of the next turn's upkeep.\nWhenever enchanted creature becomes blocked, it gets +4/+0 and gains trample until end of turn. diff --git a/forge-gui/res/cardsfolder/b/briar_patch.txt b/forge-gui/res/cardsfolder/b/briar_patch.txt index 35295f4d982..b280aa12065 100644 --- a/forge-gui/res/cardsfolder/b/briar_patch.txt +++ b/forge-gui/res/cardsfolder/b/briar_patch.txt @@ -2,5 +2,5 @@ Name:Briar Patch ManaCost:1 G G Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature | Attacked$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature attacks you, it gets -1/-0 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ -1 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ -1 Oracle:Whenever a creature attacks you, it gets -1/-0 until end of turn. diff --git a/forge-gui/res/cardsfolder/c/catacomb_dragon.txt b/forge-gui/res/cardsfolder/c/catacomb_dragon.txt index f6748c84595..544b8696949 100644 --- a/forge-gui/res/cardsfolder/c/catacomb_dragon.txt +++ b/forge-gui/res/cardsfolder/c/catacomb_dragon.txt @@ -4,6 +4,6 @@ Types:Creature Dragon PT:4/4 K:Flying T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature.nonArtifact+nonDragon | Execute$ TrigPumpBlocker | TriggerDescription$ Whenever CARDNAME becomes blocked by a nonartifact, non-Dragon creature, that creature gets -X/-0 until end of turn, where X is half the creature's power, rounded down. -SVar:TrigPumpBlocker:DB$ Pump | Defined$ TriggeredBlocker | NumAtt$ -X +SVar:TrigPumpBlocker:DB$ Pump | Defined$ TriggeredBlockerLKICopy | NumAtt$ -X SVar:X:TriggeredBlocker$CardPower/HalfDown Oracle:Flying\nWhenever Catacomb Dragon becomes blocked by a nonartifact, non-Dragon creature, that creature gets -X/-0 until end of turn, where X is half the creature's power, rounded down. diff --git a/forge-gui/res/cardsfolder/c/chainflail_centipede.txt b/forge-gui/res/cardsfolder/c/chainflail_centipede.txt index baf1abfa71c..344bdefdd4e 100644 --- a/forge-gui/res/cardsfolder/c/chainflail_centipede.txt +++ b/forge-gui/res/cardsfolder/c/chainflail_centipede.txt @@ -4,7 +4,7 @@ Types:Artifact Creature Equipment Insect PT:2/2 K:Reconfigure:2 T:Mode$ Attacks | ValidCard$ Card.Self,Creature.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME or equipped creature attacks, it gets +2/+0 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ 2 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ 2 SVar:HasAttackEffect:TRUE S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddSVar$ AE SVar:AE:SVar:HasAttackEffect:TRUE diff --git a/forge-gui/res/cardsfolder/c/cleric_of_chill_depths.txt b/forge-gui/res/cardsfolder/c/cleric_of_chill_depths.txt index 7599ed0c7cd..d6deb1438c9 100644 --- a/forge-gui/res/cardsfolder/c/cleric_of_chill_depths.txt +++ b/forge-gui/res/cardsfolder/c/cleric_of_chill_depths.txt @@ -3,5 +3,5 @@ ManaCost:1 U Types:Creature Merfolk Cleric PT:1/3 T:Mode$ AttackerBlocked | ValidBlocker$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME blocks a creature, that creature doesn't untap during its controller's next untap step. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent Oracle:Whenever Cleric of Chill Depths blocks a creature, that creature doesn't untap during its controller's next untap step. diff --git a/forge-gui/res/cardsfolder/c/crown_of_doom.txt b/forge-gui/res/cardsfolder/c/crown_of_doom.txt index d08ce8fb1aa..34e3341ff70 100644 --- a/forge-gui/res/cardsfolder/c/crown_of_doom.txt +++ b/forge-gui/res/cardsfolder/c/crown_of_doom.txt @@ -2,7 +2,7 @@ Name:Crown of Doom ManaCost:3 Types:Artifact T:Mode$ Attacks | ValidCard$ Creature | Attacked$ You,Planeswalker.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature attacks you or a planeswalker you control, it gets +2/+0 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +2 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +2 A:AB$ GainControl | Cost$ 2 | Defined$ Self | ValidTgts$ Player.OtherThanSourceOwner | TgtPrompt$ Select target player other than the owner | PlayerTurn$ True | SpellDescription$ Target player other than CARDNAME's owner gains control of it. Activate only during your turn. AI:RemoveDeck:All Oracle:Whenever a creature attacks you or a planeswalker you control, it gets +2/+0 until end of turn.\n{2}: Target player other than Crown of Doom's owner gains control of it. Activate only during your turn. diff --git a/forge-gui/res/cardsfolder/d/death_kiss.txt b/forge-gui/res/cardsfolder/d/death_kiss.txt index 5ead68d0ebb..75b41524d90 100644 --- a/forge-gui/res/cardsfolder/d/death_kiss.txt +++ b/forge-gui/res/cardsfolder/d/death_kiss.txt @@ -3,7 +3,7 @@ ManaCost:5 R Types:Creature Beholder PT:5/5 T:Mode$ Attacks | ValidCard$ Creature.OppCtrl | Attacked$ Opponent | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature an opponent controls attacks one of your opponents, double its power until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +Y | Double$ True +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +Y | Double$ True SVar:Y:TriggeredAttacker$CardPower K:Monstrosity:X:X X R SVar:X:Count$xPaid diff --git a/forge-gui/res/cardsfolder/d/dhalsim_pliable_pacifist.txt b/forge-gui/res/cardsfolder/d/dhalsim_pliable_pacifist.txt index efbb7f0ee48..26484bd1b2c 100644 --- a/forge-gui/res/cardsfolder/d/dhalsim_pliable_pacifist.txt +++ b/forge-gui/res/cardsfolder/d/dhalsim_pliable_pacifist.txt @@ -5,8 +5,8 @@ PT:1/3 K:Reach S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Hexproof | IsPresent$ Card.Self+notattacking | Description$ Teleport — CARDNAME has hexproof unless he's attacking. T:Mode$ Attacks | ValidCard$ Creature.YouCtrl+withReach | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ Whenever a creature you control with reach attacks, untap it and it can't be blocked by creatures with greater power this combat. -SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttacker | SubAbility$ DBAnimate -SVar:DBAnimate:DB$ Animate | Defined$ TriggeredAttacker | staticAbilities$ CantBeBlockedPow | Duration$ UntilEndOfCombat +SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttackerLKICopy | SubAbility$ DBAnimate +SVar:DBAnimate:DB$ Animate | Defined$ TriggeredAttackerLKICopy | staticAbilities$ CantBeBlockedPow | Duration$ UntilEndOfCombat SVar:CantBeBlockedPow:Mode$ CantBlockBy | ValidAttacker$ Card.Self | ValidBlocker$ Creature.powerGTX | Description$ CARDNAME can't be blocked by creatures with greater power this combat. SVar:X:Count$CardPower T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.YouCtrl | TriggerZones$ Battlefield | ValidTarget$ Player | Execute$ TrigDraw | TriggerDescription$ Fierce Punch — Whenever one or more creatures you control deal combat damage to a player, draw a card. diff --git a/forge-gui/res/cardsfolder/d/dreadhorde_invasion.txt b/forge-gui/res/cardsfolder/d/dreadhorde_invasion.txt index 5b87251a7f0..bbec0d3bed0 100644 --- a/forge-gui/res/cardsfolder/d/dreadhorde_invasion.txt +++ b/forge-gui/res/cardsfolder/d/dreadhorde_invasion.txt @@ -5,7 +5,7 @@ T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | E SVar:DBLife:DB$ LoseLife | LifeAmount$ 1 | SubAbility$ DBAmass SVar:DBAmass:DB$ Amass | Num$ 1 T:Mode$ Attacks | ValidCard$ Creature.Zombie+token+YouCtrl+powerGE6 | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Zombie token you control with power 6 or greater attacks, it gains lifelink until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Lifelink +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Lifelink SVar:AICastPreference:NeverCastIfLifeBelow$ 4 DeckHints:Ability$Amass & Type$Zombie DeckHas:Ability$Amass|Counters|Token diff --git a/forge-gui/res/cardsfolder/d/dream_fighter.txt b/forge-gui/res/cardsfolder/d/dream_fighter.txt index 47ad75b5556..50bc82b5629 100644 --- a/forge-gui/res/cardsfolder/d/dream_fighter.txt +++ b/forge-gui/res/cardsfolder/d/dream_fighter.txt @@ -2,9 +2,9 @@ Name:Dream Fighter ManaCost:2 U Types:Creature Human Soldier PT:1/1 -T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPhaseAttacker | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, Dream Fighter and that creature phase out. -T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | TriggerZones$ Battlefield | Execute$ TrigPhaseBlocker | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, Dream Fighter and that creature phase out. -SVar:TrigPhaseAttacker:DB$ Phases | Defined$ TriggeredAttacker | SubAbility$ DBPhaseSelf -SVar:TrigPhaseBlocker:DB$ Phases | Defined$ TriggeredBlocker | SubAbility$ DBPhaseSelf +T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPhaseAttacker | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, CARDNAME and that creature phase out. +T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | TriggerZones$ Battlefield | Execute$ TrigPhaseBlocker | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, CARDNAME and that creature phase out. +SVar:TrigPhaseAttacker:DB$ Phases | Defined$ TriggeredAttackerLKICopy | SubAbility$ DBPhaseSelf +SVar:TrigPhaseBlocker:DB$ Phases | Defined$ TriggeredBlockerLKICopy | SubAbility$ DBPhaseSelf SVar:DBPhaseSelf:DB$ Phases | Defined$ Self Oracle:Whenever Dream Fighter blocks or becomes blocked by a creature, Dream Fighter and that creature phase out. (While they're phased out, they're treated as though they don't exist. Each one phases in before its controller untaps during their next untap step.) diff --git a/forge-gui/res/cardsfolder/e/eiganjo_exemplar.txt b/forge-gui/res/cardsfolder/e/eiganjo_exemplar.txt index 5fbc4846bfa..db78b7ea72a 100644 --- a/forge-gui/res/cardsfolder/e/eiganjo_exemplar.txt +++ b/forge-gui/res/cardsfolder/e/eiganjo_exemplar.txt @@ -3,6 +3,6 @@ ManaCost:1 W Types:Enchantment Creature Human Samurai PT:2/1 T:Mode$ Attacks | ValidCard$ Samurai.YouCtrl,Warrior.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Samurai or Warrior you control attacks alone, it gets +1/+1 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ 1 | NumDef$ 1 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ 1 | NumDef$ 1 DeckHints:Type$Samurai|Warrior Oracle:Whenever a Samurai or Warrior you control attacks alone, it gets +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/e/elder_land_wurm.txt b/forge-gui/res/cardsfolder/e/elder_land_wurm.txt index f2cf9f0dc97..f20e940afc3 100644 --- a/forge-gui/res/cardsfolder/e/elder_land_wurm.txt +++ b/forge-gui/res/cardsfolder/e/elder_land_wurm.txt @@ -5,5 +5,5 @@ PT:5/5 K:Defender K:Trample T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigDebuff | TriggerDescription$ When CARDNAME blocks, it loses defender. -SVar:TrigDebuff:DB$ Debuff | Keywords$ Defender | Defined$ TriggeredBlocker | Duration$ Permanent +SVar:TrigDebuff:DB$ Debuff | Keywords$ Defender | Defined$ TriggeredBlockerLKICopy | Duration$ Permanent Oracle:Defender, trample\nWhen Elder Land Wurm blocks, it loses defender. diff --git a/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt b/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt index a26ee5999a3..8b69f1e44ad 100644 --- a/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt +++ b/forge-gui/res/cardsfolder/e/elvish_reclaimer.txt @@ -2,7 +2,7 @@ Name:Elvish Reclaimer ManaCost:G Types:Creature Elf Warrior PT:1/2 -S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Land.YouOwn | PresentZone$ Graveyard | Description$ CARDNAME gets +2/+2 as long as there are three or more land cards in your graveyard. +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Land.YouOwn | PresentZone$ Graveyard | PresentCompare$ GE3 | Description$ CARDNAME gets +2/+2 as long as there are three or more land cards in your graveyard. A:AB$ ChangeZone | Cost$ 2 T Sac<1/Land> | Origin$ Library | Destination$ Battlefield | ChangeType$ Land | ChangeNum$ 1 | Tapped$ True | SpellDescription$ Search your library for a land card, put it onto the battlefield tapped, then shuffle. AI:RemoveDeck:Random Oracle:Elvish Reclaimer gets +2/+2 as long as there are three or more land cards in your graveyard.\n{2}, {T}, Sacrifice a land: Search your library for a land card, put it onto the battlefield tapped, then shuffle. diff --git a/forge-gui/res/cardsfolder/f/fervent_charge.txt b/forge-gui/res/cardsfolder/f/fervent_charge.txt index b13b50148d3..f3e7b8128e8 100644 --- a/forge-gui/res/cardsfolder/f/fervent_charge.txt +++ b/forge-gui/res/cardsfolder/f/fervent_charge.txt @@ -2,6 +2,6 @@ Name:Fervent Charge ManaCost:1 W B R Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks, it gets +2/+2 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +2 | NumDef$ +2 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +2 | NumDef$ +2 SVar:PlayMain1:TRUE Oracle:Whenever a creature you control attacks, it gets +2/+2 until end of turn. diff --git a/forge-gui/res/cardsfolder/f/finest_hour.txt b/forge-gui/res/cardsfolder/f/finest_hour.txt index 3a43f2a5528..540df27e2b8 100644 --- a/forge-gui/res/cardsfolder/f/finest_hour.txt +++ b/forge-gui/res/cardsfolder/f/finest_hour.txt @@ -3,7 +3,7 @@ ManaCost:2 G W U Types:Enchantment K:Exalted T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigUntap | FirstCombat$ True | TriggerDescription$ Whenever a creature you control attacks alone, if it's the first combat phase of the turn, untap that creature. After this phase, there is an additional combat phase. -SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttacker | SubAbility$ DBAddCombat +SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttackerLKICopy | SubAbility$ DBAddCombat SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ Combat | AfterPhase$ EndCombat SVar:PlayMain1:TRUE Oracle:Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)\nWhenever a creature you control attacks alone, if it's the first combat phase of the turn, untap that creature. After this phase, there is an additional combat phase. diff --git a/forge-gui/res/cardsfolder/f/flailing_drake.txt b/forge-gui/res/cardsfolder/f/flailing_drake.txt index 19728e67f2d..b7c98f0bb82 100644 --- a/forge-gui/res/cardsfolder/f/flailing_drake.txt +++ b/forge-gui/res/cardsfolder/f/flailing_drake.txt @@ -5,6 +5,6 @@ PT:2/3 K:Flying T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ TrigBlocks | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature gets +1/+1 until end of turn. T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | Execute$ TrigBlocked | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature gets +1/+1 until end of turn. -SVar:TrigBlocks:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +1 | NumDef$ +1 -SVar:TrigBlocked:DB$ Pump | Defined$ TriggeredBlocker | NumAtt$ +1 | NumDef$ +1 +SVar:TrigBlocks:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +1 | NumDef$ +1 +SVar:TrigBlocked:DB$ Pump | Defined$ TriggeredBlockerLKICopy | NumAtt$ +1 | NumDef$ +1 Oracle:Flying\nWhenever Flailing Drake blocks or becomes blocked by a creature, that creature gets +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/g/gahiji_honored_one.txt b/forge-gui/res/cardsfolder/g/gahiji_honored_one.txt index d312a35c874..b58d781da5c 100644 --- a/forge-gui/res/cardsfolder/g/gahiji_honored_one.txt +++ b/forge-gui/res/cardsfolder/g/gahiji_honored_one.txt @@ -3,5 +3,5 @@ ManaCost:2 R G W Types:Legendary Creature Beast PT:4/4 T:Mode$ Attacks | ValidCard$ Creature | Attacked$ Player.Opponent,Planeswalker.OppCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature attacks one of your opponents or a planeswalker an opponent controls, that creature gets +2/+0 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +2 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +2 Oracle:Whenever a creature attacks one of your opponents or a planeswalker an opponent controls, that creature gets +2/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/g/garruk_apex_predator.txt b/forge-gui/res/cardsfolder/g/garruk_apex_predator.txt index 8bc315055ac..8a1ec67893d 100644 --- a/forge-gui/res/cardsfolder/g/garruk_apex_predator.txt +++ b/forge-gui/res/cardsfolder/g/garruk_apex_predator.txt @@ -9,5 +9,5 @@ SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ X SVar:X:TargetedLKI$CardToughness A:AB$ Effect | Cost$ SubCounter<8/LOYALTY> | ValidTgts$ Opponent | EffectOwner$ Targeted | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Garruk, Apex Predator | Image$ emblem_garruk_apex_predator | Triggers$ TrigAttackYou | Duration$ Permanent | AILogic$ Always | SpellDescription$ Target opponent gets an emblem with "Whenever a creature attacks you, it gets +5/+5 and gains trample until end of turn." SVar:TrigAttackYou:Mode$ Attacks | ValidCard$ Creature | Attacked$ You | TriggerZones$ Command | Execute$ DBPump | TriggerDescription$ Whenever a creature attacks you, it gets +5/+5 and gains trample until end of turn. -SVar:DBPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ 5 | NumDef$ 5 | KW$ Trample +SVar:DBPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ 5 | NumDef$ 5 | KW$ Trample Oracle:[+1]: Destroy another target planeswalker.\n[+1]: Create a 3/3 black Beast creature token with deathtouch.\n[-3]: Destroy target creature. You gain life equal to its toughness.\n[-8]: Target opponent gets an emblem with "Whenever a creature attacks you, it gets +5/+5 and gains trample until end of turn." diff --git a/forge-gui/res/cardsfolder/g/gaze_of_pain.txt b/forge-gui/res/cardsfolder/g/gaze_of_pain.txt index bf7c5cbff73..41e89711789 100644 --- a/forge-gui/res/cardsfolder/g/gaze_of_pain.txt +++ b/forge-gui/res/cardsfolder/g/gaze_of_pain.txt @@ -4,7 +4,7 @@ Types:Sorcery A:SP$ Effect | Triggers$ TrigAttackerUnblocked | SpellDescription$ Until end of turn, whenever a creature you control attacks and isn't blocked, you may choose to have it deal damage equal to its power to a target creature. If you do, it assigns no combat damage this turn. SVar:TrigAttackerUnblocked:Mode$ AttackerUnblocked | ValidCard$ Creature.YouCtrl | Execute$ Damage | OptionalDecider$ You | TriggerDescription$ Until end of turn, whenever a creature you control attacks and isn't blocked, you may choose to have it deal damage equal to its power to a target creature. If you do, it assigns no combat damage this turn. SVar:Damage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN CARDNAME assigns no combat damage SVar:X:TriggeredAttacker$CardPower AI:RemoveDeck:All Oracle:Until end of turn, whenever a creature you control attacks and isn't blocked, you may choose to have it deal damage equal to its power to a target creature. If you do, it assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt b/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt index 6313eda586a..1af231c26d5 100644 --- a/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt +++ b/forge-gui/res/cardsfolder/g/general_marhault_elsdragon.txt @@ -3,6 +3,6 @@ ManaCost:2 R G Types:Legendary Creature Elf Warrior PT:4/4 T:Mode$ AttackerBlocked | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control becomes blocked, it gets +3/+3 until end of turn for each creature blocking it. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X | NumDef$ +X SVar:X:Count$Valid Creature.blockingTriggeredAttacker/Times.3 Oracle:Whenever a creature you control becomes blocked, it gets +3/+3 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/g/glory_bearers.txt b/forge-gui/res/cardsfolder/g/glory_bearers.txt index 1529f8ab597..cbc6541a9de 100644 --- a/forge-gui/res/cardsfolder/g/glory_bearers.txt +++ b/forge-gui/res/cardsfolder/g/glory_bearers.txt @@ -3,5 +3,5 @@ ManaCost:3 W Types:Enchantment Creature Human Cleric PT:3/4 T:Mode$ Attacks | ValidCard$ Creature.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever another creature you control attacks, it gets +0/+1 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumDef$ +1 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumDef$ +1 Oracle:Whenever another creature you control attacks, it gets +0/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/g/goblin_flotilla.txt b/forge-gui/res/cardsfolder/g/goblin_flotilla.txt index 89ea2eecb68..4745a9f2dee 100644 --- a/forge-gui/res/cardsfolder/g/goblin_flotilla.txt +++ b/forge-gui/res/cardsfolder/g/goblin_flotilla.txt @@ -7,6 +7,6 @@ T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ Animat SVar:AnimateDB:DB$ Effect | Triggers$ AttackerBlocked,Blocks | UnlessCost$ R | UnlessPayer$ You | Duration$ UntilEndOfCombat SVar:AttackerBlocked:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.EffectSource | Execute$ PumpAttacker | TriggerDescription$ Whenever EFFECTSOURCE blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. SVar:Blocks:Mode$ AttackerBlockedByCreature | ValidCard$ Card.EffectSource | ValidBlocker$ Creature | Execute$ PumpBlocker | TriggerDescription$ Whenever EFFECTSOURCE blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. -SVar:PumpAttacker:DB$ Pump | Defined$ TriggeredAttacker | KW$ First Strike -SVar:PumpBlocker:DB$ Pump | Defined$ TriggeredBlocker | KW$ First Strike +SVar:PumpAttacker:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ First Strike +SVar:PumpBlocker:DB$ Pump | Defined$ TriggeredBlockerLKICopy | KW$ First Strike Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nAt the beginning of each combat, unless you pay {R}, whenever Goblin Flotilla blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. diff --git a/forge-gui/res/cardsfolder/g/gravity_well.txt b/forge-gui/res/cardsfolder/g/gravity_well.txt index 3c223ab61e5..809d0de2655 100644 --- a/forge-gui/res/cardsfolder/g/gravity_well.txt +++ b/forge-gui/res/cardsfolder/g/gravity_well.txt @@ -2,5 +2,5 @@ Name:Gravity Well ManaCost:1 G G Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature.withFlying | Execute$ Debuff | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature with flying attacks, it loses flying until end of turn. -SVar:Debuff:DB$ Debuff | Defined$ TriggeredAttacker | Keywords$ Flying +SVar:Debuff:DB$ Debuff | Defined$ TriggeredAttackerLKICopy | Keywords$ Flying Oracle:Whenever a creature with flying attacks, it loses flying until end of turn. diff --git a/forge-gui/res/cardsfolder/g/gustcloak_savior.txt b/forge-gui/res/cardsfolder/g/gustcloak_savior.txt index 73e36d49d94..0c6543faebb 100644 --- a/forge-gui/res/cardsfolder/g/gustcloak_savior.txt +++ b/forge-gui/res/cardsfolder/g/gustcloak_savior.txt @@ -4,6 +4,6 @@ Types:Creature Bird Soldier PT:3/4 K:Flying T:Mode$ AttackerBlocked | ValidCard$ Creature.YouCtrl | Execute$ TrigUntapRemove | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever a creature you control becomes blocked, you may untap that creature and remove it from combat. -SVar:TrigUntapRemove:DB$ Untap | Defined$ TriggeredAttacker | SubAbility$ DBRemoveCombat -SVar:DBRemoveCombat:DB$ RemoveFromCombat | Defined$ TriggeredAttacker +SVar:TrigUntapRemove:DB$ Untap | Defined$ TriggeredAttackerLKICopy | SubAbility$ DBRemoveCombat +SVar:DBRemoveCombat:DB$ RemoveFromCombat | Defined$ TriggeredAttackerLKICopy Oracle:Flying\nWhenever a creature you control becomes blocked, you may untap that creature and remove it from combat. diff --git a/forge-gui/res/cardsfolder/h/hedron_blade.txt b/forge-gui/res/cardsfolder/h/hedron_blade.txt index 41913093995..44d3deaac62 100644 --- a/forge-gui/res/cardsfolder/h/hedron_blade.txt +++ b/forge-gui/res/cardsfolder/h/hedron_blade.txt @@ -3,6 +3,6 @@ ManaCost:1 Types:Artifact Equipment S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Equipped creature gets +1/+1. T:Mode$ AttackerBlocked | ValidCard$ Card.EquippedBy | ValidBlocker$ Creature.Colorless | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature becomes blocked by one or more colorless creatures, it gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.) -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Deathtouch +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Deathtouch K:Equip:2 Oracle:Equipped creature gets +1/+1.\nWhenever equipped creature becomes blocked by one or more colorless creatures, it gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.)\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/i/imprison.txt b/forge-gui/res/cardsfolder/i/imprison.txt index cc27d3821c0..ca8c46115e6 100644 --- a/forge-gui/res/cardsfolder/i/imprison.txt +++ b/forge-gui/res/cardsfolder/i/imprison.txt @@ -10,9 +10,9 @@ T:Mode$ Attacks | ValidCard$ Card.EnchantedBy | TriggerZones$ Battlefield | Exec T:Mode$ Blocks | ValidCard$ Card.EnchantedBy | TriggerZones$ Battlefield | Execute$ TrigDestroy3 | Secondary$ True | TriggerDescription$ Whenever enchanted creature attacks or blocks, you may pay {1}. If you do, tap the creature, remove it from combat, and creatures it was blocking that had become blocked by only that creature this combat become unblocked. If you don't, destroy CARDNAME. SVar:TrigDestroy2:DB$ Destroy | Defined$ Self | UnlessCost$ 1 | UnlessPayer$ You | UnlessResolveSubs$ WhenPaid | SubAbility$ DBTapAttacker SVar:TrigDestroy3:DB$ Destroy | Defined$ Self | UnlessCost$ 1 | UnlessPayer$ You | UnlessResolveSubs$ WhenPaid | SubAbility$ DBTapBlocker -SVar:DBTapAttacker:DB$ Tap | Defined$ TriggeredAttacker | SubAbility$ DBRemoveAttacker -SVar:DBTapBlocker:DB$ Tap | Defined$ TriggeredBlocker | SubAbility$ DBRemoveBlocker -SVar:DBRemoveAttacker:DB$ RemoveFromCombat | Defined$ TriggeredAttacker -SVar:DBRemoveBlocker:DB$ RemoveFromCombat | Defined$ TriggeredBlocker | UnblockCreaturesBlockedOnlyBy$ TriggeredBlocker +SVar:DBTapAttacker:DB$ Tap | Defined$ TriggeredAttackerLKICopy | SubAbility$ DBRemoveAttacker +SVar:DBTapBlocker:DB$ Tap | Defined$ TriggeredBlockerLKICopy | SubAbility$ DBRemoveBlocker +SVar:DBRemoveAttacker:DB$ RemoveFromCombat | Defined$ TriggeredAttackerLKICopy +SVar:DBRemoveBlocker:DB$ RemoveFromCombat | Defined$ TriggeredBlockerLKICopy | UnblockCreaturesBlockedOnlyBy$ TriggeredBlocker AI:RemoveDeck:All Oracle:Enchant creature\nWhenever a player activates an ability of enchanted creature with {T} in its activation cost that isn't a mana ability, you may pay {1}. If you do, counter that ability. If you don't, destroy Imprison.\nWhenever enchanted creature attacks or blocks, you may pay {1}. If you do, tap the creature, remove it from combat, and creatures it was blocking that had become blocked by only that creature this combat become unblocked. If you don't, destroy Imprison. diff --git a/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt b/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt index 89a2af6be99..466521529c4 100644 --- a/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt +++ b/forge-gui/res/cardsfolder/j/jace_architect_of_thought.txt @@ -4,7 +4,7 @@ Types:Legendary Planeswalker Jace Loyalty:4 A:AB$ Effect | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Triggers$ TrigAttack | Duration$ UntilYourNextTurn | Name$ Jace, Architect of Thought Effect | AILogic$ Main2 | SpellDescription$ Until your next turn, whenever a creature an opponent controls attacks, it gets -1/-0 until end of turn. SVar:TrigAttack:Mode$ Attacks | ValidCard$ Creature.OppCtrl | TriggerZones$ Command | Execute$ JacePump | TriggerDescription$ Until your next turn, whenever a creature an opponent controls attacks, it gets -1/-0 until end of turn. -SVar:JacePump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ -1 +SVar:JacePump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ -1 A:AB$ PeekAndReveal | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | PeekAmount$ 3 | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top three cards of your library. An opponent separates them into two piles. Put one pile into your hand and the other on the bottom of your library in any order. SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBLibraryBottom SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand diff --git a/forge-gui/res/cardsfolder/k/kitsune_ace.txt b/forge-gui/res/cardsfolder/k/kitsune_ace.txt index c80f08a37e6..d97fb4f811e 100644 --- a/forge-gui/res/cardsfolder/k/kitsune_ace.txt +++ b/forge-gui/res/cardsfolder/k/kitsune_ace.txt @@ -4,7 +4,7 @@ Types:Creature Fox Pilot PT:2/2 T:Mode$ Attacks | ValidCard$ Vehicle.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigCharm | TriggerDescription$ Whenever a Vehicle you control attacks, ABILITY SVar:TrigCharm:DB$ Charm | Choices$ DBPump,DBUntap -SVar:DBPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ First Strike | SpellDescription$ That Vehicle gains first strike until end of turn +SVar:DBPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ First Strike | SpellDescription$ That Vehicle gains first strike until end of turn SVar:DBUntap:DB$ Untap | Defined$ Self | SpellDescription$ Untap CARDNAME DeckNeeds:Type$Vehicle Oracle:Whenever a Vehicle you control attacks, choose one —\n• That Vehicle gains first strike until end of turn.\n• Untap Kitsune Ace. diff --git a/forge-gui/res/cardsfolder/k/kragma_warcaller.txt b/forge-gui/res/cardsfolder/k/kragma_warcaller.txt index e4c0cfb7f8b..81272e0384f 100644 --- a/forge-gui/res/cardsfolder/k/kragma_warcaller.txt +++ b/forge-gui/res/cardsfolder/k/kragma_warcaller.txt @@ -4,7 +4,7 @@ Types:Creature Minotaur Warrior PT:2/3 S:Mode$ Continuous | Affected$ Creature.Minotaur+YouCtrl | AddKeyword$ Haste | Description$ Minotaur Creatures you control have haste. T:Mode$ Attacks | ValidCard$ Minotaur.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Minotaur you control attacks, it gets +2/+0 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +2 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +2 SVar:BuffedBy:Minotaur SVar:PlayMain1:TRUE Oracle:Minotaur creatures you control have haste.\nWhenever a Minotaur you control attacks, it gets +2/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/l/labyrinth_minotaur.txt b/forge-gui/res/cardsfolder/l/labyrinth_minotaur.txt index 73ea31ac26c..4a4596699ac 100644 --- a/forge-gui/res/cardsfolder/l/labyrinth_minotaur.txt +++ b/forge-gui/res/cardsfolder/l/labyrinth_minotaur.txt @@ -3,6 +3,6 @@ ManaCost:3 U Types:Creature Minotaur PT:1/4 T:Mode$ AttackerBlocked | ValidBlocker$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME blocks a creature, that creature doesn't untap during its controller's next untap step. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent SVar:HasBlockEffect:TRUE Oracle:Whenever Labyrinth Minotaur blocks a creature, that creature doesn't untap during its controller's next untap step. diff --git a/forge-gui/res/cardsfolder/l/laccolith_rig.txt b/forge-gui/res/cardsfolder/l/laccolith_rig.txt index 10d5b1a2678..b46aebf61b4 100644 --- a/forge-gui/res/cardsfolder/l/laccolith_rig.txt +++ b/forge-gui/res/cardsfolder/l/laccolith_rig.txt @@ -5,6 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ R | ValidTgts$ Creature | AITgts$ Card.powerGE1 | AILogic$ Pump T:Mode$ AttackerBlocked | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ LaccolithDmg | OptionalDecider$ You | TriggerDescription$ Whenever enchanted creature becomes blocked, you may have it deal damage equal to its power to target creature. If you do, the first creature assigns no combat damage this turn. SVar:LaccolithDmg:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature to deal damage to | NumDmg$ RigX | SubAbility$ NoCombatDamage | DamageSource$ TriggeredAttacker -SVar:NoCombatDamage:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:NoCombatDamage:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN CARDNAME assigns no combat damage SVar:RigX:TriggeredAttacker$CardPower Oracle:Enchant creature\nWhenever enchanted creature becomes blocked, you may have it deal damage equal to its power to target creature. If you do, the first creature assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/l/lim_duls_cohort.txt b/forge-gui/res/cardsfolder/l/lim_duls_cohort.txt index 1ca5d2aca5e..222d5804c6b 100644 --- a/forge-gui/res/cardsfolder/l/lim_duls_cohort.txt +++ b/forge-gui/res/cardsfolder/l/lim_duls_cohort.txt @@ -4,6 +4,6 @@ Types:Creature Zombie PT:2/3 T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ TrigBlocks | TriggerDescription$ Whenever Lim-Dûl's Cohort blocks or becomes blocked by a creature, that creature can't be regenerated this turn. T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | Execute$ TrigBlocked | Secondary$ True | TriggerDescription$ Whenever Lim-Dûl's Cohort blocks or becomes blocked by a creature, that creature can't be regenerated this turn. -SVar:TrigBlocks:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN CARDNAME can't be regenerated. -SVar:TrigBlocked:DB$ Pump | Defined$ TriggeredBlocker | KW$ HIDDEN CARDNAME can't be regenerated. +SVar:TrigBlocks:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN CARDNAME can't be regenerated. +SVar:TrigBlocked:DB$ Pump | Defined$ TriggeredBlockerLKICopy | KW$ HIDDEN CARDNAME can't be regenerated. Oracle:Whenever Lim-Dûl's Cohort blocks or becomes blocked by a creature, that creature can't be regenerated this turn. diff --git a/forge-gui/res/cardsfolder/l/lost_in_the_woods.txt b/forge-gui/res/cardsfolder/l/lost_in_the_woods.txt index 3930d7306e9..a7c388fd02a 100644 --- a/forge-gui/res/cardsfolder/l/lost_in_the_woods.txt +++ b/forge-gui/res/cardsfolder/l/lost_in_the_woods.txt @@ -3,7 +3,7 @@ ManaCost:3 G G Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature | Attacked$ You,Planeswalker.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ Whenever a creature attacks you or a planeswalker you control, reveal the top card of your library. If it's a Forest card, remove that creature from combat. Then put the revealed card on the bottom of your library. SVar:TrigDig:DB$ Dig | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Card | DestinationZone$ Library | LibraryPosition$ -1 | LibraryPosition2$ -1 | RememberChanged$ True | SubAbility$ DBRemoveCombat -SVar:DBRemoveCombat:DB$ RemoveFromCombat | Defined$ TriggeredAttacker | ConditionCheckSVar$ IsForest | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup +SVar:DBRemoveCombat:DB$ RemoveFromCombat | Defined$ TriggeredAttackerLKICopy | ConditionCheckSVar$ IsForest | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:IsForest:Remembered$Valid Forest Oracle:Whenever a creature attacks you or a planeswalker you control, reveal the top card of your library. If it's a Forest card, remove that creature from combat. Then put the revealed card on the bottom of your library. diff --git a/forge-gui/res/cardsfolder/m/mammoth_harness.txt b/forge-gui/res/cardsfolder/m/mammoth_harness.txt index a911444a32b..9b6e9239241 100644 --- a/forge-gui/res/cardsfolder/m/mammoth_harness.txt +++ b/forge-gui/res/cardsfolder/m/mammoth_harness.txt @@ -6,6 +6,6 @@ A:SP$ Attach | Cost$ 3 G | ValidTgts$ Creature | AITgts$ Creature.withFlying | A S:Mode$ Continuous | Affected$ Card.EnchantedBy | RemoveKeyword$ Flying | Description$ Enchanted creature loses flying. T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.EnchantedBy | Execute$ TrigPumpAttacker | TriggerDescription$ Whenever enchanted creature blocks or becomes blocked by a creature, the other creature gains first strike until end of turn. T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.EnchantedBy | ValidBlocker$ Creature | Execute$ TrigPumpBlocker | Secondary$ True | TriggerDescription$ Whenever enchanted creature blocks or becomes blocked by a creature, the other creature gains first strike until end of turn. -SVar:TrigPumpAttacker:DB$ Pump | Defined$ TriggeredAttacker | KW$ First Strike -SVar:TrigPumpBlocker:DB$ Pump | Defined$ TriggeredBlocker | KW$ First Strike +SVar:TrigPumpAttacker:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ First Strike +SVar:TrigPumpBlocker:DB$ Pump | Defined$ TriggeredBlockerLKICopy | KW$ First Strike Oracle:Enchant creature\nEnchanted creature loses flying.\nWhenever enchanted creature blocks or becomes blocked by a creature, the other creature gains first strike until end of turn. diff --git a/forge-gui/res/cardsfolder/m/master_symmetrist.txt b/forge-gui/res/cardsfolder/m/master_symmetrist.txt index 68df27241b2..e4eb36a4bcd 100644 --- a/forge-gui/res/cardsfolder/m/master_symmetrist.txt +++ b/forge-gui/res/cardsfolder/m/master_symmetrist.txt @@ -4,6 +4,6 @@ Types:Creature Rhino Druid PT:4/4 K:Reach T:Mode$ Attacks | ValidCard$ Creature.equalPT+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control with power equal to its toughness attacks, it gains trample until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Trample +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Trample SVar:PlayMain1:TRUE Oracle:Reach\nWhenever a creature you control with power equal to its toughness attacks, it gains trample until end of turn. diff --git a/forge-gui/res/cardsfolder/m/mazzy_truesword_paladin.txt b/forge-gui/res/cardsfolder/m/mazzy_truesword_paladin.txt index dc4a083fb7f..2ed98e3c762 100644 --- a/forge-gui/res/cardsfolder/m/mazzy_truesword_paladin.txt +++ b/forge-gui/res/cardsfolder/m/mazzy_truesword_paladin.txt @@ -3,7 +3,7 @@ ManaCost:1 R G W Types:Legendary Creature Halfling Knight PT:3/4 T:Mode$ Attacks | ValidCard$ Creature.enchanted | Attacked$ Player.Opponent | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever an enchanted creature attacks one of your opponents, it gets +2/+0 and gains trample until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ 2 | KW$ Trample +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ 2 | KW$ Trample T:Mode$ ChangesZone | TriggerZones$ Battlefield | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Aura.YouCtrl+YouOwn | Execute$ TrigExile | TriggerDescription$ Whenever an Aura you control is put into your graveyard from the battlefield, exile it. Until the end of your next turn, you may cast that card. SVar:TrigExile:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | RememberObjects$ Remembered | ForgetOnMoved$ Exile | Duration$ UntilTheEndOfYourNextTurn | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/m/melee.txt b/forge-gui/res/cardsfolder/m/melee.txt index 898908991c4..b1b4a097b54 100644 --- a/forge-gui/res/cardsfolder/m/melee.txt +++ b/forge-gui/res/cardsfolder/m/melee.txt @@ -6,7 +6,7 @@ SVar:DBEffect:DB$ Effect | Triggers$ TrigAttack,TrigEndCombat SVar:TrigEndCombat:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ You | TriggerZones$ Command | Execute$ RemoveEffect | Static$ True SVar:RemoveEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile SVar:TrigAttack:Mode$ AttackerUnblocked | ValidCard$ Creature | Execute$ TrigUntap | TriggerZones$ Command | TriggerDescription$ Whenever a creature attacks and isn't blocked this combat, untap it and remove it from combat. -SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttacker | SubAbility$ RemCombat -SVar:RemCombat:DB$ RemoveFromCombat | Defined$ TriggeredAttacker +SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttackerLKICopy | SubAbility$ RemCombat +SVar:RemCombat:DB$ RemoveFromCombat | Defined$ TriggeredAttackerLKICopy AI:RemoveDeck:All Oracle:Cast this spell only during your turn and only during combat before blockers are declared.\nYou choose which creatures block this combat and how those creatures block.\nWhenever a creature attacks and isn't blocked this combat, untap it and remove it from combat. diff --git a/forge-gui/res/cardsfolder/m/mindbender_spores.txt b/forge-gui/res/cardsfolder/m/mindbender_spores.txt index 988909535f4..f5a8c555fd8 100644 --- a/forge-gui/res/cardsfolder/m/mindbender_spores.txt +++ b/forge-gui/res/cardsfolder/m/mindbender_spores.txt @@ -6,7 +6,7 @@ K:Defender K:Flying T:Mode$ AttackerBlocked | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ AddSpores | TriggerDescription$ Whenever CARDNAME blocks a creature, put four fungus counters on that creature. The creature gains "This creature doesn't untap during your untap step if it has a fungus counter on it" and "At the beginning of your upkeep, remove a fungus counter from this creature." SVar:AddSpores:DB$ PutCounter | CounterType$ FUNGUS | CounterNum$ 4 | Defined$ TriggeredAttackerLKICopy | SubAbility$ AddFungalEffects -SVar:AddFungalEffects:DB$ Animate | Defined$ TriggeredAttacker | staticAbilities$ FungalFunk | Triggers$ TrigSporeUpkeep | Duration$ Permanent +SVar:AddFungalEffects:DB$ Animate | Defined$ TriggeredAttackerLKICopy | staticAbilities$ FungalFunk | Triggers$ TrigSporeUpkeep | Duration$ Permanent SVar:FungalFunk:Mode$ Continuous | Affected$ Card.Self+counters_GE1_FUNGUS | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | Description$ CARDNAME doesn't untap during your untap step if it has a fungus counter on it. SVar:TrigSporeUpkeep:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ LoseSpores | TriggerDescription$ At the beginning of your upkeep, remove a fungus counter from CARDNAME. SVar:LoseSpores:DB$ RemoveCounter | CounterType$ FUNGUS | CounterNum$ 1 diff --git a/forge-gui/res/cardsfolder/m/momentum_rumbler.txt b/forge-gui/res/cardsfolder/m/momentum_rumbler.txt index c3249f8e7a5..e87e25e6f05 100644 --- a/forge-gui/res/cardsfolder/m/momentum_rumbler.txt +++ b/forge-gui/res/cardsfolder/m/momentum_rumbler.txt @@ -5,6 +5,6 @@ PT:3/3 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPutCounter | IsPresent$ Card.Self+withFirst Strike | PresentCompare$ EQ0 | TriggerDescription$ Whenever CARDNAME attacks, if it doesn't have first strike, put a first strike counter on it. SVar:TrigPutCounter:DB$ PutCounter | Defined$ TriggeredAttackerLKICopy | CounterType$ First Strike | CounterNum$ 1 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | IsPresent$ Card.Self+withFirst Strike | PresentCompare$ EQ1 | TriggerDescription$ Whenever CARDNAME attacks, if it has first strike, it gains double strike until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Double Strike +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Double Strike DeckHas:Ability$Counters Oracle:Whenever Momentum Rumbler attacks, if it doesn't have first strike, put a first strike counter on it.\nWhenever Momentum Rumbler attacks, if it has first strike, it gains double strike until end of turn. diff --git a/forge-gui/res/cardsfolder/o/ondu_rising.txt b/forge-gui/res/cardsfolder/o/ondu_rising.txt index 29f86f31454..14b3ab3789e 100644 --- a/forge-gui/res/cardsfolder/o/ondu_rising.txt +++ b/forge-gui/res/cardsfolder/o/ondu_rising.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Sorcery A:SP$ Effect | Triggers$ TrigAttacks | SpellDescription$ Whenever a creature attacks this turn, it gains lifelink until end of turn. SVar:TrigAttacks:Mode$ Attacks | ValidCard$ Creature | Execute$ Pump | TriggerDescription$ Whenever a creature attacks this turn, it gains lifelink until end of turn. -SVar:Pump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Lifelink +SVar:Pump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Lifelink K:Awaken:4:4 W DeckHas:Ability$LifeGain Oracle:Whenever a creature attacks this turn, it gains lifelink until end of turn.\nAwaken 4—{4}{W} (If you cast this spell for {4}{W}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.) diff --git a/forge-gui/res/cardsfolder/p/pact_weapon.txt b/forge-gui/res/cardsfolder/p/pact_weapon.txt index f2a68b7f91e..c909b35b5d8 100644 --- a/forge-gui/res/cardsfolder/p/pact_weapon.txt +++ b/forge-gui/res/cardsfolder/p/pact_weapon.txt @@ -5,7 +5,7 @@ K:Equip:Discard<1/Card> S:Mode$ Continuous | Affected$ You | IsPresent$ Card.Self+AttachedTo Creature | AddKeyword$ You don't lose the game for having 0 or less life. | Description$ As long as CARDNAME is attached to a creature, you don't lose the game for having 0 or less life. T:Mode$ Attacks | ValidCard$ Creature.EquippedBy | Execute$ TrigDraw | TriggerDescription$ Whenever equipped creature attacks, draw a card and reveal it. The creature gets +X/+X until end of turn and you lose X life, where X is that card's mana value. SVar:TrigDraw:DB$ Draw | NumCards$ 1 | Reveal$ True | RememberDrawn$ True | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X | SubAbility$ DBLoseLife +SVar:DBPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X | NumDef$ +X | SubAbility$ DBLoseLife SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ X | Defined$ You | SubAbility$ DBClean SVar:DBClean:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$CardManaCost diff --git a/forge-gui/res/cardsfolder/r/rafiq_of_the_many.txt b/forge-gui/res/cardsfolder/r/rafiq_of_the_many.txt index 3f2cc00d551..58423a07a13 100644 --- a/forge-gui/res/cardsfolder/r/rafiq_of_the_many.txt +++ b/forge-gui/res/cardsfolder/r/rafiq_of_the_many.txt @@ -4,5 +4,5 @@ Types:Legendary Creature Human Knight PT:3/3 K:Exalted T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks alone, it gains double strike until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Double Strike +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Double Strike Oracle:Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)\nWhenever a creature you control attacks alone, it gains double strike until end of turn. diff --git a/forge-gui/res/cardsfolder/r/raiyuu_storms_edge.txt b/forge-gui/res/cardsfolder/r/raiyuu_storms_edge.txt index c8c0ae5e577..ce77ceebeb4 100644 --- a/forge-gui/res/cardsfolder/r/raiyuu_storms_edge.txt +++ b/forge-gui/res/cardsfolder/r/raiyuu_storms_edge.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Samurai PT:3/3 K:First Strike T:Mode$ Attacks | ValidCard$ Samurai.YouCtrl,Warrior.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ Whenever a Samurai or Warrior you control attacks alone, untap it. If it's the first combat phase of the turn, there is an additional combat phase after this phase. -SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttacker | SubAbility$ DBAddPhase +SVar:TrigUntap:DB$ Untap | Defined$ TriggeredAttackerLKICopy | SubAbility$ DBAddPhase SVar:DBAddPhase:DB$ AddPhase | ExtraPhase$ Combat | ConditionFirstCombat$ True | AfterPhase$ EndCombat DeckHints:Type$Samurai|Warrior Oracle:First strike\nWhenever a Samurai or Warrior you control attacks alone, untap it. If it's the first combat phase of the turn, there is an additional combat phase after this phase. diff --git a/forge-gui/res/cardsfolder/r/reyav_master_smith.txt b/forge-gui/res/cardsfolder/r/reyav_master_smith.txt index a6dbc51ec96..3e7355640f1 100644 --- a/forge-gui/res/cardsfolder/r/reyav_master_smith.txt +++ b/forge-gui/res/cardsfolder/r/reyav_master_smith.txt @@ -3,6 +3,6 @@ ManaCost:R W Types:Legendary Creature Dwarf Artificer PT:2/2 T:Mode$ Attacks | ValidCard$ Creature.enchanted+YouCtrl,Creature.YouCtrl+equipped | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever a creature you control that's enchanted or equipped attacks, that creature gains double strike until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Double Strike +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Double Strike DeckNeeds:Type$Enchantment|Equipment Oracle:Whenever a creature you control that's enchanted or equipped attacks, that creature gains double strike until end of turn. diff --git a/forge-gui/res/cardsfolder/r/righteous_indignation.txt b/forge-gui/res/cardsfolder/r/righteous_indignation.txt index ba855b4a53f..f17085eefea 100644 --- a/forge-gui/res/cardsfolder/r/righteous_indignation.txt +++ b/forge-gui/res/cardsfolder/r/righteous_indignation.txt @@ -2,6 +2,6 @@ Name:Righteous Indignation ManaCost:2 W Types:Enchantment T:Mode$ AttackerBlocked | ValidCard$ Creature.Black,Creature.Red | ValidBlocker$ Creature | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature blocks a black or red creature, the blocking creature gets +1/+1 until end of turn. -SVar:TrigPump:DB$ Pump | NumAtt$ +1 | NumDef$ +1 | Defined$ TriggeredBlocker | SpellDescription$ The blocking creature gets +1/+1 until end of turn. +SVar:TrigPump:DB$ Pump | NumAtt$ +1 | NumDef$ +1 | Defined$ TriggeredBlockerLKICopy | SpellDescription$ The blocking creature gets +1/+1 until end of turn. AI:RemoveDeck:Random Oracle:Whenever a creature blocks a black or red creature, the blocking creature gets +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/s/selfless_samurai.txt b/forge-gui/res/cardsfolder/s/selfless_samurai.txt index 4466a7d7bf3..6135dd7ba9d 100644 --- a/forge-gui/res/cardsfolder/s/selfless_samurai.txt +++ b/forge-gui/res/cardsfolder/s/selfless_samurai.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Creature Fox Samurai PT:2/2 T:Mode$ Attacks | ValidCard$ Samurai.YouCtrl,Warrior.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Samurai or Warrior you control attacks alone, it gains lifelink until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Lifelink +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Lifelink A:AB$ Pump | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature.Other+YouCtrl | TgtPrompt$ Select target creature you control | KW$ Indestructible | SpellDescription$ Another target creature you control gains indestructible until end of turn. DeckHints:Type$Samurai|Warrior Oracle:Whenever a Samurai or Warrior you control attacks alone, it gains lifelink until end of turn.\nSacrifice Selfless Samurai: Another target creature you control gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it.) diff --git a/forge-gui/res/cardsfolder/s/shared_animosity.txt b/forge-gui/res/cardsfolder/s/shared_animosity.txt index 123b32ac746..76b9472af3d 100644 --- a/forge-gui/res/cardsfolder/s/shared_animosity.txt +++ b/forge-gui/res/cardsfolder/s/shared_animosity.txt @@ -2,7 +2,7 @@ Name:Shared Animosity ManaCost:2 R Types:Enchantment T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ AnimosityPump | TriggerDescription$ Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it. -SVar:AnimosityPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ X +SVar:AnimosityPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ X SVar:X:Count$Valid Creature.attacking+NotTriggeredAttacker+sharesCreatureTypeWith TriggeredAttacker AI:RemoveDeck:Random Oracle:Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it. diff --git a/forge-gui/res/cardsfolder/s/shield_of_the_righteous.txt b/forge-gui/res/cardsfolder/s/shield_of_the_righteous.txt index 3164d212c3b..0d96bad4322 100644 --- a/forge-gui/res/cardsfolder/s/shield_of_the_righteous.txt +++ b/forge-gui/res/cardsfolder/s/shield_of_the_righteous.txt @@ -4,5 +4,5 @@ Types:Artifact Equipment K:Equip:2 S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddToughness$ 2 | AddKeyword$ Vigilance | Description$ Equipped creature gets +0/+2 and has vigilance. T:Mode$ AttackerBlocked | ValidBlocker$ Card.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature blocks a creature, that creature doesn't untap during its controller's next untap step. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent Oracle:Equipped creature gets +0/+2 and has vigilance.\nWhenever equipped creature blocks a creature, that creature doesn't untap during its controller's next untap step.\nEquip {2} diff --git a/forge-gui/res/cardsfolder/s/skyboon_evangelist.txt b/forge-gui/res/cardsfolder/s/skyboon_evangelist.txt index 547281a70c4..3f1f09560ec 100644 --- a/forge-gui/res/cardsfolder/s/skyboon_evangelist.txt +++ b/forge-gui/res/cardsfolder/s/skyboon_evangelist.txt @@ -6,7 +6,7 @@ K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, support 6. (Put a +1/+1 counter on each of up to six other target creatures.) SVar:TrigPut:DB$ PutCounter | ValidTgts$ Creature.Other | TgtPrompt$ Select up to six other target creatures | TargetMin$ 0 | TargetMax$ 6 | CounterType$ P1P1 T:Mode$ Attacks | ValidCard$ Creature.HasCounters | Attacked$ Player.Opponent | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature with a counter on it attacks one of your opponents, that creature gains flying until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Flying +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Flying DeckHas:Ability$Counters DeckHints:Ability$Counters Oracle:Flying\nWhen Skyboon Evangelist enters the battlefield, support 6. (Put a +1/+1 counter on each of up to six other target creatures.)\nWhenever a creature with a counter on it attacks one of your opponents, that creature gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/s/slab_hammer.txt b/forge-gui/res/cardsfolder/s/slab_hammer.txt index 07019e7dc16..ea6a1540197 100644 --- a/forge-gui/res/cardsfolder/s/slab_hammer.txt +++ b/forge-gui/res/cardsfolder/s/slab_hammer.txt @@ -3,6 +3,6 @@ ManaCost:2 Types:Artifact Equipment K:Equip:2 T:Mode$ Attacks | ValidCard$ Card.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature attacks, you may return a land you control to its owner's hand. If you do, the creature gets +2/+2 until end of turn. -SVar:TrigPump:AB$ Pump | Cost$ Return<1/Land> | Defined$ TriggeredAttacker | NumAtt$ 2 | NumDef$ 2 +SVar:TrigPump:AB$ Pump | Cost$ Return<1/Land> | Defined$ TriggeredAttackerLKICopy | NumAtt$ 2 | NumDef$ 2 AI:RemoveDeck:Random Oracle:Whenever equipped creature attacks, you may return a land you control to its owner's hand. If you do, the creature gets +2/+2 until end of turn.\nEquip {2} diff --git a/forge-gui/res/cardsfolder/s/somberwald_alpha.txt b/forge-gui/res/cardsfolder/s/somberwald_alpha.txt index c31ba9b5eb6..c5450f51fc0 100644 --- a/forge-gui/res/cardsfolder/s/somberwald_alpha.txt +++ b/forge-gui/res/cardsfolder/s/somberwald_alpha.txt @@ -3,6 +3,6 @@ ManaCost:3 G Types:Creature Wolf PT:3/2 T:Mode$ AttackerBlocked | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control becomes blocked, it gets +1/+1 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +1 | NumDef$ +1 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +1 | NumDef$ +1 A:AB$ Pump | Cost$ 1 G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | KW$ Trample | SpellDescription$ Target creature you control gains trample until end of turn. Oracle:Whenever a creature you control becomes blocked, it gets +1/+1 until end of turn.\n{1}{G}: Target creature you control gains trample until end of turn. (It can deal excess combat damage to the player or planeswalker it's attacking.) diff --git a/forge-gui/res/cardsfolder/s/song_of_blood.txt b/forge-gui/res/cardsfolder/s/song_of_blood.txt index f4027ad6e12..ebb624c0e50 100644 --- a/forge-gui/res/cardsfolder/s/song_of_blood.txt +++ b/forge-gui/res/cardsfolder/s/song_of_blood.txt @@ -4,7 +4,7 @@ Types:Sorcery A:SP$ Mill | Cost$ 1 R | NumCards$ 4 | Defined$ You | RememberMilled$ True | SubAbility$ DBEffect | SpellDescription$ Mill four cards. Whenever a creature attacks this turn, it gets +1/+0 until end of turn for each creature card put into your graveyard this way. SVar:DBEffect:DB$ Effect | Triggers$ TrigAttacks | RememberObjects$ Remembered SVar:TrigAttacks:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Execute$ Pump | TriggerDescription$ Whenever a creature attacks this turn, it gets +1/+0 until end of turn for each creature card put into your graveyard this way. -SVar:Pump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X +SVar:Pump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X SVar:X:Remembered$Valid Creature AI:RemoveDeck:All Oracle:Mill four cards. Whenever a creature attacks this turn, it gets +1/+0 until end of turn for each creature card put into your graveyard this way. diff --git a/forge-gui/res/cardsfolder/s/soulblade_corrupter.txt b/forge-gui/res/cardsfolder/s/soulblade_corrupter.txt index 104bdde21c7..a7314b8a13b 100644 --- a/forge-gui/res/cardsfolder/s/soulblade_corrupter.txt +++ b/forge-gui/res/cardsfolder/s/soulblade_corrupter.txt @@ -5,6 +5,6 @@ PT:3/3 K:Partner:Soulblade Renewer K:Deathtouch T:Mode$ Attacks | ValidCard$ Creature.counters_GE1_P1P1 | Attacked$ Player.Opponent | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature with a +1/+1 counter on it attacks one of your opponents, that creature gains deathtouch until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Deathtouch +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Deathtouch DeckHints:Name$Soulblade Renewer & Ability$Counters Oracle:Partner with Soulblade Renewer (When this creature enters the battlefield, target player may put Soulblade Renewer into their hand from their library, then shuffle.)\nDeathtouch\nWhenever a creature with a +1/+1 counter on it attacks one of your opponents, that creature gains deathtouch until end of turn. diff --git a/forge-gui/res/cardsfolder/s/spiked_ripsaw.txt b/forge-gui/res/cardsfolder/s/spiked_ripsaw.txt index c70c48aea79..9b62dbf0528 100644 --- a/forge-gui/res/cardsfolder/s/spiked_ripsaw.txt +++ b/forge-gui/res/cardsfolder/s/spiked_ripsaw.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Artifact Equipment S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 3 | AddSVar$ AE | Description$ Equipped creature gets +3/+3. T:Mode$ Attacks | ValidCard$ Creature.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature attacks, you may sacrifice a Forest. If you do, that creature gains trample until end of turn. -SVar:TrigPump:AB$ Pump | Cost$ Sac<1/Forest> | Defined$ TriggeredAttacker | KW$ Trample +SVar:TrigPump:AB$ Pump | Cost$ Sac<1/Forest> | Defined$ TriggeredAttackerLKICopy | KW$ Trample K:Equip:3 SVar:AE:SVar:HasAttackEffect:TRUE Oracle:Equipped creature gets +3/+3.\nWhenever equipped creature attacks, you may sacrifice a Forest. If you do, that creature gains trample until end of turn.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/s/spined_sliver.txt b/forge-gui/res/cardsfolder/s/spined_sliver.txt index 029fa5a2170..ab249589e3f 100644 --- a/forge-gui/res/cardsfolder/s/spined_sliver.txt +++ b/forge-gui/res/cardsfolder/s/spined_sliver.txt @@ -3,7 +3,7 @@ ManaCost:R G Types:Creature Sliver PT:2/2 T:Mode$ AttackerBlocked | ValidCard$ Sliver | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a Sliver becomes blocked, that Sliver gets +1/+1 until end of turn for each creature blocking it. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X | NumDef$ +X SVar:X:Count$Valid Creature.blockingTriggeredAttacker SVar:PlayMain1:TRUE Oracle:Whenever a Sliver becomes blocked, that Sliver gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/s/stitchers_graft.txt b/forge-gui/res/cardsfolder/s/stitchers_graft.txt index 395f52c7722..b947555bad2 100644 --- a/forge-gui/res/cardsfolder/s/stitchers_graft.txt +++ b/forge-gui/res/cardsfolder/s/stitchers_graft.txt @@ -3,7 +3,7 @@ ManaCost:1 Types:Artifact Equipment S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 3 | Description$ Equipped creature gets +3/+3. T:Mode$ Attacks | ValidCard$ Card.EquippedBy | Execute$ StayTapped | TriggerDescription$ Whenever equipped creature attacks, it doesn't untap during its controller's next untap step. -SVar:StayTapped:DB$ Pump | KW$ HIDDEN This card doesn't untap during your next untap step. | Defined$ TriggeredAttacker | Duration$ Permanent +SVar:StayTapped:DB$ Pump | KW$ HIDDEN This card doesn't untap during your next untap step. | Defined$ TriggeredAttackerLKICopy | Duration$ Permanent T:Mode$ Unattach | ValidAttachment$ Card.Self | ValidObject$ Permanent | Execute$ TrigSac | TriggerDescription$ Whenever CARDNAME becomes unattached from a permanent, sacrifice that permanent. SVar:TrigSac:DB$ Sacrifice | Defined$ You | SacValid$ TriggeredObject K:Equip:2 diff --git a/forge-gui/res/cardsfolder/s/stonebrow_krosan_hero.txt b/forge-gui/res/cardsfolder/s/stonebrow_krosan_hero.txt index 282366715d6..c46f2a36d38 100644 --- a/forge-gui/res/cardsfolder/s/stonebrow_krosan_hero.txt +++ b/forge-gui/res/cardsfolder/s/stonebrow_krosan_hero.txt @@ -4,5 +4,5 @@ Types:Legendary Creature Centaur Warrior PT:4/4 K:Trample T:Mode$ Attacks | ValidCard$ Creature.YouCtrl+withTrample | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control with trample attacks, it gets +2/+2 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ 2 | NumDef$ 2 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ 2 | NumDef$ 2 Oracle:Trample\nWhenever a creature you control with trample attacks, it gets +2/+2 until end of turn. diff --git a/forge-gui/res/cardsfolder/s/stonehoof_chieftain.txt b/forge-gui/res/cardsfolder/s/stonehoof_chieftain.txt index c851f68cd1e..b69c5c392eb 100644 --- a/forge-gui/res/cardsfolder/s/stonehoof_chieftain.txt +++ b/forge-gui/res/cardsfolder/s/stonehoof_chieftain.txt @@ -5,6 +5,6 @@ PT:8/8 K:Trample K:Indestructible T:Mode$ Attacks | ValidCard$ Creature.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever another creature you control attacks, it gains trample and indestructible until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ Trample & Indestructible +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Trample & Indestructible SVar:PlayMain1:TRUE Oracle:Trample, indestructible\nWhenever another creature you control attacks, it gains trample and indestructible until end of turn. diff --git a/forge-gui/res/cardsfolder/t/talruum_champion.txt b/forge-gui/res/cardsfolder/t/talruum_champion.txt index e681065e12b..3fbeab03fd3 100644 --- a/forge-gui/res/cardsfolder/t/talruum_champion.txt +++ b/forge-gui/res/cardsfolder/t/talruum_champion.txt @@ -5,6 +5,6 @@ PT:3/3 K:First Strike T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ TrigBlocks | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature loses first strike until end of turn. T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | Execute$ TrigBlocked | Secondary$ True | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature loses first strike until end of turn. -SVar:TrigBlocks:DB$ Debuff | Defined$ TriggeredAttacker | Keywords$ First Strike -SVar:TrigBlocked:DB$ Debuff | Defined$ TriggeredBlocker | Keywords$ First Strike +SVar:TrigBlocks:DB$ Debuff | Defined$ TriggeredAttackerLKICopy | Keywords$ First Strike +SVar:TrigBlocked:DB$ Debuff | Defined$ TriggeredBlockerLKICopy | Keywords$ First Strike Oracle:First strike\nWhenever Talruum Champion blocks or becomes blocked by a creature, that creature loses first strike until end of turn. diff --git a/forge-gui/res/cardsfolder/t/thunderous_might.txt b/forge-gui/res/cardsfolder/t/thunderous_might.txt index 334251fa27f..864c5f1558e 100644 --- a/forge-gui/res/cardsfolder/t/thunderous_might.txt +++ b/forge-gui/res/cardsfolder/t/thunderous_might.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Pump T:Mode$ Attacks | ValidCard$ Card.EnchantedBy | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever enchanted creature attacks, it gets +X/+0 until end of turn, where X is your devotion to red. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +X SVar:X:Count$Devotion.Red SVar:NonStackingAttachEffect:True Oracle:Enchant creature\nWhenever enchanted creature attacks, it gets +X/+0 until end of turn, where X is your devotion to red. (Each {R} in the mana costs of permanents you control counts toward your devotion to red.) diff --git a/forge-gui/res/cardsfolder/t/two_handed_axe_sweeping_cleave.txt b/forge-gui/res/cardsfolder/t/two_handed_axe_sweeping_cleave.txt index 01d6a669ade..c6d3cce6bec 100644 --- a/forge-gui/res/cardsfolder/t/two_handed_axe_sweeping_cleave.txt +++ b/forge-gui/res/cardsfolder/t/two_handed_axe_sweeping_cleave.txt @@ -2,7 +2,7 @@ Name:Two-Handed Axe ManaCost:2 R Types:Artifact Equipment T:Mode$ Attacks | ValidCard$ Card.EquippedBy | Execute$ TrigPump | TriggerDescription$ Whenever equipped creature attacks, double its power until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +Y | Double$ True +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ +Y | Double$ True SVar:Y:TriggeredAttacker$CardPower K:Equip:1 R AlternateMode:Adventure diff --git a/forge-gui/res/cardsfolder/u/unstoppable_ash.txt b/forge-gui/res/cardsfolder/u/unstoppable_ash.txt index 661826dbf3b..0e425fc1d0e 100644 --- a/forge-gui/res/cardsfolder/u/unstoppable_ash.txt +++ b/forge-gui/res/cardsfolder/u/unstoppable_ash.txt @@ -5,6 +5,6 @@ PT:5/5 K:Trample K:Champion:Treefolk,Warrior T:Mode$ AttackerBlocked | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control becomes blocked, it gets +0/+5 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumDef$ +5 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumDef$ +5 AI:RemoveDeck:Random Oracle:Trample\nChampion a Treefolk or Warrior (When this enters the battlefield, sacrifice it unless you exile another Treefolk or Warrior you control. When this leaves the battlefield, that card returns to the battlefield.)\nWhenever a creature you control becomes blocked, it gets +0/+5 until end of turn. diff --git a/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt b/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt index c7854e6c2f9..eaa56be3bd1 100644 --- a/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt +++ b/forge-gui/res/cardsfolder/u/urza_academy_headmaster.txt @@ -18,7 +18,7 @@ SVar:PutCounter9:DB$ PutCounter | Defined$ Self | CounterType$ LOYALTY | Counter SVar:X9:TargetedPlayer$CreaturesInPlay SVar:Effect10:DB$ Effect | Triggers$ TrigAttack10 | Duration$ UntilYourNextTurn | SpellDescription$ Until your next turn, whenever a creature an opponent controls attacks, it gets -1/-0 until end of turn. SVar:TrigAttack10:Mode$ Attacks | ValidCard$ Creature.OppCtrl | TriggerZones$ Command | Execute$ DebuffAttacker10 | TriggerDescription$ Whenever a creature an opponent controls attacks, it gets -1/-0 until end of turn. -SVar:DebuffAttacker10:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ -1 +SVar:DebuffAttacker10:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ -1 SVar:Exile11:DB$ ChangeZone | ValidTgts$ Player | TgtPrompt$ Select target player | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | Chooser$ Targeted | Hidden$ True | IsCurse$ True | Mandatory$ True | SpellDescription$ Target player exiles a card from their hand. SVar:Dig12:DB$ Dig | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Land | DestinationZone$ Battlefield | DestinationZone2$ Hand | SpellDescription$ Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand. SVar:Animate13:DB$ Animate | ValidTgts$ Land.YouCtrl | TgtPrompt$ Select target land you control | Power$ 4 | Toughness$ 4 | Types$ Creature,Elemental | Duration$ Permanent | Keywords$ Trample | SpellDescription$ Target land you control becomes a 4/4 Elemental creature with trample. It's still a land. diff --git a/forge-gui/res/cardsfolder/upcoming/genestealer_locus.txt b/forge-gui/res/cardsfolder/upcoming/genestealer_locus.txt index 7e2e4ae25e8..d92feba1838 100644 --- a/forge-gui/res/cardsfolder/upcoming/genestealer_locus.txt +++ b/forge-gui/res/cardsfolder/upcoming/genestealer_locus.txt @@ -3,7 +3,7 @@ ManaCost:3 U Types:Creature Tyranid Human PT:3/3 T:Mode$ Attacks | ValidCard$ Creature | Attacked$ You | TriggerZones$ Battlefield | Execute$ TrigDebuff | TriggerDescription$ Neurotraumal Rod — Whenever a creature attacks you, it gets -1/-0 until end of turn. -SVar:TrigDebuff:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ -1 +SVar:TrigDebuff:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumAtt$ -1 T:Mode$ Attacks | ValidCard$ Creature | Attacked$ Player.Opponent | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature attacks one of your opponents, it gets +0/+1 until end of turn. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumDef$ +1 +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | NumDef$ +1 Oracle:Neurotraumal Rod — Whenever a creature attacks you, it gets -1/-0 until end of turn.\nWhenever a creature attacks one of your opponents, it gets +0/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/v/vertigo_spawn.txt b/forge-gui/res/cardsfolder/v/vertigo_spawn.txt index d0bba4bdb9f..a7afa69b485 100644 --- a/forge-gui/res/cardsfolder/v/vertigo_spawn.txt +++ b/forge-gui/res/cardsfolder/v/vertigo_spawn.txt @@ -4,7 +4,7 @@ Types:Creature Illusion PT:0/3 K:Defender T:Mode$ AttackerBlocked | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ TrigTap | TriggerDescription$ Whenever CARDNAME blocks a creature, tap that creature. That creature doesn't untap during its controller's next untap step. -SVar:TrigTap:DB$ Tap | Defined$ TriggeredAttacker | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent +SVar:TrigTap:DB$ Tap | Defined$ TriggeredAttackerLKICopy | SubAbility$ DBPump +SVar:DBPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent SVar:HasBlockEffect:TRUE Oracle:Defender\nWhenever Vertigo Spawn blocks a creature, tap that creature. That creature doesn't untap during its controller's next untap step. diff --git a/forge-gui/res/cardsfolder/w/wall_of_frost.txt b/forge-gui/res/cardsfolder/w/wall_of_frost.txt index 8858f6330a1..9d5f048e8dc 100644 --- a/forge-gui/res/cardsfolder/w/wall_of_frost.txt +++ b/forge-gui/res/cardsfolder/w/wall_of_frost.txt @@ -4,6 +4,6 @@ Types:Creature Wall PT:0/7 K:Defender T:Mode$ AttackerBlocked | ValidBlocker$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME blocks a creature, that creature doesn't untap during its controller's next untap step. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent SVar:HasBlockEffect:TRUE Oracle:Defender\nWhenever Wall of Frost blocks a creature, that creature doesn't untap during its controller's next untap step. diff --git a/forge-gui/res/cardsfolder/w/wand_of_orcus.txt b/forge-gui/res/cardsfolder/w/wand_of_orcus.txt index 11345464cb6..40d1915fe27 100644 --- a/forge-gui/res/cardsfolder/w/wand_of_orcus.txt +++ b/forge-gui/res/cardsfolder/w/wand_of_orcus.txt @@ -3,8 +3,8 @@ ManaCost:2 B Types:Legendary Artifact Equipment T:Mode$ Attacks | ValidCard$ Card.EquippedBy | TriggerZones$ Battlefield | Execute$ TrigPumpA | TriggerDescription$ Whenever enchanted creature attacks or blocks, it and Zombies you control gain deathtouch until end of turn. T:Mode$ Blocks | ValidCard$ Card.EquippedBy | TriggerZones$ Battlefield | Execute$ TrigPumpB | Secondary$ True | TriggerDescription$ Whenever enchanted creature attacks or blocks, it and Zombies you control gain deathtouch until end of turn. -SVar:TrigPumpA:DB$ Pump | Defined$ TriggeredAttacker | KW$ Deathtouch | SubAbility$ DBPumpZ -SVar:TrigPumpB:DB$ Pump | Defined$ TriggeredBlocker | KW$ Deathtouch | SubAbility$ DBPumpZ +SVar:TrigPumpA:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Deathtouch | SubAbility$ DBPumpZ +SVar:TrigPumpB:DB$ Pump | Defined$ TriggeredBlockerLKICopy | KW$ Deathtouch | SubAbility$ DBPumpZ SVar:DBPumpZ:DB$ PumpAll | ValidCards$ Zombie.YouCtrl | KW$ Deathtouch T:Mode$ DamageDone | ValidSource$ Card.EquippedBy | Execute$ TrigToken | CombatDamage$ True | ValidTarget$ Player | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, create that many 2/2 black Zombie creature tokens. SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ b_2_2_zombie diff --git a/forge-gui/res/cardsfolder/w/witherscale_wurm.txt b/forge-gui/res/cardsfolder/w/witherscale_wurm.txt index c5522bbc8fc..43f6b2ba658 100644 --- a/forge-gui/res/cardsfolder/w/witherscale_wurm.txt +++ b/forge-gui/res/cardsfolder/w/witherscale_wurm.txt @@ -5,8 +5,8 @@ PT:9/9 T:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ TrigPumpAttacker | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature gains wither until end of turn. (It deals damage to creatures in the form of -1/-1 counters.) T:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | Execute$ TrigPumpBlocker | Secondary$ True | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature, that creature gains wither until end of turn. (It deals damage to creatures in the form of -1/-1 counters.) T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | Execute$ TrigRemoveCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage to an opponent, remove all -1/-1 counters from it. -SVar:TrigPumpAttacker:DB$ Pump | Defined$ TriggeredAttacker | KW$ Wither -SVar:TrigPumpBlocker:DB$ Pump | Defined$ TriggeredBlocker | KW$ Wither +SVar:TrigPumpAttacker:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ Wither +SVar:TrigPumpBlocker:DB$ Pump | Defined$ TriggeredBlockerLKICopy | KW$ Wither SVar:TrigRemoveCounter:DB$ RemoveCounter | CounterType$ M1M1 | CounterNum$ All SVar:All:Count$CardCounters.M1M1 Oracle:Whenever Witherscale Wurm blocks or becomes blocked by a creature, that creature gains wither until end of turn. (It deals damage to creatures in the form of -1/-1 counters.)\nWhenever Witherscale Wurm deals damage to an opponent, remove all -1/-1 counters from it. diff --git a/forge-gui/res/tokenscripts/u_0_2_illusion_mesmerize.txt b/forge-gui/res/tokenscripts/u_0_2_illusion_mesmerize.txt index 7c4132dcc41..9e8a708455c 100644 --- a/forge-gui/res/tokenscripts/u_0_2_illusion_mesmerize.txt +++ b/forge-gui/res/tokenscripts/u_0_2_illusion_mesmerize.txt @@ -4,6 +4,6 @@ Colors:blue Types:Creature Illusion PT:0/2 T:Mode$ AttackerBlocked | ValidBlocker$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever this creature blocks a creature, that creature doesn't untap during its controller's next untap step. -SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent +SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent SVar:HasBlockEffect:TRUE Oracle:Whenever this creature blocks a creature, that creature doesn't untap during its controller's next untap step. From 21fa0e0f6a63cbe6d1210c6ba94e0c5048fbf05d Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Tue, 1 Nov 2022 16:44:41 +0100 Subject: [PATCH 7/7] More LKI fixes --- forge-gui/res/cardsfolder/c/choking_sands.txt | 5 +++-- forge-gui/res/cardsfolder/f/feast_of_worms.txt | 2 +- forge-gui/res/cardsfolder/f/filigree_fracture.txt | 5 +++-- forge-gui/res/cardsfolder/g/gloomlance.txt | 2 +- forge-gui/res/cardsfolder/g/gloomwidows_feast.txt | 5 +++-- forge-gui/res/cardsfolder/g/green_dragon.txt | 2 +- forge-gui/res/cardsfolder/h/helldozer.txt | 5 +++-- forge-gui/res/cardsfolder/h/hour_of_glory.txt | 2 +- forge-gui/res/cardsfolder/m/molten_rain.txt | 5 +++-- 9 files changed, 19 insertions(+), 14 deletions(-) diff --git a/forge-gui/res/cardsfolder/c/choking_sands.txt b/forge-gui/res/cardsfolder/c/choking_sands.txt index fd02a9002c9..938ab07512b 100644 --- a/forge-gui/res/cardsfolder/c/choking_sands.txt +++ b/forge-gui/res/cardsfolder/c/choking_sands.txt @@ -1,6 +1,7 @@ Name:Choking Sands ManaCost:1 B B Types:Sorcery -A:SP$ Destroy | Cost$ 1 B B | ValidTgts$ Land.nonSwamp | TgtPrompt$ Select target non-Swamp land | SubAbility$ DBDamage | SpellDescription$ Destroy target non-Swamp land. If that land was nonbasic, CARDNAME deals 2 damage to the land's controller. -SVar:DBDamage:DB$ DealDamage | Defined$ TargetedController | NumDmg$ 2 | ConditionDefined$ Targeted | ConditionPresent$ Land.Basic | ConditionCompare$ EQ0 | ConditionDescription$ If that land is nonbasic, +A:SP$ Destroy | Cost$ 1 B B | ValidTgts$ Land.nonSwamp | TgtPrompt$ Select target non-Swamp land | RememberLKI$ True | SubAbility$ DBDamage | SpellDescription$ Destroy target non-Swamp land. If that land was nonbasic, CARDNAME deals 2 damage to the land's controller. +SVar:DBDamage:DB$ DealDamage | Defined$ RememberedController | NumDmg$ 2 | ConditionDefined$ RememberedLKI | ConditionPresent$ Land.Basic | ConditionCompare$ EQ0 | ConditionDescription$ If that land is nonbasic, | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Destroy target non-Swamp land. If that land was nonbasic, Choking Sands deals 2 damage to the land's controller. diff --git a/forge-gui/res/cardsfolder/f/feast_of_worms.txt b/forge-gui/res/cardsfolder/f/feast_of_worms.txt index d29774801a4..a8a0b7aca59 100644 --- a/forge-gui/res/cardsfolder/f/feast_of_worms.txt +++ b/forge-gui/res/cardsfolder/f/feast_of_worms.txt @@ -2,7 +2,7 @@ Name:Feast of Worms ManaCost:3 G G Types:Sorcery Arcane A:SP$ Destroy | Cost$ 3 G G | ValidTgts$ Land | TgtPrompt$ Select target land | SubAbility$ DBSacrifice | AlwaysRemember$ True | RememberLKI$ True | SpellDescription$ Destroy target land. If that land was legendary, its controller sacrifices another land. -SVar:DBSacrifice:DB$ Sacrifice | Defined$ RememberedController | SacValid$ Land | ConditionDefined$ Remembered | ConditionPresent$ Land.Legendary | ConditionCompare$ EQ1 | ConditionDescription$ If that land was legendary, | SubAbility$ DBCleanup +SVar:DBSacrifice:DB$ Sacrifice | Defined$ RememberedController | SacValid$ Land | ConditionDefined$ RememberedLKI | ConditionPresent$ Land.Legendary | ConditionCompare$ EQ1 | ConditionDescription$ If that land was legendary, | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:Random Oracle:Destroy target land. If that land was legendary, its controller sacrifices another land. diff --git a/forge-gui/res/cardsfolder/f/filigree_fracture.txt b/forge-gui/res/cardsfolder/f/filigree_fracture.txt index 3618bc2c288..eaa9746f504 100644 --- a/forge-gui/res/cardsfolder/f/filigree_fracture.txt +++ b/forge-gui/res/cardsfolder/f/filigree_fracture.txt @@ -1,6 +1,7 @@ Name:Filigree Fracture ManaCost:2 G Types:Instant -A:SP$ Destroy | Cost$ 2 G | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SubAbility$ DBDraw | SpellDescription$ Destroy target artifact or enchantment. If that permanent was blue or black, draw a card. -SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionDefined$ Targeted | ConditionPresent$ Permanent.Blue,Permanent.Black | ConditionCompare$ EQ1 | ConditionDescription$ If that permanent was blue or black, +A:SP$ Destroy | Cost$ 2 G | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | RememberLKI$ True | SubAbility$ DBDraw | SpellDescription$ Destroy target artifact or enchantment. If that permanent was blue or black, draw a card. +SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionDefined$ RememberedLKI | ConditionPresent$ Permanent.Blue,Permanent.Black | ConditionCompare$ EQ1 | ConditionDescription$ If that permanent was blue or black, | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Destroy target artifact or enchantment. If that permanent was blue or black, draw a card. diff --git a/forge-gui/res/cardsfolder/g/gloomlance.txt b/forge-gui/res/cardsfolder/g/gloomlance.txt index 290631a421c..f36cdfbd226 100644 --- a/forge-gui/res/cardsfolder/g/gloomlance.txt +++ b/forge-gui/res/cardsfolder/g/gloomlance.txt @@ -2,6 +2,6 @@ Name:Gloomlance ManaCost:3 B B Types:Sorcery A:SP$ Destroy | Cost$ 3 B B | ValidTgts$ Creature | TgtPrompt$ Select target creature | AlwaysRemember$ True | RememberLKI$ True | SubAbility$ DBDiscard | SpellDescription$ Destroy target creature. If that creature was green or white, its controller discards a card. -SVar:DBDiscard:DB$ Discard | Defined$ RememberedController | NumCards$ 1 | Mode$ TgtChoose | ConditionDefined$ Remembered | ConditionPresent$ Card.Green,Card.White | SubAbility$ DBCleanup +SVar:DBDiscard:DB$ Discard | Defined$ RememberedController | NumCards$ 1 | Mode$ TgtChoose | ConditionDefined$ RememberedLKI | ConditionPresent$ Card.Green,Card.White | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Destroy target creature. If that creature was green or white, its controller discards a card. diff --git a/forge-gui/res/cardsfolder/g/gloomwidows_feast.txt b/forge-gui/res/cardsfolder/g/gloomwidows_feast.txt index a8a2852b70b..1969517967f 100644 --- a/forge-gui/res/cardsfolder/g/gloomwidows_feast.txt +++ b/forge-gui/res/cardsfolder/g/gloomwidows_feast.txt @@ -1,6 +1,7 @@ Name:Gloomwidow's Feast ManaCost:3 G Types:Instant -A:SP$ Destroy | Cost$ 3 G | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying | SubAbility$ DBToken | SpellDescription$ Destroy target creature with flying. If that creature was blue or black, create a 1/2 green Spider creature token with reach. -SVar:DBToken:DB$ Token | ConditionDefined$ Targeted | ConditionPresent$ Card.Blue,Card.Black | ConditionCompare$ EQ1 | TokenAmount$ 1 | TokenScript$ g_1_2_spider_reach | TokenOwner$ You | ConditionDescription$ If that creature was blue or black, put a 1/2 green Spider creature token with reach onto the battlefield. +A:SP$ Destroy | Cost$ 3 G | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying | RememberLKI$ True | SubAbility$ DBToken | SpellDescription$ Destroy target creature with flying. If that creature was blue or black, create a 1/2 green Spider creature token with reach. +SVar:DBToken:DB$ Token | ConditionDefined$ RememberedLKI | ConditionPresent$ Card.Blue,Card.Black | ConditionCompare$ EQ1 | TokenAmount$ 1 | TokenScript$ g_1_2_spider_reach | TokenOwner$ You | ConditionDescription$ If that creature was blue or black, put a 1/2 green Spider creature token with reach onto the battlefield. | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Destroy target creature with flying. If that creature was blue or black, create a 1/2 green Spider creature token with reach. (It can block creatures with flying.) diff --git a/forge-gui/res/cardsfolder/g/green_dragon.txt b/forge-gui/res/cardsfolder/g/green_dragon.txt index 6416e776783..aa77e858c36 100644 --- a/forge-gui/res/cardsfolder/g/green_dragon.txt +++ b/forge-gui/res/cardsfolder/g/green_dragon.txt @@ -6,6 +6,6 @@ K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigEffect | TriggerDescription$ Poison Breath — When CARDNAME enters the battlefield, until end of turn, whenever a creature an opponent controls is dealt damage, destroy it. SVar:TrigEffect:DB$ Effect | Triggers$ TrigDamageDone SVar:TrigDamageDone:Mode$ DamageDone | ValidTarget$ Creature.OppCtrl | Execute$ TrigDestroy | TriggerDescription$ Poison Breath — Until end of turn, whenever a creature an opponent controls is dealt damage, destroy it. -SVar:TrigDestroy:DB$ Destroy | Defined$ TriggeredTarget +SVar:TrigDestroy:DB$ Destroy | Defined$ TriggeredTargetLKICopy SVar:PlayMain1:TRUE Oracle:Flying\nPoison Breath — When Green Dragon enters the battlefield, until end of turn, whenever a creature an opponent controls is dealt damage, destroy it. diff --git a/forge-gui/res/cardsfolder/h/helldozer.txt b/forge-gui/res/cardsfolder/h/helldozer.txt index d87e1886931..624fc277608 100644 --- a/forge-gui/res/cardsfolder/h/helldozer.txt +++ b/forge-gui/res/cardsfolder/h/helldozer.txt @@ -2,6 +2,7 @@ Name:Helldozer ManaCost:3 B B B Types:Creature Zombie Giant PT:6/5 -A:AB$ Destroy | Cost$ B B B T | ValidTgts$ Land | TgtPrompt$ Select target land | SubAbility$ DBUntap | SpellDescription$ Destroy target land. If that land was nonbasic, untap CARDNAME. -SVar:DBUntap:DB$ Untap | ConditionDefined$ Targeted | ConditionPresent$ Land.nonBasic | ConditionCompare$ EQ1 | Defined$ Self +A:AB$ Destroy | Cost$ B B B T | ValidTgts$ Land | TgtPrompt$ Select target land | RememberLKI$ True | AlwaysRemember$ True | SubAbility$ DBUntap | SpellDescription$ Destroy target land. If that land was nonbasic, untap CARDNAME. +SVar:DBUntap:DB$ Untap | ConditionDefined$ RememberedLKI | ConditionPresent$ Land.nonBasic | ConditionCompare$ EQ1 | Defined$ Self | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:{B}{B}{B}, {T}: Destroy target land. If that land was nonbasic, untap Helldozer. diff --git a/forge-gui/res/cardsfolder/h/hour_of_glory.txt b/forge-gui/res/cardsfolder/h/hour_of_glory.txt index 067d7a09db9..44e0a09625e 100644 --- a/forge-gui/res/cardsfolder/h/hour_of_glory.txt +++ b/forge-gui/res/cardsfolder/h/hour_of_glory.txt @@ -2,6 +2,6 @@ Name:Hour of Glory ManaCost:3 B Types:Instant A:SP$ ChangeZone | Cost$ 3 B | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberLKI$ True | ForgetOtherTargets$ True | SubAbility$ DBChangeZone | SpellDescription$ Exile target creature. If that creature was a God, its controller reveals their hand and exiles all cards from it with the same name as that creature. -SVar:DBChangeZone:DB$ ChangeZoneAll | Origin$ Hand | Destination$ Exile | ConditionDefined$ Remembered | ConditionPresent$ God | DefinedPlayer$ RememberController | ChangeType$ Remembered.sameName | SubAbility$ DBCleanup +SVar:DBChangeZone:DB$ ChangeZoneAll | Origin$ Hand | Destination$ Exile | ConditionDefined$ RememberedLKI | ConditionPresent$ God | DefinedPlayer$ RememberController | ChangeType$ Remembered.sameName | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Exile target creature. If that creature was a God, its controller reveals their hand and exiles all cards from it with the same name as that creature. diff --git a/forge-gui/res/cardsfolder/m/molten_rain.txt b/forge-gui/res/cardsfolder/m/molten_rain.txt index 1fcabb01244..99fa9cb1f5d 100644 --- a/forge-gui/res/cardsfolder/m/molten_rain.txt +++ b/forge-gui/res/cardsfolder/m/molten_rain.txt @@ -1,6 +1,7 @@ Name:Molten Rain ManaCost:1 R R Types:Sorcery -A:SP$ Destroy | Cost$ 1 R R | ValidTgts$ Land | TgtPrompt$ Select target land | SubAbility$ DBDamage | SpellDescription$ Destroy target land. If that land is nonbasic, Molten Rain deals 2 damage to the land's controller. -SVar:DBDamage:DB$ DealDamage | Defined$ TargetedController | NumDmg$ 2 | ConditionDefined$ Targeted | ConditionPresent$ Land.Basic | ConditionCompare$ EQ0 | ConditionDescription$ If that land is nonbasic, +A:SP$ Destroy | Cost$ 1 R R | ValidTgts$ Land | TgtPrompt$ Select target land | SubAbility$ DBDamage | RememberLKI$ True | AlwaysRemember$ True | SpellDescription$ Destroy target land. If that land is nonbasic, Molten Rain deals 2 damage to the land's controller. +SVar:DBDamage:DB$ DealDamage | Defined$ RememberedController | NumDmg$ 2 | ConditionDefined$ RememberedLKI | ConditionPresent$ Land.Basic | ConditionCompare$ EQ0 | ConditionDescription$ If that land is nonbasic, | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Destroy target land. If that land was nonbasic, Molten Rain deals 2 damage to the land's controller.