From 4beaaadfc8ac218c5d3e7b6f37fcce478abb5c97 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sat, 21 Jan 2023 23:36:53 +0200 Subject: [PATCH] Added conditionals for above and below resource amounts --- core/src/com/unciv/models/ruleset/unique/Unique.kt | 4 ++++ core/src/com/unciv/models/ruleset/unique/UniqueType.kt | 4 ++++ docs/Modders/uniques.md | 10 ++++++++++ 3 files changed, 18 insertions(+) diff --git a/core/src/com/unciv/models/ruleset/unique/Unique.kt b/core/src/com/unciv/models/ruleset/unique/Unique.kt index 4d4781b9e3..b6e90af18a 100644 --- a/core/src/com/unciv/models/ruleset/unique/Unique.kt +++ b/core/src/com/unciv/models/ruleset/unique/Unique.kt @@ -157,6 +157,10 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s UniqueType.ConditionalNotWar -> state.civInfo?.isAtWar() == false UniqueType.ConditionalWithResource -> state.civInfo?.hasResource(condition.params[0]) == true UniqueType.ConditionalWithoutResource -> state.civInfo?.hasResource(condition.params[0]) == false + UniqueType.ConditionalWhenAboveAmountResource -> state.civInfo != null + && state.civInfo.getCivResourcesByName()[condition.params[1]]!! > condition.params[0].toInt() + UniqueType.ConditionalWhenBelowAmountResource -> state.civInfo != null + && state.civInfo.getCivResourcesByName()[condition.params[1]]!! < condition.params[0].toInt() UniqueType.ConditionalHappy -> state.civInfo != null && state.civInfo.stats.statsForNextTurn.happiness >= 0 UniqueType.ConditionalBetweenHappiness -> diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index 6789a5e3f7..70374c38f3 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -613,9 +613,13 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags: ConditionalAfterPantheon("after founding a Pantheon", UniqueTarget.Conditional), ConditionalBuildingBuilt("if [buildingFilter] is constructed", UniqueTarget.Conditional), + ConditionalWithResource("with [resource]", UniqueTarget.Conditional), ConditionalWithoutResource("without [resource]", UniqueTarget.Conditional), + ConditionalWhenAboveAmountResource("when above [amount] [resource]", UniqueTarget.Conditional), + ConditionalWhenBelowAmountResource("when below [amount] [resource]", UniqueTarget.Conditional), + /////// city conditionals ConditionalCityWithBuilding("in cities with a [buildingFilter]", UniqueTarget.Conditional), ConditionalCityWithoutBuilding("in cities without a [buildingFilter]", UniqueTarget.Conditional), diff --git a/docs/Modders/uniques.md b/docs/Modders/uniques.md index b69b2f9d46..e67f88a601 100644 --- a/docs/Modders/uniques.md +++ b/docs/Modders/uniques.md @@ -1750,6 +1750,16 @@ Simple unique parameters are explained by mouseover. Complex parameters are expl Applicable to: Conditional +??? example "<when above [amount] [resource]>" + Example: "<when above [3] [Iron]>" + + Applicable to: Conditional + +??? example "<when below [amount] [resource]>" + Example: "<when below [3] [Iron]>" + + Applicable to: Conditional + ??? example "<in cities with a [buildingFilter]>" Example: "<in cities with a [Culture]>"