From 29b5490f86c9b7897e3247e2fa7d9987b3d51729 Mon Sep 17 00:00:00 2001 From: "NG (Graham)" Date: Thu, 11 Dec 2025 20:59:44 -0500 Subject: [PATCH] Count all owned points first so shield isn't dropped half way through the counting/capturing --- rc_multiplayer/src/matches/modes/battle_arena.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rc_multiplayer/src/matches/modes/battle_arena.rs b/rc_multiplayer/src/matches/modes/battle_arena.rs index 79a016b..5d27580 100644 --- a/rc_multiplayer/src/matches/modes/battle_arena.rs +++ b/rc_multiplayer/src/matches/modes/battle_arena.rs @@ -334,7 +334,7 @@ impl PointTracker { let mut owned_points = std::collections::HashMap::with_capacity(2); let mut captured_firsts = std::collections::HashSet::new(); let mut lost_lasts = std::collections::HashSet::new(); - for (i, cap_point) in self.points.iter().enumerate() { + for cap_point in self.points.iter() { let point_owner = cap_point.team.load(std::sync::atomic::Ordering::SeqCst); if point_owner >= 0 { let point_owner = point_owner as u8; @@ -344,6 +344,9 @@ impl PointTracker { owned_points.insert(point_owner, 1); } } + } + for (i, cap_point) in self.points.iter().enumerate() { + let point_owner = cap_point.team.load(std::sync::atomic::Ordering::SeqCst); let friendlies = cap_point.owners_on_point().await; let enemies = cap_point.stealers_on_point().await; if friendlies != 0 { continue; }