import { defineStore } from 'pinia' import { ref } from 'vue' export const useGameStore = defineStore('game', () => { // 当前标签页 const currentTab = ref('status') // 抽屉状态 const drawerState = ref({ inventory: false, event: false, shop: false, crafting: false }) // 日志 const logs = ref([]) // 游戏时间 const gameTime = ref({ day: 1, hour: 8, minute: 0, totalMinutes: 480 }) // 战斗状态 const inCombat = ref(false) const combatState = ref(null) const autoCombat = ref(false) // 自动战斗模式 const isSearching = ref(false) // 正在寻找敌人中(自动战斗间隔期间) // 活动任务 const activeTasks = ref([]) // 负面状态 const negativeStatus = ref([]) // 市场价格 const marketPrices = ref({ lastRefreshDay: 1, prices: {} }) // 当前事件 const currentEvent = ref(null) // 添加日志 function addLog(message, type = 'info') { const time = `${String(gameTime.value.hour).padStart(2, '0')}:${String(gameTime.value.minute).padStart(2, '0')}` logs.value.push({ id: Date.now(), time, message, type }) // 限制日志数量 if (logs.value.length > 200) { logs.value.shift() } } // 重置游戏状态 function resetGame() { currentTab.value = 'status' drawerState.value = { inventory: false, event: false, shop: false } logs.value = [] gameTime.value = { day: 1, hour: 8, minute: 0, totalMinutes: 480 } inCombat.value = false combatState.value = null autoCombat.value = false isSearching.value = false activeTasks.value = [] negativeStatus.value = [] marketPrices.value = { lastRefreshDay: 1, prices: {} } currentEvent.value = null } return { currentTab, drawerState, logs, gameTime, inCombat, combatState, autoCombat, isSearching, activeTasks, negativeStatus, marketPrices, currentEvent, addLog, resetGame } })