refactor(game): 重构游戏状态管理和WebSocket通信

- 定义统一的游戏动作类型GameAction替代原有发送函数
- 创建游戏状态管理store使用Pinia进行状态管理
- 实现游戏状态分发器处理各种游戏事件
- 重构WebSocket处理器支持多处理器注册
- 重命名状态类型文件统一使用State后缀
- 添加ACTION游戏阶段处理操作窗口逻辑
- 集成Pinia依赖管理应用状态
This commit is contained in:
2026-03-25 15:19:28 +08:00
parent 4a9b2f2db2
commit 2737971608
17 changed files with 334 additions and 178 deletions

View File

@@ -2,22 +2,24 @@ import {wsClient} from './client'
type Handler = (msg: any) => void
const handlerMap: Record<string, Handler> = {}
const handlerMap: Record<string, Handler[]> = {}
// 注册 handler
export function registerHandler(type: string, handler: Handler) {
handlerMap[type] = handler
if (!handlerMap[type]) {
handlerMap[type] = []
}
handlerMap[type].push(handler)
}
// 初始化监听
export function initWsHandler() {
wsClient.onMessage((msg) => {
const handler = handlerMap[msg.type]
const handlers = handlerMap[msg.type]
if (handler) {
handler(msg)
if (handlers && handlers.length > 0) {
handlers.forEach(h => h(msg))
} else {
console.warn('[WS] 未处理消息:', msg.type, msg)
}