From f2a25b26ab14418daceaaea5d8c1513112a2210d Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 2 May 2021 21:07:32 +0300 Subject: [PATCH] Tilegroup accepts tile config also for *only the terrain part*, making all the extra "hill = grassland+hill" in the tileconfig json unnecessary! @ravignir --- android/assets/jsons/TileSets/FantasyHex.json | 50 +------------------ .../com/unciv/logic/battle/BattleDamage.kt | 5 +- core/src/com/unciv/ui/tilegroups/TileGroup.kt | 7 ++- 3 files changed, 8 insertions(+), 54 deletions(-) diff --git a/android/assets/jsons/TileSets/FantasyHex.json b/android/assets/jsons/TileSets/FantasyHex.json index d3d899c291..d0c8e93346 100644 --- a/android/assets/jsons/TileSets/FantasyHex.json +++ b/android/assets/jsons/TileSets/FantasyHex.json @@ -2,61 +2,13 @@ "useColorAsBaseTerrain": "false", "ruleVariants": { "Hill": ["Grassland","Hill"], - "Hill+Ancient ruins": ["Grassland","Hill","Ancient ruins"], - - "Hill+Sheep": ["Grassland","Hill","Sheep"], - "Hill+Sheep+Ancient ruins": ["Grassland","Hill","Sheep","Ancient ruins"], - "Hill+Sheep+Pasture": ["Grassland","Hill","Sheep+Pasture"], - "Hill+Horses": ["Grassland","Hill","Horses"], - "Hill+Horses+Ancient ruins": ["Grassland","Hill","Horses","Ancient ruins"], - "Hill+Horses+Pasture": ["Grassland","Hill","Horses+Pasture"], - "Hill+Deer": ["Grassland","Hill","Deer"], - "Hill+Deer+Ancient ruins": ["Grassland","Hill","Deer","Ancient ruins"], - "Hill+Deer+Camp": ["Grassland","Hill","Deer+Camp"], - - "Hill+Iron": ["Grassland","Hill","Iron"], - "Hill+Iron+Ancient ruins": ["Grassland","Hill","Iron","Ancient ruins"], - "Hill+Iron+Mine": ["Grassland","Hill","Iron","Mine"], - "Hill+Aluminum": ["Grassland","Hill","Aluminum"], - "Hill+Aluminum+Ancient ruins": ["Grassland","Hill","Aluminum","Ancient ruins"], - "Hill+Aluminum+Mine": ["Grassland","Hill","Aluminum","Mine"], - "Hill+Uranium": ["Grassland","Hill","Uranium"], - "Hill+Uranium+Ancient ruins": ["Grassland","Hill","Uranium","Ancient ruins"], - "Hill+Uranium+Mine": ["Grassland","Hill","Uranium","Mine"], - "Hill+Coal": ["Grassland","Hill","Coal"], - "Hill+Coal+Ancient ruins": ["Grassland","Hill","Coal","Ancient ruins"], - "Hill+Coal+Mine": ["Grassland","Hill","Coal","Mine"], - - "Hill+Silver": ["Grassland","Hill","Silver"], - "Hill+Silver+Ancient ruins": ["Grassland","Hill","Silver","Ancient ruins"], - "Hill+Silver+Mine": ["Grassland","Hill","Silver","Mine"], - "Hill+Gold Ore": ["Grassland","Hill","Gold Ore"], - "Hill+Gold Ore+Ancient ruins": ["Grassland","Hill","Gold Ore","Ancient ruins"], - "Hill+Gold Ore+Mine": ["Grassland","Hill","Gold Ore","Mine"], - "Hill+Marble": ["Grassland","Hill","Marble"], - "Hill+Marble+Ancient ruins": ["Grassland","Hill","Marble","Ancient ruins"], - "Hill+Marble+Quarry": ["Grassland","Hill","Quarry+Marble"], - "Hill+Gems": ["Grassland","Hill","Gems"], - "Hill+Gems+Ancient ruins": ["Grassland","Hill","Gems","Ancient ruins"], - "Hill+Gems+Mine": ["Grassland","Hill","Gems","Mine"], - "Hill+Dyes": ["Grassland","Hill","Dyes"], - "Hill+Dyes+Ancient ruins": ["Grassland","Hill","Dyes","Ancient ruins"], - "Hill+Dyes+Plantation": ["Grassland","Hill","Dyes+Plantation"], - "Hill+Spices": ["Grassland","Hill","Spices"], - "Hill+Spices+Ancient ruins": ["Grassland","Hill","Spices","Ancient ruins"], - "Hill+Spices+Plantation": ["Grassland","Hill","Spices+Plantation"], - "Hill+Silk": ["Grassland","Hill","Silk"], - "Hill+Silk+Ancient ruins": ["Grassland","Hill","Silk","Ancient ruins"], - "Hill+Silk+Plantation": ["Grassland","Hill","Silk+Plantation"], - "Hill+Furs": ["Grassland","Hill","Furs"], - "Hill+Furs+Ancient ruins": ["Grassland","Hill","Furs","Ancient ruins"], - "Hill+Furs+Camp": ["Grassland","Hill","Furs+Camp"], "Hill+Forest+Uranium": ["Grassland","Hill","Uranium","HillForest"], "Grassland+Jungle+Oil": ["Grassland","Oil","GrasslandJungle"], "Plains+Jungle+Oil": ["Plains","Oil","PlainsJungle"], + "Plains+Jungle": ["Plains","PlainsJungle"], "Grassland+Forest+Uranium": ["Grassland","Uranium","GrasslandForest"], "Plains+Forest+Furs": ["Grassland","Furs","GrasslandForest"], diff --git a/core/src/com/unciv/logic/battle/BattleDamage.kt b/core/src/com/unciv/logic/battle/BattleDamage.kt index 503dc76e62..869d91c732 100644 --- a/core/src/com/unciv/logic/battle/BattleDamage.kt +++ b/core/src/com/unciv/logic/battle/BattleDamage.kt @@ -48,7 +48,6 @@ object BattleDamage { if (enemy.matchesCategory(BDM.vs)) { addToModifiers(BDM) } - } for (unique in combatant.unit.getMatchingUniques("+[]% Strength vs []")) { @@ -172,8 +171,8 @@ object BattleDamage { modifiers.putAll(getTileSpecificModifiers(defender, tile)) val tileDefenceBonus = tile.getDefensiveBonus() - if ((!defender.unit.hasUnique("No defensive terrain bonus") && tileDefenceBonus > 0) - || (!defender.unit.hasUnique("No defensive terrain penalty") && tileDefenceBonus < 0)) + if (!defender.unit.hasUnique("No defensive terrain bonus") && tileDefenceBonus > 0 + || !defender.unit.hasUnique("No defensive terrain penalty") && tileDefenceBonus < 0) modifiers["Tile"] = (tileDefenceBonus * 100).toInt() if (attacker.isRanged()) { diff --git a/core/src/com/unciv/ui/tilegroups/TileGroup.kt b/core/src/com/unciv/ui/tilegroups/TileGroup.kt index cbdc1a6ee9..8193496942 100644 --- a/core/src/com/unciv/ui/tilegroups/TileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/TileGroup.kt @@ -193,8 +193,11 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings, } fun getTerrainImageLocations(terrainSequence: Sequence): List { - val allTerrains = terrainSequence.joinToString("+").let { tileSetStrings.getTile(it) } - if (ImageGetter.imageExists(allTerrains)) return listOf(allTerrains) + val allTerrains = terrainSequence.joinToString("+") + if (tileSetStrings.tileSetConfig.ruleVariants.containsKey(allTerrains)) + return tileSetStrings.tileSetConfig.ruleVariants[allTerrains]!!.map { tileSetStrings.getTile(it) } + val allTerrainTile = tileSetStrings.getTile(allTerrains) + if (ImageGetter.imageExists(allTerrainTile)) return listOf(allTerrainTile) else return terrainSequence.map { tileSetStrings.getTile(it) }.toList() }