Resolved #11174 - Workers cannot repair improvements in enemy territory, thus avoiding repair-pillage exploit

This commit is contained in:
Yair Morgenstern 2024-03-14 21:01:19 +02:00
parent 83829a40da
commit ba9b81569f
2 changed files with 5 additions and 1 deletions

View File

@ -558,7 +558,10 @@ class MapUnit : IsPartOfGameInfoSerialization {
&& tile.improvementInProgress != improvement.name
) return false
val buildImprovementUniques = getMatchingUniques(UniqueType.BuildImprovements)
if (tile.improvementInProgress == Constants.repair && buildImprovementUniques.any()) return true
if (tile.improvementInProgress == Constants.repair) {
if (tile.isEnemyTerritory(civ)) return false
return buildImprovementUniques.any()
}
return buildImprovementUniques
.any { improvement.matchesFilter(it.params[0]) || tile.matchesTerrainFilter(it.params[0]) }
}

View File

@ -439,6 +439,7 @@ object UnitActionsFromUniques {
val couldConstruct = unit.currentMovement > 0
&& !tile.isCityCenter() && tile.improvementInProgress != Constants.repair
&& !tile.isEnemyTerritory(unit.civ)
val turnsToBuild = getRepairTurns(unit)