From 12f39ef275ca7d80ff83e70ac9519aeb2162e607 Mon Sep 17 00:00:00 2001 From: clfreville2 Date: Sat, 25 Mar 2023 12:58:58 +0100 Subject: [PATCH] Complete the hand of a player who has joined after the start of the game --- board-server/src/room.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/board-server/src/room.rs b/board-server/src/room.rs index c02ad61..e2053b3 100644 --- a/board-server/src/room.rs +++ b/board-server/src/room.rs @@ -58,6 +58,7 @@ impl Room { } } + let mut is_new_player = false; if let Some(i) = player_index { // Reclaim the player's spot self.broadcast(ServerMessage::PlayerReconnected(i)); @@ -65,6 +66,7 @@ impl Room { } else { self.broadcast(ServerMessage::PlayerConnected(player_name.clone())); player_index = Some(self.players.len()); + is_new_player = true; self.players.push(Player { name: player_name, @@ -90,6 +92,14 @@ impl Room { has_started: self.has_started, })?; + if self.has_started && is_new_player { + self.players[player_index] + .hand + .complete(&mut self.deck) + .ok(); + self.sync_hand(player_index); + } + Ok(()) }