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

---
 .../server/ai/mission/IndianDemandMission.java     | 26 ++++++++++++++++------
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java 
b/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java
index 542041be369..e4db39b97d4 100644
--- a/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java
+++ b/src/net/sf/freecol/server/ai/mission/IndianDemandMission.java
@@ -22,7 +22,6 @@ package net.sf.freecol.server.ai.mission;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
-import java.util.function.Predicate;
 import java.util.logging.Logger;
 
 import javax.xml.stream.XMLStreamException;
@@ -164,8 +163,6 @@ public class IndianDemandMission extends Mission {
         final int dx = spec.getInteger(GameOptions.NATIVE_DEMANDS) + 1;
         final Game game = target.getGame();
         final Market market = target.getOwner().getMarket();
-        final Comparator<Goods> marketPrice
-            = Comparator.comparingInt(g -> market.getSalePrice(g));
         final Tension.Level tension = getUnit().getOwner()
             .getTension(target.getOwner()).getLevel();
         final GoodsType food = spec.getPrimaryFoodType();
@@ -181,9 +178,16 @@ public class IndianDemandMission extends Mission {
         // When displeased, ask for expensive non-food or military
         if (goods == null
             && tension.compareTo(Tension.Level.DISPLEASED) <= 0) {
-            final Predicate<Goods> angryPred = g ->
-                !g.isFoodType() && !g.getType().getMilitary();
-            goods = maximize(target.getCompactGoods(), angryPred, marketPrice);
+            int best_price = 0;
+            for (Goods g : target.getCompactGoods())
+                if (!g.isFoodType() && !g.getType().getMilitary()) {
+                    int price = market.getSalePrice(g);
+                    if (goods == null || best_price < price) {
+                        goods = g;
+                        best_price = price;
+                    }
+                }
+
             if (goods != null)
                 goods = new Goods(game, target, goods.getType(), 
capAmount(goods.getAmount(), dx));
         }
@@ -199,7 +203,15 @@ public class IndianDemandMission extends Mission {
 
         // Finally just go for expense
         if (goods == null) {
-            goods = maximize(target.getCompactGoods(), marketPrice);
+            int best_price = 0;
+            for (Goods g : target.getCompactGoods()) {
+                int price = market.getSalePrice(g);
+                if (goods == null || best_price < price) {
+                    goods = g;
+                    best_price = price;
+                }
+            }
+
             if (goods != null)
                 goods = new Goods(game, target, goods.getType(), 
capAmount(goods.getAmount(), 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