From 9de574b38f53bba26b6bb98b4f461da811835fb2 Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 17 Mar 2014 08:49:40 +0000 Subject: [PATCH] - Update scripts for Sneak Attack. Started to convert hidden keyword "At the beginning of the end step, destroy/exile/sacrifice CARDNAME." --- .../forge/game/ability/effects/DelayedTriggerEffect.java | 4 ++++ forge-game/src/main/java/forge/game/trigger/Trigger.java | 7 ++++++- forge-gui/res/cardsfolder/s/sneak_attack.txt | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java index e89fa229152..a3dc1d549f9 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DelayedTriggerEffect.java @@ -49,6 +49,10 @@ public class DelayedTriggerEffect extends SpellAbilityEffect { if (triggerRemembered != null) { for (final Object o : AbilityUtils.getDefinedObjects(sa.getHostCard(), triggerRemembered, sa)) { + if (o instanceof SpellAbility) { + // "RememberObjects$ Remembered" don't remember spellability + continue; + } delTrig.addRemembered(o); } } diff --git a/forge-game/src/main/java/forge/game/trigger/Trigger.java b/forge-game/src/main/java/forge/game/trigger/Trigger.java index 42684366034..a4787e8512d 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -137,7 +137,12 @@ public abstract class Trigger extends TriggerReplacementBase { @Override public final String toString() { if (this.mapParams.containsKey("TriggerDescription") && !this.isSuppressed()) { - return this.mapParams.get("TriggerDescription").replace("CARDNAME", this.getHostCard().getName()); + StringBuilder sb = new StringBuilder(); + sb.append(this.mapParams.get("TriggerDescription").replace("CARDNAME", this.getHostCard().getName())); + if (!this.triggerRemembered.isEmpty()) { + sb.append(" (").append(this.triggerRemembered).append(")"); + } + return sb.toString(); } else { return ""; } diff --git a/forge-gui/res/cardsfolder/s/sneak_attack.txt b/forge-gui/res/cardsfolder/s/sneak_attack.txt index fa67aaeffd2..c17ffd24900 100644 --- a/forge-gui/res/cardsfolder/s/sneak_attack.txt +++ b/forge-gui/res/cardsfolder/s/sneak_attack.txt @@ -2,7 +2,9 @@ Name:Sneak Attack ManaCost:3 R Types:Enchantment A:AB$ ChangeZone | Cost$ R | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.YouCtrl | SubAbility$ DBPump | RememberChanged$ True | ForgetOtherRemembered$ True | AILogic$ BeforeCombat | SpellDescription$ You may put a creature card from your hand onto the battlefield. That creature gains haste. Sacrifice the creature at the beginning of the next end step. -SVar:DBPump:DB$ Pump | KW$ Haste & HIDDEN At the beginning of the end step, sacrifice CARDNAME. | Defined$ Remembered | Permanent$ True | SubAbility$ DBCleanup +SVar:DBPump:DB$ Pump | KW$ Haste | Defined$ Remembered | Permanent$ True | SubAbility$ DelTrig +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End Of Turn | Execute$ TrigSac | RememberObjects$ Remembered | TriggerDescription$ CARDNAME - Sacrifice the creature at the beginning of the next end step. | SubAbility$ DBCleanup +SVar:TrigSac:AB$ SacrificeAll | Cost$ 0 | Defined$ DelayTriggerRemembered | Controller$ You SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:NonStackingEffect:True SVar:RemAIDeck:True