From 5564d4db7e9b20efcd820d2674fe512896ab415c Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sat, 13 Mar 2021 22:35:24 +0200 Subject: [PATCH] Game no longer crashes due to incorrect building-improvement modding combinations --- core/src/com/unciv/models/ruleset/Building.kt | 2 +- core/src/com/unciv/models/ruleset/Ruleset.kt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index 7def7da5cf..604c1cf909 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -469,7 +469,7 @@ class Building : NamedStats(), IConstruction { val improvementUnique = uniqueObjects .firstOrNull { it.placeholderText == "Creates a [] improvement on a specific tile" } if (improvementUnique == null) return null - return ruleset.tileImprovements[improvementUnique.params[0]]!! + return ruleset.tileImprovements[improvementUnique.params[0]] } fun isSellable() = !isWonder && !isNationalWonder && !uniques.contains("Unsellable") diff --git a/core/src/com/unciv/models/ruleset/Ruleset.kt b/core/src/com/unciv/models/ruleset/Ruleset.kt index 804c940e1f..ea30d63bb5 100644 --- a/core/src/com/unciv/models/ruleset/Ruleset.kt +++ b/core/src/com/unciv/models/ruleset/Ruleset.kt @@ -278,6 +278,9 @@ class Ruleset { lines += "${building.name} requires ${building.requiredBuildingInAllCities} in all cities which does not exist!" if (building.providesFreeBuilding != null && !buildings.containsKey(building.providesFreeBuilding!!)) lines += "${building.name} provides a free ${building.providesFreeBuilding} which does not exist!" + for (unique in building.uniqueObjects) + if (unique.placeholderText == "Creates a [] improvement on a specific tile" && !tileImprovements.containsKey(unique.params[0])) + lines += "${building.name} creates a ${unique.params[0]} improvement which does not exist!" } for (resource in tileResources.values) {