fix(monsters): 修正 SuperUniques.txt 随从类名转录笔误与打包白名单脱节 #115

Closed
opened 2026-09-18 14:13:51 +00:00 by troytt · 1 comment
Owner

背景与问题描述

在 #111 全地图走查中,发现暗金怪伴随的随从怪渲染为红色缺失占位方块:

  • 典型案例:Act 2 死亡之穴(Coldworm the Burrower 钻地虫)、Act 3 崔凡克(High Council)、Act 4 混沌避难所。

根因剖析 (1.13c 对比)

  1. 手写数据转录笔误:
    在 src/game/monsters.ts:1255-1274 中,从 1.13c SuperUniques.txt 手工转录暗金怪数据时存在 10 处笔误:
    • scarab2 误写为 beetle2(钻地虫随从)
    • imp3 误写为 demonimp1
    • slinger1 误写为 spearcat1
    • 以及其他随从类名与 MonStats.txt 不匹配的错误;
      导致怪物工厂在查找随从类名时返回 undefined,触发红方块降级。
  2. 资源打包白名单脱节:
    scripts/pack-entity-assets.ts 使用了硬编码的静态白名单,未与 scene.json 中实际部署的暗金怪及其随从动态同步,导致运行时缺失部分怪兽动画图集。

修复要求

  1. 对照 1.13c MPQ 中的 SuperUniques.txt 与 MonStats.txt,彻底修正 src/game/monsters.ts 中的所有随从类名转录笔误。
  2. 支持 XX 假怪物代码平滑降级或正确关联对应模型。
  3. 确保 scripts/pack-entity-assets.ts 能够完整提取并打包所有暗金怪及合法随从的 DCC/DC6 资产。
  4. 增加测试 tests/superuniques-fidelity.test.ts,验证全 66 个暗金怪及其随从类名 100% 存在于 MonStats 中。
  5. 门禁通过:npm run typecheck、npx vitest run。

关联主 Issue: #111

## 背景与问题描述 在 #111 全地图走查中,发现暗金怪伴随的随从怪渲染为红色缺失占位方块: - 典型案例:Act 2 死亡之穴(Coldworm the Burrower 钻地虫)、Act 3 崔凡克(High Council)、Act 4 混沌避难所。 ## 根因剖析 (1.13c 对比) 1. **手写数据转录笔误**: 在 `src/game/monsters.ts:1255-1274` 中,从 1.13c `SuperUniques.txt` 手工转录暗金怪数据时存在 10 处笔误: - `scarab2` 误写为 `beetle2`(钻地虫随从) - `imp3` 误写为 `demonimp1` - `slinger1` 误写为 `spearcat1` - 以及其他随从类名与 `MonStats.txt` 不匹配的错误; 导致怪物工厂在查找随从类名时返回 undefined,触发红方块降级。 2. **资源打包白名单脱节**: `scripts/pack-entity-assets.ts` 使用了硬编码的静态白名单,未与 `scene.json` 中实际部署的暗金怪及其随从动态同步,导致运行时缺失部分怪兽动画图集。 ## 修复要求 1. 对照 1.13c MPQ 中的 `SuperUniques.txt` 与 `MonStats.txt`,彻底修正 `src/game/monsters.ts` 中的所有随从类名转录笔误。 2. 支持 `XX` 假怪物代码平滑降级或正确关联对应模型。 3. 确保 `scripts/pack-entity-assets.ts` 能够完整提取并打包所有暗金怪及合法随从的 DCC/DC6 资产。 4. 增加测试 `tests/superuniques-fidelity.test.ts`,验证全 66 个暗金怪及其随从类名 100% 存在于 `MonStats` 中。 5. 门禁通过:`npm run typecheck`、`npx vitest run`。 关联主 Issue: #111
Author
Owner

修复完成并已合并至 main

  • Commit: 111a631dc7b69624ab8732256d30aebac1fff063 (Merge: afc653d)
  • 变更摘要:
    1. 依据原版 1.13c SuperUniques.txt 规范修正随从与暗金怪类名映射(Beetleburst -> scarab2, Dark Elder -> zombie5, Bloodwitch -> pantherwoman1, Sszark -> arach4, Witch Doctor Endugu -> fetishshaman4/fetish4, Battlemaid Sarina -> corruptrogue5, Dac Farren -> imp3, Shenk -> overseer2/minion1, Frozenstein -> snowyeti4, Nihlathak -> nihlathakboss/minion6 等)。
    2. 在 scripts/pack-entity-assets.ts 中实现暗金怪随从依赖自动推导并纳入构建打包白名单。
    3. 修正 wilderness.ts 中暗金怪生成逻辑与 monsters.ts MONSTER_ART_MAP 字典,确保 65 个基准怪保留的同时暗金怪物与特殊随从完备可用。
    4. 新增单元测试 tests/superuniques-fidelity.test.ts,并通过 tests/packed-entity-art.test.ts。
  • 验证结果: npm run typecheck 0 errors,全量 vitest run 测试通过。
### 修复完成并已合并至 main - **Commit**: `111a631dc7b69624ab8732256d30aebac1fff063` (Merge: `afc653d`) - **变更摘要**: 1. 依据原版 1.13c `SuperUniques.txt` 规范修正随从与暗金怪类名映射(Beetleburst -> scarab2, Dark Elder -> zombie5, Bloodwitch -> pantherwoman1, Sszark -> arach4, Witch Doctor Endugu -> fetishshaman4/fetish4, Battlemaid Sarina -> corruptrogue5, Dac Farren -> imp3, Shenk -> overseer2/minion1, Frozenstein -> snowyeti4, Nihlathak -> nihlathakboss/minion6 等)。 2. 在 `scripts/pack-entity-assets.ts` 中实现暗金怪随从依赖自动推导并纳入构建打包白名单。 3. 修正 `wilderness.ts` 中暗金怪生成逻辑与 `monsters.ts` `MONSTER_ART_MAP` 字典,确保 65 个基准怪保留的同时暗金怪物与特殊随从完备可用。 4. 新增单元测试 `tests/superuniques-fidelity.test.ts`,并通过 `tests/packed-entity-art.test.ts`。 - **验证结果**: `npm run typecheck` 0 errors,全量 `vitest run` 测试通过。
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#115
No description provided.