From 9868749d5611abd7440e6ce3cbd437352859f004 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Tue, 3 Dec 2019 19:48:16 +0200 Subject: [PATCH] Solved crashing "AI Unit upgrade" bug! --- core/src/com/unciv/logic/map/TileMap.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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) }