From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>
--- src/net/sf/freecol/server/model/ServerPlayer.java | 26 +++++++++++++---------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/net/sf/freecol/server/model/ServerPlayer.java b/src/net/sf/freecol/server/model/ServerPlayer.java index 836bdcf29d0..0eb01fca07d 100644 --- a/src/net/sf/freecol/server/model/ServerPlayer.java +++ b/src/net/sf/freecol/server/model/ServerPlayer.java @@ -31,7 +31,6 @@ 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; import java.util.stream.Collectors; @@ -543,15 +542,15 @@ public class ServerPlayer extends Player implements ServerModelObject { // It is necessary to still have a carrier. final Europe europe = getEurope(); - final ToIntFunction<UnitType> unitPricer = ut -> { - int p = europe.getUnitPrice(ut); - return (p == UNDEFINED) ? Integer.MAX_VALUE : p; - }; int goldNeeded = 0; if (!hasCarrier) { - int price = (europe == null) ? Integer.MAX_VALUE - : min(spec.getUnitTypesWithAbility(Ability.NAVAL_UNIT), - unitPricer); + int price = Integer.MAX_VALUE; + if (europe != null) + for (UnitType ut : spec.getUnitTypesWithAbility(Ability.NAVAL_UNIT)) { + int p = europe.getUnitPrice(ut); + if ((p != UNDEFINED) && (p < price)) + price = p; + } if (price == Integer.MAX_VALUE || !checkGold(price)) { logger.info(getName() + " dead, can not buy carrier."); return IS_DEAD; @@ -567,10 +566,15 @@ public class ServerPlayer extends Player implements ServerModelObject { logger.info(getName() + " dead, can not recruit."); return IS_DEAD; } + UnitType unitType = null; - int price = Math.min(europe.getRecruitPrice(), - min(spec.getUnitTypesWithAbility(Ability.FOUND_COLONY), - unitPricer)); + int price = europe.getRecruitPrice(); + for (UnitType ut : spec.getUnitTypesWithAbility(Ability.FOUND_COLONY)) { + int p = europe.getUnitPrice(ut); + if ((p != UNDEFINED) && (p < price)) + price = p; + } + goldNeeded += price; if (checkGold(goldNeeded)) { logger.info(getName() + " alive, can buy colonist."); -- 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