57 lines
2.2 KiB
TypeScript
57 lines
2.2 KiB
TypeScript
import { defineStore } from "pinia";
|
|
import type { Game } from "~/netcode/interfaces";
|
|
// import goStore, { useEffect } from "~/netcode";
|
|
// import type { Card } from "~/netcode/Card";
|
|
// import { CardEffects, type Effect } from "~/netcode/Effect";
|
|
// import type { Player } from "~/netcode/Player";
|
|
|
|
// watch(
|
|
// () => goStore.current_game?.current_turn?.uuid,
|
|
// () => {
|
|
// useClientSideStore().activatedClientside = []
|
|
// })
|
|
|
|
export const useTurnStore = defineStore("turn", {
|
|
// state: () => ({
|
|
// activatedClientside: [] as Effect[],
|
|
// effectsHandled: new Set([
|
|
// CardEffects.MAKE_DISCARD,
|
|
// CardEffects.PLAY_NEXT_CARD_BOUGHT,
|
|
// CardEffects.RESTACK_DISCARDED_CARD,
|
|
// CardEffects.RESTACK_DISCARDED_CHAMPION,
|
|
// CardEffects.SACRIFICE,
|
|
// CardEffects.STACK_NEXT_ACTION_BOUGHT,
|
|
// CardEffects.STACK_NEXT_CARD_BOUGHT,
|
|
// CardEffects.STUN,
|
|
// CardEffects.PREPARE
|
|
// ]),
|
|
// }),
|
|
// getters: {
|
|
// maskedServerEffects(state) {
|
|
// return goStore.self?.turn?.effects_availables.filter(e => !state.activatedClientside.includes(e));
|
|
// },
|
|
// },
|
|
// actions: {
|
|
// activateEffect(effect: Effect) {
|
|
// const amount =
|
|
// goStore.self?.turn?.effects_availables.filter((e) => e == effect)
|
|
// .length ?? 0;
|
|
// for (let i = 0; i < amount; i++) {
|
|
// this.activatedClientside.push(effect);
|
|
// }
|
|
// },
|
|
// useEffect(effect: Effect, target: Player | Card) {
|
|
// const index = this.activatedClientside.indexOf(effect);
|
|
// if (index > -1) {
|
|
// this.activatedClientside.splice(index, 1);
|
|
// useEffect(effect, target);
|
|
// }
|
|
// },
|
|
// findUseEffect(cardEffect: CardEffects, target: Player | Card) {
|
|
// const effect = this.activatedClientside.find(e => (e.effect == cardEffect) && e.usable)
|
|
// if (!effect) { return }
|
|
// this.useEffect(effect, target)
|
|
// }
|
|
// },
|
|
});
|