From 048543f74e6665c0d6eb3e05ed1abfea25922dd7 Mon Sep 17 00:00:00 2001 From: tool4ever Date: Wed, 1 Mar 2023 10:03:47 +0100 Subject: [PATCH] Tweak AI to skip useless Enlisting (#2594) --- .../src/main/java/forge/ai/PlayerControllerAi.java | 11 ++++++++--- forge-gui-desktop/pom.xml | 2 +- .../res/cardsfolder/upcoming/ghalta_and_mavren.txt | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index fc519608c97..186e811d94f 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -342,11 +342,16 @@ public class PlayerControllerAi extends PlayerController { @Override public List enlistAttackers(List attackers) { CardCollection cards = CostEnlist.getCardsForEnlisting(brains.getPlayer()); - ComputerUtilCard.sortByEvaluateCreature(new CardCollection(attackers)); + cards = CardLists.filter(cards, CardPredicates.hasGreaterPowerThan(0)); + CardCollection chosenAttackers = new CardCollection(attackers); + ComputerUtilCard.sortByEvaluateCreature(chosenAttackers); + // do not enlist more than available payment choices (currently ignores multiple instances of Enlist, but can that even happen?) - attackers = attackers.subList(0, cards.size()); + if (attackers.size() > cards.size()) { + chosenAttackers = chosenAttackers.subList(0, cards.size()); + } // TODO check if not needed as defender - return attackers; + return chosenAttackers; } @Override diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index cc5de281c64..7c352dcc5ac 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -118,7 +118,7 @@ - forge-1.6.53 + forge-1.6.56 ../forge-gui/release-files/CHANGES.txt