feat(map-gen/wilderness): 第五幕血腥丘陵由静态线性条带拼装升级为动态攻防战壕阵地生成 #54

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

背景与现状

在 src/game/wilderness.ts:2487 中,stampAct5SiegeStrips 仅仅将 15 个 Strip 预设按照固定的静态顺序沿 X 轴依次排列放置(i * 16, 0)。

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

  • 第五幕血腥丘陵在原版中由 DRLGOUTSIEGE_InitAct5OutdoorLevel 进行攻防布局规划。
  • 动态生成战壕、破口栅栏、投石机高地阵地与要塞残垣,并伴随纵深推进产生地形随机变化。

差异点与缺陷表现

  • 当前 TS 的血腥丘陵结构 100% 固化,毫无随机性与攻城战的纵深感。

解决建议与改造方案

引入 Strip 预制的动态随机选择与阵地障碍物穿插逻辑,还原多变的战场地形。

## 背景与现状 在 `src/game/wilderness.ts:2487` 中,`stampAct5SiegeStrips` 仅仅将 15 个 Strip 预设按照固定的静态顺序沿 X 轴依次排列放置(`i * 16, 0`)。 ## 暗黑2原版逻辑(Oracle / Ground Truth) - 第五幕血腥丘陵在原版中由 `DRLGOUTSIEGE_InitAct5OutdoorLevel` 进行攻防布局规划。 - 动态生成战壕、破口栅栏、投石机高地阵地与要塞残垣,并伴随纵深推进产生地形随机变化。 ## 差异点与缺陷表现 - 当前 TS 的血腥丘陵结构 100% 固化,毫无随机性与攻城战的纵深感。 ## 解决建议与改造方案 引入 Strip 预制的动态随机选择与阵地障碍物穿插逻辑,还原多变的战场地形。
Author
Owner

修复完成并验证通过

  • 关联分支: fix/issue-54
  • 提交记录: 2fe5f4d
  • 核心改动:
    1. 新增 src/game/wilderness-siege.ts 实现完整的 DRLGOUTSIEGE 血腥丘陵动态攻防战壕阵地生成;
    2. 支持 15 组 Strip 预设动态随机选择与关卡变体,彻底替代静态固定条带排列;
    3. 引入战壕挖掘通道、破口木栅栏防御工事、投石机高地阵地与要塞残垣,并伴随从哈洛加斯出口(后方)到山克/亚瑞特高原入口(前线)的梯度纵深密度递增;
    4. 严格保障中央主要行军走廊(y=24)畅通无阻,移除 DRLGOUTSIEGE_InitAct5OutdoorLevel 未实现标记;
    5. 新增 tests/wilderness-siege-strips.test.ts(11/11 项单测全绿),全量 641 项测试无回归,npx tsc --noEmit 0 报错。
### 修复完成并验证通过 - **关联分支**: `fix/issue-54` - **提交记录**: `2fe5f4d` - **核心改动**: 1. 新增 `src/game/wilderness-siege.ts` 实现完整的 `DRLGOUTSIEGE` 血腥丘陵动态攻防战壕阵地生成; 2. 支持 15 组 Strip 预设动态随机选择与关卡变体,彻底替代静态固定条带排列; 3. 引入战壕挖掘通道、破口木栅栏防御工事、投石机高地阵地与要塞残垣,并伴随从哈洛加斯出口(后方)到山克/亚瑞特高原入口(前线)的梯度纵深密度递增; 4. 严格保障中央主要行军走廊(y=24)畅通无阻,移除 `DRLGOUTSIEGE_InitAct5OutdoorLevel` 未实现标记; 5. 新增 `tests/wilderness-siege-strips.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#54
No description provided.