Enhance game mechanics to allow extra turns for reaching home positions; fix yellow pawn movement boundary condition

This commit is contained in:
2026-02-01 22:40:10 +05:30
parent 99d24daff2
commit f142cac64a
3 changed files with 12 additions and 4 deletions
+6 -2
View File
@@ -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);