mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Fix defender selection on "enters attacking" effects
This commit is contained in:
@@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user