mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Fix defender selection on "enters attacking" effects
This commit is contained in:
@@ -543,15 +543,29 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
movedCard.turnFaceDown(true);
|
||||
}
|
||||
if (sa.hasParam("Attacking")) {
|
||||
// What should they attack?
|
||||
FCollectionView<GameEntity> 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);
|
||||
final Combat combat = game.getCombat();
|
||||
if ( null != combat ) {
|
||||
final FCollectionView<GameEntity> e = combat.getDefenders();
|
||||
|
||||
GameEntity defender = null;
|
||||
if (sa.hasParam("DefinedDefender")) {
|
||||
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")) {
|
||||
// Ninjutsu need to get the Defender of the Returned Creature
|
||||
final Card returned = sa.getPaidList("Returned").getFirst();
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user