From f4d98041003aed8e22507e0ceb8b176fd175b163 Mon Sep 17 00:00:00 2001 From: H4CK3R-01 Date: Fri, 18 Jun 2021 09:09:50 +0200 Subject: [PATCH] - Added TODO - Fix Bug if active player leaves --- Webservice/Game.js | 7 +++++-- Webservice/server.js | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Webservice/Game.js b/Webservice/Game.js index e0baf8d..ccef9d2 100644 --- a/Webservice/Game.js +++ b/Webservice/Game.js @@ -14,7 +14,7 @@ class Game { let move_to_next_round = false; // move on to next player; skip dead players do { - if(this.players.length === 0) break; + if (this.players.length === 0) break; this.currentPlayerIndex++; if (this.currentPlayerIndex >= this.players.length) { @@ -44,7 +44,10 @@ class Game { remove_player(name) { let index = this.get_player_index(name); - if (index !== -1) this.players.splice(index, 1); + if (index !== -1) { + this.players.splice(index, 1); + if (this.currentPlayerIndex >= index) this.currentPlayerIndex--; + } if (this.currentPlayerIndex === index) this.finish_turn(); // if current player leaves: move on to next } diff --git a/Webservice/server.js b/Webservice/server.js index b4f8abc..d42fdc8 100644 --- a/Webservice/server.js +++ b/Webservice/server.js @@ -79,12 +79,13 @@ io.on('connection', socket => { socket.broadcast.to(socket.room).emit('user left', socket.username); gameState[socket.room].remove_player(socket.username); + // TODO Close card if card is opened and active player left + socket.leave(socket.room); if (gameState[socket.room].players.length === 0) delete gameState[socket.room]; } - generate_log_message(socket.room, socket.username, "LEFT", ""); });