From 3bfccc55e517655677f11f0f528f1ff0da997ca7 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Fri, 22 Jul 2016 14:42:27 +0000 Subject: [PATCH] SpellAbilityEffect: registerDelayedTrigger: add more modi for what happend at the next end step. --- .../game/ability/SpellAbilityEffect.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) 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 2c39f56213e..ec8492850cf 100644 --- a/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/SpellAbilityEffect.java @@ -193,10 +193,21 @@ public abstract class SpellAbilityEffect { } - protected static void registerDelayedTrigger(final SpellAbility sa, final String location, final List crds) { - String delTrig = "Mode$ Phase | Phase$ End Of Turn | TriggerDescription$ " - + location + " " + crds + " at the beginning of the next end step."; - final Trigger trig = TriggerHandler.parseTrigger(delTrig, sa.getHostCard(), true); + protected static void registerDelayedTrigger(final SpellAbility sa, String location, final List crds) { + boolean your = location.startsWith("Your"); + if (your) { + location = location.substring("Your".length()); + } + + StringBuilder delTrig = new StringBuilder(); + delTrig.append("Mode$ Phase | Phase$ End Of Turn "); + if (your) { + delTrig.append("| ValidPlayer$ You "); + } + delTrig.append("| TriggerDescription$ " + location + " " + crds + " at the beginning of "); + delTrig.append(your ? "your" : "the"); + delTrig.append(" next end step."); + final Trigger trig = TriggerHandler.parseTrigger(delTrig.toString(), sa.getHostCard(), true); for (final Card c : crds) { trig.addRemembered(c); } @@ -205,6 +216,8 @@ public abstract class SpellAbilityEffect { trigSA = "DB$ SacrificeAll | Defined$ DelayTriggerRemembered | Controller$ You"; } else if (location.equals("Exile")) { trigSA = "DB$ ChangeZone | Defined$ DelayTriggerRemembered | Origin$ Battlefield | Destination$ Exile"; + } else if (location.equals("Destroy")) { + trigSA = "DB$ Destroy | Cost$ 0 | Defined$ DelayTriggerRemembered"; } trig.setOverridingAbility(AbilityFactory.getAbility(trigSA, sa.getHostCard())); sa.getActivatingPlayer().getGame().getTriggerHandler().registerDelayedTrigger(trig);