From b6465a9c6fc59b12259eaa6837f0920a0ad2d87f Mon Sep 17 00:00:00 2001 From: Hanmac Date: Wed, 16 Nov 2016 16:28:17 +0000 Subject: [PATCH] CardFactoryUtil: move part of Unearth into ChangeZone Effect to use registerDelayedTrigger Helper --- .../game/ability/effects/ChangeZoneEffect.java | 4 ++++ .../java/forge/game/card/CardFactoryUtil.java | 17 +++-------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index d0bff7c8b0c..02d3e0bce75 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -538,6 +538,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect { movedCard = game.getAction().moveTo(tgtC.getController().getZone(destination), tgtC); if (sa.hasParam("Unearth")) { movedCard.setUnearthed(true); + movedCard.addExtrinsicKeyword("Haste"); + movedCard.addHiddenExtrinsicKeyword("If CARDNAME would leave the battlefield, exile it instead of putting it anywhere else."); + registerDelayedTrigger(sa, "Exile", Lists.newArrayList(movedCard)); + movedCard.updateStateForView(); } if (sa.hasParam("FaceDown")) { movedCard.setState(CardStateName.FaceDown, true); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 678e2e56bfa..751d111037a 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3720,22 +3720,11 @@ public class CardFactoryUtil { final String manacost = k[1]; String effect = "AB$ ChangeZone | Cost$ " + manacost + " | Defined$ Self" + - " | Origin$ Graveyard | Destination$ Battlefield | SorcerySpeed$" + - " True | ActivationZone$ Graveyard | Unearth$ True | SubAbility$" + - " UnearthPumpSVar | PrecostDesc$ Unearth | StackDescription$ " + + " | Origin$ Graveyard | Destination$ Battlefield | SorcerySpeed$ True" + + " | ActivationZone$ Graveyard | Unearth$ True | " + + " | PrecostDesc$ Unearth | StackDescription$ " + "Unearth: Return CARDNAME to the battlefield. | SpellDescription$" + " (" + Keyword.getInstance(keyword).getReminderText() + ")"; - String dbpump = "DB$ Pump | Defined$ Self | KW$ Haste & HIDDEN If CARDNAME" + - " would leave the battlefield, exile it instead of putting it " + - "anywhere else. | Permanent$ True | SubAbility$ UnearthDelayTrigger"; - String delTrig = "DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn" + - " | Execute$ UnearthTrueDeath | TriggerDescription$ Exile " + - "CARDNAME at the beginning of the next end step."; - String truedeath = "DB$ ChangeZone | Defined$ Self | Origin$ Battlefield" + - " | Destination$ Exile"; - card.setSVar("UnearthPumpSVar", dbpump); - card.setSVar("UnearthDelayTrigger", delTrig); - card.setSVar("UnearthTrueDeath", truedeath); final SpellAbility sa = AbilityFactory.getAbility(effect, card); if (!intrinsic) {