diff --git a/core/src/com/unciv/logic/map/TileMap.kt b/core/src/com/unciv/logic/map/TileMap.kt index 6eab928a52..b3cf587a4e 100644 --- a/core/src/com/unciv/logic/map/TileMap.kt +++ b/core/src/com/unciv/logic/map/TileMap.kt @@ -71,11 +71,13 @@ class TileMap { else return tileInfo.isLand } - var viableTilesToPlaceUnitIn = getTilesInDistance(position, 1).filter { isTileMovePotential(it) } + val viableTilesToPlaceUnitInAtDistance1 = getTilesInDistance(position, 1).filter { isTileMovePotential(it) } // This is so that units don't skip over non-potential tiles to go elsewhere - // e.g. a city 2 tiles away from a lake could spawn water units in the lake...Or spawn beyond a mountain range... - viableTilesToPlaceUnitIn = viableTilesToPlaceUnitIn.union(getTilesAtDistance(position, 2)) - .filter { isTileMovePotential(it) && it.neighbors.any { n->n in viableTilesToPlaceUnitIn } } + val viableTilesToPlaceUnitInAtDistance2 = getTilesAtDistance(position, 2) + .filter { isTileMovePotential(it) && it.neighbors.any { n->n in viableTilesToPlaceUnitInAtDistance1 } } + + val viableTilesToPlaceUnitIn = viableTilesToPlaceUnitInAtDistance1.union(viableTilesToPlaceUnitInAtDistance2) unit.assignOwner(civInfo,false) // both the civ name and actual civ need to be in here in order to calculate the canMoveTo...Darn val unitToPlaceTile = viableTilesToPlaceUnitIn.firstOrNull { unit.movement.canMoveTo(it) }