From 250d7debb553c6169f3063f384a628c037a30ff8 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Mon, 26 Oct 2020 23:20:16 +0200 Subject: [PATCH] Avoided more badly-defined-mod crashes --- core/src/com/unciv/models/ruleset/Ruleset.kt | 2 ++ core/src/com/unciv/ui/utils/ImageGetter.kt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/models/ruleset/Ruleset.kt b/core/src/com/unciv/models/ruleset/Ruleset.kt index 179eba4d0f..f79944267d 100644 --- a/core/src/com/unciv/models/ruleset/Ruleset.kt +++ b/core/src/com/unciv/models/ruleset/Ruleset.kt @@ -251,6 +251,8 @@ class Ruleset { lines += "${building.name} requires resource ${building.requiredResource} which does not exist!" if (building.replaces != null && !buildings.containsKey(building.replaces!!)) lines += "${building.name} replaces ${building.replaces} which does not exist!" + if (building.requiredTech == null && building.cost == 0) + lines += "${building.name} must either have an explicit cost or reference an existing tech!" } for (resource in tileResources.values) { diff --git a/core/src/com/unciv/ui/utils/ImageGetter.kt b/core/src/com/unciv/ui/utils/ImageGetter.kt index 3e27181ec2..9d6c79cc0f 100644 --- a/core/src/com/unciv/ui/utils/ImageGetter.kt +++ b/core/src/com/unciv/ui/utils/ImageGetter.kt @@ -272,7 +272,7 @@ object ImageGetter { fun getResourceImage(resourceName: String, size:Float): Actor { val iconGroup = getImage("ResourceIcons/$resourceName").surroundWithCircle(size) val resource = ruleset.tileResources[resourceName] - if (resource == null) throw Exception("No resource $resourceName found in ruleset!") + if (resource == null) return iconGroup // This is the result of a bad modding setup, just give em an empty circle. Their problem. iconGroup.circle.color = getColorFromStats(resource) if (resource.resourceType == ResourceType.Luxury) {