From fa9dd99f6e271d98ab240066efda07e89ceb9275 Mon Sep 17 00:00:00 2001 From: TRT <> Date: Tue, 12 Oct 2021 17:13:53 +0200 Subject: [PATCH] Fix missing trigger due to ETB with old state --- .../StaticAbilityPanharmonicon.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java index 4164631b830..1bb9c64a28e 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityPanharmonicon.java @@ -24,12 +24,16 @@ public class StaticAbilityPanharmonicon { int n = 0; CardCollectionView cardList = null; - // currently only used for leave the battlefield trigger - if (runParams.containsKey(AbilityKey.LastStateBattlefield)) { - cardList = (CardCollectionView) runParams.get(AbilityKey.LastStateBattlefield); - } - if (cardList == null) { - cardList = t.getMode() == TriggerType.ChangesZone && "Battlefield".equals(t.getParam("Origin")) ? game.getLastStateBattlefield() : game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES); + // if LTB look back + if (t.getMode() == TriggerType.ChangesZone && "Battlefield".equals(t.getParam("Origin"))) { + if (runParams.containsKey(AbilityKey.LastStateBattlefield)) { + cardList = (CardCollectionView) runParams.get(AbilityKey.LastStateBattlefield); + } + if (cardList == null) { + cardList = game.getLastStateBattlefield(); + } + } else { + cardList = game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES); } // Checks only the battlefield, as those effects only work from there