mirror of
https://github.com/yairm210/Unciv.git
synced 2025-03-06 07:31:26 +07:00
Resolved #12107 - automated settlers take conditionals on settling locations into account
This commit is contained in:
parent
6637e67ddb
commit
5eb2d39d5c
@ -9,6 +9,7 @@ import com.unciv.logic.map.mapunit.MapUnit
|
||||
import com.unciv.logic.map.tile.Tile
|
||||
import com.unciv.models.ruleset.tile.ResourceType
|
||||
import com.unciv.models.ruleset.unique.LocalUniqueCache
|
||||
import com.unciv.models.ruleset.unique.StateForConditionals
|
||||
import com.unciv.models.ruleset.unique.UniqueType
|
||||
|
||||
object CityLocationTileRanker {
|
||||
@ -31,7 +32,10 @@ object CityLocationTileRanker {
|
||||
val nearbyCities = unit.civ.gameInfo.getCities()
|
||||
.filter { it.getCenterTile().aerialDistanceTo(unit.getTile()) <= 7 + range }
|
||||
|
||||
val uniques = unit.getMatchingUniques(UniqueType.FoundCity)
|
||||
val possibleCityLocations = unit.getTile().getTilesInDistance(range)
|
||||
// Filter out tiles that we can't actually found on
|
||||
.filter { tile -> uniques.any { it.conditionalsApply(StateForConditionals(unit = unit, tile = tile)) } }
|
||||
.filter { canSettleTile(it, unit.civ, nearbyCities) && (unit.getTile() == it || unit.movement.canMoveTo(it)) }
|
||||
val uniqueCache = LocalUniqueCache()
|
||||
val bestTilesToFoundCity = BestTilesToFoundCity()
|
||||
|
Loading…
Reference in New Issue
Block a user