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 = () => {
winner

- 1st: {winner} + {context.color === winner ? ( + <>You Won! + ) : ( + <>1st: {winner} + )}

diff --git a/src/components/Gameboard/Map/getPositionAfterMove.js b/src/components/Gameboard/Map/getPositionAfterMove.js index b255895..5ed2533 100644 --- a/src/components/Gameboard/Map/getPositionAfterMove.js +++ b/src/components/Gameboard/Map/getPositionAfterMove.js @@ -42,7 +42,7 @@ const getPositionAfterMove = (pawn, rolledNumber) => { return position; } case 'yellow': - if (pawn.position + rolledNumber <= 85) { + if (pawn.position + rolledNumber <= 91) { if (position >= 12 && position <= 15) { return 29; } else if (position <= 67 && position + rolledNumber > 67) {