From 34c3abe74bbb28947f25209fd35e9a8e803d7757 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Mon, 4 Nov 2024 14:55:36 +0200 Subject: [PATCH] modding: Added "on [difficulty] difficulty" conditional --- core/src/com/unciv/models/ruleset/unique/Conditionals.kt | 1 + core/src/com/unciv/models/ruleset/unique/IHasUniques.kt | 1 + .../src/com/unciv/models/ruleset/unique/UniqueParameterType.kt | 3 +++ core/src/com/unciv/models/ruleset/unique/UniqueType.kt | 1 + 4 files changed, 6 insertions(+) diff --git a/core/src/com/unciv/models/ruleset/unique/Conditionals.kt b/core/src/com/unciv/models/ruleset/unique/Conditionals.kt index 1ce4a9d167..40399d79af 100644 --- a/core/src/com/unciv/models/ruleset/unique/Conditionals.kt +++ b/core/src/com/unciv/models/ruleset/unique/Conditionals.kt @@ -138,6 +138,7 @@ object Conditionals { UniqueType.ConditionalDuringEra -> compareEra(conditional.params[0]) { current, param -> current == param } UniqueType.ConditionalIfStartingInEra -> checkOnGameInfo { gameParameters.startingEra == conditional.params[0] } UniqueType.ConditionalSpeed -> checkOnGameInfo { gameParameters.speed == conditional.params[0] } + UniqueType.ConditionalDifficulty -> checkOnGameInfo { gameParameters.difficulty == conditional.params[0] } UniqueType.ConditionalVictoryEnabled -> checkOnGameInfo { gameParameters.victoryTypes.contains(conditional.params[0]) } UniqueType.ConditionalVictoryDisabled -> checkOnGameInfo { !gameParameters.victoryTypes.contains(conditional.params[0]) } UniqueType.ConditionalReligionEnabled -> checkOnGameInfo { isReligionEnabled() } diff --git a/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt b/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt index c8492095cf..4724d1b5d3 100644 --- a/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt +++ b/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt @@ -100,6 +100,7 @@ interface IHasUniques : INamed { UniqueType.ConditionalVictoryDisabled, UniqueType.ConditionalVictoryEnabled, UniqueType.ConditionalSpeed, + UniqueType.ConditionalDifficulty, UniqueType.ConditionalReligionEnabled, UniqueType.ConditionalReligionDisabled, UniqueType.ConditionalEspionageEnabled, diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt index 82f987c02d..21dd9d23ae 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueParameterType.kt @@ -426,6 +426,9 @@ enum class UniqueParameterType( Speed("speed", "Quick", "The name of any speed") { override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = ruleset.speeds.keys }, + Difficulty("difficulty", "Prince", "The name of any difficulty") { + override fun getKnownValuesForAutocomplete(ruleset: Ruleset) = ruleset.difficulties.keys + }, /** For [UniqueType.CreatesOneImprovement] */ ImprovementName("improvementName", "Trading Post", "The name of any improvement excluding 'Cancel improvement order'") { diff --git a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt index a164a6ba70..47093f0cdd 100644 --- a/core/src/com/unciv/models/ruleset/unique/UniqueType.kt +++ b/core/src/com/unciv/models/ruleset/unique/UniqueType.kt @@ -655,6 +655,7 @@ enum class UniqueType( ConditionalBeforeTurns("before turn number [amount]", UniqueTarget.Conditional), ConditionalAfterTurns("after turn number [amount]", UniqueTarget.Conditional), ConditionalSpeed("on [speed] game speed", UniqueTarget.Conditional), + ConditionalDifficulty("on [difficulty] difficulty", UniqueTarget.Conditional), ConditionalVictoryEnabled("when [victoryType] Victory is enabled", UniqueTarget.Conditional), ConditionalVictoryDisabled("when [victoryType] Victory is disabled", UniqueTarget.Conditional), ConditionalReligionEnabled("when religion is enabled", UniqueTarget.Conditional),