diff --git a/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java b/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java index 85d86b67857..f2af36697c6 100644 --- a/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java +++ b/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java @@ -114,7 +114,10 @@ public class ReplacementHandler { // when testing ReplaceMoved effects, make sure to check last known information since the host card // could have been moved, e.g. via a mass removal event (e.g. Kalitas, Traitor of Ghet + Wrath of God) - Zone cardZone = replacementEffect instanceof ReplaceMoved ? game.getChangeZoneLKIInfo(crd).getLastKnownZone() : game.getZoneOf(crd); + // TODO: currently excluding ETB triggers to avoid issues like e.g. Essence of the Wild destroyed in + // response to a creature spell going on stack still making the card ETB as a copy of the Essence. + // This probably needs some rework to allow both to function correctly without the need for hacks. + Zone cardZone = replacementEffect instanceof ReplaceMoved && !"Battlefield".equals(replacementEffect.getMapParams().get("Destination")) ? game.getChangeZoneLKIInfo(crd).getLastKnownZone() : game.getZoneOf(crd); if (!replacementEffect.hasRun() && replacementEffect.getLayer() == layer diff --git a/forge-gui/CHANGES.txt b/forge-gui/CHANGES.txt index 84bc5690d31..7b99aee4318 100644 --- a/forge-gui/CHANGES.txt +++ b/forge-gui/CHANGES.txt @@ -47,7 +47,7 @@ There is a known issue with the cost reduction for cards that have color-locked Currently Improvise is implemented as a "clone" of Convoke keyword, which does not work correctly in corner cases (for example, together with an instance of Convoke or Delve). This is planned to be addressed soon. -Essence of the Wild works wrong in the following corner case: when a creature spell is cast and Essence of the Wild is destroyed while the creature spell is on the stack, the creature still enters the battlefield as a copy of Essence of the Wild even though the Essence is already in the graveyard. +Replacement effects that happen when a card moves from zone to zone (e.g. ETB replacement effect of Essence of the Wild; Kalitas, Traitor of Ghet replacement effect for a dying creature) need some rework to allow all of them to work in a rule-exact way without the need for special exclusions and hacks (see ReplacementHandler.java:120). There is a known issue that allows Qasali Ambusher to be cast from any zone for its ambush ability (requires MayPlay update to be fixed). For now, a temporary measure was set up to prevent the AI from abusing this issue, but it is up to the human player to deliberately choose not to abuse this when possible.