import type { Player } from '$lib/types'; export class PlayerState { players = $state([]); newPlayer(id: string) { this.players.push({ id: id, stage: 0, highscore: 0, playing: true }); } getStage(id: string) { const player = this.players.find((player) => player.id === id); if (!player) { return undefined; } return player.stage; } nextStage(id: string) { const player = this.players.find((player) => player.id === id); if (!player) { return; } player.stage += 1; } restart(id: string) { const player = this.players.find((player) => player.id === id); if (!player) { return; } player.stage = 0; player.playing = true; } score(id: string, won: boolean) { const player = this.players.find((player) => player.id === id); if (!player) { return; } if (won) { player.stage += 1; return; } player.playing = false; if (player.stage > player.highscore) { player.highscore = player.stage; } } getHighscore(id: string) { const player = this.players.find((player) => player.id === id); if (!player) { return undefined; } return player.highscore; } getPlaying(id: string) { const player = this.players.find((player) => player.id === id); if (!player) { return undefined; } return player.playing; } setPlaying(id: string, playing: boolean) { const player = this.players.find((player) => player.id === id); if (!player) { return; } player.playing = playing; } } export const playerState = new PlayerState();