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

---
 src/net/sf/freecol/server/ai/NativeAIPlayer.java | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/net/sf/freecol/server/ai/NativeAIPlayer.java 
b/src/net/sf/freecol/server/ai/NativeAIPlayer.java
index baf90fabdf1..6a863f53ca0 100644
--- a/src/net/sf/freecol/server/ai/NativeAIPlayer.java
+++ b/src/net/sf/freecol/server/ai/NativeAIPlayer.java
@@ -27,8 +27,6 @@ import java.util.List;
 import java.util.Random;
 import java.util.Set;
 import java.util.function.Function;
-import java.util.function.Predicate;
-import java.util.function.ToIntFunction;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -354,14 +352,20 @@ public class NativeAIPlayer extends MissionAIPlayer {
         // Assign units to attack the threats, greedily chosing closest unit.
         while (!threatTiles.isEmpty() && !units.isEmpty()) {
             Tile tile = threatTiles.remove(0);
-            final ToIntFunction<Unit> score = cacheInt(u ->
-                u.getTile().getDistanceTo(tile));
-            final Predicate<Unit> validPred = u ->
-                UnitSeekAndDestroyMission.invalidReason(aiMain.getAIUnit(u),
-                    tile.getDefendingUnit(u)) == null
-                && score.applyAsInt(u) >= 0;
-            final Comparator<Unit> scoreComp = Comparator.comparingInt(score);
-            Unit unit = minimize(units, validPred, scoreComp);
+
+            Unit unit = null;
+            int min_dist = 0;
+            for (Unit u : units) {
+                int dist = u.getTile().getDistanceTo(tile);
+                if 
(UnitSeekAndDestroyMission.invalidReason(aiMain.getAIUnit(u),
+                        tile.getDefendingUnit(u)) == null && dist >= 0) {
+                    if (unit == null || dist < min_dist) {
+                        unit = u;
+                        min_dist = dist;
+                    }
+                }
+            }
+
             if (unit == null) continue; // Declined to attack.
             units.remove(unit);
             AIUnit aiUnit = aiMain.getAIUnit(unit);
-- 
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