client/src/stores/zone.ts

33 lines
887 B
TypeScript

import { defineStore } from 'pinia'
import type { Character, Zone } from '@/types'
export const useZoneStore = defineStore('zone', {
state: () => ({
zone: null as Zone | null,
characters: [] as Character[]
}),
actions: {
setZone(zone: Zone | null) {
this.zone = zone
},
setCharacters(characters: Character[]) {
this.characters = characters
},
addCharacter(character: Character) {
this.characters.push(character)
},
updateCharacter(character: Character) {
const index = this.characters.findIndex((c) => c.id === character.id)
if (index === -1) return
this.characters[index] = character
},
removeCharacter(character: Character) {
this.characters = this.characters.filter((c: Character) => c.id !== character.id)
},
reset() {
this.zone = null
this.characters = []
}
}
})