实时事件
前端通过 WebSocket 接收小镇事件。
常见事件包括:
NPC_MOVED:居民移动。NPC_SPOKE:居民说话,同时驱动地图气泡。NPC_EMOTED:居民表情。NPC_IDLE:居民处于 idle 状态。TOWN_STATE:小镇状态同步。
为什么要同步事件
地图气泡、小镇动态和 Agent 推理应该解释同一批事件,而不是各自显示互不相关的内容。
例如:
- 后端广播
NPC_SPOKE。 - 地图显示聊天气泡。
- 小镇动态显示同一句话。
- Agent 推理显示这句话的来源和理由。
Idle 和成本控制
如果用户长时间没有操作,或页面在后台停留超过设定时间,小镇会暂停后端 AI 通信。用户重新移动鼠标、点击或返回页面后,系统再恢复。