diff --git a/core/src/com/unciv/logic/city/CityConstructions.kt b/core/src/com/unciv/logic/city/CityConstructions.kt index ef7fafca4c..4ced11d321 100644 --- a/core/src/com/unciv/logic/city/CityConstructions.kt +++ b/core/src/com/unciv/logic/city/CityConstructions.kt @@ -532,6 +532,14 @@ class CityConstructions : IsPartOfGameInfoSerialization { addBuilding(freeBuildingName) } } + + + val autoGrantedBuildings = city.getRuleset().buildings.values + .filter { it.hasUnique(UniqueType.GainBuildingWhereBuildable) } + + for (building in autoGrantedBuildings) + if (building.isBuildable(city.cityConstructions)) + addBuilding(building.name) } /** diff --git a/core/src/com/unciv/logic/civilization/CivConstructions.kt b/core/src/com/unciv/logic/civilization/CivConstructions.kt index cafeb6685e..cb49161a2d 100644 --- a/core/src/com/unciv/logic/civilization/CivConstructions.kt +++ b/core/src/com/unciv/logic/civilization/CivConstructions.kt @@ -1,9 +1,9 @@ package com.unciv.logic.civilization import com.unciv.logic.IsPartOfGameInfoSerialization -import com.unciv.models.ruleset.INonPerpetualConstruction import com.unciv.models.Counter import com.unciv.models.ruleset.Building +import com.unciv.models.ruleset.INonPerpetualConstruction import com.unciv.models.ruleset.unique.UniqueType import com.unciv.models.ruleset.unit.BaseUnit import com.unciv.models.stats.Stat diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index e8d0a594a2..d52975b165 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -364,6 +364,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: RemoveAnnexUnhappiness("Remove extra unhappiness from annexed cities", UniqueTarget.Building), ConnectTradeRoutes("Connects trade routes over water", UniqueTarget.Building), + GainBuildingWhereBuildable("Automatically built in all cities where it is buildable", UniqueTarget.Building), CreatesOneImprovement("Creates a [improvementName] improvement on a specific tile", UniqueTarget.Building), //endregion diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index 7f4bfbec4e..3c322b4729 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -1046,6 +1046,9 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl ??? example "Connects trade routes over water" Applicable to: Building +??? example "Automatically built in all cities where it is buildable" + Applicable to: Building + ??? example "Creates a [improvementName] improvement on a specific tile" Example: "Creates a [Trading Post] improvement on a specific tile"