From 297aa3e082640428ffcab3a96cad8b07f39d60c5 Mon Sep 17 00:00:00 2001 From: SeventhM <127357473+SeventhM@users.noreply.github.com> Date: Fri, 15 Dec 2023 01:13:23 -0800 Subject: [PATCH] Avoid crash in mod checker for mods with undefined tech requirements (#10744) --- .../src/com/unciv/models/ruleset/unique/IHasUniques.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt b/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt index 3a9ee9ae289c7..a20e151444ef7 100644 --- a/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt +++ b/core/src/com/unciv/models/ruleset/unique/IHasUniques.kt @@ -62,15 +62,15 @@ interface IHasUniques : INamed { fun requiredTechs(): Sequence = legacyRequiredTechs() + techsRequiredByUniques() - fun requiredTechnologies(ruleset: Ruleset): Sequence = - requiredTechs().map{ ruleset.technologies[it]!! } + fun requiredTechnologies(ruleset: Ruleset): Sequence = + requiredTechs().map{ ruleset.technologies[it] } fun era(ruleset: Ruleset): Era? = - requiredTechnologies(ruleset).map{ it.era() }.map{ ruleset.eras[it]!! }.maxByOrNull{ it.eraNumber } - // This will return null only if requiredTechnologies() is empty. + requiredTechnologies(ruleset).map{ it?.era() }.map{ ruleset.eras[it] }.maxByOrNull{ it?.eraNumber ?: 0 } + // This will return null only if requiredTechnologies() is empty or all required techs have no eraNumber fun techColumn(ruleset: Ruleset): TechColumn? = - requiredTechnologies(ruleset).map{ it.column }.filterNotNull().maxByOrNull{ it.columnNumber } + requiredTechnologies(ruleset).map{ it?.column }.filterNotNull().maxByOrNull{ it.columnNumber } // This will return null only if *all* required techs have null TechColumn. fun availableInEra(ruleset: Ruleset, requestedEra: String): Boolean {