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

---
 .../server/ai/mission/IndianDemandMission.java     | 29 +++++++++++++---------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java 
b/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java
index eba9a6e2fb2..5e7992f86aa 100644
--- a/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java
+++ b/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java
@@ -68,16 +68,6 @@ public class IndianDemandMission extends Mission {
     /** The tag for this mission. */
     private static final String tag = "AI native demander";
 
-    /** Predicates for demand goods selection. */
-    private static final List<Predicate<GoodsType>> selectPredicates
-        = new ArrayList<>();
-    static {
-        selectPredicates.add(gt -> gt.getMilitary());
-        selectPredicates.add(gt -> gt.isBuildingMaterial());
-        selectPredicates.add(gt -> gt.isTradeGoods());
-        selectPredicates.add(gt -> gt.isRefined());
-    };
-
     /** The colony to demand from. */
     private Colony colony;
 
@@ -146,6 +136,22 @@ public class IndianDemandMission extends Mission {
         this.succeeded = result;
     }
 
+    private GoodsType pickGoodsType(List<GoodsType> goodsTypes) {
+        for (GoodsType gt : goodsTypes)
+            if (gt.getMilitary()) return gt;
+
+        for (GoodsType gt : goodsTypes)
+            if (gt.isBuildingMaterial()) return gt;
+
+        for (GoodsType gt : goodsTypes)
+            if (gt.isTradeGoods()) return gt;
+
+        for (GoodsType gt : goodsTypes)
+            if (gt.isRefined()) return gt;
+
+        return null;
+    }
+
     /**
      * Selects the most desirable goods from the colony.
      *
@@ -186,8 +192,7 @@ public class IndianDemandMission extends Mission {
 
         // Otherwise try military, building, trade, refined goods in order,
         if (goods == null) {
-            GoodsType goodsType = first(flatten(selectPredicates,
-                    pred -> transform(goodsTypes, gt -> 
pred.test(gt)).stream()));
+            GoodsType goodsType = pickGoodsType(goodsTypes);
             if (goodsType != null) {
                 goods = new Goods(getGame(), target, goodsType,
                     capAmount(target.getGoodsCount(goodsType), dx));
-- 
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