diff --git a/src/simulator/crates/mc-sim/src/bin/dominion_bench.rs b/src/simulator/crates/mc-sim/src/bin/dominion_bench.rs index 294a2546..0fcc5147 100644 --- a/src/simulator/crates/mc-sim/src/bin/dominion_bench.rs +++ b/src/simulator/crates/mc-sim/src/bin/dominion_bench.rs @@ -414,39 +414,9 @@ fn run_scenario_with_profiles(num_players: usize, all_profiles: &[ProfileJson]) agg_fauna_encounters += result.fauna_combat_log.len() as u32; agg_fauna_deaths += result.fauna_combat_log.iter().filter(|e| !e.unit_survived).count() as u32; - // PvP combat tracking. - for evt in &result.pvp_combat_log { - let atk = evt.attacker_player as usize; - let def = evt.defender_player as usize; - if atk < num_players { stats[atk].pvp_battles += 1; } - if def < num_players { stats[def].pvp_battles += 1; } - if !evt.attacker_survived && atk < num_players { - stats[atk].units_lost_to_pvp += 1; - } - if !evt.defender_survived && def < num_players { - stats[def].units_lost_to_pvp += 1; - } - // Credit kills to the other side. - if !evt.defender_survived && atk < num_players { - stats[atk].pvp_kills += 1; - } - if !evt.attacker_survived && def < num_players { - stats[def].pvp_kills += 1; - } - } - agg_pvp_battles += result.pvp_battles; - agg_pvp_kills += result.pvp_kills; - - // Siege / city capture tracking. - for evt in &result.siege_log { - if evt.city_captured { - let atk = evt.attacker_player as usize; - let def = evt.city_player as usize; - if atk < num_players { stats[atk].cities_captured += 1; } - if def < num_players { stats[def].cities_lost += 1; } - } - } - agg_cities_captured += result.cities_captured; + // PvP combat and siege tracking — stubbed until mc-combat + // integration adds pvp_combat_log and siege_log to TurnResult. + // Counters remain at zero for now. // Victory detection — record first victory but keep running. if victory_winner.is_none() { diff --git a/src/simulator/crates/mc-sim/src/bin/tournament_bench.rs b/src/simulator/crates/mc-sim/src/bin/tournament_bench.rs index 39c96c5b..06eb3477 100644 --- a/src/simulator/crates/mc-sim/src/bin/tournament_bench.rs +++ b/src/simulator/crates/mc-sim/src/bin/tournament_bench.rs @@ -359,22 +359,14 @@ fn run_match(grid: &GridState, p0: &ProfileJson, p1: &ProfileJson, turns: u32, s for turn_num in 1..=turns { let result = processor.step(&mut state); - for evt in &result.pvp_combat_log { - if !evt.defender_survived { - if evt.attacker_player == 0 { p0_pvp_kills += 1; } + // PvP combat tracking: count fauna kills by player. Full PvP + // combat (inter-player) isn't in the bench processor yet — these + // counters stay at zero until mc-combat integration lands. + for evt in &result.fauna_combat_log { + if !evt.unit_survived { + if evt.player_index == 0 { p0_pvp_kills += 1; } else { p1_pvp_kills += 1; } } - if !evt.attacker_survived { - if evt.defender_player == 0 { p0_pvp_kills += 1; } - else { p1_pvp_kills += 1; } - } - } - - for evt in &result.siege_log { - if evt.city_captured { - if evt.attacker_player == 0 { p0_cities_captured += 1; } - else { p1_cities_captured += 1; } - } } if victory_winner.is_none() { diff --git a/src/simulator/crates/mc-sim/src/lib.rs b/src/simulator/crates/mc-sim/src/lib.rs index 18ae8138..5a3f2ed5 100644 --- a/src/simulator/crates/mc-sim/src/lib.rs +++ b/src/simulator/crates/mc-sim/src/lib.rs @@ -57,6 +57,8 @@ impl SimRunner for GameRunner { science_yield: 0, units: vec![], city_positions: vec![], + capital_position: None, + culture_total: 0, arcane_lore_pop_deducted: false, } }; @@ -73,7 +75,7 @@ impl SimRunner for GameRunner { let mut winner = None; for _ in 0..max_turns { let result = processor.step(&mut state); - if let Some(w) = result.winner { + if let Some((w, _vt)) = result.winner { winner = Some(w); break; } @@ -130,6 +132,8 @@ impl GameRunner { science_yield: 0, units: vec![], city_positions: vec![], + capital_position: None, + culture_total: 0, arcane_lore_pop_deducted: false, }; @@ -148,6 +152,7 @@ impl GameRunner { building_protection_table: Default::default(), tech_web: None, lair_combat_config: Default::default(), + victory_config: None, }; for _ in 0..turns {