import { ref } from 'vue' import { defineStore } from 'pinia' import type { GameSessionState, GameState, Movement, PlayerState } from '@/common/interfaces' export const useGameStore = defineStore('game', () => { const sessionState = ref(undefined) const gameState = ref(undefined) const playerState = ref(undefined) const canMakeMove = ref(false) const canSelectTile = ref(false) const moveToMake = ref(undefined) const incomingFreeEnds = ref<[number, number] | undefined>(undefined) function updateSessionState(newState: GameSessionState) { sessionState.value = newState } function updateGameState(newState: GameState) { gameState.value = newState } function updatePlayerState(newState: PlayerState) { playerState.value = newState } function updateCanMakeMove(value: boolean) { canMakeMove.value = value } function setMoveToMake(move: Movement) { moveToMake.value = move } function updateCanSelectTile(value: boolean) { canSelectTile.value = value } function setIncomingFreeEnds(freeEnds: [number, number]) { incomingFreeEnds.value = freeEnds } return { sessionState, gameState, playerState, canMakeMove, moveToMake, incomingFreeEnds, canSelectTile, updateSessionState, updateGameState, updatePlayerState, updateCanMakeMove, setMoveToMake, setIncomingFreeEnds, updateCanSelectTile } })