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

---
 .../sf/freecol/server/ai/TileImprovementPlan.java  | 27 ++++++++++++----------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/src/net/sf/freecol/server/ai/TileImprovementPlan.java 
b/src/net/sf/freecol/server/ai/TileImprovementPlan.java
index 868df512114..11147267ed7 100644
--- a/src/net/sf/freecol/server/ai/TileImprovementPlan.java
+++ b/src/net/sf/freecol/server/ai/TileImprovementPlan.java
@@ -20,7 +20,6 @@
 package net.sf.freecol.server.ai;
 
 import java.util.Comparator;
-import java.util.function.Predicate;
 import java.util.logging.Logger;
 
 import javax.xml.stream.XMLStreamException;
@@ -184,23 +183,27 @@ public class TileImprovementPlan extends ValuedAIObject {
     public static TileImprovementType getBestTileImprovementType(Tile tile,
         GoodsType goodsType) {
         final Specification spec = tile.getSpecification();
-        final Predicate<TileImprovementType> goodTIPred = it ->
-            !it.isNatural()
+
+        TileImprovementType best = null;
+        int best_iv = 0;
+        for (TileImprovementType it : spec.getTileImprovementTypeList()) {
+            if (!(!it.isNatural()
                 && it.isTileTypeAllowed(tile.getType())
                 // FIXME: For now, disable any exotic non-Col1
                 // improvement types that expend more than one parcel
                 // of tools (e.g. plantForest), because
                 // PioneeringMission assumes this does not happen.
                 && it.getExpendedAmount() <= 1
-                && tile.getTileImprovement(it) == null;
-        final Comparator<TileImprovementType> bestTIComp
-            = cachingIntComparator(it ->
-                it.getImprovementValue(tile, goodsType));
-        TileImprovementType best = maximize(spec.getTileImprovementTypeList(),
-                                            goodTIPred, bestTIComp);
-        return (best == null || best.getImprovementValue(tile, goodsType) <= 0)
-            ? null
-            : best;
+                && tile.getTileImprovement(it) == null)) continue;
+
+            int iv = it.getImprovementValue(tile, goodsType);
+            if (best == null || iv > best_iv) {
+                best = it;
+                best_iv = iv;
+            }
+        }
+
+        return (best != null || best_iv > 0) ? best : null;
     }
 
     /**
-- 
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