mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-21 05:09:25 +07:00
Can handle unique capital indicators in mods
This commit is contained in:
@ -162,7 +162,12 @@ class CityInfo {
|
|||||||
fun isWorked(tileInfo: TileInfo) = workedTiles.contains(tileInfo.position)
|
fun isWorked(tileInfo: TileInfo) = workedTiles.contains(tileInfo.position)
|
||||||
|
|
||||||
fun isCapital(): Boolean = cityConstructions.builtBuildings.contains(capitalCityIndicator())
|
fun isCapital(): Boolean = cityConstructions.builtBuildings.contains(capitalCityIndicator())
|
||||||
fun capitalCityIndicator(): String = getRuleset().buildings.values.first { it.uniques.contains("Indicates the capital city") }.name
|
fun capitalCityIndicator(): String {
|
||||||
|
val indicatorBuildings = getRuleset().buildings.values.asSequence().filter { it.uniques.contains("Indicates the capital city") }
|
||||||
|
val civSpecificBuilding = indicatorBuildings.firstOrNull { it.uniqueTo == civInfo.civName }
|
||||||
|
if (civSpecificBuilding != null) return civSpecificBuilding.name
|
||||||
|
else return indicatorBuildings.first().name
|
||||||
|
}
|
||||||
|
|
||||||
fun isConnectedToCapital(connectionTypePredicate: (Set<String>) -> Boolean = { true }): Boolean {
|
fun isConnectedToCapital(connectionTypePredicate: (Set<String>) -> Boolean = { true }): Boolean {
|
||||||
val mediumTypes = civInfo.citiesConnectedToCapitalToMediums[this] ?: return false
|
val mediumTypes = civInfo.citiesConnectedToCapitalToMediums[this] ?: return false
|
||||||
@ -394,8 +399,7 @@ class CityInfo {
|
|||||||
getCenterTile().improvement = "City ruins"
|
getCenterTile().improvement = "City ruins"
|
||||||
|
|
||||||
if (isCapital() && civInfo.cities.isNotEmpty()) { // Move the capital if destroyed (by a nuke or by razing)
|
if (isCapital() && civInfo.cities.isNotEmpty()) { // Move the capital if destroyed (by a nuke or by razing)
|
||||||
val capitalCityBuilding = getRuleset().buildings.values.first { it.uniques.contains("Indicates the capital city") }
|
civInfo.cities.first().cityConstructions.addBuilding(capitalCityIndicator())
|
||||||
civInfo.cities.first().cityConstructions.addBuilding(capitalCityBuilding.name)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user