From 80bc3642c273edcffa96b8a90668f0d68c5fd2f9 Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Wed, 16 Mar 2022 18:47:04 -0700 Subject: [PATCH] Fix VP not counting on placement Signed-off-by: James Ketrenos --- server/routes/games.js | 66 ++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/server/routes/games.js b/server/routes/games.js index b0fa50f..1c1876a 100755 --- a/server/routes/games.js +++ b/server/routes/games.js @@ -3270,6 +3270,8 @@ const calculatePoints = (game, update) => { if (player.status === 'Not active') { continue; } + const currentPoints = player.points; + player.points = 0; if (key === game.longestRoad) { player.points += 2; @@ -3295,37 +3297,45 @@ const calculatePoints = (game, update) => { } }); + + if (player.points === currentPoints) { + return; + } + + if (player.points < 10) { + update.players = getFilteredPlayers(game); + continue; + } + /* This player has 10 points! Check if they are the current * player and if so, declare victory! */ - if (player.points >= 10) { - console.log(`${info}: Whoa! ${player.name} has ${player.points}!`); - for (let key in game.sessions) { - if (game.sessions[key].color !== player.color - || game.sessions[key].status === 'Not active') { - continue; - } - const message = `Wahoo! ${player.name} has 10 points on their turn and has won!`; - addChatMessage(game, null, message) - console.log(`${info}: ${message}`); - update.winner = Object.assign({}, player, { - state: 'winner', - robberStole: game.robberStole, - stolen: game.stolen, - chat: game.chat, - turns: game.turns, - players: game.players, - elapsedTime: Date.now() - game.startTime - }); - game.winner = update.winner; - game.state = 'winner'; - game.waiting = []; - stopTurnTimer(game); - sendUpdateToPlayers(game, { - state: game.state, - winner: game.winner, - players: game.players /* unfiltered */ - }); + console.log(`${info}: Whoa! ${player.name} has ${player.points}!`); + for (let key in game.sessions) { + if (game.sessions[key].color !== player.color + || game.sessions[key].status === 'Not active') { + continue; } + const message = `Wahoo! ${player.name} has 10 points on their turn and has won!`; + addChatMessage(game, null, message) + console.log(`${info}: ${message}`); + update.winner = Object.assign({}, player, { + state: 'winner', + robberStole: game.robberStole, + stolen: game.stolen, + chat: game.chat, + turns: game.turns, + players: game.players, + elapsedTime: Date.now() - game.startTime + }); + game.winner = update.winner; + game.state = 'winner'; + game.waiting = []; + stopTurnTimer(game); + sendUpdateToPlayers(game, { + state: game.state, + winner: game.winner, + players: game.players /* unfiltered */ + }); } }