Enhance pawn movement logic to allow attackers to get another turn when beating opponent pawns; refactor beatPawns method to return count of beaten pawns

This commit is contained in:
2026-01-30 21:44:39 +05:30
parent f7f8798f43
commit 99d24daff2
2 changed files with 13 additions and 8 deletions
+6 -5
View File
@@ -12,12 +12,13 @@ module.exports = socket => {
if (isMoveValid(req.session, pawn, room)) {
const newPositionOfMovedPawn = pawn.getPositionAfterMove(room.rolledNumber);
room.changePositionOfPawn(pawn, newPositionOfMovedPawn);
room.beatPawns(newPositionOfMovedPawn, req.session.color);
// If player rolled a 6 they get another turn: keep same player but reset turn timer
if (room.rolledNumber !== 6) {
room.changeMovingPlayer();
} else {
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) {
room.resetTurnForSamePlayer();
} else {
room.changeMovingPlayer();
}
const winner = room.getWinner();
if (winner) {