From e0132b68edd236d724a3f75a613291d0cc32114d Mon Sep 17 00:00:00 2001 From: Pierre Hubert Date: Sun, 16 Oct 2022 18:42:18 +0200 Subject: [PATCH] Can notify a player that the server is waiting for opponent play configuration --- rust/sea_battle_backend/src/bot_player.rs | 2 ++ rust/sea_battle_backend/src/game.rs | 4 ++++ rust/sea_battle_backend/src/human_player.rs | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/rust/sea_battle_backend/src/bot_player.rs b/rust/sea_battle_backend/src/bot_player.rs index 3dd550d..33e9d31 100644 --- a/rust/sea_battle_backend/src/bot_player.rs +++ b/rust/sea_battle_backend/src/bot_player.rs @@ -58,6 +58,8 @@ impl Player for BotPlayer { unreachable!() } + fn waiting_for_opponent_boats_layout(&self) {} + fn notify_other_player_ready(&self) {} fn notify_game_starting(&self) {} diff --git a/rust/sea_battle_backend/src/game.rs b/rust/sea_battle_backend/src/game.rs index 5cd97ae..f8fa09c 100644 --- a/rust/sea_battle_backend/src/game.rs +++ b/rust/sea_battle_backend/src/game.rs @@ -22,6 +22,8 @@ pub trait Player { fn rejected_boats_layout(&self, errors: Vec<&'static str>); + fn waiting_for_opponent_boats_layout(&self); + fn notify_other_player_ready(&self); fn notify_game_starting(&self); @@ -294,6 +296,8 @@ impl Handler for Game { if self.map_0.is_some() && self.map_1.is_some() { self.players.iter().for_each(|p| p.notify_game_starting()); self.start_fire_exchanges(); + } else { + self.players[player_index].waiting_for_opponent_boats_layout(); } } } diff --git a/rust/sea_battle_backend/src/human_player.rs b/rust/sea_battle_backend/src/human_player.rs index 8d2c7f4..653afaf 100644 --- a/rust/sea_battle_backend/src/human_player.rs +++ b/rust/sea_battle_backend/src/human_player.rs @@ -47,6 +47,11 @@ impl Player for HumanPlayer { }); } + fn waiting_for_opponent_boats_layout(&self) { + self.player + .do_send(ServerMessage::WaitingForOtherPlayerConfiguration); + } + fn notify_other_player_ready(&self) { self.player.do_send(ServerMessage::OpponentReady); }