From 0b7fc67c3f68cc5e78000ae56a355d7d35d24885 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 13 Sep 2017 14:52:09 +0000 Subject: [PATCH] - Experimental: for Dingus Egg, do not check the time stamp of the card that changed zone (fixes interaction with Sacred Ground). Should this be the default behavior for ChangesZone triggers that do not seem to care for how many times the card had changed zones before the trigger resolves? --- .../main/java/forge/game/trigger/WrappedAbility.java | 10 ++++++++-- forge-gui/res/cardsfolder/d/dingus_egg.txt | 4 ++-- forge-gui/res/cardsfolder/s/sacred_ground.txt | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java index 871d7aee257..c627cd62b8c 100644 --- a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java +++ b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java @@ -451,7 +451,10 @@ public class WrappedAbility extends Ability { Card card = (Card) o; Card current = game.getCardState(card); if (current.getTimestamp() != card.getTimestamp()) { - sa.getTriggerRemembered().remove(o); + // TODO: figure out if NoTimestampCheck should be the default for ChangesZone triggers + if (!triggerParams.containsKey("NoTimestampCheck")) { + sa.getTriggerRemembered().remove(o); + } } } } @@ -461,7 +464,10 @@ public class WrappedAbility extends Ability { Card card = (Card) ev.getValue(); Card current = game.getCardState(card); if (card.isInPlay() && current.isInPlay() && current.getTimestamp() != card.getTimestamp()) { - sa.getTriggeringObjects().remove(ev.getKey()); + // TODO: figure out if NoTimestampCheck should be the default for ChangesZone triggers + if (!triggerParams.containsKey("NoTimestampCheck")) { + sa.getTriggeringObjects().remove(ev.getKey()); + } } } } diff --git a/forge-gui/res/cardsfolder/d/dingus_egg.txt b/forge-gui/res/cardsfolder/d/dingus_egg.txt index 3a916121851..7af8718e14e 100644 --- a/forge-gui/res/cardsfolder/d/dingus_egg.txt +++ b/forge-gui/res/cardsfolder/d/dingus_egg.txt @@ -1,8 +1,8 @@ Name:Dingus Egg ManaCost:4 Types:Artifact -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Land | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a land is put into a graveyard from the battlefield, CARDNAME deals 2 damage to that land's controller. -SVar:TrigDamage:AB$DealDamage | Cost$ 0 | Defined$ TriggeredCardController | NumDmg$ 2 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Land | TriggerZones$ Battlefield | Execute$ TrigDamage | NoTimestampCheck$ True | TriggerDescription$ Whenever a land is put into a graveyard from the battlefield, CARDNAME deals 2 damage to that land's controller. +SVar:TrigDamage:DB$ DealDamage | Defined$ TriggeredCardController | NumDmg$ 2 SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dingus_egg.jpg Oracle:Whenever a land is put into a graveyard from the battlefield, Dingus Egg deals 2 damage to that land's controller. diff --git a/forge-gui/res/cardsfolder/s/sacred_ground.txt b/forge-gui/res/cardsfolder/s/sacred_ground.txt index e3c8c15c1e7..0dcf7991f6d 100644 --- a/forge-gui/res/cardsfolder/s/sacred_ground.txt +++ b/forge-gui/res/cardsfolder/s/sacred_ground.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Enchantment T:Mode$ Sacrificed | ValidCard$ Land.YouOwn | ValidSourceController$ Player.Opponent | Execute$ TrigReturn | TriggerZones$ Battlefield | TriggerDescription$ Whenever a spell or ability an opponent controls causes a land to be put into your graveyard from the battlefield, return that card to the battlefield. T:Mode$ Destroyed | ValidCauser$ Player.Opponent | ValidCard$ Land.YouOwn | Execute$ TrigReturn | Secondary$ True | TriggerZones$ Battlefield | TriggerDescription$ Whenever a spell or ability an opponent controls causes a land to be put into your graveyard from the battlefield, return that card to the battlefield. -SVar:TrigReturn:AB$ ChangeZone | Cost$ 0 | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Battlefield +SVar:TrigReturn:DB$ ChangeZone | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Battlefield SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/sacred_ground.jpg Oracle:Whenever a spell or ability an opponent controls causes a land to be put into your graveyard from the battlefield, return that card to the battlefield.