Fix defender selection on "enters attacking" effects

This commit is contained in:
Adam Pantel
2019-06-16 14:28:05 -04:00
parent d724950ab3
commit 6c15a05c8e

View File

@@ -543,13 +543,27 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
movedCard.turnFaceDown(true); movedCard.turnFaceDown(true);
} }
if (sa.hasParam("Attacking")) { if (sa.hasParam("Attacking")) {
// What should they attack? final Combat combat = game.getCombat();
FCollectionView<GameEntity> defenders = game.getCombat().getDefenders(); if ( null != combat ) {
if (!defenders.isEmpty()) { final FCollectionView<GameEntity> e = combat.getDefenders();
// Blockeres are already declared, set this to unblocked
game.getCombat().addAttacker(tgtC, defenders.getFirst()); GameEntity defender = null;
game.getCombat().getBandOfAttacker(tgtC).setBlocked(false); if (sa.hasParam("DefinedDefender")) {
game.fireEvent(new GameEventCombatChanged()); FCollection<GameObject> 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")) { if (sa.hasParam("Ninjutsu")) {
@@ -1028,6 +1042,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
} }
if (defender != null) { if (defender != null) {
combat.addAttacker(c, defender); combat.addAttacker(c, defender);
game.getCombat().getBandOfAttacker(c).setBlocked(false);
game.fireEvent(new GameEventCombatChanged()); game.fireEvent(new GameEventCombatChanged());
} }
} }