From 2d1113fc5a220c0d2aa1657589567266487a475c Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 17 Jan 2021 21:05:32 +0200 Subject: [PATCH] "Create improvement" works on water improvements as well :) --- core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt index 513ae1cc6a..912199379f 100644 --- a/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt +++ b/core/src/com/unciv/ui/worldscreen/unit/UnitActions.kt @@ -359,6 +359,8 @@ object UnitActions { val finalActions = ArrayList() for (unique in unit.getMatchingUniques("Can construct []")) { val improvementName = unique.params[0] + val improvement = tile.ruleset.tileImprovements[improvementName] + if (improvement == null) continue finalActions += UnitAction( type = UnitActionType.Create, title = "Create [$improvementName]", @@ -381,9 +383,8 @@ object UnitActions { addGoldPerGreatPersonUsage(unit.civInfo) unit.destroy() }.takeIf { - unit.currentMovement > 0f && !tile.isWater && - !tile.isCityCenter() && !tile.isImpassible() && - tile.improvement != improvementName && + unit.currentMovement > 0f && tile.canBuildImprovement(improvement, unit.civInfo) + && !tile.isImpassible() && // Not 100% sure that this check is necessary... // citadel can be built only next to or within own borders (improvementName != Constants.citadel || tile.neighbors.any { it.getOwner() == unit.civInfo })