From: "Enrico Weigelt, metux IT consult" <[email protected]>
---
.../client/gui/dialog/SelectDestinationDialog.java | 32 ++++++++++++++--------
1 file changed, 21 insertions(+), 11 deletions(-)
diff --git a/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java
b/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java
index d482f7837e9..e18fd0f8d3b 100644
--- a/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java
+++ b/src/net/sf/freecol/client/gui/dialog/SelectDestinationDialog.java
@@ -28,7 +28,6 @@ import java.util.Comparator;
import java.util.List;
import java.util.Map.Entry;
import java.util.function.Function;
-import java.util.function.Predicate;
import java.util.logging.Logger;
import javax.swing.DefaultListModel;
@@ -135,6 +134,25 @@ public final class SelectDestinationDialog extends
FreeColDialog<Location>
}
/**
+ * Test whether the unit - or in case of carrier, somebody on
+ * board - can learn from the natives
+ */
+ private boolean unitCanLearn(Unit unit) {
+ if (unit.getUnitChange(UnitChangeType.NATIVES) != null)
+ return true;
+
+ if (!unit.isCarrier())
+ return false;
+
+ for (Unit walk : unit.getUnits()) {
+ if (u.getUnitChange(UnitChangeType.NATIVES) != null)
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
* Collected extra annotations of interest to a unit proposing to
* visit a location.
*
@@ -180,16 +198,8 @@ public final class SelectDestinationDialog extends
FreeColDialog<Location>
// Show skill if relevant
IndianSettlement is = (IndianSettlement)loc;
UnitType sk = is.getLearnableSkill();
- if (sk != null) {
- final Predicate<Unit> upgradePred = u ->
- u.getUnitChange(UnitChangeType.NATIVES) != null;
- Unit up = (unit.isCarrier())
- ? find(unit.getUnits(), upgradePred)
- : (upgradePred.test(unit)) ? unit
- : null;
- if (up != null) {
- lb.add("[", Messages.getName(sk), "]");
- }
+ if ((sk != null) && unitCanLearn(unit)) {
+ lb.add("[", Messages.getName(sk), "]");
}
}
if (!goodsTypes.isEmpty()) {
--
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/freecol-developers