diff --git a/core/src/com/unciv/models/ruleset/Ruleset.kt b/core/src/com/unciv/models/ruleset/Ruleset.kt index ba4fd2e316..7db7ba711a 100644 --- a/core/src/com/unciv/models/ruleset/Ruleset.kt +++ b/core/src/com/unciv/models/ruleset/Ruleset.kt @@ -572,7 +572,7 @@ class Ruleset { val vanillaRuleset = RulesetCache.getVanillaRuleset() // for UnitTypes fallback - if (units.values.none { it.uniques.contains(UniqueType.FoundCity.text) }) + if (units.values.none { it.hasUnique(UniqueType.FoundCity) }) lines += "No city-founding units in ruleset!" for (unit in units.values) { @@ -879,7 +879,7 @@ object RulesetCache : HashMap() { else getVanillaRuleset() - val loadedMods = mods + val loadedMods = mods.asSequence() .filter { containsKey(it) } .map { this[it]!! } .filter { !it.modOptions.isBaseRuleset } + @@ -887,7 +887,9 @@ object RulesetCache : HashMap() { for (mod in loadedMods.sortedByDescending { it.modOptions.isBaseRuleset }) { if (mod.modOptions.isBaseRuleset) { - newRuleset.modOptions = mod.modOptions + // This is so we don't keep using the base ruleset's unqiues *by reference* and add to in ad infinitum + newRuleset.modOptions.uniques = ArrayList() + newRuleset.modOptions.isBaseRuleset = true } newRuleset.add(mod) newRuleset.mods += mod.name