feat(mc-combat): Implement dynamic damage recalculation to adjust melee vs. city unit damage for balanced warrior-rush strategies

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
autocommit 2026-04-16 11:53:06 -07:00
parent 14f6f9458a
commit bf39a5a64e

View file

@ -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 fraction of unit damage translates to
// city structural HP. Siege units are the intended counter to
// Melee vs city: only a small 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).
// Halves the effectiveness of warrior-rush captures that were
// breaking T99/T106 wins in prior batches.
let melee_city_fraction: f32 = 0.50;
// 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;
let city_dmg = (damage_to_defender as f32 * melee_city_fraction).round() as i32;
(city_dmg, (city_hp - city_dmg).max(0))
}