Moved removeImprovement up to the GameStarter, which is the only place it's needed

This commit is contained in:
Yair Morgenstern 2020-04-13 22:52:15 +03:00
parent cefd92e7ce
commit 85e1476efb
3 changed files with 10 additions and 9 deletions

View File

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

View File

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

View File

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