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