feat(map-gen/wilderness): 完善非第一幕野外传送点与神殿的主题聚类与离散分布规则 #56

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

背景与现状

当前 src/game/wilderness.ts:3715-3716 中的 spawnAct12Waypoint 与 spawnAct12Shrines 高度依赖第一幕的泥土道路边缘扫描(isNearDirtRoad)。

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

  • 原版室外神殿与传送点的生成基于 Levels.txt.SubShrine 与 LvlSub.txt 的主题聚类规则,能够独立于道路自然散落在营地废墟、石阵周围或荒野腹地。

差异点与缺陷表现

  • 在没有道路的非第一幕野外地图中,神殿与传送点生成规则不完备或极度空旷。

解决建议与改造方案

解耦对泥土路的强依赖,基于开阔地块与聚类密度算法支持全幕室外神殿与传送点的合理散落。

## 背景与现状 当前 `src/game/wilderness.ts:3715-3716` 中的 `spawnAct12Waypoint` 与 `spawnAct12Shrines` 高度依赖第一幕的泥土道路边缘扫描(`isNearDirtRoad`)。 ## 暗黑2原版逻辑(Oracle / Ground Truth) - 原版室外神殿与传送点的生成基于 `Levels.txt.SubShrine` 与 `LvlSub.txt` 的主题聚类规则,能够独立于道路自然散落在营地废墟、石阵周围或荒野腹地。 ## 差异点与缺陷表现 - 在没有道路的非第一幕野外地图中,神殿与传送点生成规则不完备或极度空旷。 ## 解决建议与改造方案 解耦对泥土路的强依赖,基于开阔地块与聚类密度算法支持全幕室外神殿与传送点的合理散落。
Author
Owner

修复完成并验证通过

  • 关联分支: fix/issue-56
  • 提交记录: 46b7166
  • 核心改动:
    1. 解耦传送点(Waypoint)与神殿(Shrine)生成对泥土道路边缘的硬性依赖;
    2. 扩展 OUTDOOR_WAYPOINT_LEVELS 支持第一幕至第五幕全部野外关卡,配置各幕专属传送点与神殿、水井、伴生宝箱与可破坏物体 ID;
    3. 引入基于开阔腹地、地标预设(绿洲、废墟、丛林空地)以及中心区域优先级的候选点采样逻辑,确保无道路荒野场景正常生成传送点;
    4. 实现神殿离散间距约束(>= 7~10 瓦片)与主题伴生物聚类分布(2~4 瓦片内生成伴生宝箱或营地杂物);
    5. 新增 tests/wilderness-waypoints-shrines.test.ts(11/11 项单测全绿),全量 641 项测试无回归,npx tsc --noEmit 0 报错。
### 修复完成并验证通过 - **关联分支**: `fix/issue-56` - **提交记录**: `46b7166` - **核心改动**: 1. 解耦传送点(Waypoint)与神殿(Shrine)生成对泥土道路边缘的硬性依赖; 2. 扩展 `OUTDOOR_WAYPOINT_LEVELS` 支持第一幕至第五幕全部野外关卡,配置各幕专属传送点与神殿、水井、伴生宝箱与可破坏物体 ID; 3. 引入基于开阔腹地、地标预设(绿洲、废墟、丛林空地)以及中心区域优先级的候选点采样逻辑,确保无道路荒野场景正常生成传送点; 4. 实现神殿离散间距约束(>= 7~10 瓦片)与主题伴生物聚类分布(2~4 瓦片内生成伴生宝箱或营地杂物); 5. 新增 `tests/wilderness-waypoints-shrines.test.ts`(11/11 项单测全绿),全量 641 项测试无回归,`npx tsc --noEmit` 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#56
No description provided.