Resolve #8733 - don't remove Forest tiles for Camp improvements

This commit is contained in:
Yair Morgenstern 2023-03-04 23:10:58 +02:00
parent 911c9ef3c2
commit 006bcac7fd

View File

@ -3,7 +3,6 @@ package com.unciv.logic.automation.unit
import com.badlogic.gdx.math.Vector2 import com.badlogic.gdx.math.Vector2
import com.unciv.Constants import com.unciv.Constants
import com.unciv.UncivGame import com.unciv.UncivGame
import com.unciv.logic.map.HexMath
import com.unciv.logic.automation.Automation import com.unciv.logic.automation.Automation
import com.unciv.logic.automation.ThreatLevel import com.unciv.logic.automation.ThreatLevel
import com.unciv.logic.automation.civilization.NextTurnAutomation import com.unciv.logic.automation.civilization.NextTurnAutomation
@ -12,6 +11,7 @@ import com.unciv.logic.city.City
import com.unciv.logic.civilization.Civilization import com.unciv.logic.civilization.Civilization
import com.unciv.logic.civilization.NotificationCategory import com.unciv.logic.civilization.NotificationCategory
import com.unciv.logic.map.BFS import com.unciv.logic.map.BFS
import com.unciv.logic.map.HexMath
import com.unciv.logic.map.mapunit.MapUnit import com.unciv.logic.map.mapunit.MapUnit
import com.unciv.logic.map.tile.RoadStatus import com.unciv.logic.map.tile.RoadStatus
import com.unciv.logic.map.tile.Tile import com.unciv.logic.map.tile.Tile
@ -388,6 +388,7 @@ class WorkerAutomation(
tile.resource == null || !tile.hasViewableResource(civInfo) -> null tile.resource == null || !tile.hasViewableResource(civInfo) -> null
tile.terrainFeatures.isNotEmpty() tile.terrainFeatures.isNotEmpty()
&& isUnbuildableAndRemovable(lastTerrain) && isUnbuildableAndRemovable(lastTerrain)
&& !tile.tileResource.getImprovements().contains(tile.improvement)
&& !isResourceImprovementAllowedOnFeature(tile, potentialTileImprovements) -> Constants.remove + lastTerrain.name && !isResourceImprovementAllowedOnFeature(tile, potentialTileImprovements) -> Constants.remove + lastTerrain.name
else -> tile.tileResource.getImprovements().filter { it in potentialTileImprovements || it==tile.improvement } else -> tile.tileResource.getImprovements().filter { it in potentialTileImprovements || it==tile.improvement }
.maxByOrNull { Automation.rankStatsValue(ruleSet.tileImprovements[it]!!, unit.civ) } .maxByOrNull { Automation.rankStatsValue(ruleSet.tileImprovements[it]!!, unit.civ) }