全武器逐定义就绪度审计与执行优先级
本批调整
新增可重复运行的 CLI 审计,不再只在一行日志里记录“1,053/1,419”。每个原武器定义都列出当前构造状态、实际首个阻塞、原索引属性及独立冷缓存构造结果。
本批没有放宽处理器保护,也没有把更多武器标成已经完成。新增的是权威缺口清单及回归门,用于把后续工作直接落到阻止武器完成的功能上。
命令:
dotnet run --project core_sim.cli -- weapon-readiness-audit输出 build/weapon_readiness.json。
当前实际结果
| 状态 | 数量 |
|---|---|
| 原 WEAPON 定义 | 1,419 |
| 可通过原构造路径 | 1,053 |
| 被处理器/上下文门阻挡 | 319 |
| 缺基础定义或创建等级 | 47 |
| 已准入但实际冷构造失败 | 0 |
“可构造”不等于战斗、画面或完整世界一致;报告明确不提供 all_weapons_complete 标志。
与既有共享 warm cache 普查不同,本审计为每个定义重新建立空词缀模板缓存及 seed=23 的 RNG,实际调用 MaterializeNative,再校验成长与 literal 来源。不会因为较早的武器已经热过模板而跳过后续定义的冷构造路径。
报告记录全部输入文件和相关构造代码 SHA256。输入或代码改变后,回归要求重新生成报告。
首个实际阻塞分布
| 首个阻塞 | 定义数 | 含义 |
|---|---|---|
| TYPE201 | 88 | CAST SKILL ON STRIKE FROM TARGET |
| TYPE52 | 53 | TRANSFER DAMAGE,当前样本主要为持续伤害 |
| TYPE107 | 25 | BURN |
| TYPE204 | 23 | CAST SKILL ON KILL AT TARGET |
| TYPE108 | 22 | POISON |
| NG+ 等级上下文 | 22 | 原等级匹配上下文尚未接入 |
| TYPE109 | 21 | SHOCK |
| TYPE79 | 18 | FLEE EFFECT |
| TYPE106 | 16 | FREEZE |
| TYPE152 | 11 | CAST SKILL ON STRIKE |
| TYPE74 | 9 | CAST SKILL |
| TYPE80 | 5 | TURN ALIGNMENT |
| TYPE60 | 4 | MISSILE REFLECT |
| TYPE177 | 1 | EXPLODE ON DEATH |
| TYPE183 | 1 | CAST SKILL ON DEATH FROM EFFECT OWNER |
以上合计 319。每行是当前准入器返回的第一个真实阻塞,不代表该武器只有这一处缺口。实现 TYPE52 后不能直接宣称新增 53 件全部完成,必须重新审计并运行各自实际构造/战斗。
关键例子:
- GREATAXE_U02:UNIQUE_TL2_DAMAGEOVERTIME2 → TYPE52。
- GREATAXE_U04:UNIQUE_PROC_BLOODWASH_10 → TYPE201。
- GREATAXE_U07:UNIQUE_DIRECT_BURN_PERCENT_05 → TYPE107。
47 个基础定义缺口不能混同
逐条与原 item_index 对照:
- 46 条不在生成目录内,多数为 BASE 原型/模板。
- 唯一仍在索引生成目录、但缺基础数据的条目是 STAVES/STAFF_N00(Inert Staff),原 RARITY=0,且文件及 BASEFILE 链没有 LEVEL。
- in_spawn_catalog 只说明索引收录,不证明满足实际随机生成条件或正常可获得。
这组 47 条与旧视觉审计里的缺 mesh 条目不是同一个集合,不能将 MON_HAMMER_DWARF01 的模型缺失问题错移到这里。
所有条目仍保留在 1,419 全清单中,没有靠删模板或禁生成记录制造“全覆盖”。最终验收需区分可实例化武器、需要上下文的条目、模板和明确的原数据边界。
后续顺序
接下来优先执行:
- TYPE52 的目标挂载、持续伤害结算及到期/叠加语义,连同存档重放和真实 HIT 接线。
- 依赖持续效果的 FREEZE/BURN/POISON/SHOCK,按原类型各自的挂载/触发和词缀路径实现。
- 大批攻击型 proc(201/204/152/74 等),复用已有概率、注册、目标归属及几何内核,补缺的技能执行和真实世界输入。
- NG+ 上下文、FLEE/TURN ALIGNMENT、反射、尸体/死亡触发和剩余特殊条目。
- 原模型/声音/粒子及男女角色的逐武器运行验收。
资源与世界底层仍然需要完成,但以实际武器缺口为依据安排,不默认把每个原 Ogre 内部实现继续展开成下一批唯一目标。
持续伤害取证入口已从旧 Wiki 与 IDA定位:
- 562590 挂载分派中的 TYPE52 入口 563D52。
- 7AF0B0/7B21E0 的目标复制逻辑已经在 TransferEffects 中实现,不能重新发明随机次数。
- 566DD0 的 52/7/124 汇流只设置一个标记,不是实际 DoT 扣血公式;不能把那里当作伤害 tick 实现。
- 元素类型在 tick 中触发对应状态词缀,不可简单等同于固定每秒伤害。
这些只作为下一项实现的已核实导航,不代表本批已完成 DoT 或元素状态。
本批资源清理核查
同时补读了 5757F0 的成功与异常清理证据:
- 成功路径:填充顶点/面、更新 bounds/法线、释放 Block、倒序析构名称数组、释放数组存储,然后通过临时 ResourcePtr 移除并归还 mesh 引用。
- MSVC unwind state 7 清理名称数组,state 6 清理 MeshPtr,state 9 清理临时 ResourcePtr。
- Block 的显式 free 在成功路径;不能仅凭名称数组有 unwind 就假定所有原始缓冲区异常时也被相同释放。
本批没有实现或宣称验证完这整条资源租约流程,仍保留前一篇的边界。原数据几何后端并不拥有真实 Ogre MeshPtr,正式实例与资源后端的完整验收仍要完成。
验证与文件
- core_sim.cli/WeaponReadinessAudit.cs。
- core_sim.cli/Program.cs 新增 weapon-readiness-audit。
- tests/test_weapon_readiness_audit.py。
- build/weapon_readiness.json。
- build/weapon_readiness_python.log、weapon_readiness_godot.log。
逐武器审计完成,1,419 条无遗漏;所有通过准入门的定义均实际调用了构造器。6 项新审计回归及相关全套回归共 282 项通过。Godot C# 构建零警告、零错误;原核心断言数量仍为 1,451,本批没有增加战斗支持门。
main 原地工作,未提交、未 attach 原游戏、未改正式场景或 UI,快照 v29 未改。默认存档 SHA256 保持: 9840fe858b6e311c73f8c2d4ed49912d59d71365f6278392811730e012d32a7f。
全武器目标继续,构造报告和全部测试绿灯均不替代最终实机/战斗/视觉验收。