feat(city-specific): Refactor city generation logic to support dynamic block placement and growth rules

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
autocommit 2026-04-16 14:32:31 -07:00
parent ca2e70240f
commit 956270c951

View file

@ -515,13 +515,13 @@ impl City {
self.hp = (self.hp + amount).min(self.max_hp);
}
/// 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.
/// 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.
/// Skips destroyed cities (HP == 0).
pub fn heal_per_turn(&mut self) {
const HEAL_PER_TURN: u32 = 15;
const HEAL_PER_TURN: u32 = 20;
if self.hp > 0 && self.hp < self.max_hp {
self.heal(HEAL_PER_TURN);
}