Added uniques and deprecations for "Requires" and "Unlocked by" uniques - #6165

This commit is contained in:
Yair Morgenstern
2022-02-22 16:55:37 +02:00
parent 4ad9d58850
commit 09089cb60d
6 changed files with 49 additions and 14 deletions

View File

@ -538,7 +538,7 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction {
rejectionReasons.add(RejectionReason.RequiresTech.apply { "$requiredTech not researched!"})
for (unique in uniqueObjects) {
if (unique.placeholderText != "Unlocked with []" && unique.placeholderText != "Requires []") continue
if (unique.type != UniqueType.UnlockedWith && unique.type != UniqueType.Requires) continue
val filter = unique.params[0]
when {
ruleSet.technologies.contains(filter) ->

View File

@ -317,6 +317,20 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
" OR \"Only available <if [buildingName/tech/resource/policy] is constructed>\"" +
" OR \"Only available <after discovering [buildingName/tech/resource/policy]>"))
NotDisplayedWithout("Not displayed as an available construction without [buildingName/tech/resource/policy]", UniqueTarget.Building, UniqueTarget.Unit),
@Deprecated("as of 3.19.12", ReplaceWith("Only available <after adopting [buildingName/tech/era/policy]>\"" +
" OR \"Only available <if [buildingName/tech/era/policy] is constructed>\"" +
" OR \"Only available <starting from the [buildingName/tech/era/policy]>\"" +
" OR \"Only available <after discovering [buildingName/tech/era/policy]>"))
UnlockedWith("Unlocked with [buildingName/tech/era/policy]", UniqueTarget.Building, UniqueTarget.Unit),
@Deprecated("as of 3.19.12", ReplaceWith("Only available <after adopting [buildingName/tech/era/policy]>\"" +
" OR \"Only available <if [buildingName/tech/era/policy] is constructed>\"" +
" OR \"Only available <starting from the [buildingName/tech/era/policy]>\"" +
" OR \"Only available <after discovering [buildingName/tech/era/policy]>"))
Requires("Requires [buildingName/tech/era/policy]", UniqueTarget.Building, UniqueTarget.Unit),
ConvertFoodToProductionWhenConstructed("Excess Food converted to Production when under construction", UniqueTarget.Building, UniqueTarget.Unit),
RequiresPopulation("Requires at least [amount] population", UniqueTarget.Building, UniqueTarget.Unit),

View File

@ -393,7 +393,8 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
if (!civInfo.gameInfo.gameParameters.nuclearWeaponsEnabled && isNuclearWeapon())
rejectionReasons.add(RejectionReason.DisabledBySetting)
for (unique in getMatchingUniques("Unlocked with []") + getMatchingUniques("Requires []")) {
// This should be deprecated and replaced with the already-existing "only available when" unique, see above
for (unique in getMatchingUniques(UniqueType.UnlockedWith) + getMatchingUniques(UniqueType.Requires)) {
val filter = unique.params[0]
when {
ruleSet.technologies.contains(filter) ->