From 903c708e1f6c8cf4f08364d8d1922d31e20416aa Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sun, 3 Feb 2019 16:37:49 +0100 Subject: [PATCH] MeldEffect: some fixes --- .../game/ability/effects/ChangeZoneEffect.java | 14 ++++++++++++++ .../forge/game/ability/effects/MeldEffect.java | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) 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 dbf654df439..ddbdfd3d11e 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 @@ -606,6 +606,13 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (remember != null) { hostCard.addRemembered(movedCard); + // addRememberedFromCardState ? + if (tgtC.getMeldedWith() != null) { + Card meld = game.getCardState(tgtC.getMeldedWith(), null); + if (meld != null) { + hostCard.addRemembered(meld); + } + } } if (forget != null) { hostCard.removeRemembered(movedCard); @@ -1121,6 +1128,13 @@ public class ChangeZoneEffect extends SpellAbilityEffect { if (remember) { source.addRemembered(movedCard); + // addRememberedFromCardState ? + if (c.getMeldedWith() != null) { + Card meld = game.getCardState(c.getMeldedWith(), null); + if (meld != null) { + source.addRemembered(meld); + } + } } if (forget) { source.removeRemembered(movedCard); diff --git a/forge-game/src/main/java/forge/game/ability/effects/MeldEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MeldEffect.java index 82f34844181..45a0aa66841 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MeldEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MeldEffect.java @@ -54,9 +54,9 @@ public class MeldEffect extends SpellAbilityEffect { } primary.changeToState(CardStateName.Meld); + primary.setMeldedWith(secondary); PlayerZoneBattlefield bf = (PlayerZoneBattlefield)controller.getZone(ZoneType.Battlefield); - Card melded = game.getAction().changeZone(primary.getZone(), bf, primary, 0, sa); + game.getAction().changeZone(primary.getZone(), bf, primary, 0, sa); bf.addToMelded(secondary); - melded.setMeldedWith(secondary); } }