From c29b6b7fcb3288eac5d17ed0c9b2267cda4533e0 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Sat, 30 Dec 2023 16:35:46 +0100 Subject: [PATCH] GameAction: stop always trigger before etb counter (#4449) * GameAction: stop always trigger before etb counter * ~ always clear trigger and check for static abilities again --- .../src/main/java/forge/game/GameAction.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 5c24ac41b08..8af6addff4b 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -583,14 +583,19 @@ public class GameAction { } } - // Need to apply any static effects to produce correct triggers - checkStaticAbilities(); - - if (table.replaceCounterEffect(game, null, true, true, params)) { - // update static abilities after etb counters have been placed + if (!table.isEmpty()) { + // we don't want always trigger before counters are placed + game.getTriggerHandler().suppressMode(TriggerType.Always); + // Need to apply any static effects to produce correct triggers checkStaticAbilities(); } + table.replaceCounterEffect(game, null, true, true, params); + + // update static abilities after etb counters have been placed + game.getTriggerHandler().clearSuppression(TriggerType.Always); + checkStaticAbilities(); + // 400.7g try adding keyword back into card if it doesn't already have it if (zoneTo.is(ZoneType.Stack) && cause != null && cause.isSpell() && !cause.isIntrinsic() && c.equals(cause.getHostCard())) { if (cause.getKeyword() != null && !copied.getKeywords().contains(cause.getKeyword())) {