feat(map-gen/maze): 实现地下城动态物件(神殿、金宝箱、武器/防具架、可破坏容器)生成流水线 #50

Closed
opened 2026-09-17 05:20:40 +00:00 by troytt · 1 comment
Owner

背景与现状

当前 src/game/maze.ts 生成的迷宫场景中,所有的物体(objects)仅仅是将 DS1 预制块自带的静态物体原样拷贝到最终地图上。

暗黑2原版逻辑(Oracle / Ground Truth)

  • 暗黑2在迷宫拓扑完成后,会根据 Levels.txt 中的 MonDen、ObjGroup.txt 与 Objects.txt,在地下城各房间死角、走廊墙边动态播种可交互物件:
    • 神殿(Shrines);
    • 武器架与防具架(Weapon/Armor Racks);
    • 锁定的金宝箱(Locked / Super Chests);
    • 棺材、骨灰罐、木桶等各类可破坏容器。

差异点与缺陷表现

  • 当前迷宫内部极其空旷,除 DS1 原生自带的少量装饰外,缺少原版丰富的寻宝探索元素。

解决建议与改造方案

  1. 建立迷宫物件播种 Pass,识别死胡同房间与墙角。
  2. 依据 ObjGroup.txt 与关卡规则动态播种神殿、武器/防具架与宝箱物件。
## 背景与现状 当前 `src/game/maze.ts` 生成的迷宫场景中,所有的物体(objects)仅仅是将 DS1 预制块自带的静态物体原样拷贝到最终地图上。 ## 暗黑2原版逻辑(Oracle / Ground Truth) - 暗黑2在迷宫拓扑完成后,会根据 `Levels.txt` 中的 `MonDen`、`ObjGroup.txt` 与 `Objects.txt`,在地下城各房间死角、走廊墙边动态播种可交互物件: - 神殿(Shrines); - 武器架与防具架(Weapon/Armor Racks); - 锁定的金宝箱(Locked / Super Chests); - 棺材、骨灰罐、木桶等各类可破坏容器。 ## 差异点与缺陷表现 - 当前迷宫内部极其空旷,除 DS1 原生自带的少量装饰外,缺少原版丰富的寻宝探索元素。 ## 解决建议与改造方案 1. 建立迷宫物件播种 Pass,识别死胡同房间与墙角。 2. 依据 `ObjGroup.txt` 与关卡规则动态播种神殿、武器/防具架与宝箱物件。
Author
Owner

修复完成并验证通过

  • 关联分支: fix/issue-50
  • 提交记录: ffc2b29
  • 核心改动:
    1. 新增 src/game/maze-objects.ts 动态物件生成流水线;
    2. 支持神殿、死胡同金宝箱、靠墙武器/防具架以及可破坏木桶等动态散落;
    3. 新增 tests/maze-objects.test.ts(9/9 单测通过),全量 639 项测试通过,tsc 0 报错。
### 修复完成并验证通过 - **关联分支**: `fix/issue-50` - **提交记录**: `ffc2b29` - **核心改动**: 1. 新增 `src/game/maze-objects.ts` 动态物件生成流水线; 2. 支持神殿、死胡同金宝箱、靠墙武器/防具架以及可破坏木桶等动态散落; 3. 新增 `tests/maze-objects.test.ts`(9/9 单测通过),全量 639 项测试通过,`tsc` 0 报错。
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#50
No description provided.