diff --git a/core/src/com/unciv/models/ruleset/Ruleset.kt b/core/src/com/unciv/models/ruleset/Ruleset.kt index e97ad3f4dc..31eeca6bb5 100644 --- a/core/src/com/unciv/models/ruleset/Ruleset.kt +++ b/core/src/com/unciv/models/ruleset/Ruleset.kt @@ -318,6 +318,16 @@ class Ruleset { for (prereq in tech.prerequisites) { if (!technologies.containsKey(prereq)) lines += "${tech.name} requires tech $prereq which does not exist!" + + fun getPrereqTree(technologyName: String): Sequence { + val technology = technologies[technologyName] + if (technology == null) return sequenceOf() + return technology.prerequisites.asSequence() + technology.prerequisites.flatMap { getPrereqTree(it) } + } + + val allOtherPrereqs = tech.prerequisites.asSequence().filterNot { it == prereq }.flatMap { getPrereqTree(it) } + if (allOtherPrereqs.contains(prereq)) + println("No need to add $prereq as a prerequisite of ${tech.name} - it is already implicit from the other prerequisites!") } } return lines.joinToString("\n")