diff --git a/src/main/java/forge/game/ai/AiController.java b/src/main/java/forge/game/ai/AiController.java index 4de027de191..748dda8072e 100644 --- a/src/main/java/forge/game/ai/AiController.java +++ b/src/main/java/forge/game/ai/AiController.java @@ -671,16 +671,24 @@ public class AiController { case Encode: if (logic == null) { - List attackers = CardLists.filter(options, new Predicate() { + final List attackers = CardLists.filter(options, new Predicate() { @Override public boolean apply(final Card c) { return CombatUtil.canAttackNextTurn(c); } }); - if (attackers.isEmpty()) { - choice = ComputerUtilCard.getBestAI(options); - } else { + final List unblockables = CardLists.filter(options, new Predicate() { + @Override + public boolean apply(final Card c) { + return CombatUtil.canBeBlocked(c); + } + }); + if (!unblockables.isEmpty()) { + choice = ComputerUtilCard.getBestAI(unblockables); + } else if (!attackers.isEmpty()) { choice = ComputerUtilCard.getBestAI(attackers); + } else { + choice = ComputerUtilCard.getBestAI(options); } } return choice;