feat(SCOPONE-0002): rotate starting player clockwise each round

This commit is contained in:
Giancarmine Salucci
2026-03-31 19:31:00 +02:00
parent 3d1f3e5eb4
commit 529b93e662
2 changed files with 4 additions and 3 deletions

View File

@@ -81,7 +81,7 @@ export function canCapture(played: Card, table: Card[]): boolean {
// Game state initialisation // Game state initialisation
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
export function createInitialState(): GameState { export function createInitialState(startingPlayer: PlayerIndex = 0): GameState {
const deck = shuffle(buildDeck()); const deck = shuffle(buildDeck());
const players: [Player, Player, Player, Player] = [ const players: [Player, Player, Player, Player] = [
@@ -106,7 +106,7 @@ export function createInitialState(): GameState {
return { return {
players, players,
table, table,
currentPlayer: 0, currentPlayer: startingPlayer,
roundOver: false, roundOver: false,
gameOver: false, gameOver: false,
teamScores: [emptyTeamScore(), emptyTeamScore()], teamScores: [emptyTeamScore(), emptyTeamScore()],

View File

@@ -1301,9 +1301,10 @@ export class GameScene extends Phaser.Scene {
private startNewRound(): void { private startNewRound(): void {
const totals = this.state.teamScores.map(t => t.totalPoints); const totals = this.state.teamScores.map(t => t.totalPoints);
const nextRound = (this.state.roundNumber ?? 1) + 1; const nextRound = (this.state.roundNumber ?? 1) + 1;
const startingPlayer = ((nextRound - 1) % 4) as PlayerIndex;
for (const img of this.cardImages.values()) img.destroy(); for (const img of this.cardImages.values()) img.destroy();
this.cardImages.clear(); this.cardImages.clear();
this.state = createInitialState(); this.state = createInitialState(startingPlayer);
this.state.teamScores[0].totalPoints = totals[0]; this.state.teamScores[0].totalPoints = totals[0];
this.state.teamScores[1].totalPoints = totals[1]; this.state.teamScores[1].totalPoints = totals[1];
this.state.roundNumber = nextRound; this.state.roundNumber = nextRound;