Enhance game mechanics to allow extra turns for reaching home positions; fix yellow pawn movement boundary condition
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user