feat(map-gen/wilderness): 野外暗金怪与特殊 NPC 由硬编码匹配重构为基于 SuperUniques.txt 的数据驱动生成 #57
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景与现状
当前
src/game/wilderness.ts:3180中的spawnLandmarkEntities采用硬编码方式仅手写了第一幕的 5 处地标实体(卡兰尼休、毕须博须、血鸟、树头木拳、女武神弗拉维)。暗黑2原版逻辑(Oracle / Ground Truth)
SuperUniques.txt与MonPreset.txt表驱动在对应地貌预设周围精准生成。差异点与缺陷表现
解决建议与改造方案
重构地标生成逻辑,建立基于
SuperUniques.txt与场景预设关联的通用实体生成流水线。修复完成并验证通过
fix/issue-5792d6731daee8a3a7ee61ef34bbd8e4ce371d4d1fLandmarkEntityDef与CANONICAL_LANDMARK_ENTITIES,完整覆盖 Act 1~5 全野外 25 个地标实体(23 个 SuperUniques 暗金怪 + 2 个守卫 NPC: Flavie 与 Hadriel);buildLandmarkEntitiesFromTables,动态解析SuperUniques.txt与MonPreset.txt(DS1 物件 ID、词缀映射、随从数量、名称键等);spawnLandmarkEntities,将实体锚定至预设包围盒中心或相对坐标,正确作为 DS1 Type 1 实体写入canvas.objects(按子瓦片坐标tileX*5+2, tileY*5+2)及stats.landmarkEntities;CANONICAL_SUPER_UNIQUES_BY_LEVEL与planLevelMonsters支持同关卡多 Boss(如 Level 110 血腥丘陵同时生成 Dac Farren 与 Shenk the Overseer);tests/wilderness-superuniques.test.ts(包含覆盖 1~5 幕、动态表覆盖、多 Boss 生成等单测),更新tests/wilderness-features.test.ts,全量 34 个测试文件共 642 个单测 100% 通过,npx tsc --noEmit0 报错。