From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>

---
 src/net/sf/freecol/server/ai/EuropeanAIPlayer.java | 27 +++++++++++++---------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java 
b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
index 7877c97cf73..e5005c05f2d 100644
--- a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
+++ b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
@@ -32,7 +32,6 @@ import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import java.util.stream.Collectors;
 
 import javax.xml.stream.XMLStreamException;
 
@@ -478,17 +477,23 @@ public class EuropeanAIPlayer extends MissionAIPlayer {
         }
 
         if (randoms[cheatIndex++] < landUnitCheatPercent) {
-            final Predicate<Entry<UnitType, List<WorkerWish>>> bestWishPred = 
e -> {
+            /* find the maximum */
+            WorkerWish bestWish = null;
+            for (Entry<UnitType, List<WorkerWish>> e : 
workerWishes.entrySet()) {
                 UnitType ut = e.getKey();
-                return ut != null && ut.isAvailableTo(player)
-                    && europe.getUnitPrice(ut) != UNDEFINED
-                    && any(e.getValue());
-            };
-            WorkerWish bestWish = maximize(transform(workerWishes.entrySet(),
-                                                     bestWishPred,
-                                                     e -> first(e.getValue()),
-                                                     Collectors.toSet()),
-                ValuedAIObject.ascendingValueComparator);
+                List<WorkerWish> wishlist = e.getValue();
+                if (ut != null && ut.isAvailableTo(player)
+                               && europe.getUnitPrice(ut) != UNDEFINED
+                               && (!wishlist.isEmpty()))
+                {
+                    WorkerWish ww = first(wishlist);
+                    if ((bestWish == null) ||
+                       
(ValuedAIObject.ascendingValueComparator.compare(bestWish, ww) < 0))
+                        bestWish = ww;
+
+                }
+            }
+
             int cost = (bestWish != null)
                 ? europe.getUnitPrice(bestWish.getUnitType())
                 : (player.getImmigration() < player.getImmigrationRequired() / 
2)
-- 
2.11.0.rc0.7.gbe5a750


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to