diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index c433efd776d..1173045d018 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1699,7 +1699,7 @@ public class GameAction { } final Card newCard = moveToGraveyard(c, cause, null); - if (table != null) { + if (table != null && newCard != null && newCard.getZone() != null) { table.put(ZoneType.Battlefield, newCard.getZone().getZoneType(), newCard); } diff --git a/forge-gui/res/cardsfolder/c/ceremonial_guard.txt b/forge-gui/res/cardsfolder/c/ceremonial_guard.txt index 25cf794c27a..f8f20f372d2 100644 --- a/forge-gui/res/cardsfolder/c/ceremonial_guard.txt +++ b/forge-gui/res/cardsfolder/c/ceremonial_guard.txt @@ -5,6 +5,5 @@ PT:3/4 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelTrig | TriggerDescription$ Whenever CARDNAME attacks or blocks, destroy it at end of combat. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DelTrig | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, destroy it at end of combat. SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ Destroy CARDNAME at end of combat. -SVar:TrigSacrifice:DB$ Destroy | Defined$ Self -SVar:Picture:http://www.wizards.com/global/images/magic/general/ceremonial_guard.jpg +SVar:TrigSacrifice:DB$ Destroy | Defined$ DelayTriggerRememberedLKI Oracle:When Ceremonial Guard attacks or blocks, destroy it at end of combat. diff --git a/forge-gui/res/cardsfolder/c/crumbling_colossus.txt b/forge-gui/res/cardsfolder/c/crumbling_colossus.txt index f9353a8df4a..f2c0d1ddf87 100644 --- a/forge-gui/res/cardsfolder/c/crumbling_colossus.txt +++ b/forge-gui/res/cardsfolder/c/crumbling_colossus.txt @@ -5,7 +5,6 @@ PT:7/4 K:Trample T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelTrig | TriggerDescription$ When CARDNAME attacks, sacrifice it at end of combat. SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ Sacrifice CARDNAME at end of combat. -SVar:TrigSacrifice:DB$ Sacrifice | Defined$ Self +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI SVar:SacrificeEndCombat:True -SVar:Picture:http://www.wizards.com/global/images/magic/general/crumbling_colossus.jpg Oracle:Trample (This creature can deal excess combat damage to the player or planeswalker it's attacking.)\nWhen Crumbling Colossus attacks, sacrifice it at end of combat. diff --git a/forge-gui/res/cardsfolder/c/cunning.txt b/forge-gui/res/cardsfolder/c/cunning.txt index 10a4ac8365e..d15ccf941c4 100644 --- a/forge-gui/res/cardsfolder/c/cunning.txt +++ b/forge-gui/res/cardsfolder/c/cunning.txt @@ -5,8 +5,7 @@ K:Enchant creature A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 3 | AddToughness$ 3 | Description$ Enchanted creature gets +3/+3. T:Mode$ Attacks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ DelayedTrig | TriggerDescription$ When enchanted creature attacks or blocks, sacrifice CARDNAME at the beginning of the next cleanup step. -T:Mode$ Blocks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield| Execute$ DelayedTrig | Secondary$ True | TriggerDescription$ When enchanted creature attacks or blocks, sacrifice CARDNAME at the beginning of the next cleanup step. -SVar:DelayedTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ Cleanup | ValidPlayer$ Player | Execute$ TrigSac | TriggerDescription$ Sacrifice CARDNAME. -SVar:TrigSac:DB$Sacrifice | Defined$ Self -SVar:Picture:http://www.wizards.com/global/images/magic/general/cunning.jpg +T:Mode$ Blocks | ValidCard$ Card.AttachedBy | TriggerZones$ Battlefield | Execute$ DelayedTrig | Secondary$ True | TriggerDescription$ When enchanted creature attacks or blocks, sacrifice CARDNAME at the beginning of the next cleanup step. +SVar:DelayedTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ Cleanup | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ Sacrifice CARDNAME. +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI Oracle:Enchant creature\nEnchanted creature gets +3/+3.\nWhen enchanted creature attacks or blocks, sacrifice Cunning at the beginning of the next cleanup step. diff --git a/forge-gui/res/cardsfolder/f/fog_elemental.txt b/forge-gui/res/cardsfolder/f/fog_elemental.txt index b7e23e40d4a..42229329d09 100644 --- a/forge-gui/res/cardsfolder/f/fog_elemental.txt +++ b/forge-gui/res/cardsfolder/f/fog_elemental.txt @@ -6,7 +6,6 @@ K:Flying T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelTrig | TriggerDescription$ Whenever CARDNAME attacks or blocks, sacrifice it at end of combat. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DelTrig | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, sacrifice it at end of combat. SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ Sacrifice CARDNAME at end of combat. -SVar:TrigSacrifice:DB$Sacrifice | Defined$ Self +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI SVar:SacrificeEndCombat:True -SVar:Picture:http://www.wizards.com/global/images/magic/general/fog_elemental.jpg Oracle:Flying (This creature can't be blocked except by creatures with flying or reach.)\nWhen Fog Elemental attacks or blocks, sacrifice it at end of combat. diff --git a/forge-gui/res/cardsfolder/k/keldon_battlewagon.txt b/forge-gui/res/cardsfolder/k/keldon_battlewagon.txt index 02e4b9e2fec..3cb6e82cbce 100644 --- a/forge-gui/res/cardsfolder/k/keldon_battlewagon.txt +++ b/forge-gui/res/cardsfolder/k/keldon_battlewagon.txt @@ -6,10 +6,9 @@ K:Trample K:CARDNAME can't block. T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelTrig | TriggerDescription$ When CARDNAME attacks, sacrifice it at end of combat. SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ Sacrifice CARDNAME at end of combat. -SVar:TrigSacrifice:DB$Sacrifice | Defined$ Self +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI SVar:SacrificeEndCombat:True A:AB$ Pump | Cost$ tapXType<1/Creature> | NumAtt$ +X | SpellDescription$ CARDNAME gets +X/+0 until end of turn, where X is the power of the creature tapped this way. SVar:X:Tapped$CardPower AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/keldon_battlewagon.jpg Oracle:Trample\nKeldon Battlewagon can't block.\nWhen Keldon Battlewagon attacks, sacrifice it at end of combat.\nTap an untapped creature you control: Keldon Battlewagon gets +X/+0 until end of turn, where X is the power of the creature tapped this way. diff --git a/forge-gui/res/cardsfolder/m/mardu_blazebringer.txt b/forge-gui/res/cardsfolder/m/mardu_blazebringer.txt index 1b2e223b77d..94c657ac507 100644 --- a/forge-gui/res/cardsfolder/m/mardu_blazebringer.txt +++ b/forge-gui/res/cardsfolder/m/mardu_blazebringer.txt @@ -5,8 +5,7 @@ PT:4/4 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelTrig | TriggerDescription$ When CARDNAME attacks or blocks, sacrifice it at end of combat. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DelTrig | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, sacrifice it at end of combat. SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ Sacrifice CARDNAME at end of combat. -SVar:TrigSacrifice:DB$ Sacrifice | Defined$ Self +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI SVar:SacrificeEndCombat:True AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/mardu_blazebringer.jpg Oracle:When Mardu Blazebringer attacks or blocks, sacrifice it at end of combat. diff --git a/forge-gui/res/cardsfolder/r/runaway_carriage.txt b/forge-gui/res/cardsfolder/r/runaway_carriage.txt index 405edf35591..44470f5b2d0 100644 --- a/forge-gui/res/cardsfolder/r/runaway_carriage.txt +++ b/forge-gui/res/cardsfolder/r/runaway_carriage.txt @@ -6,7 +6,6 @@ K:Trample T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelTrig | TriggerDescription$ Whenever CARDNAME attacks or blocks, sacrifice it at end of combat. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DelTrig | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, sacrifice it at end of combat. SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ Sacrifice CARDNAME at end of combat. -SVar:TrigSacrifice:DB$Sacrifice | Defined$ Self +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI SVar:SacrificeEndCombat:True -SVar:Picture:http://www.wizards.com/global/images/magic/general/runaway_carriage.jpg Oracle:Trample\nWhen Runaway Carriage attacks or blocks, sacrifice it at end of combat. diff --git a/forge-gui/res/cardsfolder/s/stoic_ephemera.txt b/forge-gui/res/cardsfolder/s/stoic_ephemera.txt index 95b839418c3..e1749ee178d 100644 --- a/forge-gui/res/cardsfolder/s/stoic_ephemera.txt +++ b/forge-gui/res/cardsfolder/s/stoic_ephemera.txt @@ -6,7 +6,6 @@ K:Defender K:Flying T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DelTrig | TriggerDescription$ When CARDNAME blocks, sacrifice it at end of combat. SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Opponent | Execute$ TrigSacrifice | TriggerDescription$ Sacrifice CARDNAME at end of combat. -SVar:TrigSacrifice:DB$Sacrifice | Defined$ Self +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI SVar:SacrificeEndCombat:True -SVar:Picture:http://www.wizards.com/global/images/magic/general/stoic_ephemera.jpg Oracle:Defender (This creature can't attack.)\nFlying\nWhen Stoic Ephemera blocks, sacrifice it at end of combat. diff --git a/forge-gui/res/cardsfolder/t/time_elemental.txt b/forge-gui/res/cardsfolder/t/time_elemental.txt index bb00aaca78a..f3347ca4396 100644 --- a/forge-gui/res/cardsfolder/t/time_elemental.txt +++ b/forge-gui/res/cardsfolder/t/time_elemental.txt @@ -5,9 +5,8 @@ PT:0/2 A:AB$ ChangeZone | Cost$ 2 U U T | ValidTgts$ Permanent.unenchanted | TgtPrompt$ Select target unenchanted permanent | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target permanent that isn't enchanted to its owner's hand. T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DelayedTrig | TriggerDescription$ When CARDNAME attacks or blocks, at end of combat, sacrifice it and it deals 5 damage to you. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ DelayedTrig | Secondary$ True | TriggerDescription$ When CARDNAME attacks or blocks, at end of combat, sacrifice it and it deals 5 damage to you. -SVar:DelayedTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSac | TriggerDescription$ At end of combat, sacrifice CARDNAME and CARDNAME deals 5 damage to you. -SVar:TrigSac:DB$Sacrifice | Defined$ Self | SubAbility$ DBDamage +SVar:DelayedTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ TrigSacrifice | TriggerDescription$ At end of combat, sacrifice CARDNAME and CARDNAME deals 5 damage to you. +SVar:TrigSacrifice:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI | SubAbility$ DBDamage SVar:DBDamage:DB$DealDamage | NumDmg$ 5 | Defined$ You AI:RemoveDeck:All -SVar:Picture:http://www.wizards.com/global/images/magic/general/time_elemental.jpg Oracle:When Time Elemental attacks or blocks, at end of combat, sacrifice it and it deals 5 damage to you.\n{2}{U}{U}, {T}: Return target permanent that isn't enchanted to its owner's hand. diff --git a/forge-gui/res/cardsfolder/w/wine_of_blood_and_iron.txt b/forge-gui/res/cardsfolder/w/wine_of_blood_and_iron.txt index 7f5aaeb18cc..6d0a515d8a3 100644 --- a/forge-gui/res/cardsfolder/w/wine_of_blood_and_iron.txt +++ b/forge-gui/res/cardsfolder/w/wine_of_blood_and_iron.txt @@ -3,7 +3,6 @@ ManaCost:3 Types:Artifact A:AB$ Pump | Cost$ 4 | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | SubAbility$ DBDelay | AILogic$ Berserk | SpellDescription$ Target creature gets +X/+0 until end of turn, where X is its power. Sacrifice CARDNAME at the beginning of the next end step. SVar:DBDelay:DB$ DelayedTrigger | Mode$ Phase | Phase$ End Of Turn | Execute$ TrigSac | TriggerDescription$ Sacrifice CARDNAME at the beginning of the next end step. -SVar:TrigSac:DB$ SacrificeAll | Defined$ Self | Controller$ You +SVar:TrigSac:DB$ SacrificeAll | Defined$ DelayTriggerRememberedLKI | Controller$ You SVar:X:Targeted$CardPower -SVar:Picture:http://www.wizards.com/global/images/magic/general/wine_of_blood_and_iron.jpg Oracle:{4}: Target creature gets +X/+0 until end of turn, where X is its power. Sacrifice Wine of Blood and Iron at the beginning of the next end step.