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

Reply via email to