[M12] 完整 UI / HUD:背包、角色面板、技能树、腰带、血蓝球

里程碑 M12 · 重要程度 ★★★★☆ · 风险 低 · 依赖:M6(建议插队到 M8 之后)
完整路线图见 ROADMAP.md


建议插队

💡 这个里程碑值得提前到 M8 之后做。

  • UI 素材在 data\\global\\ui\\ 下,是 DC6,解码器已经就绪
  • 风险最低(纯表现层,不碰模拟)
  • 血球 / 蓝球 + 背包界面带来的感知提升远超工作量——这是「突然看起来像暗黑 2 了」的那个节点

代价:M9 / M10 落地后 UI 要返工一轮数据绑定。考虑到 UI 层与数据层本来就该解耦,这个代价可接受。

改动清单

  • [NEW] src/ui/inventory.ts —— 背包 10×4 网格 + 装备槽
  • [NEW] src/ui/character-sheet.ts —— 角色面板
  • [NEW] src/ui/skill-tree-panel.ts —— 技能树面板
  • [NEW] src/ui/belt.ts —— 腰带
  • [NEW] src/ui/globes.ts —— 血球 / 蓝球
  • [NEW] src/ui/hotkeys.ts —— 技能快捷键
  • [NEW] src/ui/font.ts —— D2 位图字体(data\\local\\font\\)

注意

联机场景(net-scene.ts)目前没有背包 UI、没有血蓝球(单人场景有)。
虽然联机不在交付路径上,但新写的 UI 组件应该与场景解耦,将来能直接复用。

验收

  • 界面截图与原版并排对比
  • UI DC6 解码零失败
  • 背包拖拽、装备穿脱、腰带快捷使用均正常
  • 截图回归测试(浏览器侧判定靠状态字段,不靠看图——把状态挂到 window.__d2web* 上由 CDP 读取)
No due date
100% Completed