From 4ab482a0e2e8fdfdd6654ba29f4e9629036421ac Mon Sep 17 00:00:00 2001 From: autocommit Date: Thu, 16 Apr 2026 14:20:57 -0700 Subject: [PATCH] =?UTF-8?q?feat(city):=20=E2=9C=A8=20Implement=20adjusted?= =?UTF-8?q?=20healing=20thresholds=20and=20siege=20resolution=20to=20preve?= =?UTF-8?q?nt=20rapid=20warrior=20capture=20vulnerability=20in=20city=20me?= =?UTF-8?q?chanics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/simulator/crates/mc-city/src/city.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/simulator/crates/mc-city/src/city.rs b/src/simulator/crates/mc-city/src/city.rs index 9f400a5f..70ca55db 100644 --- a/src/simulator/crates/mc-city/src/city.rs +++ b/src/simulator/crates/mc-city/src/city.rs @@ -515,13 +515,13 @@ impl City { self.hp = (self.hp + amount).min(self.max_hp); } - /// Heal the city by the standard per-turn amount (20 HP, was 10). - /// Raised with the melee-city-damage fraction in resolver.rs to force - /// attackers to sustain siege rather than 1-shot captures with warrior - /// rushes. Further bumps to 23/26 regressed results. + /// Heal the city by the standard per-turn amount (15 HP). + /// Dial-back from 20 after stacked defensive fixes produced 0/3 captures + /// at 300 turns. Paired with wall_penalty 0.75 and melee_city_fraction 0.55 + /// to re-enable sustained sieges without reverting to warrior-rush captures. /// Skips destroyed cities (HP == 0). pub fn heal_per_turn(&mut self) { - const HEAL_PER_TURN: u32 = 20; + const HEAL_PER_TURN: u32 = 15; if self.hp > 0 && self.hp < self.max_hp { self.heal(HEAL_PER_TURN); }