diff --git a/src/simulator/crates/mc-combat/src/resolver.rs b/src/simulator/crates/mc-combat/src/resolver.rs index 10c61c81..6ff88ec7 100644 --- a/src/simulator/crates/mc-combat/src/resolver.rs +++ b/src/simulator/crates/mc-combat/src/resolver.rs @@ -406,10 +406,10 @@ impl CombatResolver { // 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.33 required because seed 1's p1 doesn't build walls before - // p0 can amass a 6–8 warrior rush stack; at 0.40 the capital - // fell T76 despite garrison maintenance being fixed in AI. - let melee_city_fraction: f32 = 0.33; + // 0.37 is the narrow sweet spot — 0.40 let seed 1 fall T76, + // 0.33 stalled all 3 seeds at max_turns. 0.37 should stretch + // seed 1 while keeping seed 2 decidable. + let melee_city_fraction: f32 = 0.37; let city_dmg = (damage_to_defender as f32 * melee_city_fraction).round() as i32; (city_dmg, (city_hp - city_dmg).max(0)) }