[迷宫] 123 Halls of Pain var3 小站退回 placed #501

Open
opened 2026-09-27 15:29:42 +00:00 by troytt · 0 comments
Owner

现象

tests/waypoint-fidelity-regression.test.ts(#409)在新烘焙的包上失败:

123-act-5-temple-2-var3: waypoint source must be 'object': expected 'placed' to be 'object'

关卡 123 是 Halls of Pain(Levels.txt LevelName Halls of Death's Calling,第五幕迷宫)。旧迷宫生成器(src/game/maze.ts)为这个副本(var3)生成的对象里没有小站:场景只有 263 个对象,stats.waypoints 为空,buildSceneLinks 只能退回 findWaypointSpot,于是 source: 'placed',位置 (196,196)。var1、var2 正常(source: 'object')。

不是新问题

  • 用 1c738c5 的代码(不含 #455 的改动;之后的 bad6806 只改了 act-scene / input,不影响烘焙)完整烘焙一次(pack-act-assets.ts),123-var3 同样是 placed / 263 个对象。那次烘焙里还有第二个 placed:4-act-1-wilderness-3-var3(石块旷野),它已由 #455 的第一幕 DRLG 移植(b6fc251)修好(小站来自 DRLGOUTDOORS_SpawnAct12Waypoint)。
  • 换包之前的 samples/d2-packs 在 123-var3 上是 object(264 个对象,含 Waypoint 5A),但那个包的场景文件和 .worktrees/automap-113c/samples/d2-packs 是硬链接,今天被 automap 分支的烘焙(改过的 pack-act-assets.ts)原地重写过,不代表 main 的代码。

建议

查清迷宫生成器为什么在这个种子下丢掉了小站预设房间(第五幕迷宫的特殊预设 / 小站房间选取),修正后重新烘焙。长期看,第五幕迷宫也应改用 D2MOO DrlgMaze.cpp 的 1:1 移植(第一幕迷宫已移植并通过 oracle 比对,见 src/game/drlg/drlg-maze.ts)。

验收

npx vitest run tests/waypoint-fidelity-regression.test.ts 在全量重新烘焙的包上通过(39 个小站关卡、109 个副本全部 source: 'object')。

## 现象 `tests/waypoint-fidelity-regression.test.ts`(#409)在新烘焙的包上失败: ``` 123-act-5-temple-2-var3: waypoint source must be 'object': expected 'placed' to be 'object' ``` 关卡 123 是 Halls of Pain(Levels.txt `LevelName` Halls of Death's Calling,第五幕迷宫)。旧迷宫生成器(`src/game/maze.ts`)为这个副本(var3)生成的对象里没有小站:场景只有 263 个对象,`stats.waypoints` 为空,`buildSceneLinks` 只能退回 `findWaypointSpot`,于是 `source: 'placed'`,位置 (196,196)。var1、var2 正常(`source: 'object'`)。 ## 不是新问题 - 用 `1c738c5` 的代码(不含 #455 的改动;之后的 `bad6806` 只改了 act-scene / input,不影响烘焙)完整烘焙一次(`pack-act-assets.ts`),123-var3 同样是 `placed` / 263 个对象。那次烘焙里还有第二个 `placed`:4-act-1-wilderness-3-var3(石块旷野),它已由 #455 的第一幕 DRLG 移植(b6fc251)修好(小站来自 `DRLGOUTDOORS_SpawnAct12Waypoint`)。 - 换包之前的 `samples/d2-packs` 在 123-var3 上是 `object`(264 个对象,含 Waypoint 5A),但那个包的场景文件和 `.worktrees/automap-113c/samples/d2-packs` 是硬链接,今天被 automap 分支的烘焙(改过的 `pack-act-assets.ts`)原地重写过,不代表 main 的代码。 ## 建议 查清迷宫生成器为什么在这个种子下丢掉了小站预设房间(第五幕迷宫的特殊预设 / 小站房间选取),修正后重新烘焙。长期看,第五幕迷宫也应改用 D2MOO `DrlgMaze.cpp` 的 1:1 移植(第一幕迷宫已移植并通过 oracle 比对,见 `src/game/drlg/drlg-maze.ts`)。 ## 验收 `npx vitest run tests/waypoint-fidelity-regression.test.ts` 在全量重新烘焙的包上通过(39 个小站关卡、109 个副本全部 `source: 'object'`)。
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#501
No description provided.