From be10e2f248eed749bb3aa3b1dc426b625f949920 Mon Sep 17 00:00:00 2001 From: autocommit Date: Fri, 1 May 2026 19:03:08 -0700 Subject: [PATCH] =?UTF-8?q?feat(simulator):=20=E2=9C=A8=20Add=20pending=20?= =?UTF-8?q?building=20actions=20and=20rally=20point=20tracking=20to=20simu?= =?UTF-8?q?lator=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/simulator/api-gdext/src/lib.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/simulator/api-gdext/src/lib.rs b/src/simulator/api-gdext/src/lib.rs index 3ab3fac4..531212b2 100644 --- a/src/simulator/api-gdext/src/lib.rs +++ b/src/simulator/api-gdext/src/lib.rs @@ -2280,6 +2280,7 @@ impl IRefCounted for GdGameState { players: Vec::new(), grid: None, pending_pvp_attacks: Default::default(), + pending_bombard_requests: Default::default(), formations: Default::default(), next_formation_id: 0, next_unit_id: 0, @@ -2288,6 +2289,7 @@ impl IRefCounted for GdGameState { pending_formation_shapes: Default::default(), pending_split_requests: Default::default(), pending_auto_join_requests: Default::default(), + pending_building_actions: Default::default(), tile_improvements: Default::default(), improvement_registry: Default::default(), }, @@ -2428,6 +2430,15 @@ impl GdGameState { .unwrap_or(0) } + /// Number of active rally points for player `pi`. + /// Used by GUT smoke tests to assert rally state without full serialisation. + #[func] + fn rally_point_count_for_player(&self, pi: i64) -> i64 { + self.inner.players.get(pi as usize) + .map(|p| p.rally_points.len() as i64) + .unwrap_or(0) + } + /// Current gold treasury for player `pi`. #[func] fn gold(&self, pi: i64) -> i64 {