AutoMagic.txt 与 StaffMods 未接入掉落链 #129
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题描述 (Issue B1 & B6)
AutoMagic.txt处于孤儿状态 (B1):src/game/automagic.ts(445 行) 已经完整实现了AutoMagic.txt的解析与按autoModCode(base.autoPrefix/ group) +alvl筛选、按frequency加权抽取并 roll 具体数值的算法(loadAutoMagic,rollAutoMagic)。src/game/drop-pipeline.ts从未导入或调用automagic.ts,导致圣骑士专用盾(pala/ashd四抗/ED+AR)、女巫法珠(orb生命/法力)、亚玛逊弓/标枪/长矛(abow/ajav/aspe+1..3 弓/标枪技能)在掉落时完全缺失 AutoMod 固有词缀。StaffMods缺失 (B6):ItemTypes.txt的StaffMods列(如staf/orb→'sor',wand/head→'nec',scep→'pal',phlm→'bar',pelt→'dru',h2h2→'ass')已经在item-types.ts中解析为def.staffMods,但掉落生成时未按 1.13c 规则(D2Common!ITEMMOD_ApplyStaffMods,基于ilvl分层 1..11, 12..18, 19..24, 25..36, 37+ 抽取 0..3 个单技能+1..+3 to [Skill] ([Class] Only))注入skill属性。解决方案
DropTables(src/game/drop-pipeline.ts) 中新增readonly autoMagic?: AutoMagicTable,并在loadDropTables中调用loadAutoMagic(archives)加载。src/game/drop-pipeline.ts新增rollStaffMods(base, ilvl, itemTypes, rng)实现 1.13c StaffMods 生成(按staffMods职业代码与ilvl阶梯抽取最多 3 个不重复的职业技能,+1..+3skill)。executeDropPipeline与createDroppedItem中对非 Unique/Set 的装备(Normal / Superior / Low / Magic / Rare)注入autoMagic词缀与staffMods单技能加成,写入rolledProps与stats。Fixed in commit
6d2de24(merged into main). Verified with tests/parity-1.13c.test.ts (14 passed), tests/automagic.test.ts (15 passed), and tests/drop-pipeline.test.ts (19 passed).