From d1f6c5ac0a940528f7582ddfdeea0c097eebd5f2 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 13 Jun 2021 22:47:41 +0300 Subject: [PATCH] Deprecated "Bonus vs %" in favor of "+[amount]% Strength vs [unittype]" --- .../com/unciv/logic/battle/BattleDamage.kt | 31 +------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/core/src/com/unciv/logic/battle/BattleDamage.kt b/core/src/com/unciv/logic/battle/BattleDamage.kt index 8970b7a6ab..9cd1dc00f4 100644 --- a/core/src/com/unciv/logic/battle/BattleDamage.kt +++ b/core/src/com/unciv/logic/battle/BattleDamage.kt @@ -1,6 +1,5 @@ package com.unciv.logic.battle -import com.unciv.logic.map.MapUnit import com.unciv.logic.map.TileInfo import com.unciv.models.Counter import com.unciv.models.ruleset.unit.UnitType @@ -16,39 +15,11 @@ class BattleDamageModifier(val vs:String, val modificationAmount:Float){ object BattleDamage { - const val BONUS_VS_UNIT_TYPE = """(Bonus|Penalty) vs (.*) (\d*)%""" - - // This should be deprecated and converted to "+[]% Strength vs []", "-[]% Strength vs []" - private fun getBattleDamageModifiersOfUnit(unit: MapUnit): MutableList { - val modifiers = mutableListOf() - for (ability in unit.getUniques()) { - // This beut allows us to have generic unit uniques: "Bonus vs City 75%", "Penatly vs Mounted 25%" etc. - val regexResult = Regex(BONUS_VS_UNIT_TYPE).matchEntire(ability.text) - if (regexResult == null) continue - val vs = regexResult.groups[2]!!.value - val modificationAmount = regexResult.groups[3]!!.value.toFloat() - if (regexResult.groups[1]!!.value == "Bonus") - modifiers.add(BattleDamageModifier(vs, modificationAmount)) - else - modifiers.add(BattleDamageModifier(vs, -modificationAmount)) - } - return modifiers - } - - private fun getGeneralModifiers(combatant: ICombatant, enemy: ICombatant): Counter { val modifiers = Counter() - fun addToModifiers(BDM: BattleDamageModifier) = - modifiers.add(BDM.getText(), (BDM.modificationAmount).toInt()) val civInfo = combatant.getCivInfo() if (combatant is MapUnitCombatant) { - for (BDM in getBattleDamageModifiersOfUnit(combatant.unit)) { - if (enemy.matchesCategory(BDM.vs)) { - addToModifiers(BDM) - } - } - for (unique in combatant.unit.getMatchingUniques("+[]% Strength vs []")) { if (enemy.matchesCategory(unique.params[1])) modifiers.add("vs [${unique.params[1]}]", unique.params[0].toInt()) @@ -75,7 +46,7 @@ object BattleDamage { } } - var adjacentUnitBonus = 0; + var adjacentUnitBonus = 0 for (unique in civInfo.getMatchingUniques("+[]% Strength for [] units which have another [] unit in an adjacent tile")) { if (combatant.matchesCategory(unique.params[1]) && combatant.getTile().neighbors.flatMap { it.getUnits() }