From 60f7ea4322905c03c877e9531551ec79cf99e9a9 Mon Sep 17 00:00:00 2001 From: OptimizedForDensity <105244635+OptimizedForDensity@users.noreply.github.com> Date: Thu, 7 Jul 2022 10:52:16 -0400 Subject: [PATCH] Unstack enemy unit strength modifiers (#7390) --- core/src/com/unciv/logic/battle/BattleDamage.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/com/unciv/logic/battle/BattleDamage.kt b/core/src/com/unciv/logic/battle/BattleDamage.kt index 88b5b280a2..a61fe9a26a 100644 --- a/core/src/com/unciv/logic/battle/BattleDamage.kt +++ b/core/src/com/unciv/logic/battle/BattleDamage.kt @@ -60,12 +60,13 @@ object BattleDamage { //https://www.carlsguides.com/strategy/civilization5/war/combatbonuses.php val adjacentUnits = combatant.getTile().neighbors.flatMap { it.getUnits() } - for (unique in adjacentUnits.filter { it.civInfo.isAtWarWith(civInfo) } - .flatMap { it.getMatchingUniques(UniqueType.StrengthForAdjacentEnemies) }) - if (combatant.matchesCategory(unique.params[1]) && combatant.getTile() - .matchesFilter(unique.params[2]) - ) - modifiers.add("Adjacent enemy units", unique.params[0].toInt()) + val strengthMalus = adjacentUnits.filter { it.civInfo.isAtWarWith(civInfo) } + .flatMap { it.getMatchingUniques(UniqueType.StrengthForAdjacentEnemies) } + .filter { combatant.matchesCategory(it.params[1]) && combatant.getTile().matchesFilter(it.params[2]) } + .maxByOrNull { it.params[0] } + if (strengthMalus != null) { + modifiers.add("Adjacent enemy units", strengthMalus.params[0].toInt()) + } val civResources = civInfo.getCivResourcesByName() for (resource in combatant.unit.baseUnit.getResourceRequirements().keys)