Skip to content

Commit

Permalink
Avoid crash in mod checker for mods with undefined tech requirements (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
SeventhM authored Dec 15, 2023
1 parent c607001 commit 297aa3e
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions core/src/com/unciv/models/ruleset/unique/IHasUniques.kt
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,15 @@ interface IHasUniques : INamed {

fun requiredTechs(): Sequence<String> = legacyRequiredTechs() + techsRequiredByUniques()

fun requiredTechnologies(ruleset: Ruleset): Sequence<Technology> =
requiredTechs().map{ ruleset.technologies[it]!! }
fun requiredTechnologies(ruleset: Ruleset): Sequence<Technology?> =
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 {
Expand Down

0 comments on commit 297aa3e

Please sign in to comment.