[M10] 真实物品系统:500 基础物品、1000 词缀、TreasureClassEx 掉落树

里程碑 M10 · 重要程度 ★★★★☆ · 风险 中 · 依赖:M9
完整路线图见 ROADMAP.md


背景

项 当前(demo-data.ts) 真实 D2
物品基类 3(剑 / 帽 / 药水) ~500
词缀 2 ~1000

更关键的是掉落模型:rollDrop 现在的实现完全不是 D2 的模型。D2 的掉落是 TreasureClassEx.txt 定义的递归树,每个节点按权重向下展开。

改动清单

  • [MODIFY] src/game/acts.ts —— 加载 Armor.txt、Weapons.txt、Misc.txt、MagicPrefix.txt、MagicSuffix.txt、UniqueItems.txt、SetItems.txt、TreasureClassEx.txt、ItemTypes.txt、Runes.txt、Gems.txt
  • [MODIFY] src/game/items.ts —— itemBaseFromRow / affixFromRow 列映射逐列核对真实表。新增:品质等级(普通/魔法/稀有/套装/暗金/符文之语)、插槽、镶嵌、耐久、需求(力量/敏捷/等级)
  • [NEW] src/game/treasure.ts —— TreasureClassEx.txt 掉落树
  • [NEW] src/game/runeword.ts —— 符文之语

注意

物品结构的任何变动都会影响 M13(.d2s 存档互通)——.d2s 的物品段是位对齐的变长编码,
字段一旦定错,往返比对就过不去。建议在本里程碑设计数据结构时就预留 .d2s 需要的全部字段
(GUID、品质、插槽数、已镶嵌物品、耐久、个性化名称等)。

验收

  • 打死怪掉出带词缀的稀有装备,属性生效
  • 新增 scripts/verify-items.ts:全量物品表列映射断言
  • TreasureClassEx 递归树无环、各节点概率和为 1
  • 符文之语可合成且属性正确
No due date
100% Completed
#98 by troytt was closed 2026-09-18 11:36:19 +00:00 0 / 8
#96 by troytt was closed 2026-09-18 11:14:01 +00:00 0 / 7