mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-24 03:53:12 -04:00
Resolved #11289 - Free buildings granted properly when era-free cities also granted
This commit is contained in:
parent
2294b7a6b3
commit
1542b92e63
@ -512,7 +512,9 @@ class CityConstructions : IsPartOfGameInfoSerialization {
|
||||
addBuilding(building)
|
||||
}
|
||||
|
||||
fun addBuilding(building: Building) {
|
||||
fun addBuilding(building: Building,
|
||||
/** False when creating initial buildings in city - so we don't "waste" a free building on a building we're going to get anyway, from settler buildings */
|
||||
tryAddFreeBuildings: Boolean = true) {
|
||||
val buildingName = building.name
|
||||
val civ = city.civ
|
||||
|
||||
@ -547,7 +549,8 @@ class CityConstructions : IsPartOfGameInfoSerialization {
|
||||
}
|
||||
else city.reassignPopulationDeferred()
|
||||
|
||||
city.civ.civConstructions.tryAddFreeBuildings()
|
||||
if (tryAddFreeBuildings)
|
||||
city.civ.civConstructions.tryAddFreeBuildings()
|
||||
}
|
||||
|
||||
fun triggerNewBuildingUniques(building: Building) {
|
||||
|
@ -203,14 +203,14 @@ class CityFounder {
|
||||
|
||||
private fun addStartingBuildings(city: City, civInfo: Civilization, startingEra: String) {
|
||||
val ruleset = civInfo.gameInfo.ruleset
|
||||
if (civInfo.cities.size == 1) city.cityConstructions.addBuilding(city.capitalCityIndicator())
|
||||
if (civInfo.cities.size == 1) city.cityConstructions.addBuilding(city.capitalCityIndicator(), tryAddFreeBuildings = false)
|
||||
|
||||
// Add buildings and pop we get from starting in this era
|
||||
for (buildingName in ruleset.eras[startingEra]!!.settlerBuildings) {
|
||||
val building = ruleset.buildings[buildingName] ?: continue
|
||||
val uniqueBuilding = civInfo.getEquivalentBuilding(building)
|
||||
if (uniqueBuilding.isBuildable(city.cityConstructions))
|
||||
city.cityConstructions.addBuilding(uniqueBuilding)
|
||||
city.cityConstructions.addBuilding(uniqueBuilding, tryAddFreeBuildings = false)
|
||||
}
|
||||
|
||||
civInfo.civConstructions.tryAddFreeBuildings()
|
||||
|
@ -870,13 +870,10 @@ class Civilization : IsPartOfGameInfoSerialization {
|
||||
it.hasUnique(UniqueType.MovesToNewCapital)
|
||||
}.toSet()
|
||||
|
||||
// Remove the buildings from old capital
|
||||
oldCapital.cityConstructions.removeBuildings(buildingsToMove)
|
||||
|
||||
// Add the buildings to new capital
|
||||
buildingsToMove.forEach {
|
||||
city.cityConstructions.addBuilding(it)
|
||||
}
|
||||
for (building in buildingsToMove) city.cityConstructions.addBuilding(building)
|
||||
}
|
||||
}
|
||||
oldCapital?.cityConstructions?.removeBuilding(oldCapital.capitalCityIndicator())
|
||||
|
Loading…
x
Reference in New Issue
Block a user