From 890ce2505cce4fe7cbd960e085306de975022ef5 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Thu, 10 Apr 2025 16:40:37 +0200 Subject: [PATCH] Unearth: add gain Haste as StaticLayer (#7369) * Unearth: add gain Haste as StaticLayer --- .../ability/effects/ChangeZoneEffect.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 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 5c1ebbd6b1b..b49c1247ba2 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 @@ -663,9 +663,24 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } if (sa.isKeyword(Keyword.UNEARTH) && movedCard.isInPlay()) { movedCard.setUnearthed(true); - movedCard.addChangedCardKeywords(Lists.newArrayList("Haste"), null, false, game.getNextTimestamp(), null); + + final Card eff = createEffect(sa, sa.getActivatingPlayer(), "Unearth Effect", hostCard.getImageKey()); + + // It gains haste. + String s = "Mode$ Continuous | Affected$ Card.IsRemembered | EffectZone$ Command | AddKeyword$ Haste"; + eff.addStaticAbility(s); + + // If it would leave the battlefield, exile it instead of putting it anywhere else. + addLeaveBattlefieldReplacement(eff, "Exile"); + + eff.addRemembered(movedCard); + + movedCard.addLeavesPlayCommand(exileEffectCommand(game, eff)); + + game.getAction().moveToCommand(eff, sa); + + // Exile it at the beginning of the next end step. registerDelayedTrigger(sa, "Exile", Lists.newArrayList(movedCard)); - addLeaveBattlefieldReplacement(movedCard, sa, "Exile"); } if (sa.hasParam("LeaveBattlefield")) { addLeaveBattlefieldReplacement(movedCard, sa, sa.getParam("LeaveBattlefield"));