From 000043d946e180ea4bea1868174c6cbc5fccfc45 Mon Sep 17 00:00:00 2001 From: Natalie Date: Mon, 4 May 2026 01:49:19 -0400 Subject: [PATCH] =?UTF-8?q?feat(@projects/@magic-civilization):=20?= =?UTF-8?q?=E2=9C=A8=20add=20promotion=20weights=20to=20player=20states?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/simulator/crates/mc-ai/src/gpu/inner.rs | 8 ------- .../crates/mc-ai/src/tactical/citizen.rs | 7 +++---- .../crates/mc-ai/src/tactical/movement.rs | 7 +++---- .../crates/mc-ai/src/tactical/production.rs | 7 +++---- .../crates/mc-ai/src/tactical/settle.rs | 7 +++---- .../crates/mc-ai/tests/capture_scoring.rs | 21 ++++++++----------- .../mc-ai/tests/gpu_tree_integration.rs | 14 ++++++------- .../mc-ai/tests/tactical_port_regression.rs | 14 ++++++------- 8 files changed, 33 insertions(+), 52 deletions(-) diff --git a/src/simulator/crates/mc-ai/src/gpu/inner.rs b/src/simulator/crates/mc-ai/src/gpu/inner.rs index 4e138f8e..cb900b05 100644 --- a/src/simulator/crates/mc-ai/src/gpu/inner.rs +++ b/src/simulator/crates/mc-ai/src/gpu/inner.rs @@ -521,10 +521,6 @@ mod tests { trade_willingness: 3.0, grudge_persistence: 7.0, } - , - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn blackhammer_priors() -> PersonalityPriors { @@ -536,10 +532,6 @@ mod tests { trade_willingness: 2.0, grudge_persistence: 9.0, } - , - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn iron_vs_bh() -> [PersonalityPriors; MAX_PLAYERS] { diff --git a/src/simulator/crates/mc-ai/src/tactical/citizen.rs b/src/simulator/crates/mc-ai/src/tactical/citizen.rs index d4f9113f..8acf4881 100644 --- a/src/simulator/crates/mc-ai/src/tactical/citizen.rs +++ b/src/simulator/crates/mc-ai/src/tactical/citizen.rs @@ -360,11 +360,10 @@ mod tests { strategic_axes: ::std::collections::BTreeMap::new(), race_id: None, strategic_resources: Vec::new(), + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } - , - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn state(current: u8, map: TacticalMap, players: Vec) -> TacticalState { diff --git a/src/simulator/crates/mc-ai/src/tactical/movement.rs b/src/simulator/crates/mc-ai/src/tactical/movement.rs index 2438ab46..6dcd8d57 100644 --- a/src/simulator/crates/mc-ai/src/tactical/movement.rs +++ b/src/simulator/crates/mc-ai/src/tactical/movement.rs @@ -826,11 +826,10 @@ mod tests { strategic_axes: ::std::collections::BTreeMap::new(), race_id: None, strategic_resources: Vec::new(), + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } - , - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn state(current: u8, players: Vec) -> TacticalState { diff --git a/src/simulator/crates/mc-ai/src/tactical/production.rs b/src/simulator/crates/mc-ai/src/tactical/production.rs index 38455f93..b7753fdb 100644 --- a/src/simulator/crates/mc-ai/src/tactical/production.rs +++ b/src/simulator/crates/mc-ai/src/tactical/production.rs @@ -640,11 +640,10 @@ mod tests { strategic_axes: ::std::collections::BTreeMap::new(), race_id: None, strategic_resources: Vec::new(), + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } - , - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn state(current: u8, turn: u32, players: Vec) -> TacticalState { diff --git a/src/simulator/crates/mc-ai/src/tactical/settle.rs b/src/simulator/crates/mc-ai/src/tactical/settle.rs index d958c880..d24dbb4a 100644 --- a/src/simulator/crates/mc-ai/src/tactical/settle.rs +++ b/src/simulator/crates/mc-ai/src/tactical/settle.rs @@ -405,11 +405,10 @@ mod tests { strategic_axes: ::std::collections::BTreeMap::new(), race_id: None, strategic_resources: Vec::new(), + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } - , - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn base_state(map: TacticalMap, players: Vec) -> TacticalState { diff --git a/src/simulator/crates/mc-ai/tests/capture_scoring.rs b/src/simulator/crates/mc-ai/tests/capture_scoring.rs index e7c3b579..f5d0c0ff 100644 --- a/src/simulator/crates/mc-ai/tests/capture_scoring.rs +++ b/src/simulator/crates/mc-ai/tests/capture_scoring.rs @@ -31,11 +31,10 @@ fn raider() -> PersonalityPriors { capture_weight: 0.6, ransom_accept_threshold: 0.3, destroy_civilian_aggression: 1.4, + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } -, - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn merchant() -> PersonalityPriors { @@ -49,11 +48,10 @@ fn merchant() -> PersonalityPriors { capture_weight: 1.2, ransom_accept_threshold: 0.9, destroy_civilian_aggression: 0.4, + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } -, - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn expansionist() -> PersonalityPriors { @@ -67,11 +65,10 @@ fn expansionist() -> PersonalityPriors { capture_weight: 1.5, ransom_accept_threshold: 0.6, destroy_civilian_aggression: 0.6, + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } -, - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } #[test] diff --git a/src/simulator/crates/mc-ai/tests/gpu_tree_integration.rs b/src/simulator/crates/mc-ai/tests/gpu_tree_integration.rs index dd528d93..35d41448 100644 --- a/src/simulator/crates/mc-ai/tests/gpu_tree_integration.rs +++ b/src/simulator/crates/mc-ai/tests/gpu_tree_integration.rs @@ -41,11 +41,10 @@ fn ironhold_priors() -> PersonalityPriors { wealth: 3.0, trade_willingness: 3.0, grudge_persistence: 7.0, + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } -, - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn blackhammer_priors() -> PersonalityPriors { @@ -56,11 +55,10 @@ fn blackhammer_priors() -> PersonalityPriors { wealth: 2.0, trade_willingness: 2.0, grudge_persistence: 9.0, + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } -, - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } fn make_root_state() -> GameRolloutState { diff --git a/src/simulator/crates/mc-ai/tests/tactical_port_regression.rs b/src/simulator/crates/mc-ai/tests/tactical_port_regression.rs index 3e2f025d..4a247ff1 100644 --- a/src/simulator/crates/mc-ai/tests/tactical_port_regression.rs +++ b/src/simulator/crates/mc-ai/tests/tactical_port_regression.rs @@ -89,11 +89,10 @@ fn player0_fixture() -> TacticalPlayerState { strategic_axes: ::std::collections::BTreeMap::new(), race_id: None, strategic_resources: Vec::new(), + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } -, - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } /// Player 1 — two spearmen adjacent to player 0's warrior. @@ -163,11 +162,10 @@ fn player1_fixture() -> TacticalPlayerState { strategic_axes: ::std::collections::BTreeMap::new(), race_id: None, strategic_resources: Vec::new(), + promotion_offense_weight: 1.0, + promotion_defense_weight: 1.0, + promotion_mobility_weight: 1.0, } -, - promotion_offense_weight: 1.0, - promotion_defense_weight: 1.0, - promotion_mobility_weight: 1.0, } /// Two-player state with player 0 as the active player.