Solved crashing "AI Unit upgrade" bug!

This commit is contained in:
Yair Morgenstern
2019-12-03 19:48:16 +02:00
parent 0ded139f5a
commit 9868749d56

View File

@ -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) }