troytt
|
111a631dc7
|
fix(monsters): 修正 SuperUniques.txt 随从类名转录笔误与打包白名单脱节 (Issue #115)
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 14:58:59 +00:00 |
troytt
|
370dcc05b1
|
feat(items): 用 TC 树替换 rollDrop 并彻底删除 demo 物品数据 (Issue #107)
|
2026-09-18 12:54:50 +00:00 |
troytt
|
064e956de6
|
feat(items): 用 TC 树替换 rollDrop 并彻底删除 demo 物品数据 (Issue #107)
|
2026-09-18 12:54:21 +00:00 |
troytt
|
a0a20fb06b
|
test(items): 重写 scripts/verify-items.ts 全量真实数据与 TC 不变量断言 (Issue #109)
|
2026-09-18 12:26:54 +00:00 |
troytt
|
93874f4e6c
|
test(items): 重写 scripts/verify-items.ts 全量真实数据与 TC 不变量断言 (Issue #109)
|
2026-09-18 12:26:24 +00:00 |
troytt
|
9103ee3b29
|
feat(items): 新增掉落模拟器与概率表网页 loot.html (Issue #110)
|
2026-09-18 12:21:13 +00:00 |
troytt
|
6a85c96a5b
|
feat(items): 新增掉落模拟器与概率表网页 loot.html (Issue #110)
|
2026-09-18 12:20:28 +00:00 |
troytt
|
27049a4dac
|
fix(scene): 优化 Live 模式请求非预设关卡时的诊断报错信息
当用户在 ?live=1 下请求旷野或迷宫关卡(如冰冷之原 Level 3)时,明确提示该关卡无单体 LvlPrest 预设,引导切换至资源包 (Pack) 模式浏览。
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 12:16:34 +00:00 |
troytt
|
637854e415
|
chore: 移除 index.html、net.html、walk.html 历史原型入口并优化根路径路由
- 删除 index.html (M0 资源检视器)、walk.html (M1 原型)、net.html (M5 联机原型)
- 保留 acts.html (完整暗黑2真地图漫步与全部玩法) 与 arena.html (战斗数值测试竞技场)
- 更新 vite.config.ts 的 rollupOptions 输入仅保留 acts 与 arena
- 配置 dev server 与打包产物根路径 (/) 自动跳转至 /acts.html
- 清理 arena.html 中的历史 index.html 链接
- 同步更新 README.md 与 ROADMAP.md 中的页面索引
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 12:04:07 +00:00 |
troytt
|
acd027bd38
|
feat(items): 实现物品名本地化三层链与中英文 fallback (Issue #108)
|
2026-09-18 12:01:36 +00:00 |
troytt
|
399aed7d95
|
feat(items): 实现物品名本地化三层链与中英文 fallback (Issue #108)
|
2026-09-18 12:00:46 +00:00 |
troytt
|
33ce4e79b8
|
feat(items): 实现符文之语 Runes.txt 与镶嵌装配 (Issue #105)
|
2026-09-18 11:55:36 +00:00 |
troytt
|
3cdf9dc8fc
|
feat(items): 实现符文之语 Runes.txt 与镶嵌装配 (Issue #105)
|
2026-09-18 11:55:12 +00:00 |
troytt
|
b576f634be
|
feat(items): 实现 TreasureClassEx 展开算法 (Issue #101)
|
2026-09-18 11:50:29 +00:00 |
troytt
|
bc05af8baa
|
feat(items): 实现 TreasureClassEx 展开算法 (Issue #101)
|
2026-09-18 11:49:45 +00:00 |
troytt
|
8b61ed059f
|
feat(items): 实现宝石与符文镶嵌属性 Gems.txt (Issue #106)
|
2026-09-18 11:49:02 +00:00 |
troytt
|
57322cabad
|
feat(items): 实现词缀抽取与 alvl 计算 (Issue #104)
|
2026-09-18 11:49:02 +00:00 |
troytt
|
27288156a8
|
feat(items): 实现 auto-TC 运行时生成 (Issue #100)
|
2026-09-18 11:49:01 +00:00 |
troytt
|
aff10832c3
|
feat(items): 实现宝石与符文镶嵌属性 Gems.txt (Issue #106)
|
2026-09-18 11:48:37 +00:00 |
troytt
|
390816c4cc
|
feat(items): 实现词缀抽取与 alvl 计算 (Issue #104)
|
2026-09-18 11:48:25 +00:00 |
troytt
|
ce07af1b9a
|
feat(items): 实现 auto-TC 运行时生成 (Issue #100)
|
2026-09-18 11:47:34 +00:00 |
troytt
|
6754df22eb
|
feat(items): 实现 ItemRatio 品质判定 (Issue #102)
|
2026-09-18 11:47:25 +00:00 |
troytt
|
f0100b6374
|
feat(items): 实现 exceptional / elite 基底升级 (Issue #103)
|
2026-09-18 11:46:45 +00:00 |
troytt
|
6991ffa249
|
feat(items): 实现 ItemRatio 品质判定 (Issue #102)
|
2026-09-18 11:46:42 +00:00 |
troytt
|
94be8ceb87
|
feat(items): 实现 exceptional / elite 基底升级 (Issue #103)
|
2026-09-18 11:46:21 +00:00 |
troytt
|
ca3512f195
|
feat(wilderness): 还原边界顶点链表与格子级土路算法替换 Catmull-Rom 样条 (Issue #82)
- 实现 DRLGVER_CreateVertices (D2MOO DrlgDrlgVer.cpp:15-226):
* 构建关卡边界矩形封闭双向循环链表 (顺时针 V0(0,0), V1(w,0), V2(w,h), V3(0,h))
* 对边界连接/门/预置插入 1-2 个顶点 (支持 span [v15, v16])
* 设置标识: dwFlags |= 1 (连接), 预置房 dwFlags |= 2
* 采用相对坐标 (x - originX, y - originY)
* 消耗 0 次随机数 rolls
* 从 UNIMPLEMENTED_PASSES 移除 DRLGVER_CreateVertices
- 实现 DRLGOUTDOORS_CalculatePathCoordinates (DrlgOutdoors.cpp:1139-1168):
* 边界顶点 8 格吸附 (ALTDIR_WEST: +11, ALTDIR_NORTH: +11, ALTDIR_EAST: -5, ALTDIR_SOUTH: -5)
* Math.trunc 保持 C 整数截断一致性
* 兼容 (pLevel, pVertex1, pVertex2) 与 (vertex, origin) 调用签名
- 实现 DRLGOUTDOORS_CalculateHubCoordinates (DrlgOutdoors.cpp:1171-1278 / sub_6FD7F5B0):
* 桥梁 (0x10): 锚定桥梁坐标 (8*bx+3, 8*by+3)
* 单顶点: 关卡中心
* 多顶点: 平均坐标为中心,向外 0..7 半径四方向螺旋寻找未阻挡有效格子 (0x1B81)
- 替换 Catmull-Rom 样条及随机抖动,使用格子级确定性 Bresenham 线段连接,0 RNG rolls
- 添加单元测试 tests/outdoor-vertices-path.test.ts 覆盖全部算法特性
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 11:37:20 +00:00 |
troytt
|
6ead63c6c5
|
feat(items): 加载 SetItems.txt 与 Sets.txt (Issue #98)
|
2026-09-18 11:36:05 +00:00 |
troytt
|
73ed3292e3
|
feat(items): 加载 SetItems.txt 与 Sets.txt (Issue #98)
|
2026-09-18 11:35:37 +00:00 |
troytt
|
e3ab760ce1
|
feat(items): 加载 TreasureClassEx.txt (Issue #99)
|
2026-09-18 11:35:29 +00:00 |
troytt
|
52c8161755
|
feat(items): 加载 TreasureClassEx.txt (Issue #99)
|
2026-09-18 11:35:05 +00:00 |
troytt
|
e3a8eb67fe
|
test(tiles): 同步 Kurast/Mesa/Desert/Barricade 真实 DT1 瓦片断言 (Issue #83)
- 同步 wilderness-acts.test.ts、wilderness-roads-multi-act.test.ts、wilderness-siege-strips.test.ts 断言以适配真实的 DT1 瓦片编号
- 微调 wilderness-siege.ts 破损木桩 sequence 与投石台矮墙 prop1
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 11:32:55 +00:00 |
troytt
|
9b980b8218
|
feat(items): 加载 UniqueItems.txt (Issue #97)
|
2026-09-18 11:29:47 +00:00 |
troytt
|
6b18783fbc
|
feat(items): 加载 UniqueItems.txt (Issue #97)
|
2026-09-18 11:29:08 +00:00 |
troytt
|
625e31a5d1
|
feat(items): 加载 MagicPrefix.txt 与 MagicSuffix.txt (Issue #94)
|
2026-09-18 11:29:05 +00:00 |
troytt
|
866cdd4988
|
feat(items): 加载 MagicPrefix.txt 与 MagicSuffix.txt (Issue #94)
|
2026-09-18 11:28:39 +00:00 |
troytt
|
d4e219fb02
|
feat(items): 加载 Misc.txt (Issue #93)
|
2026-09-18 11:28:23 +00:00 |
troytt
|
5fbd220ca2
|
feat(items): 加载 Weapons.txt (Issue #92)
|
2026-09-18 11:27:40 +00:00 |
troytt
|
ef9380864c
|
fix(tiles): 修复 Kurast / Mesa / Desert / Barricade 的瓦片引用缺失 (Issue #83)
- wilderness.ts: 在 applyGroundTransitions 中增加 options.levelTypeName 守卫,避免对非 Act 1 关卡执行 Act 1 地面与水岸过渡,消除 Desert (43) 与 Barricade (112, 117) 的无效瓦片生成。
- wilderness-acts.ts:
- Kurast (79, 80, 81): 大街、桥梁与堤岸 balustrade 改用 Kurast 实际存在的 style 20 (Floors.dt1 / Walls.dt1),消除不存在的 style 5 / style 4 引用。
- Mesa (104, 105, 106): 峡谷地面根据 levelTypeName 区分,Act 4 - Mesa 使用 Mesa Floor.dt1 的 style 10 峡谷地表,消除仅在 Lava 存在的 style 20 引用。
- wilderness-siege.ts:
- Siege (110): 攻城木桩栅栏与破损立柱改用 fence.dt1 存在的 style 2 sequence 10 (type 1 与 type 7);投石台墙壁使用 palisade wall;废墟使用 camp.dt1 的 style 18 地砖与墙壁。
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 11:27:14 +00:00 |
troytt
|
98daef5adf
|
feat(items): 加载 Weapons.txt (Issue #92)
|
2026-09-18 11:27:13 +00:00 |
troytt
|
050cb25dfe
|
feat(items): 加载 Misc.txt (Issue #93)
|
2026-09-18 11:26:45 +00:00 |
troytt
|
6a59edd0cb
|
feat(items): 加载 Armor.txt (Issue #91)
|
2026-09-18 11:25:14 +00:00 |
troytt
|
193c1209b2
|
feat(items): 加载 Armor.txt (Issue #91)
|
2026-09-18 11:24:47 +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
|
7187154ac8
|
feat(wilderness): 还原 DRLGOUTDOORS_SpawnAct12Waypoint 原版 8x8 单元网格打乱与有效性判定 (Issue #80)
- 还原 1.13c 原版 DRLGOUTDOORS_SpawnAct12Waypoint (D2Common.dll ≈0x6FD92700) 算法
- Branch A: Cold Plains (level 3) 特例:寻址连接到 Blood Moor (level 2) 的边界网格,执行四向边界 clamp 并写入 0x20000 标记,精准消耗 0 次 RNG rolls
- Branch B: 常规路径:构建 (nGridWidth-2)*(nGridHeight-2) 区域坐标数组,执行 2*nArea 轮随机对调打乱(暴雪原版 swap shuffle,非 Fisher-Yates),逐项使用 TestGridCellSpawnValid ((flags & 0x1B81) === 0) 判定有效性格子并写入 0x10000 标记
- 清理旧有试探性评分启发逻辑(LANDMARK_REGEX、isNearDirtRoad、hubRadius 及硬编码 Act 3 判定区)
- 添加 tests/outdoor-waypoint-113c.test.ts 单元测试并对齐已有测试用例
TAG=agy
CONV=2a1934de-30ef-464e-b3f3-fcbcdbbc49f1
|
2026-09-18 11:15:41 +00:00 |
troytt
|
a1a549e8a0
|
feat(items): 加载 ItemStatCost.txt 与 Properties.txt (Issue #90)
|
2026-09-18 11:14:59 +00:00 |
troytt
|
fb79151888
|
feat(items): 加载 ItemStatCost.txt 与 Properties.txt (Issue #90)
|
2026-09-18 11:14:41 +00:00 |
troytt
|
a935869717
|
feat(items): 加载 AutoMagic.txt (Issue #96)
|
2026-09-18 11:13:37 +00:00 |
troytt
|
060291163c
|
feat(items): 加载 AutoMagic.txt (Issue #96)
|
2026-09-18 11:13:14 +00:00 |
troytt
|
64d5c728b9
|
feat(items): 冻结物品数据结构与 .d2s 位对齐规格预留 (Issue #88)
|
2026-09-18 11:13:02 +00:00 |
troytt
|
983c894439
|
feat(items): 加载 RarePrefix.txt 与 RareSuffix.txt (Issue #95)
|
2026-09-18 11:12:35 +00:00 |