diff --git a/backend/handlers/gameHandler.js b/backend/handlers/gameHandler.js index 4010fa5..2223710 100644 --- a/backend/handlers/gameHandler.js +++ b/backend/handlers/gameHandler.js @@ -15,12 +15,16 @@ module.exports = socket => { const beaten = room.beatPawns(newPositionOfMovedPawn, req.session.color); // If pawn killed any opponent pawns, attacker gets another turn. // Also a roll of 6 grants another turn. - if (beaten > 0 || room.rolledNumber === 6) { + // Additionally, grant an extra turn when a pawn reaches its final home position. + const FINAL_POSITIONS = { red: 73, blue: 79, green: 85, yellow: 91 }; + const reachedHome = FINAL_POSITIONS[pawn.color] === newPositionOfMovedPawn; + const winner = room.getWinner(); + if ((beaten > 0 || room.rolledNumber === 6 || reachedHome) && !winner) { room.resetTurnForSamePlayer(); } else { room.changeMovingPlayer(); } - const winner = room.getWinner(); + // const winner = room.getWinner(); if (winner) { room.endGame(winner); sendWinner(room._id.toString(), winner); diff --git a/src/components/Gameboard/Gameboard.jsx b/src/components/Gameboard/Gameboard.jsx index 64c81f1..bb5b8c8 100644 --- a/src/components/Gameboard/Gameboard.jsx +++ b/src/components/Gameboard/Gameboard.jsx @@ -85,7 +85,11 @@ const Gameboard = () => {