Tilegroup accepts tile config also for *only the terrain part*, making all the extra "hill = grassland+hill" in the tileconfig json unnecessary!

@ravignir
This commit is contained in:
Yair Morgenstern 2021-05-02 21:07:32 +03:00
parent 204791c4b8
commit f2a25b26ab
3 changed files with 8 additions and 54 deletions

View File

@ -2,61 +2,13 @@
"useColorAsBaseTerrain": "false", "useColorAsBaseTerrain": "false",
"ruleVariants": { "ruleVariants": {
"Hill": ["Grassland","Hill"], "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"], "Hill+Forest+Uranium": ["Grassland","Hill","Uranium","HillForest"],
"Grassland+Jungle+Oil": ["Grassland","Oil","GrasslandJungle"], "Grassland+Jungle+Oil": ["Grassland","Oil","GrasslandJungle"],
"Plains+Jungle+Oil": ["Plains","Oil","PlainsJungle"], "Plains+Jungle+Oil": ["Plains","Oil","PlainsJungle"],
"Plains+Jungle": ["Plains","PlainsJungle"],
"Grassland+Forest+Uranium": ["Grassland","Uranium","GrasslandForest"], "Grassland+Forest+Uranium": ["Grassland","Uranium","GrasslandForest"],
"Plains+Forest+Furs": ["Grassland","Furs","GrasslandForest"], "Plains+Forest+Furs": ["Grassland","Furs","GrasslandForest"],

View File

@ -48,7 +48,6 @@ object BattleDamage {
if (enemy.matchesCategory(BDM.vs)) { if (enemy.matchesCategory(BDM.vs)) {
addToModifiers(BDM) addToModifiers(BDM)
} }
} }
for (unique in combatant.unit.getMatchingUniques("+[]% Strength vs []")) { for (unique in combatant.unit.getMatchingUniques("+[]% Strength vs []")) {
@ -172,8 +171,8 @@ object BattleDamage {
modifiers.putAll(getTileSpecificModifiers(defender, tile)) modifiers.putAll(getTileSpecificModifiers(defender, tile))
val tileDefenceBonus = tile.getDefensiveBonus() val tileDefenceBonus = tile.getDefensiveBonus()
if ((!defender.unit.hasUnique("No defensive terrain bonus") && tileDefenceBonus > 0) if (!defender.unit.hasUnique("No defensive terrain bonus") && tileDefenceBonus > 0
|| (!defender.unit.hasUnique("No defensive terrain penalty") && tileDefenceBonus < 0)) || !defender.unit.hasUnique("No defensive terrain penalty") && tileDefenceBonus < 0)
modifiers["Tile"] = (tileDefenceBonus * 100).toInt() modifiers["Tile"] = (tileDefenceBonus * 100).toInt()
if (attacker.isRanged()) { if (attacker.isRanged()) {

View File

@ -193,8 +193,11 @@ open class TileGroup(var tileInfo: TileInfo, var tileSetStrings:TileSetStrings,
} }
fun getTerrainImageLocations(terrainSequence: Sequence<String>): List<String> { fun getTerrainImageLocations(terrainSequence: Sequence<String>): List<String> {
val allTerrains = terrainSequence.joinToString("+").let { tileSetStrings.getTile(it) } val allTerrains = terrainSequence.joinToString("+")
if (ImageGetter.imageExists(allTerrains)) return listOf(allTerrains) 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() else return terrainSequence.map { tileSetStrings.getTile(it) }.toList()
} }