mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-12 03:48:16 +07:00
Worker automation no longer considers foreign unique improvements when deciding if to remove features
This commit is contained in:
parent
3e2a2a74f5
commit
a0ff4c18d5
@ -385,7 +385,7 @@ class WorkerAutomation(
|
||||
tile.resource == null || !tile.hasViewableResource(civInfo) -> null
|
||||
tile.terrainFeatures.isNotEmpty()
|
||||
&& isUnbuildableAndRemovable(lastTerrain)
|
||||
&& !isResourceImprovementAllowedOnFeature(tile) -> Constants.remove + lastTerrain.name
|
||||
&& !isResourceImprovementAllowedOnFeature(tile, potentialTileImprovements) -> Constants.remove + lastTerrain.name
|
||||
else -> tile.tileResource.getImprovements().filter { it in potentialTileImprovements || it==tile.improvement }
|
||||
.maxByOrNull { Automation.rankStatsValue(ruleSet.tileImprovements[it]!!, unit.civInfo) }
|
||||
}
|
||||
@ -421,9 +421,13 @@ class WorkerAutomation(
|
||||
*
|
||||
* Assumes the caller ensured that terrainFeature and resource are both present!
|
||||
*/
|
||||
private fun isResourceImprovementAllowedOnFeature(tile: TileInfo): Boolean {
|
||||
private fun isResourceImprovementAllowedOnFeature(
|
||||
tile: TileInfo,
|
||||
potentialTileImprovements: Map<String, TileImprovement>
|
||||
): Boolean {
|
||||
return tile.tileResource.getImprovements().any { resourceImprovementName ->
|
||||
val resourceImprovement = ruleSet.tileImprovements[resourceImprovementName] ?: return false
|
||||
if (resourceImprovementName !in potentialTileImprovements) return@any false
|
||||
val resourceImprovement = potentialTileImprovements[resourceImprovementName]!!
|
||||
tile.terrainFeatures.any { resourceImprovement.isAllowedOnFeature(it) }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user