diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java index 312796c8cf8..da1262a8678 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilCombat.java @@ -32,13 +32,7 @@ import forge.game.GlobalRuleChange; import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; -import forge.game.card.Card; -import forge.game.card.CardCollection; -import forge.game.card.CardCollectionView; -import forge.game.card.CardFactoryUtil; -import forge.game.card.CardLists; -import forge.game.card.CardUtil; -import forge.game.card.CounterType; +import forge.game.card.*; import forge.game.combat.Combat; import forge.game.combat.CombatUtil; import forge.game.cost.CostPayment; @@ -390,6 +384,18 @@ public class ComputerUtilCombat { return false; } + CardCollectionView otb = ai.getCardsIn(ZoneType.Battlefield); + // Special cases: + // AI can't lose in combat in presence of Worship (with creatures) + if (!CardLists.filter(otb, CardPredicates.nameEquals("Worship")).isEmpty() && !ai.getCreaturesInPlay().isEmpty()) { + return false; + } + // AI can't lose in combat in presence of Elderscale Wurm (at 7 life or more) + if (!CardLists.filter(otb, CardPredicates.nameEquals("Elderscale Wurm")).isEmpty() && ai.getLife() >= 7) { + return false; + } + + // check for creatures that must be blocked final List attackers = combat.getAttackersOf(ai);