diff --git a/src/simulator/crates/mc-turn/src/game_state.rs b/src/simulator/crates/mc-turn/src/game_state.rs index b45cd859..efe977f1 100644 --- a/src/simulator/crates/mc-turn/src/game_state.rs +++ b/src/simulator/crates/mc-turn/src/game_state.rs @@ -309,6 +309,13 @@ pub struct GameState { /// `CombatOutcome::RansomOffered`. #[serde(default)] pub ransom_queue: crate::ransom::RansomQueue, + /// p2-55f: data-driven combat balance config (ransom durations, XP + /// awards, multipliers). Loaded from + /// `public/games/age-of-dwarves/data/combat_balance.json` at game start + /// via `crate::combat_balance::load_combat_balance`. Defaults to the + /// pre-p2-55f hardcoded constants so save migration is no-op. + #[serde(default)] + pub combat_balance: crate::combat_balance::CombatBalance, /// p3-10b: per-lair-tile siege pressure state. Keyed by `(col, row)` /// of the lair tile. Bridge layer ticks pressure each turn via /// `mc_combat::lair::tick_siege` / `decay_siege`; entries are removed