diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index 7b3eebe5afd92..56b7882ee7075 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -244,6 +244,8 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { if (cityConstructions.city.civ.civConstructions.countConstructedObjects(this) >= unique.params[0].toInt()) return false } + if (hasUnique(UniqueType.ShowsWhenUnbuilable, StateForConditionals(cityConstructions.city))) + return true val rejectionReasons = getRejectionReasons(cityConstructions) diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 3115985355034..5be1d9bf893a0 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -955,6 +955,7 @@ enum class UniqueType( UniqueTarget.Promotion, UniqueTarget.Policy, flags = UniqueFlag.setOfHiddenToUsers), HiddenFromCivilopedia("Will not be displayed in Civilopedia", *UniqueTarget.Displayable, flags = UniqueFlag.setOfHiddenToUsers), + ShowsWhenUnbuilable("Shown while unbuilable", UniqueTarget.Building, UniqueTarget.Unit, flags = UniqueFlag.setOfHiddenToUsers), ModifierHiddenFromUsers("hidden from users", UniqueTarget.MetaModifier), ForEveryCountable("for every [countable]", UniqueTarget.MetaModifier), ForEveryAmountCountable("for every [amount] [countable]", UniqueTarget.MetaModifier), diff --git a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt index aba0a6fe2da40..d7c6e70483997 100644 --- a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt @@ -163,6 +163,8 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction { fun getDisbandGold(civInfo: Civilization) = getBaseGoldCost(civInfo, null).toInt() / 20 override fun shouldBeDisplayed(cityConstructions: CityConstructions): Boolean { + if (hasUnique(UniqueType.ShowsWhenUnbuilable, StateForConditionals(cityConstructions.city))) + return true val rejectionReasons = getRejectionReasons(cityConstructions) if (rejectionReasons.none { !it.shouldShow }) return true