From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>
We have several places which are just interested in Player's ports instead of all colonies. Instead of filtering the lists ourselves, just ask Player for ports instead of all colonies. --- src/net/sf/freecol/common/model/Unit.java | 4 ++-- src/net/sf/freecol/server/ai/EuropeanAIPlayer.java | 4 ++-- src/net/sf/freecol/server/ai/REFAIPlayer.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/net/sf/freecol/common/model/Unit.java b/src/net/sf/freecol/common/model/Unit.java index c3a7d55a5f9..e2a7394c377 100644 --- a/src/net/sf/freecol/common/model/Unit.java +++ b/src/net/sf/freecol/common/model/Unit.java @@ -3021,8 +3021,8 @@ public class Unit extends GoodsLocation // Ocean travel required, destination blocked. // Find the closest available connected port. final Predicate<Settlement> portPredicate = s -> - s != ignoreSrc && s != ignoreDst && s.isConnectedPort(); - sett = minimize(getOwner().getSettlements(), portPredicate, + s != ignoreSrc && s != ignoreDst; + sett = minimize(getOwner().getPorts(), portPredicate, settlementComparator); path = (sett == null) ? null : this.findPath(sett); break; diff --git a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java index e0c6907413d..43931858669 100644 --- a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java +++ b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java @@ -549,8 +549,8 @@ public class EuropeanAIPlayer extends MissionAIPlayer { : score / (stockade.getLevel() + 1.5); }); target = maximize(flatten(enemies, Player::isEuropean, - Player::getColonies), - Colony::isConnectedPort, targetScore); + Player::getPorts), + targetScore); } // Otherwise attack something near a weak colony if (target == null && !colonies.isEmpty()) { diff --git a/src/net/sf/freecol/server/ai/REFAIPlayer.java b/src/net/sf/freecol/server/ai/REFAIPlayer.java index 8cad3d5a4e9..0c73f5bedf3 100644 --- a/src/net/sf/freecol/server/ai/REFAIPlayer.java +++ b/src/net/sf/freecol/server/ai/REFAIPlayer.java @@ -188,14 +188,14 @@ public class REFAIPlayer extends EuropeanAIPlayer { = new CachingFunction<Colony, PathNode>(c -> unit.findPath(carrier, c, carrier, null)); final Predicate<Colony> portPred = c -> - (!port || c.isConnectedPort()) && pathMapper.apply(c) != null; + pathMapper.apply(c) != null; final Function<Colony, TargetTuple> newTupleMapper = c -> { PathNode path = pathMapper.apply(c); return new TargetTuple(c, path, UnitSeekAndDestroyMission.scorePath(aiu, path)); }; final List<TargetTuple> targets - = transform(flatten(player.getRebels(), Player::getColonies), + = transform(flatten(player.getRebels(), (port ? Player::getPorts : Player::getColonies)), portPred, newTupleMapper); // Increase score for drydock/s, musket and tools suppliers, -- 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