More concurrency problems solved

This commit is contained in:
Yair Morgenstern
2020-04-23 20:00:08 +03:00
parent 07b4dcd8ba
commit f2c8c04106
2 changed files with 3 additions and 3 deletions

View File

@ -132,7 +132,7 @@ class CityExpansionManager {
cityInfo.civInfo.updateDetailedCivResources() cityInfo.civInfo.updateDetailedCivResources()
cityInfo.cityStats.update() cityInfo.cityStats.update()
for (unit in tileInfo.getUnits()) for (unit in tileInfo.getUnits().toList()) // tolisted because we're modifying
if (!unit.civInfo.canEnterTiles(cityInfo.civInfo)) if (!unit.civInfo.canEnterTiles(cityInfo.civInfo))
unit.movement.teleportToClosestMoveableTile() unit.movement.teleportToClosestMoveableTile()

View File

@ -534,8 +534,8 @@ class MapUnit {
} }
fun disband() { fun disband() {
// evacuation of transported units before disbanding, if possible // evacuation of transported units before disbanding, if possible. toListed because we're modifying the unit list.
for (unit in currentTile.getUnits().filter { it.isTransported && isTransportTypeOf(it) }) { for (unit in currentTile.getUnits().filter { it.isTransported && isTransportTypeOf(it) }.toList()) {
// we disbanded a carrier in a city, it can still stay in the city // we disbanded a carrier in a city, it can still stay in the city
if (currentTile.isCityCenter() && unit.movement.canMoveTo(currentTile)) continue if (currentTile.isCityCenter() && unit.movement.canMoveTo(currentTile)) continue
// if no "fuel" to escape, should be disbanded as well // if no "fuel" to escape, should be disbanded as well