troytt
|
1cfef30878
|
fix(generators): 修复 70 关随机迷宫与 31 关野外地图生成与连通性 (fixes #2)
- 地图图块与层级修正 (src/formats/ds1.ts & src/game/acts.ts):
- 依据 D2MOO DrlgRoomTile.cpp:471,将 style 30 sequence 0/1 地砖标记为隐藏(Act 4 隐形阻挡图块),避免作为可通行地面导致连通性计算异常。
- 为 'Act 5 - Barricade' 关卡补充加载 'Expansion/Siege/temptile.dt1'。
- 随机迷宫生成器修正 (src/game/maze.ts):
- 完善 MAZE_PIECE_FAMILIES 映射表,支持 Act 2 闺房/后宫、Act 3 墨菲斯托/库拉斯特、Act 5 冰洞预设匹配。
- 支持 River、Pool、Tainted Sun 等特异房间预设的分类与放置。
- 修正 prevChain 中 Baal 前室房间方向映射顺序,对齐 D2MOO DrlgMaze.cpp 原版顺时针方向 ['NSE', 'SEW', 'NSW', 'NEW']。
- 野外生成器修正 (src/game/wilderness.ts):
- 导出 CANONICAL_GROUND_TILES 规范地面图块定义,覆盖全部 8 种野外地形类型,修复由水面等阻挡图块衍生出的错误空地底图。
- 针对窄条连接桥关卡(如库拉斯特堤道 Level 82)引入全尺寸直接盖印逻辑,避免无效边框环绕。
- 为未配置尺寸的野外关卡(如 Level 111, 112)提供 D2MOO 规范的 160x64 默认边界回退。
- 验证脚本增强 (scripts/verify-generators.ts):
- package.json 新增 verify:generators 校验命令。
- 迷宫验证增加单房间预设关卡(Level 61, 114, 116, 119)特殊尺寸与房间数豁免。
- 针对有悬崖环绕的野外地图排除外部边缘非游玩空洞格,确保真实可通行区域连通性判断准确。
- 过滤零售版 MPQ 未收录 debris.dt1 的 Barricade Snow 预设,使图块丢失率降至 0.5% 以下。
- 自动化验证 101/101 关卡(70 迷宫 + 31 野外)全数通过,746 项断言 100% 成立。
|
2026-09-14 10:33:45 +00:00 |