troytt
|
d393a48043
|
feat(drop): embed MonStats and SuperUniques with 1.13c multi-diff TC parity (Fixes #410, #411)
- Pack and embed authentic 1.13c MonStats drop columns (734 kinds) with noRatio support
- Embed SuperUniques multi-difficulty TCs (66 unique bosses) and fail-fast loading
- Fix SuperUnique minion TC3 inheritance and minion monsterType identification
- Add adversarial drop parity audit and superunique minion test suites
- Update D2MOO oracle seed generator and Paladin skill tree parity
|
2026-09-25 13:44:35 +00:00 |
troytt
|
b51d839d8c
|
feat(lighting): implement authentic Diablo II v1.13c Glide dynamic lighting system
- P0 Data Contract Fixes:
* Fix missile additive blending to use authentic 1.13c Missiles.txt trans === 1
* Strip developmental || 255 fallback from color channels to preserve authentic 0 values
* Add full 136-level lighting metadata from Levels.txt in levels-meta.ts
* Wire MonStats2 and Overlay lighting in data-registry.ts
- P1 Reverse Engineering & Math Specification:
* Reverse engineer D2Client.dll (dLightMap.c) and D2Common.dll (D2Environment.cpp)
* Implement Alpha-Max-Plus-Beta-Min fast Euclidean distance approximation
* Implement 16.16 fixed-point linear falloff and obstacle attenuation
* Implement intensity-weighted color blending with reciprocal lookup table
- P1 Core Modules:
* LightGrid: 48x48 cell dynamic lightmap with sub-tile bilinear interpolation and RGBA8 export
* Environment: 25Hz day/night clock, outdoor solar sine curve, Act IV targets, indoor static levels
- P1 Shader & Renderer Integration:
* Maintain strict 10-float vertex stride (FLOATS_PER_VERTEX = 10)
* Transform screen coordinates to sub-tiles in vertex shader for v_lightUv
* Glide diffuse modulation in fragment shader with additive blend bypass
* Lazy 48x48 lightmap texture allocation ensuring zero overhead for unlit contexts
* Single-pass draw call batching maintained (drawCalls === 1)
- P1 Scene Integration & Verification:
* Wire LightGrid and Environment into act-scene.ts
* Add player torch with subtle flicker, missile lights, explosion flashes, and additive objects
* Unshaded minimap overlay by resetting lighting prior to minimap.draw
* Add comprehensive test suites: data-contract-lighting, light-grid, scene-lighting
|
2026-09-24 08:02:29 +00:00 |
troytt
|
6f9b2e7fb1
|
docs(skills): add frozen orb skill development guide
|
2026-09-23 10:33:46 +00:00 |
troytt
|
c814376e8a
|
fix(ground-items): authentic ground item icon sprites and eliminate residual white dot
|
2026-09-23 05:48:03 +00:00 |
troytt
|
9896ada25e
|
docs(audit): 完成 DRLGOUTDESR 与 DRLGOUTJUNG 子系统对照审计与源码溯源标注 (Issue #86)
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 11:17:51 +00:00 |
troytt
|
24fbc3b5c1
|
feat(items): 冻结物品数据结构与 .d2s 位对齐规格预留 (Issue #88)
|
2026-09-18 11:12:17 +00:00 |
troytt
|
374bf2fff6
|
docs: 记录本机原版 MPQ / DLL 的持久存放位置与 /tmp 丢失教训
把原版数据的权威路径固定为 /usr/local/google/home/taodao/d2-data,
由各工作树的 samples/d2 软链引用,避免十几个 worktree 各存一份 1.9 GB。
同时记下 2026-09-16 那次事故:数据原先放在 tmpfs 的 /tmp 下,机器重启后
被清空,samples/d2 变死链,角色与怪物立绘全部退化为占位方块。
顺带留档 22 个原版 DLL 的逆向参考价值,其中 D2Common.dll(DRLG 地图生成)
与 D2Game.dll(怪物惰性填充 / 视距休眠唤醒)是后续修野外悬崖拼接和接入
流式刷怪时的对照基准。
|
2026-09-17 10:51:10 +00:00 |
troytt
|
4294a16a48
|
fix(monsters): 按 d2mods.info 官方规范修正 MonLvl 与 MonStats 等级/半径/稀有度逻辑
- 依据 KB 354: 读取 MonLvl.txt 单机专属 'L-' 列,确保单机模式数值准确
- 依据 KB 360: 实现两分支 monsterLevelFor 等级判定(普通难度与 Boss 维持自身等级,噩梦/地狱普通怪取区域等级)
- 依据 KB 360: aidist 为空或 0 时回退至默认 35 格 (560px 一屏距离)
- 依据 KB 360: 增加 sparsePopulate 稀有生成概率属性并在选怪时过滤
- 全量下载并整理 d2mods 官方 KB 120 篇技术文档至 docs/d2kb/ 并附索引
- 验证: 51/51 unit tests passed, 65/65 verify-monsters checks passed
|
2026-09-15 08:57:15 +00:00 |