feat(city): ✨ Adjust city HP and related mechanics constants for improved simulation balance
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
2a6d02505f
commit
ffd739caa8
1 changed files with 7 additions and 7 deletions
|
|
@ -195,12 +195,12 @@ pub const CITY_CENTER_BASELINE_CULTURE: f64 = 2.0;
|
|||
/// reach pop 30 from ~7000 to ~3500 — the dominant lever for pop_peak.
|
||||
pub const GROWTH_FOOD_CARRYOVER: f64 = 0.5;
|
||||
|
||||
/// Base city HP before population scaling. Tuned up from 200 to 260 to
|
||||
/// extend TTV alongside the melee-city-damage fraction in resolver.rs. The
|
||||
/// combination (HP boost + 0.50 melee-to-city fraction + 20 HP/turn regen)
|
||||
/// pushed capital fall from T99 to the batch-2 median of 156. Further bumps
|
||||
/// (280, 300) regressed results — 260 is the empirical peak.
|
||||
pub const BASE_CITY_HP: u32 = 260;
|
||||
/// Base city HP before population scaling. Bumped 260 → 500 for p1-29 R5a:
|
||||
/// prior small bumps (280, 300) regressed because at low HP the snowballer's
|
||||
/// stack still one-shots; the handoff calls for a step large enough that
|
||||
/// capture takes 5-10 turns of siege rather than 1-2. Composed with the
|
||||
/// stronger wall penalty in mc-combat::siege (tier1 0.40, tier2 0.25).
|
||||
pub const BASE_CITY_HP: u32 = 500;
|
||||
|
||||
/// HP gained per population point.
|
||||
pub const HP_PER_POP: u32 = 10;
|
||||
|
|
@ -1021,7 +1021,7 @@ mod tests {
|
|||
#[test]
|
||||
fn defense_mechanics() {
|
||||
let mut city = City::found("Ironhold", (5, 5), true, 1, None);
|
||||
let initial_hp = BASE_CITY_HP + HP_PER_POP; // 210 at pop 1
|
||||
let initial_hp = BASE_CITY_HP + HP_PER_POP;
|
||||
assert_eq!(city.hp, initial_hp);
|
||||
city.take_damage(50);
|
||||
assert_eq!(city.hp, initial_hp - 50);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue