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 9dd437d9aa5..16a47466827 100644 --- a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java @@ -898,6 +898,9 @@ public void run() { } else if ("UntilHostLeavesPlayOrEOT".equals(duration)) { host.addLeavesPlayCommand(until); game.getEndOfTurn().addUntil(until); + } else if ("UntilHostLeavesPlayOrEndOfCombat".equals(duration)) { + host.addLeavesPlayCommand(until); + game.getEndOfCombat().addUntil(until); } else if ("UntilLoseControlOfHost".equals(duration)) { host.addLeavesPlayCommand(until); host.addChangeControllerCommand(until); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index e41f302e4c4..0abb45a866e 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -4591,19 +4591,13 @@ public final boolean toughnessAssignsDamage() { return StaticAbilityCombatDamageToughness.combatDamageToughness(this); } - // How much combat damage does the card deal - public final StatBreakdown getNetCombatDamageBreakdown() { - if (hasKeyword("CARDNAME assigns no combat damage")) { - return new StatBreakdown(); - } - - if (toughnessAssignsDamage()) { - return getNetToughnessBreakdown(); - } - return getNetPowerBreakdown(); + public final boolean assignNoCombatDamage() { + return StaticAbilityAssignNoCombatDamage.assignNoCombatDamage(this); } + + // How much combat damage does the card deal public final int getNetCombatDamage() { - return getNetCombatDamageBreakdown().getTotal(); + return assignNoCombatDamage() ? 0 : (toughnessAssignsDamage() ? getNetToughnessBreakdown() : getNetPowerBreakdown()).getTotal(); } private int intensity = 0; diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityAssignNoCombatDamage.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityAssignNoCombatDamage.java new file mode 100644 index 00000000000..3302897af98 --- /dev/null +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityAssignNoCombatDamage.java @@ -0,0 +1,34 @@ +package forge.game.staticability; + +import forge.game.card.Card; +import forge.game.card.CardCollection; +import forge.game.zone.ZoneType; + +public class StaticAbilityAssignNoCombatDamage { + + static String MODE = "AssignNoCombatDamage"; + + public static boolean assignNoCombatDamage(final Card card) { + CardCollection list = new CardCollection(card.getGame().getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)); + list.add(card); + for (final Card ca : list) { + for (final StaticAbility stAb : ca.getStaticAbilities()) { + if (!stAb.checkConditions(MODE)) { + continue; + } + if (applyAssignNoCombatDamage(stAb, card)) { + return true; + } + } + } + return false; + } + + public static boolean applyAssignNoCombatDamage(final StaticAbility stAb, final Card card) { + if (!stAb.matchesValidParam("ValidCard", card)) { + return false; + } + return true; + } + +} diff --git a/forge-gui/res/cardsfolder/b/bone_dancer.txt b/forge-gui/res/cardsfolder/b/bone_dancer.txt index 6334553f6c4..a0cd5b94e98 100644 --- a/forge-gui/res/cardsfolder/b/bone_dancer.txt +++ b/forge-gui/res/cardsfolder/b/bone_dancer.txt @@ -4,6 +4,7 @@ Types:Creature Zombie PT:2/2 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ DBChangeZone | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may put the top creature card of defending player's graveyard onto the battlefield under your control. If you do, CARDNAME assigns no combat damage this turn. SVar:DBChangeZone:DB$ ChangeZoneAll | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature.TopGraveyardCreature+DefenderCtrl | GainControl$ True | ChangeNum$ 1 | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:NeedsOrderedGraveyard:OPPONENT Oracle:Whenever Bone Dancer attacks and isn't blocked, you may put the top creature card of defending player's graveyard onto the battlefield under your control. If you do, Bone Dancer assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/c/carrion_rats.txt b/forge-gui/res/cardsfolder/c/carrion_rats.txt index 5f5f16c2234..f7af5a4b974 100644 --- a/forge-gui/res/cardsfolder/c/carrion_rats.txt +++ b/forge-gui/res/cardsfolder/c/carrion_rats.txt @@ -2,8 +2,9 @@ Name:Carrion Rats ManaCost:B Types:Creature Rat PT:2/1 -T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigNoCombatDamage | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile a card from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. -T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigNoCombatDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile a card from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. -SVar:TrigNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | UnlessCost$ ExileFromGrave<1/Card> | UnlessPayer$ Player | UnlessSwitched$ True +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DBNoCombatDamage | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile a card from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. +T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DBNoCombatDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile a card from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT | UnlessCost$ ExileFromGrave<1/Card> | UnlessPayer$ Player | UnlessSwitched$ True +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. AI:RemoveDeck:All Oracle:Whenever Carrion Rats attacks or blocks, any player may exile a card from their graveyard. If a player does, Carrion Rats assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/c/carrion_wurm.txt b/forge-gui/res/cardsfolder/c/carrion_wurm.txt index c708cd2e02a..0f829ed32b9 100644 --- a/forge-gui/res/cardsfolder/c/carrion_wurm.txt +++ b/forge-gui/res/cardsfolder/c/carrion_wurm.txt @@ -2,7 +2,8 @@ Name:Carrion Wurm ManaCost:3 B B Types:Creature Zombie Wurm PT:6/5 -T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigNoCombatDamage | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile three cards from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. -T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigNoCombatDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile three cards from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. -SVar:TrigNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | UnlessCost$ ExileFromGrave<3/Card> | UnlessPayer$ Player | UnlessSwitched$ True +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DBNoCombatDamage | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile three cards from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. +T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DBNoCombatDamage | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, any player may exile three cards from their graveyard. If a player does, CARDNAME assigns no combat damage this turn. +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT | UnlessCost$ ExileFromGrave<3/Card> | UnlessPayer$ Player | UnlessSwitched$ True +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. Oracle:Whenever Carrion Wurm attacks or blocks, any player may exile three cards from their graveyard. If a player does, Carrion Wurm assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/c/cloak_of_confusion.txt b/forge-gui/res/cardsfolder/c/cloak_of_confusion.txt index 724668bd96f..dd18a5ebb3d 100644 --- a/forge-gui/res/cardsfolder/c/cloak_of_confusion.txt +++ b/forge-gui/res/cardsfolder/c/cloak_of_confusion.txt @@ -3,8 +3,9 @@ ManaCost:1 B Types:Enchantment Aura K:Enchant creature you control A:SP$ Attach | Cost$ 1 B | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | AILogic$ Pump -T:Mode$ AttackerUnblocked | ValidCard$ Creature.EnchantedBy | Execute$ CloakofConfusionPump | OptionalDecider$ You | TriggerDescription$ Whenever enchanted creature attacks and isn't blocked, you may have it assign no combat damage this turn. If you do, defending player discards a card at random. -SVar:CloakofConfusionPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN CARDNAME assigns no combat damage | SubAbility$ CloakofConfusionDiscard +T:Mode$ AttackerUnblocked | ValidCard$ Creature.EnchantedBy | Execute$ DBNoCombatDamage | OptionalDecider$ You | TriggerDescription$ Whenever enchanted creature attacks and isn't blocked, you may have it assign no combat damage this turn. If you do, defending player discards a card at random. +SVar:DBNoCombatDamage:DB$ Effect | RememberObjects$ TriggeredAttackerLKICopy | StaticAbilities$ SNoCombatDamage | ForgetOnMoved$ Battlefield | SubAbility$ CloakofConfusionDiscard +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.IsRemembered | Description$ Remembered creature assigns no combat damage this turn. SVar:CloakofConfusionDiscard:DB$ Discard | Defined$ TriggeredDefendingPlayer | Mode$ Random | NumCards$ 1 AI:RemoveDeck:All Oracle:Enchant creature you control\nWhenever enchanted creature attacks and isn't blocked, you may have it assign no combat damage this turn. If you do, defending player discards a card at random. diff --git a/forge-gui/res/cardsfolder/d/delifs_cone.txt b/forge-gui/res/cardsfolder/d/delifs_cone.txt index ac2f87123a6..ed5216d0155 100644 --- a/forge-gui/res/cardsfolder/d/delifs_cone.txt +++ b/forge-gui/res/cardsfolder/d/delifs_cone.txt @@ -3,8 +3,9 @@ ManaCost:0 Types:Artifact A:AB$ Effect | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl | Triggers$ TrigAttackerUnblocked | RememberObjects$ Targeted | ForgetOnMoved$ Battlefield | SpellDescription$ This turn, when target creature you control attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. SVar:TrigAttackerUnblocked:Mode$ AttackerUnblocked | ValidCard$ Card.IsRemembered | Execute$ GainLife | OptionalDecider$ You | TriggerDescription$ This turn, when that creature attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. -SVar:GainLife:DB$ GainLife | Defined$ You | LifeAmount$ DelifX | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ HIDDEN CARDNAME assigns no combat damage | StackDescription$ {c:Remembered} assigns no combat damage this turn. +SVar:GainLife:DB$ GainLife | Defined$ You | LifeAmount$ DelifX | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ SNoCombatDamage | ForgetOnMoved$ Battlefield +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.IsRemembered | Description$ Remembered creature assigns no combat damage this turn. SVar:DelifX:Remembered$CardPower AI:RemoveDeck:All Oracle:{T}, Sacrifice Delif's Cone: This turn, when target creature you control attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/d/delifs_cube.txt b/forge-gui/res/cardsfolder/d/delifs_cube.txt index 2f8b325c7b4..bb95186cc49 100644 --- a/forge-gui/res/cardsfolder/d/delifs_cube.txt +++ b/forge-gui/res/cardsfolder/d/delifs_cube.txt @@ -2,8 +2,9 @@ Name:Delif's Cube ManaCost:1 Types:Artifact A:AB$ Effect | Cost$ 2 T | ValidTgts$ Creature.YouCtrl | Triggers$ TrigAttackerUnblocked | ExileOnMoved$ Battlefield | RememberObjects$ Targeted | SpellDescription$ This turn, when target creature you control attacks and isn't blocked, it assigns no combat damage this turn and you put a cube counter on CARDNAME. -SVar:TrigAttackerUnblocked:Mode$ AttackerUnblocked | ValidCard$ Card.IsRemembered | Execute$ DBPump | TriggerDescription$ This turn, when targeted creature attacks and isn't blocked, it assigns no combat damage this turn and you put a cube counter on EFFECTSOURCE. -SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ HIDDEN CARDNAME assigns no combat damage | SubAbility$ PutCounter +SVar:TrigAttackerUnblocked:Mode$ AttackerUnblocked | ValidCard$ Card.IsRemembered | Execute$ DBNoCombatDamage | TriggerDescription$ This turn, when targeted creature attacks and isn't blocked, it assigns no combat damage this turn and you put a cube counter on EFFECTSOURCE. +SVar:DBNoCombatDamage:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ SNoCombatDamage | ForgetOnMoved$ Battlefield | SubAbility$ PutCounter +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.IsRemembered | Description$ Remembered creature assigns no combat damage this turn. SVar:PutCounter:DB$ PutCounter | Defined$ EffectSource | CounterType$ CUBE | CounterNum$ 1 A:AB$ Regenerate | Cost$ 2 SubCounter<1/CUBE> | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Regenerate target creature. AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/d/dwarven_vigilantes.txt b/forge-gui/res/cardsfolder/d/dwarven_vigilantes.txt index 3112b656c60..c5ee9c1a294 100644 --- a/forge-gui/res/cardsfolder/d/dwarven_vigilantes.txt +++ b/forge-gui/res/cardsfolder/d/dwarven_vigilantes.txt @@ -4,6 +4,7 @@ Types:Creature Dwarf PT:2/2 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may have it deal damage equal to its power to target creature. If you do, CARDNAME assigns no combat damage this turn. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:X:Count$CardPower Oracle:Whenever Dwarven Vigilantes attacks and isn't blocked, you may have it deal damage equal to its power to target creature. If you do, Dwarven Vigilantes assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/f/farrels_mantle.txt b/forge-gui/res/cardsfolder/f/farrels_mantle.txt index ac24fabf591..53889e5f6f4 100644 --- a/forge-gui/res/cardsfolder/f/farrels_mantle.txt +++ b/forge-gui/res/cardsfolder/f/farrels_mantle.txt @@ -3,8 +3,9 @@ ManaCost:2 W Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 2 W | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump -T:Mode$ AttackerUnblocked | ValidCard$ Creature.EnchantedBy | Execute$ FarrelDmg | TriggerController$ EnchantedController | OptionalDecider$ EnchantedController | TriggerDescription$ Whenever enchanted creature attacks and isn't blocked, its controller may have it deal damage equal to its power plus 2 to another target creature. If that player does, the attacking creature assigns no combat damage this turn. -SVar:FarrelDmg:DB$ DealDamage | ValidTgts$ Creature.NotTriggeredAttacker | TgtPrompt$ Select another target creature | NumDmg$ FarrelX | DamageSource$ TriggeredAttackerLKICopy | SubAbility$ FarrelPump -SVar:FarrelPump:DB$ Pump | Defined$ TriggeredAttackerLKICopy | KW$ HIDDEN CARDNAME assigns no combat damage +T:Mode$ AttackerUnblocked | ValidCard$ Creature.EnchantedBy | Execute$ FarrelDmg | OptionalDecider$ EnchantedController | TriggerDescription$ Whenever enchanted creature attacks and isn't blocked, its controller may have it deal damage equal to its power plus 2 to another target creature. If that player does, the attacking creature assigns no combat damage this turn. +SVar:FarrelDmg:DB$ DealDamage | ValidTgts$ Creature.NotTriggeredAttacker | TgtPrompt$ Select another target creature | NumDmg$ FarrelX | DamageSource$ TriggeredAttackerLKICopy | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | RememberObjects$ TriggeredAttackerLKICopy | StaticAbilities$ SNoCombatDamage | ForgetOnMoved$ Battlefield +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.IsRemembered | Description$ Remembered creature assigns no combat damage this turn. SVar:FarrelX:TriggeredAttacker$CardPower/Plus.2 Oracle:Enchant creature\nWhenever enchanted creature attacks and isn't blocked, its controller may have it deal damage equal to its power plus 2 to another target creature. If that player does, the attacking creature assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/f/farrels_zealot.txt b/forge-gui/res/cardsfolder/f/farrels_zealot.txt index 5578d0209c9..fec6bccbee3 100644 --- a/forge-gui/res/cardsfolder/f/farrels_zealot.txt +++ b/forge-gui/res/cardsfolder/f/farrels_zealot.txt @@ -4,5 +4,6 @@ Types:Creature Human PT:2/2 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may have it deal 3 damage to target creature. If you do, CARDNAME assigns no combat damage this turn. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 3 | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. Oracle:Whenever Farrel's Zealot attacks and isn't blocked, you may have it deal 3 damage to target creature. If you do, Farrel's Zealot assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/f/floral_spuzzem.txt b/forge-gui/res/cardsfolder/f/floral_spuzzem.txt index 752bb98e35e..9b770f72465 100644 --- a/forge-gui/res/cardsfolder/f/floral_spuzzem.txt +++ b/forge-gui/res/cardsfolder/f/floral_spuzzem.txt @@ -3,6 +3,7 @@ ManaCost:3 G Types:Creature Elemental PT:2/2 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ TrigDestroy | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may destroy target artifact defending player controls. If you do, CARDNAME assigns no combat damage this turn. -SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target artifact | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Artifact.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target artifact | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. Oracle:Whenever Floral Spuzzem attacks and isn't blocked, you may destroy target artifact defending player controls. If you do, Floral Spuzzem assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/g/gaze_of_pain.txt b/forge-gui/res/cardsfolder/g/gaze_of_pain.txt index 41e89711789..25c2cf0dda9 100644 --- a/forge-gui/res/cardsfolder/g/gaze_of_pain.txt +++ b/forge-gui/res/cardsfolder/g/gaze_of_pain.txt @@ -3,8 +3,9 @@ ManaCost:1 B 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$ TriggeredAttackerLKICopy | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:Damage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | RememberObjects$ TriggeredAttackerLKICopy | StaticAbilities$ SNoCombatDamage | ForgetOnMoved$ Battlefield +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.IsRemembered | Description$ Remembered creature assigns no combat damage this turn. 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/goblin_vandal.txt b/forge-gui/res/cardsfolder/g/goblin_vandal.txt index bdbd8674ba3..d8d4bfd2f54 100644 --- a/forge-gui/res/cardsfolder/g/goblin_vandal.txt +++ b/forge-gui/res/cardsfolder/g/goblin_vandal.txt @@ -3,6 +3,7 @@ ManaCost:R Types:Creature Goblin Rogue PT:1/1 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDestroy | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may pay {R}. If you do, destroy target artifact defending player controls and CARDNAME assigns no combat damage this turn. -SVar:TrigDestroy:AB$ Destroy | Cost$ R | ValidTgts$ Artifact.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target artifact defending player controls | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:TrigDestroy:AB$ Destroy | Cost$ R | ValidTgts$ Artifact.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target artifact defending player controls | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. Oracle:Whenever Goblin Vandal attacks and isn't blocked, you may pay {R}. If you do, destroy target artifact defending player controls and Goblin Vandal assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/k/keeper_of_tresserhorn.txt b/forge-gui/res/cardsfolder/k/keeper_of_tresserhorn.txt index 952f234abdb..038b58d75ef 100644 --- a/forge-gui/res/cardsfolder/k/keeper_of_tresserhorn.txt +++ b/forge-gui/res/cardsfolder/k/keeper_of_tresserhorn.txt @@ -2,7 +2,8 @@ Name:Keeper of Tresserhorn ManaCost:5 B Types:Creature Avatar PT:6/6 -T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, it assigns no combat damage this turn and defending player loses 2 life. -SVar:TrigPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | SubAbility$ DBLose +T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ DBNoCombatDamage | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, it assigns no combat damage this turn and defending player loses 2 life. +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT | SubAbility$ DBLose +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:DBLose:DB$ LoseLife | Defined$ TriggeredDefendingPlayer | LifeAmount$ 2 Oracle:Whenever Keeper of Tresserhorn attacks and isn't blocked, it assigns no combat damage this turn and defending player loses 2 life. diff --git a/forge-gui/res/cardsfolder/k/kukemssa_pirates.txt b/forge-gui/res/cardsfolder/k/kukemssa_pirates.txt index 64436970566..cf5e10b5c88 100644 --- a/forge-gui/res/cardsfolder/k/kukemssa_pirates.txt +++ b/forge-gui/res/cardsfolder/k/kukemssa_pirates.txt @@ -4,5 +4,6 @@ Types:Creature Human Pirate PT:2/2 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ TrigGainControl | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may gain control of target artifact defending player controls. If you do, CARDNAME assigns no combat damage this turn. SVar:TrigGainControl:DB$ GainControl | ValidTgts$ Artifact.ControlledBy TriggeredDefendingPlayer | TgtPrompt$ Select target artifact defending player controls | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. Oracle:Whenever Kukemssa Pirates attacks and isn't blocked, you may gain control of target artifact defending player controls. If you do, Kukemssa Pirates assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/l/laccolith_grunt.txt b/forge-gui/res/cardsfolder/l/laccolith_grunt.txt index bc9e368fa65..f5327025c0d 100644 --- a/forge-gui/res/cardsfolder/l/laccolith_grunt.txt +++ b/forge-gui/res/cardsfolder/l/laccolith_grunt.txt @@ -4,6 +4,7 @@ Types:Creature Beast PT:2/2 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME becomes blocked, you may have it deal damage equal to its power to target creature. If you do, CARDNAME assigns no combat damage this turn. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:X:Count$CardPower Oracle:Whenever Laccolith Grunt becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Grunt assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/l/laccolith_rig.txt b/forge-gui/res/cardsfolder/l/laccolith_rig.txt index b46aebf61b4..17b7f6ac3d3 100644 --- a/forge-gui/res/cardsfolder/l/laccolith_rig.txt +++ b/forge-gui/res/cardsfolder/l/laccolith_rig.txt @@ -4,7 +4,8 @@ Types:Enchantment Aura 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$ TriggeredAttackerLKICopy | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:LaccolithDmg:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature to deal damage to | NumDmg$ RigX | SubAbility$ DBNoCombatDamage | DamageSource$ TriggeredAttacker +SVar:DBNoCombatDamage:DB$ Effect | RememberObjects$ TriggeredAttackerLKICopy | StaticAbilities$ SNoCombatDamage | ForgetOnMoved$ Battlefield +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.IsRemembered | Description$ Remembered creature assigns no combat damage this turn. 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/laccolith_titan.txt b/forge-gui/res/cardsfolder/l/laccolith_titan.txt index e4e9d0d683e..56ac65de042 100644 --- a/forge-gui/res/cardsfolder/l/laccolith_titan.txt +++ b/forge-gui/res/cardsfolder/l/laccolith_titan.txt @@ -4,6 +4,7 @@ Types:Creature Beast PT:6/6 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME becomes blocked, you may have it deal damage equal to its power to target creature. If you do, CARDNAME assigns no combat damage this turn. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:X:Count$CardPower Oracle:Whenever Laccolith Titan becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Titan assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/l/laccolith_warrior.txt b/forge-gui/res/cardsfolder/l/laccolith_warrior.txt index 4ab6d596776..825b4595fd6 100644 --- a/forge-gui/res/cardsfolder/l/laccolith_warrior.txt +++ b/forge-gui/res/cardsfolder/l/laccolith_warrior.txt @@ -4,6 +4,7 @@ Types:Creature Beast Warrior PT:3/3 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME becomes blocked, you may have it deal damage equal to its power to target creature. If you do, CARDNAME assigns no combat damage this turn. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:X:Count$CardPower Oracle:Whenever Laccolith Warrior becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Warrior assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/l/laccolith_whelp.txt b/forge-gui/res/cardsfolder/l/laccolith_whelp.txt index 5c2419650ec..431c8ddf84b 100644 --- a/forge-gui/res/cardsfolder/l/laccolith_whelp.txt +++ b/forge-gui/res/cardsfolder/l/laccolith_whelp.txt @@ -4,6 +4,7 @@ Types:Creature Beast PT:1/1 T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigDamage | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME becomes blocked, you may have it deal damage equal to its power to target creature. If you do, CARDNAME assigns no combat damage this turn. SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | SubAbility$ DBNoCombatDamage -SVar:DBNoCombatDamage:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:X:Count$CardPower Oracle:Whenever Laccolith Whelp becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Whelp assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/l/lim_duls_paladin.txt b/forge-gui/res/cardsfolder/l/lim_duls_paladin.txt index 4f7d19e423a..48852bfa1e7 100644 --- a/forge-gui/res/cardsfolder/l/lim_duls_paladin.txt +++ b/forge-gui/res/cardsfolder/l/lim_duls_paladin.txt @@ -10,8 +10,9 @@ SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionCheckSVar$ X | ConditionSVarCompar SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True T:Mode$ AttackerBlocked | ValidCard$ Card.Self | ValidBlocker$ Creature | TriggerZones$ Battlefield | Execute$ TrigBlockedPump | TriggerDescription$ Whenever CARDNAME becomes blocked, CARDNAME get +6/+3 until end of turn. SVar:TrigBlockedPump:DB$ Pump | Defined$ Self | NumAtt$ 6 | NumDef$ 3 -T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ TrigUnBlockedPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, it assigns no combat damage this turn and defending player loses 4 life. -SVar:TrigUnBlockedPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | SubAbility$ DBLoseLife +T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ DBNoCombatDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, it assigns no combat damage this turn and defending player loses 4 life. +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT | SubAbility$ DBLoseLife +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:DBLoseLife:DB$ LoseLife | Defined$ TriggeredDefendingPlayer | LifeAmount$ 4 SVar:X:Remembered$Amount AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/m/master_of_cruelties.txt b/forge-gui/res/cardsfolder/m/master_of_cruelties.txt index 2287da73400..9a96febde13 100644 --- a/forge-gui/res/cardsfolder/m/master_of_cruelties.txt +++ b/forge-gui/res/cardsfolder/m/master_of_cruelties.txt @@ -6,7 +6,8 @@ K:First Strike K:Deathtouch K:CARDNAME can only attack alone. T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | ValidDefender$ Player | Execute$ TrigDamage | TriggerDescription$ Whenever CARDNAME attacks a player and isn't blocked, that player's life total becomes 1. CARDNAME assigns no combat damage this combat. -SVar:TrigDamage:DB$ SetLife | Defined$ TriggeredDefender | LifeAmount$ 1 | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | Duration$ UntilEndOfCombat +SVar:TrigDamage:DB$ SetLife | Defined$ TriggeredDefender | LifeAmount$ 1 | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEndOfCombat +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:MustBeBlocked:True Oracle:First strike, deathtouch\nMaster of Cruelties can only attack alone.\nWhenever Master of Cruelties attacks a player and isn't blocked, that player's life total becomes 1. Master of Cruelties assigns no combat damage this combat. diff --git a/forge-gui/res/cardsfolder/o/ophidian.txt b/forge-gui/res/cardsfolder/o/ophidian.txt index 21fb41f7f98..3c1fca7ac77 100644 --- a/forge-gui/res/cardsfolder/o/ophidian.txt +++ b/forge-gui/res/cardsfolder/o/ophidian.txt @@ -3,7 +3,8 @@ ManaCost:2 U Types:Creature Snake PT:1/3 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigDraw | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may draw a card. If you do, CARDNAME assigns no combat damage this turn. -SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. AI:RemoveDeck:All Oracle:Whenever Ophidian attacks and isn't blocked, you may draw a card. If you do, Ophidian assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/o/orcish_squatters.txt b/forge-gui/res/cardsfolder/o/orcish_squatters.txt index 5d86a787349..8a28e784a14 100644 --- a/forge-gui/res/cardsfolder/o/orcish_squatters.txt +++ b/forge-gui/res/cardsfolder/o/orcish_squatters.txt @@ -3,6 +3,7 @@ ManaCost:4 R Types:Creature Orc PT:2/3 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ TrigGainControl | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may gain control of target land defending player controls for as long as you control CARDNAME. If you do, CARDNAME assigns no combat damage this turn. -SVar:TrigGainControl:DB$ GainControl | ValidTgts$ Land.DefenderCtrl | TgtPrompt$ Select target land defending player controls | LoseControl$ LoseControl,LeavesPlay | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:TrigGainControl:DB$ GainControl | ValidTgts$ Land.DefenderCtrl | TgtPrompt$ Select target land defending player controls | LoseControl$ LoseControl,LeavesPlay | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. Oracle:Whenever Orcish Squatters attacks and isn't blocked, you may gain control of target land defending player controls for as long as you control Orcish Squatters. If you do, Orcish Squatters assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/p/pygmy_hippo.txt b/forge-gui/res/cardsfolder/p/pygmy_hippo.txt index 5b06c8fae5a..b059c6bc002 100644 --- a/forge-gui/res/cardsfolder/p/pygmy_hippo.txt +++ b/forge-gui/res/cardsfolder/p/pygmy_hippo.txt @@ -4,8 +4,9 @@ Types:Creature Hippo PT:2/2 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ TrigActivateManaAbility | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may have defending player activate a mana ability of each land they control and lose all unspent mana. If you do, CARDNAME assigns no combat damage this turn and at the beginning of your postcombat main phase, you add an amount of {C} equal to the amount of mana that player lost this way. SVar:TrigActivateManaAbility:DB$ ActivateAbility | Defined$ DefendingPlayer | Type$ Land | ManaAbility$ True | SubAbility$ DBEmptyPool -SVar:DBEmptyPool:DB$ DrainMana | Defined$ DefendingPlayer | SubAbility$ DBPump | RememberDrainedMana$ True -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | SubAbility$ DBDelTrig +SVar:DBEmptyPool:DB$ DrainMana | Defined$ DefendingPlayer | SubAbility$ DBNoCombatDamage | RememberDrainedMana$ True +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT | SubAbility$ DBDelTrig +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:DBDelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ Main2 | Execute$ TrigAddMana | TriggerDescription$ At the beginning of your postcombat main phase, you add an amount of {C} equal to the amount of mana the defending player lost this way | SubAbility$ DBCleanup | RememberNumber$ True SVar:TrigAddMana:DB$ Mana | Produced$ C | Amount$ X SVar:X:Count$TriggerRememberAmount diff --git a/forge-gui/res/cardsfolder/r/rysorian_badger.txt b/forge-gui/res/cardsfolder/r/rysorian_badger.txt index a688a925971..bba21d3c2e6 100644 --- a/forge-gui/res/cardsfolder/r/rysorian_badger.txt +++ b/forge-gui/res/cardsfolder/r/rysorian_badger.txt @@ -4,8 +4,9 @@ Types:Creature Badger PT:2/2 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigExile | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may exile up to two target creature cards from defending player's graveyard. If you do, you gain 1 life for each card exiled this way and CARDNAME assigns no combat damage this turn. SVar:TrigExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.DefenderCtrl | RememberChanged$ True | SubAbility$ DBGainLife -SVar:DBGainLife:DB$ GainLife | LifeAmount$ X | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | SubAbility$ DBCleanup +SVar:DBGainLife:DB$ GainLife | LifeAmount$ X | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT | SubAbility$ DBCleanup +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:X:Remembered$Amount SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True Oracle:Whenever Rysorian Badger attacks and isn't blocked, you may exile up to two target creature cards from defending player's graveyard. If you do, you gain 1 life for each card exiled this way and Rysorian Badger assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/s/stromgald_spy.txt b/forge-gui/res/cardsfolder/s/stromgald_spy.txt index 688e8f8f946..1fbeb0ba344 100644 --- a/forge-gui/res/cardsfolder/s/stromgald_spy.txt +++ b/forge-gui/res/cardsfolder/s/stromgald_spy.txt @@ -3,8 +3,9 @@ ManaCost:3 B Types:Creature Human Rogue PT:2/4 T:Mode$ AttackerUnblocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigExile | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks and isn't blocked, you may have defending player play with their hand revealed for as long as CARDNAME remains on the battlefield. If you do, CARDNAME assigns no combat damage this turn. -SVar:TrigExile:DB$ Effect | StaticAbilities$ STRevealHand | RememberObjects$ DefendingPlayer | Duration$ AsLongAsInPlay | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage +SVar:TrigExile:DB$ Effect | StaticAbilities$ STRevealHand | RememberObjects$ DefendingPlayer | Duration$ AsLongAsInPlay | SubAbility$ DBNoCombatDamage +SVar:DBNoCombatDamage:DB$ Effect | StaticAbilities$ SNoCombatDamage | Duration$ UntilHostLeavesPlayOrEOT +SVar:SNoCombatDamage:Mode$ AssignNoCombatDamage | ValidCard$ Card.EffectSource | Description$ EFFECTSOURCE assigns no combat damage this turn. SVar:STRevealHand:Mode$ Continuous | AffectedZone$ Hand | Affected$ Card.RememberedPlayerOwn | MayLookAt$ Player | Description$ The defending player plays with their hand revealed. AI:RemoveDeck:All Oracle:Whenever Stromgald Spy attacks and isn't blocked, you may have defending player play with their hand revealed for as long as Stromgald Spy remains on the battlefield. If you do, Stromgald Spy assigns no combat damage this turn.