diablo2-web/src
troytt ae2672dd9e fix(wilderness): 让遥测数据反映真实计数
Issue #58 第 6 条列出的 4 处伪造遥测(第 5 处 unimplementedPasses
已在 5b3a9db 修复)。这些数字是 verify:generators 与 HUD 判断
"这一关是否生成成功"的唯一依据,而它们是字面常量或恒等式:

- wilderness-jungles.ts: junglePathCells 恒为 100、riverBridges 恒
  至少为 2。改为扫描画布实测:新增 measureJungleTopography(),按
  宏格网把已绘制的地板分成"丛林地面"与"河道水面"(桥面板属于桥,
  不计入两者);riverBridges = 实际摆放的桥 + 真正画出来的定制
  跨河桥(画布太短时第二条桥画不出来,就不再算数)。并补一条
  notes 说明实测值。
- wilderness-acts.ts: 第四幕 104/106 的"玄武岩高原"分支只递增
  plateauCells 却一格都不画。改为不再把踏勘当成果,计为候选点并
  在 notes 里明说该 pass 未实现。
- wilderness.ts:5049: 特殊预置返回路径恒报 subTheme: 0,改为与主
  路径一致的 clamp(floor(request.subTheme), 0, 4)。
- wilderness.ts applySubstitutions: BordType 0 的"整关仅一个"预算
  从 Infinity 起算,min(1, Infinity) 恒为 1、减法也永远减不动,
  实际退化成"每行一个"。预算改为从 1 起算,上限真正生效。

新增 tests/wilderness-telemetry.test.ts(8 个用例)。在改动前
其中 6 个失败,改动后全部通过。

TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
2026-09-17 11:55:55 +00:00
..
audio feat(mpq): 实现 ADPCM 与 Huffman 音频解码并接入 Web Audio (fixes #13) 2026-09-14 12:30:21 +00:00
formats feat(renderer/map): support animated tiles loop playback (fixes #43) 2026-09-17 06:34:02 +00:00
game fix(wilderness): 让遥测数据反映真实计数 2026-09-17 11:55:55 +00:00
mpq fix(formats): 替换原始缓冲区的未检查读取 2026-09-14 13:19:01 +00:00
net refactor(lockstep): 按项目规范彻底移除 any 约束逃逸并优化哈希分配性能 (refs #7) 2026-09-14 13:05:18 +00:00
render Merge branch 'fix/issue-20' 2026-09-17 09:09:01 +00:00
scene fix(scene): 删除 DEMO_MONSTERS 假刷怪路径 2026-09-17 11:45:46 +00:00
sim feat(sim/loop): decouple simulation from rAF with independent timer and separate TPS/FPS metrics (fixes #19) 2026-09-17 08:12:57 +00:00
ui feat(world): 全局世界连通、关卡无缝切换、传送点、传送门与小地图 (fixes #23) 2026-09-16 23:39:33 +00:00
arena.ts feat(combat): implement Diablo II 1.10+ combat math & PvE depth mechanics (fixes #24, fixes #39) 2026-09-17 02:52:00 +00:00
main.ts 初始提交:从零实现的暗黑破坏神 II WebGL2 引擎(TypeScript + Vite,零运行时依赖) 2026-09-13 18:10:28 +08:00
walk.ts perf(render): 视口剔除 + 单批次合图 + 零分配顶点写入 (refs #16) 2026-09-15 01:30:39 +00:00