From 0fbfd66bccb644117c4b8b0e05312c54f2d4e060 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sun, 29 Sep 2024 23:18:31 +0300 Subject: [PATCH] Protect terrainImage against incorrectly configured mods (natural wonder turnsInto is not in ruleset) --- .../ui/screens/civilopediascreen/CivilopediaImageGetters.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaImageGetters.kt b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaImageGetters.kt index d2f23983e2..1ded495d39 100644 --- a/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaImageGetters.kt +++ b/core/src/com/unciv/ui/screens/civilopediascreen/CivilopediaImageGetters.kt @@ -25,14 +25,17 @@ internal object CivilopediaImageGetters { internal fun terrainImage(terrain: Terrain, ruleset: Ruleset, imageSize: Float): Group { val tile = Tile() tile.ruleset = ruleset + val baseTerrainFromOccursOn = terrain.occursOn.mapNotNull { ruleset.terrains[it] }.lastOrNull { it.type.isBaseTerrain }?.name ?: ruleset.terrains.values.firstOrNull { it.type == TerrainType.Land }?.name ?: ruleset.terrains.keys.first() + when (terrain.type) { TerrainType.NaturalWonder -> { tile.naturalWonder = terrain.name - tile.baseTerrain = terrain.turnsInto ?: baseTerrainFromOccursOn + tile.baseTerrain = if (terrain.turnsInto != null && ruleset.terrains.containsKey(terrain.turnsInto)) terrain.turnsInto!! + else baseTerrainFromOccursOn } TerrainType.TerrainFeature -> { tile.baseTerrain = baseTerrainFromOccursOn