33 lines
887 B
TypeScript
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 = []
|
|
}
|
|
}
|
|
})
|