diff --git a/core/src/com/unciv/logic/city/CityInfo.kt b/core/src/com/unciv/logic/city/CityInfo.kt index 38aec6f58f..9a2f8d8fd7 100644 --- a/core/src/com/unciv/logic/city/CityInfo.kt +++ b/core/src/com/unciv/logic/city/CityInfo.kt @@ -259,6 +259,21 @@ class CityInfo { for(building in cityConstructions.getBuiltBuildings().filter { it.requiredBuildingInAllCities!=null }) cityConstructions.removeBuilding(building.name) isBeingRazed=false + + // Transfer unique buildings + val builtBuildings = cityConstructions.getBuiltBuildings().map{ it.name } + for(building in GameBasics.Buildings.values + .filter{ it.uniqueTo == newCivInfo.civName && builtBuildings.contains(it.replaces) }) { + cityConstructions.removeBuilding(building.replaces!!) + cityConstructions.addBuilding(building.name) + } + + for(building in cityConstructions.getBuiltBuildings() + .filter{ it.uniqueTo != newCivInfo.civName && it.replaces != ""}) { + cityConstructions.removeBuilding(building.name) + cityConstructions.addBuilding(building.replaces!!) + } + tryUpdateRoadStatus() }