diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index 253031c67b5..8af4a42eb58 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -223,6 +223,19 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { if (!movedCard.getZone().equals(originZone)) { triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard); + + if (c.getMeldedWith() != null) { + Card meld = game.getCardState(c.getMeldedWith(), null); + if (meld != null) { + triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), meld); + } + } + if (c.hasMergedCard()) { + for (final Card cm : c.getMergedCards()) { + if (cm == c) continue; + triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), cm); + } + } } } 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 c98c1b5772a..4c776434d9e 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 @@ -728,16 +728,28 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } if (!movedCard.getZone().equals(originZone)) { + Card meld = null; triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard); + if (gameCard.getMeldedWith() != null) { + meld = game.getCardState(gameCard.getMeldedWith(), null); + if (meld != null) { + triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), meld); + } + } + if (gameCard.hasMergedCard()) { + for (final Card c : gameCard.getMergedCards()) { + if (c == gameCard) continue; + triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), c); + } + } + + if (remember != null) { hostCard.addRemembered(movedCard); // addRememberedFromCardState ? - if (gameCard.getMeldedWith() != null) { - Card meld = game.getCardState(gameCard.getMeldedWith(), null); - if (meld != null) { - hostCard.addRemembered(meld); - } + if (meld != null) { + hostCard.addRemembered(meld); } if (gameCard.hasMergedCard()) { for (final Card c : gameCard.getMergedCards()) {