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 04b2e5b66da..52f2dfa00dd 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 @@ -543,13 +543,27 @@ public class ChangeZoneEffect extends SpellAbilityEffect { movedCard.turnFaceDown(true); } if (sa.hasParam("Attacking")) { - // What should they attack? - FCollectionView defenders = game.getCombat().getDefenders(); - if (!defenders.isEmpty()) { - // Blockeres are already declared, set this to unblocked - game.getCombat().addAttacker(tgtC, defenders.getFirst()); - game.getCombat().getBandOfAttacker(tgtC).setBlocked(false); - game.fireEvent(new GameEventCombatChanged()); + final Combat combat = game.getCombat(); + if ( null != combat ) { + final FCollectionView e = combat.getDefenders(); + + GameEntity defender = null; + if (sa.hasParam("DefinedDefender")) { + FCollection objs = AbilityUtils.getDefinedObjects(sa.getHostCard(), sa.getParam("DefinedDefender"), sa); + for(GameObject obj : objs) { + if (obj instanceof GameEntity) { + defender = (GameEntity)obj; + break; + } + } + } else { + defender = player.getController().chooseSingleEntityForEffect(e, sa, "Declare a defender for " + movedCard ); + } + if (defender != null) { + combat.addAttacker(movedCard, defender); + game.getCombat().getBandOfAttacker(movedCard).setBlocked(false); + game.fireEvent(new GameEventCombatChanged()); + } } } if (sa.hasParam("Ninjutsu")) { @@ -1028,6 +1042,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } if (defender != null) { combat.addAttacker(c, defender); + game.getCombat().getBandOfAttacker(c).setBlocked(false); game.fireEvent(new GameEventCombatChanged()); } }