From 529b93e662fd3a91d5a3e88b4cb19a4efa7751e8 Mon Sep 17 00:00:00 2001 From: Giancarmine Salucci Date: Tue, 31 Mar 2026 19:31:00 +0200 Subject: [PATCH] feat(SCOPONE-0002): rotate starting player clockwise each round --- src/game/engine.ts | 4 ++-- src/scenes/GameScene.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/game/engine.ts b/src/game/engine.ts index 2bc96d4..3304c62 100644 --- a/src/game/engine.ts +++ b/src/game/engine.ts @@ -81,7 +81,7 @@ export function canCapture(played: Card, table: Card[]): boolean { // Game state initialisation // --------------------------------------------------------------------------- -export function createInitialState(): GameState { +export function createInitialState(startingPlayer: PlayerIndex = 0): GameState { const deck = shuffle(buildDeck()); const players: [Player, Player, Player, Player] = [ @@ -106,7 +106,7 @@ export function createInitialState(): GameState { return { players, table, - currentPlayer: 0, + currentPlayer: startingPlayer, roundOver: false, gameOver: false, teamScores: [emptyTeamScore(), emptyTeamScore()], diff --git a/src/scenes/GameScene.ts b/src/scenes/GameScene.ts index 3dcff8d..3f68b03 100644 --- a/src/scenes/GameScene.ts +++ b/src/scenes/GameScene.ts @@ -1301,9 +1301,10 @@ export class GameScene extends Phaser.Scene { private startNewRound(): void { const totals = this.state.teamScores.map(t => t.totalPoints); const nextRound = (this.state.roundNumber ?? 1) + 1; + const startingPlayer = ((nextRound - 1) % 4) as PlayerIndex; for (const img of this.cardImages.values()) img.destroy(); this.cardImages.clear(); - this.state = createInitialState(); + this.state = createInitialState(startingPlayer); this.state.teamScores[0].totalPoints = totals[0]; this.state.teamScores[1].totalPoints = totals[1]; this.state.roundNumber = nextRound;