From cf9309c165f1f8a36583eca3dd0cfe8665c98b32 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sun, 4 Aug 2024 22:07:47 +0300 Subject: [PATCH] chore: more modifier cleanups --- core/src/com/unciv/models/ruleset/unique/Unique.kt | 2 +- core/src/com/unciv/models/ruleset/unit/BaseUnit.kt | 4 +--- core/src/com/unciv/models/ruleset/validation/Suppression.kt | 2 +- .../com/unciv/ui/objectdescriptions/TechnologyDescriptions.kt | 4 +--- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/core/src/com/unciv/models/ruleset/unique/Unique.kt b/core/src/com/unciv/models/ruleset/unique/Unique.kt index 1980bafeb3..ca000a0879 100644 --- a/core/src/com/unciv/models/ruleset/unique/Unique.kt +++ b/core/src/com/unciv/models/ruleset/unique/Unique.kt @@ -45,7 +45,7 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s fun hasFlag(flag: UniqueFlag) = type != null && type.flags.contains(flag) fun isHiddenToUsers() = hasFlag(UniqueFlag.HiddenToUsers) || hasModifier(UniqueType.ModifierHiddenFromUsers) - fun getModifiers(type: UniqueType) = modifiers.filter { it.type == type } + fun getModifiers(type: UniqueType) = modifiers.asSequence().filter { it.type == type } fun hasModifier(type: UniqueType) = getModifiers(type).any() fun isModifiedByGameSpeed() = hasModifier(UniqueType.ModifiedByGameSpeed) fun hasTriggerConditional(): Boolean { diff --git a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt index 4dfd9c89b3..58b82a43e2 100644 --- a/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt +++ b/core/src/com/unciv/models/ruleset/unit/BaseUnit.kt @@ -442,9 +442,7 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction { fun isProbablySiegeUnit() = isRanged() && getMatchingUniques(UniqueType.Strength, StateForConditionals.IgnoreConditionals) - .any { it.params[0].toInt() > 0 - && it.modifiers.any { conditional -> conditional.type == UniqueType.ConditionalVsCity } - } + .any { it.params[0].toInt() > 0 && it.hasModifier(UniqueType.ConditionalVsCity) } fun getForceEvaluation(): Int { if (cachedForceEvaluation < 0) evaluateForce() diff --git a/core/src/com/unciv/models/ruleset/validation/Suppression.kt b/core/src/com/unciv/models/ruleset/validation/Suppression.kt index c93d552b29..e5bae0792e 100644 --- a/core/src/com/unciv/models/ruleset/validation/Suppression.kt +++ b/core/src/com/unciv/models/ruleset/validation/Suppression.kt @@ -89,7 +89,7 @@ object Suppression { suppressions += sourceObject.getMatchingUniques(UniqueType.SuppressWarnings, StateForConditionals.IgnoreConditionals).map { getWildcardFilter(it) } // Allow suppressing from modifiers in the same Unique if (sourceUnique != null) - suppressions += sourceUnique.modifiers.filter { it.type == UniqueType.SuppressWarnings }.map { getWildcardFilter(it) } + suppressions += sourceUnique.getModifiers(UniqueType.SuppressWarnings).map { getWildcardFilter(it) } for (filter in suppressions) if (matchesFilter(error, filter)) return true diff --git a/core/src/com/unciv/ui/objectdescriptions/TechnologyDescriptions.kt b/core/src/com/unciv/ui/objectdescriptions/TechnologyDescriptions.kt index 94060cef23..5e70d74f93 100644 --- a/core/src/com/unciv/ui/objectdescriptions/TechnologyDescriptions.kt +++ b/core/src/com/unciv/ui/objectdescriptions/TechnologyDescriptions.kt @@ -343,9 +343,7 @@ object TechnologyDescriptions { /** Tests whether a Unique is enabled or disabled by [techName] */ private fun Unique.isRelatedToTech(techName: String) = - modifiers.any { - it.isTechConditional() && it.params[0] == techName - } + modifiers.any { it.isTechConditional() && it.params[0] == techName } /** Used by [getAffectedImprovements] only */ private data class ImprovementAndUnique(val improvement: TileImprovement, val unique: Unique) {