Skip to content

Commit

Permalink
StaticAbilityAssignNoCombatDamage (#5998)
Browse files Browse the repository at this point in the history
* StaticAbilityAssignNoCombatDamage

---------

Co-authored-by: tool4ever <[email protected]>
  • Loading branch information
Hanmac and tool4ever committed Aug 28, 2024
1 parent 51abd27 commit 4b533d2
Show file tree
Hide file tree
Showing 29 changed files with 115 additions and 58 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
16 changes: 5 additions & 11 deletions forge-game/src/main/java/forge/game/card/Card.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}

}
3 changes: 2 additions & 1 deletion forge-gui/res/cardsfolder/b/bone_dancer.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
7 changes: 4 additions & 3 deletions forge-gui/res/cardsfolder/c/carrion_rats.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
7 changes: 4 additions & 3 deletions forge-gui/res/cardsfolder/c/carrion_wurm.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 3 additions & 2 deletions forge-gui/res/cardsfolder/c/cloak_of_confusion.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 3 additions & 2 deletions forge-gui/res/cardsfolder/d/delifs_cone.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 3 additions & 2 deletions forge-gui/res/cardsfolder/d/delifs_cube.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion forge-gui/res/cardsfolder/d/dwarven_vigilantes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
7 changes: 4 additions & 3 deletions forge-gui/res/cardsfolder/f/farrels_mantle.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
3 changes: 2 additions & 1 deletion forge-gui/res/cardsfolder/f/farrels_zealot.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 3 additions & 2 deletions forge-gui/res/cardsfolder/f/floral_spuzzem.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 3 additions & 2 deletions forge-gui/res/cardsfolder/g/gaze_of_pain.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 3 additions & 2 deletions forge-gui/res/cardsfolder/g/goblin_vandal.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Loading

0 comments on commit 4b533d2

Please sign in to comment.