diff --git a/core/src/com/unciv/logic/civilization/Civilization.kt b/core/src/com/unciv/logic/civilization/Civilization.kt index e9ebe6583c..a78d12614b 100644 --- a/core/src/com/unciv/logic/civilization/Civilization.kt +++ b/core/src/com/unciv/logic/civilization/Civilization.kt @@ -866,6 +866,22 @@ class Civilization : IsPartOfGameInfoSerialization { // move new capital city.cityConstructions.addBuilding(city.capitalCityIndicator()) city.isBeingRazed = false // stop razing the new capital if it was being razed + + // move the buildings with MovedToNewCapital unique + if (oldCapital != null) { + // Get the Set of the buildings to move + val buildingsToMove = oldCapital.cityConstructions.getBuiltBuildings().filter { + 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) + } + } } oldCapital?.cityConstructions?.removeBuilding(oldCapital.capitalCityIndicator()) } diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 6e305a70ec..66f450c1ab 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -305,6 +305,7 @@ enum class UniqueType( Unsellable("Unsellable", UniqueTarget.Building), ObsoleteWith("Obsolete with [tech]", UniqueTarget.Building, UniqueTarget.Resource, UniqueTarget.Improvement), IndicatesCapital("Indicates the capital city", UniqueTarget.Building), + MovesToNewCapital("Moves to new capital when capital changes", UniqueTarget.Building), ProvidesExtraLuxuryFromCityResources("Provides 1 extra copy of each improved luxury resource near this City", UniqueTarget.Building), DestroyedWhenCityCaptured("Destroyed when the city is captured", UniqueTarget.Building), diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index 48914f1375..313517e77a 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -1126,6 +1126,9 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl ??? example "Indicates the capital city" Applicable to: Building +??? example "Moved to the new capital" + Applicable to: Building + ??? example "Provides 1 extra copy of each improved luxury resource near this City" Applicable to: Building