Add unique to show construction when unbuildable (#12313)

This commit is contained in:
SeventhM 2024-10-20 04:20:44 -07:00 committed by GitHub
parent 2abe72df6e
commit 74806e8eec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 5 additions and 0 deletions

View File

@ -244,6 +244,8 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
if (cityConstructions.city.civ.civConstructions.countConstructedObjects(this) >= unique.params[0].toInt()) if (cityConstructions.city.civ.civConstructions.countConstructedObjects(this) >= unique.params[0].toInt())
return false return false
} }
if (hasUnique(UniqueType.ShowsWhenUnbuilable, StateForConditionals(cityConstructions.city)))
return true
val rejectionReasons = getRejectionReasons(cityConstructions) val rejectionReasons = getRejectionReasons(cityConstructions)

View File

@ -955,6 +955,7 @@ enum class UniqueType(
UniqueTarget.Promotion, UniqueTarget.Policy, flags = UniqueFlag.setOfHiddenToUsers), UniqueTarget.Promotion, UniqueTarget.Policy, flags = UniqueFlag.setOfHiddenToUsers),
HiddenFromCivilopedia("Will not be displayed in Civilopedia", *UniqueTarget.Displayable, 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), ModifierHiddenFromUsers("hidden from users", UniqueTarget.MetaModifier),
ForEveryCountable("for every [countable]", UniqueTarget.MetaModifier), ForEveryCountable("for every [countable]", UniqueTarget.MetaModifier),
ForEveryAmountCountable("for every [amount] [countable]", UniqueTarget.MetaModifier), ForEveryAmountCountable("for every [amount] [countable]", UniqueTarget.MetaModifier),

View File

@ -163,6 +163,8 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
fun getDisbandGold(civInfo: Civilization) = getBaseGoldCost(civInfo, null).toInt() / 20 fun getDisbandGold(civInfo: Civilization) = getBaseGoldCost(civInfo, null).toInt() / 20
override fun shouldBeDisplayed(cityConstructions: CityConstructions): Boolean { override fun shouldBeDisplayed(cityConstructions: CityConstructions): Boolean {
if (hasUnique(UniqueType.ShowsWhenUnbuilable, StateForConditionals(cityConstructions.city)))
return true
val rejectionReasons = getRejectionReasons(cityConstructions) val rejectionReasons = getRejectionReasons(cityConstructions)
if (rejectionReasons.none { !it.shouldShow }) return true if (rejectionReasons.none { !it.shouldShow }) return true