From f68e427a1809d29c264e11944ea53e66ca412a45 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Sat, 21 May 2022 10:55:06 +0200 Subject: [PATCH 1/2] PlayEffect: add TriggerChangesZoneAll --- .../forge/game/ability/effects/PlayEffect.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java index ff27aa362b5..fb499245477 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java @@ -25,6 +25,7 @@ import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.card.CardFactoryUtil; +import forge.game.card.CardZoneTable; import forge.game.cost.Cost; import forge.game.cost.CostDiscard; import forge.game.cost.CostPart; @@ -321,6 +322,9 @@ public class PlayEffect extends SpellAbilityEffect { continue; } + final CardZoneTable triggerList = new CardZoneTable(); + final Zone originZone = tgtCard.getZone(); + // lands will be played if (tgtSA instanceof LandAbility) { tgtSA.resolve(); @@ -335,6 +339,13 @@ public class PlayEffect extends SpellAbilityEffect { if (forget) { source.removeRemembered(tgtCard); } + + final Zone currentZone = game.getCardState(tgtCard).getZone(); + if (!originZone.equals(currentZone)) { + triggerList.put(originZone.getZoneType(), currentZone.getZoneType(), game.getCardState(tgtCard)); + } + triggerList.triggerChangesZoneAll(game, null); + continue; } @@ -422,6 +433,12 @@ public class PlayEffect extends SpellAbilityEffect { if (forget) { source.removeRemembered(tgtCard); } + + final Zone currentZone = game.getCardState(tgtCard).getZone(); + if (!originZone.equals(currentZone)) { + triggerList.put(originZone.getZoneType(), currentZone.getZoneType(), game.getCardState(tgtCard)); + } + triggerList.triggerChangesZoneAll(game, null); } amount--; From 209488f024ef2dcc97739a27dc0b78e39194d94f Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Sat, 21 May 2022 11:44:58 +0200 Subject: [PATCH 2/2] Cause=sa --- .../src/main/java/forge/game/ability/effects/PlayEffect.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java index fb499245477..a2915ecabaa 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java @@ -344,7 +344,7 @@ public class PlayEffect extends SpellAbilityEffect { if (!originZone.equals(currentZone)) { triggerList.put(originZone.getZoneType(), currentZone.getZoneType(), game.getCardState(tgtCard)); } - triggerList.triggerChangesZoneAll(game, null); + triggerList.triggerChangesZoneAll(game, sa); continue; } @@ -438,7 +438,7 @@ public class PlayEffect extends SpellAbilityEffect { if (!originZone.equals(currentZone)) { triggerList.put(originZone.getZoneType(), currentZone.getZoneType(), game.getCardState(tgtCard)); } - triggerList.triggerChangesZoneAll(game, null); + triggerList.triggerChangesZoneAll(game, sa); } amount--;