From 85e1476efbf8a563350be3ecea136cb87f1c0eda Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 13 Apr 2020 22:52:15 +0300 Subject: [PATCH] Moved removeImprovement up to the GameStarter, which is the only place it's needed --- core/src/com/unciv/logic/GameStarter.kt | 10 +++++++--- .../com/unciv/logic/civilization/CivilizationInfo.kt | 4 ++-- core/src/com/unciv/logic/map/TileMap.kt | 5 +---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/core/src/com/unciv/logic/GameStarter.kt b/core/src/com/unciv/logic/GameStarter.kt index a7bdd65309..c6a2d63816 100644 --- a/core/src/com/unciv/logic/GameStarter.kt +++ b/core/src/com/unciv/logic/GameStarter.kt @@ -118,13 +118,17 @@ object GameStarter { for (civ in gameInfo.civilizations.filter { !it.isBarbarian() }) { val startingLocation = startingLocations[civ]!! - civ.placeUnitNearTile(startingLocation.position, Constants.settler, removeImprovement = true) - civ.placeUnitNearTile(startingLocation.position, getWarriorEquivalent(civ), removeImprovement = true) + fun placeNearStartingPosition(unitName:String) { + val newUnit = civ.placeUnitNearTile(startingLocation.position, unitName) + if (newUnit != null) newUnit.currentTile.improvement = null + } + placeNearStartingPosition(Constants.settler) + placeNearStartingPosition(getWarriorEquivalent(civ)) if (!civ.isPlayerCivilization() && civ.isMajorCiv()) { for (unit in gameInfo.getDifficulty().aiFreeUnits) { val unitToAdd = if (unit == "Warrior") getWarriorEquivalent(civ) else unit - civ.placeUnitNearTile(startingLocation.position, unitToAdd, removeImprovement = true) + placeNearStartingPosition(unitToAdd) } } } diff --git a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt index 77bbe076cd..49d9fb7959 100644 --- a/core/src/com/unciv/logic/civilization/CivilizationInfo.kt +++ b/core/src/com/unciv/logic/civilization/CivilizationInfo.kt @@ -482,8 +482,8 @@ class CivilizationInfo { addNotification("A [$greatPersonName] has been born in [${city.name}]!", city.location, Color.GOLD) } - fun placeUnitNearTile(location: Vector2, unitName: String, removeImprovement: Boolean = false): MapUnit? { - return gameInfo.tileMap.placeUnitNearTile(location, unitName, this, removeImprovement = removeImprovement) + fun placeUnitNearTile(location: Vector2, unitName: String): MapUnit? { + return gameInfo.tileMap.placeUnitNearTile(location, unitName, this) } fun addCity(location: Vector2) { diff --git a/core/src/com/unciv/logic/map/TileMap.kt b/core/src/com/unciv/logic/map/TileMap.kt index 0ae424cda8..c3400fa2d3 100644 --- a/core/src/com/unciv/logic/map/TileMap.kt +++ b/core/src/com/unciv/logic/map/TileMap.kt @@ -124,8 +124,7 @@ class TileMap { fun placeUnitNearTile( position: Vector2, unitName: String, - civInfo: CivilizationInfo, - removeImprovement: Boolean = false + civInfo: CivilizationInfo ): MapUnit? { val unit = gameInfo.ruleSet.units[unitName]!!.getMapUnit(gameInfo.ruleSet) @@ -159,8 +158,6 @@ class TileMap { return null // we didn't actually create a unit... } - // Remove the tile improvement, e.g. when placing the starter units (so they don't spawn on ruins/encampments) - if (removeImprovement) unitToPlaceTile.improvement = null // only once we know the unit can be placed do we add it to the civ's unit list unit.putInTile(unitToPlaceTile) unit.currentMovement = unit.getMaxMovement().toFloat()