"Create improvement" works on water improvements as well :)

This commit is contained in:
Yair Morgenstern
2021-01-17 21:05:32 +02:00
parent 1863a7d214
commit 2d1113fc5a

View File

@ -359,6 +359,8 @@ object UnitActions {
val finalActions = ArrayList<UnitAction>() val finalActions = ArrayList<UnitAction>()
for (unique in unit.getMatchingUniques("Can construct []")) { for (unique in unit.getMatchingUniques("Can construct []")) {
val improvementName = unique.params[0] val improvementName = unique.params[0]
val improvement = tile.ruleset.tileImprovements[improvementName]
if (improvement == null) continue
finalActions += UnitAction( finalActions += UnitAction(
type = UnitActionType.Create, type = UnitActionType.Create,
title = "Create [$improvementName]", title = "Create [$improvementName]",
@ -381,9 +383,8 @@ object UnitActions {
addGoldPerGreatPersonUsage(unit.civInfo) addGoldPerGreatPersonUsage(unit.civInfo)
unit.destroy() unit.destroy()
}.takeIf { }.takeIf {
unit.currentMovement > 0f && !tile.isWater && unit.currentMovement > 0f && tile.canBuildImprovement(improvement, unit.civInfo)
!tile.isCityCenter() && !tile.isImpassible() && && !tile.isImpassible() && // Not 100% sure that this check is necessary...
tile.improvement != improvementName &&
// citadel can be built only next to or within own borders // citadel can be built only next to or within own borders
(improvementName != Constants.citadel || (improvementName != Constants.citadel ||
tile.neighbors.any { it.getOwner() == unit.civInfo }) tile.neighbors.any { it.getOwner() == unit.civInfo })