From 4e8b4746dcc15a56bb3a481dd3ee66e1e9a96edc Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Tue, 31 May 2022 12:48:11 -0700 Subject: [PATCH] Fix volcano mode so everyone picks resources Fix bug if player connects without audio/video Signed-off-by: James Ketrenos --- client/src/Resource.css | 2 +- server/routes/games.js | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/client/src/Resource.css b/client/src/Resource.css index f690abd..6c1d6f9 100644 --- a/client/src/Resource.css +++ b/client/src/Resource.css @@ -26,5 +26,5 @@ .Resource.Selected { filter: brightness(150%); - top: -1em; + top: -50%; } \ No newline at end of file diff --git a/server/routes/games.js b/server/routes/games.js index 2a8c4ff..c20d4ae 100755 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -987,7 +987,7 @@ const setPlayerName = (game, session, name) => { } } - let message, hasAudio = false; + let message; if (!session.name) { message = `A new player has entered the lobby as ${name}.`; @@ -1001,7 +1001,6 @@ const setPlayerName = (game, session, name) => { session.name = name; if (session.ws && (game.id in audio) && session.name in audio[game.id]) { - hasAudio = true; part(audio[game.id], session); } } else { @@ -1023,8 +1022,11 @@ const setPlayerName = (game, session, name) => { session.player.live = true; } - if (session.ws && hasAudio) { - join(audio[game.id], session); + if (session.ws && session.hasAudio) { + join(audio[game.id], session, { + hasVideo: session.video ? true : false, + hasAudio: session.audio ? true : false + }); } console.log(`${info}: ${message}`); addChatMessage(game, null, message); @@ -3027,6 +3029,8 @@ const selectResources = (game, session, cards) => { } else { addActivity(game, session, 'No players had that resource. Wa-waaaa.'); } + delete game.turn.active; + game.turn.actions = []; break; case 'year-of-plenty': @@ -3036,6 +3040,8 @@ const selectResources = (game, session, cards) => { }); addChatMessage(game, session, `${session.name} player Year of Plenty.` + `They chose to receive ${display.join(', ')} from the bank.`); + delete game.turn.active; + game.turn.actions = []; break; case 'volcano': cards.forEach(type => { @@ -3043,10 +3049,13 @@ const selectResources = (game, session, cards) => { session.player.resources++; }); addChatMessage(game, session, `${session.name} player mined ${display.join(', ')} from the Volcano!`); + if (!game.turn.select) { + delete game.turn.active; + game.turn.actions = []; + } break; } - delete game.turn.active; - game.turn.actions = []; + sendUpdateToPlayer(game, session, { private: session.player }); @@ -3856,7 +3865,7 @@ router.ws("/ws/:id", async (ws, req) => { session.lastActive = Date.now(); let error, warning, update, processed = true; - + switch (data.type) { case 'join': join(audio[id], session, data.config);