From 3a285fcd922e1560c34fed89464d888c2a88f6b2 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sun, 1 Jan 2017 08:29:35 +0000 Subject: [PATCH] - Reverting r32912 for now, more investigation needed. --- .../game/ability/effects/ChangeZoneEffect.java | 18 ++++++++++++++++-- 1 file 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 d056b3758df..5a09232a5d4 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 @@ -973,8 +973,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { final GameEntity oldEnchanted = c.getEnchanting(); c.removeEnchanting(oldEnchanted); } - if (!c.canBeEnchantedBy(attachedTo)) - { + if (!checkCanAttachTo(c, attachedTo)) { // if an aura can't enchant the source, it shouldn't move (303.4i, 303.4j) continue; } @@ -1193,4 +1192,19 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } } + + private static boolean checkCanAttachTo(final Card source, final Card target) { + final SpellAbility attachEff = source.getFirstAttachSpell(); + + if (attachEff == null) { + return false; + } + + final Game game = source.getGame(); + final TargetRestrictions tgt = attachEff.getTargetRestrictions(); + + CardCollectionView list = game.getCardsIn(tgt.getZone()); + list = CardLists.getValidCards(list, tgt.getValidTgts(), attachEff.getActivatingPlayer(), source, attachEff); + return list.contains(target); + } }