Skip to content

Commit

Permalink
Add unique to show construction when unbuildable (#12313)
Browse files Browse the repository at this point in the history
  • Loading branch information
SeventhM authored Oct 20, 2024
1 parent 2abe72d commit 74806e8
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 0 deletions.
2 changes: 2 additions & 0 deletions core/src/com/unciv/models/ruleset/Building.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
1 change: 1 addition & 0 deletions core/src/com/unciv/models/ruleset/unique/UniqueType.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
2 changes: 2 additions & 0 deletions core/src/com/unciv/models/ruleset/unit/BaseUnit.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 74806e8

Please sign in to comment.