diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index 3f16273ae0d..7e1e22ad279 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -541,7 +541,7 @@ public class AiAttackController { bestBand = ComputerUtilCard.getBestCreatureAI(CardLists.getType(attackers, "Dinosaur")); } else if (c.hasKeyword("Bands with Other Creatures named Wolves of the Hunt")) { bestBand = ComputerUtilCard.getBestCreatureAI(CardLists.filter(attackers, CardPredicates.nameEquals("Wolves of the Hunt"))); - } else if (!c.hasAnyKeyword(evasionKeywords) && bestAttacker.hasAnyKeyword(evasionKeywords)) { + } else if (!c.hasAnyKeyword(evasionKeywords) && bestAttacker != null && bestAttacker.hasAnyKeyword(evasionKeywords)) { bestBand = ComputerUtilCard.getBestCreatureAI(CardLists.filter(attackers, card -> !card.hasAnyKeyword(evasionKeywords))); } else { bestBand = bestAttacker; diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index 41f620f4ba1..eb827287501 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -2035,7 +2035,7 @@ public class ComputerUtilCombat { // Check for Banding, Defensive Formation boolean isAttackingMe = isAttacking && combat.getDefenderPlayerByAttacker(attacker).equals(self); - boolean isBlockingMyBand = attacker.getController().isOpponentOf(self) && AttackingBand.isValidBand(block.subList(0, block.size()), true); + boolean isBlockingMyBand = attacker.getController().isOpponentOf(self) && AttackingBand.isValidBand(block, true); final boolean aiDistributesBandingDmg = isAttackingMe || isBlockingMyBand; final boolean hasTrample = attacker.hasKeyword(Keyword.TRAMPLE); diff --git a/forge-game/src/main/java/forge/game/combat/AttackingBand.java b/forge-game/src/main/java/forge/game/combat/AttackingBand.java index e509c577361..9e69f0899bb 100644 --- a/forge-game/src/main/java/forge/game/combat/AttackingBand.java +++ b/forge-game/src/main/java/forge/game/combat/AttackingBand.java @@ -26,7 +26,7 @@ public class AttackingBand { public void addAttacker(Card card) { attackers.add(card); } public void removeAttacker(Card card) { attackers.remove(card); } - public static boolean isValidBand(List band, boolean shareDamage) { + public static boolean isValidBand(CardCollectionView band, boolean shareDamage) { if (band.isEmpty()) { // An empty band is not a valid band return false; @@ -64,7 +64,7 @@ public class AttackingBand { public boolean canJoinBand(Card card) { // Trying to join an existing band, attackers should be non-empty and card should exist - List newBand = new ArrayList<>(attackers); + CardCollection newBand = new CardCollection(attackers); if (card != null) { newBand.add(card); }