From e94caba4b0338fee9e2ee0112fb81de76b9a040d Mon Sep 17 00:00:00 2001 From: Sol Date: Tue, 29 Mar 2016 14:20:46 +0000 Subject: [PATCH] - Adding AttachedToPlayer to ChangeZone Known Origin --- .../ability/effects/ChangeZoneEffect.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) 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 aeeb7c04aa2..f4ac4551099 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 @@ -506,6 +506,25 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } + if (sa.hasParam("AttachedToPlayer")) { + FCollectionView list = AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("AttachedToPlayer"), sa); + if (!list.isEmpty()) { + Player attachedTo = player.getController().chooseSingleEntityForEffect(list, sa, tgtC + " - Select a player to attach to."); + if (tgtC.isAura()) { + if (tgtC.isEnchanting()) { + // If this Card is already Enchanting something, need + // to unenchant it, then clear out the commands + final GameEntity oldEnchanted = tgtC.getEnchanting(); + tgtC.removeEnchanting(oldEnchanted); + } + tgtC.enchantEntity(attachedTo); + } + } + else { // When it should enter the battlefield attached to an illegal player it fails + continue; + } + } + // Auras without Candidates stay in their current // location if (tgtC.isAura()) { @@ -867,6 +886,15 @@ public class ChangeZoneEffect extends SpellAbilityEffect { c.setController(newController, game.getNextTimestamp()); } + if (sa.hasParam("Transformed")) { + if (c.isDoubleFaced()) { + c.changeCardState("Transform", null); + } else { + // If it can't Transform, don't change zones. + continue; + } + } + if (sa.hasParam("AttachedTo")) { CardCollection list = AbilityUtils.getDefinedCards(source, sa.getParam("AttachedTo"), sa); if (list.isEmpty()) {