From 4efeb895bc32e3010e68034879bdd00f457dd915 Mon Sep 17 00:00:00 2001 From: autocommit Date: Thu, 16 Apr 2026 12:04:25 -0700 Subject: [PATCH] =?UTF-8?q?feat(simulator):=20=E2=9C=A8=20Adjust=20melee?= =?UTF-8?q?=20damage=20fraction=20for=20city=20structural=20HP=20in=20reso?= =?UTF-8?q?lver.rs=20to=20improve=20damage=20calculation=20accuracy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/simulator/crates/mc-combat/src/resolver.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/simulator/crates/mc-combat/src/resolver.rs b/src/simulator/crates/mc-combat/src/resolver.rs index aea8ac4c..f9f8384d 100644 --- a/src/simulator/crates/mc-combat/src/resolver.rs +++ b/src/simulator/crates/mc-combat/src/resolver.rs @@ -403,12 +403,12 @@ impl CombatResolver { let city_dmg = (damage_to_defender as f32 * siege_mult).round() as i32; (city_dmg, (city_hp - city_dmg).max(0)) } else { - // Melee vs city: only a small fraction of unit damage translates - // to city structural HP. Siege units are the intended counter to + // Melee vs city: only a fraction of unit damage translates to + // city structural HP. Siege units are the intended counter to // walls (via Siege combat_type which applies siege_city_bonus). - // 0.30 stops warrior-rush stacks of 6-7 units from 1-shotting - // capitals at T90 — the prior T99/T106 failure mode. - let melee_city_fraction: f32 = 0.30; + // 0.40 slows warrior-rush stacks (prior T99/T106 fast wins) but + // still allows sustained siege to resolve games. + let melee_city_fraction: f32 = 0.40; let city_dmg = (damage_to_defender as f32 * melee_city_fraction).round() as i32; (city_dmg, (city_hp - city_dmg).max(0)) }