diff --git a/rc_core/src/persist/combat.rs b/rc_core/src/persist/combat.rs index 9d59ac3..5219424 100644 --- a/rc_core/src/persist/combat.rs +++ b/rc_core/src/persist/combat.rs @@ -376,7 +376,7 @@ fn default_rotation() -> GameEventSequence { auto_heal: true, }, multiplayer: GameEvent { - map: GameMap::Earth1, + map: GameMap::Neptune3, visibility: GameVisibility::Good, mode: GameType::BattleArena, auto_heal: true, diff --git a/rc_core/src/persist/maps.rs b/rc_core/src/persist/maps.rs index a421a55..b32b2da 100644 --- a/rc_core/src/persist/maps.rs +++ b/rc_core/src/persist/maps.rs @@ -515,7 +515,49 @@ pub(super) fn default_map() -> std::collections::HashMap std::collections::HashMap std::collections::HashMap std::collections::HashMap std::collections::HashMap std::collections::HashMap std::collections::HashMap std::collections::HashMap, ba_config: &oj_rc_core::data::battle_arena_config::BattleArenaData, bases: &std::collections::HashMap, crystals: &[oj_rc_core::cubes::CubeLocationInfo]) { + if !self.activated.load(std::sync::atomic::Ordering::Relaxed) { return; } let damage_u64 = damage as u64; let old_health = self.health.fetch_sub(damage as u64, std::sync::atomic::Ordering::Relaxed); if old_health < damage_u64 { @@ -526,8 +527,8 @@ impl EqualizerTracker { } async fn destroy_equalizer(&self, generic: &crate::matches::GenericGamemodeEngine, ba_config: &oj_rc_core::data::battle_arena_config::BattleArenaData, bases: &std::collections::HashMap, crystals: &[oj_rc_core::cubes::CubeLocationInfo]) { + if !self.activated.swap(false, std::sync::atomic::Ordering::Relaxed) { return; } self.cancelled.store(true, std::sync::atomic::Ordering::Relaxed); - self.activated.store(false, std::sync::atomic::Ordering::Relaxed); let eq_start = self.start.load(std::sync::atomic::Ordering::Relaxed); let now = chrono::Utc::now().timestamp(); self.send_notification(rlnl::types::EqualizerState::Destroyed, ba_config, eq_start, now, generic).await;