Commit Graph

533 Commits

Author SHA1 Message Date
troytt 807585a615 Merge branch 'issue-393' into main: fix waypoint menu icons parity (#393) 2026-09-23 06:43:24 +00:00
troytt 6cba99f017 fix(ui): waypoint menu icons and click logic 1.13c parity (#393)
- Ground Truth Invariant (D2Client.dll 1.13c at 0x6fb5b2f4-0x6fb5b355 & 0x6fb5a53d):
  - In waygateicons.dc6 (5 frames):
    - Frame 0 (sx=0): Current waypoint unhovered state (blue portal).
    - Frame 1 (sx=30): Current waypoint hovered state (blue portal lit).
    - Frame 3 (sx=90): Activated destination waypoint unhovered state (stone icon).
    - Frame 4 (sx=120): Activated destination waypoint hovered state (stone icon lit).
    - Locked waypoint: Skips sprite draw call completely (je 0x6fb5b355), text drawn in gray.
  - Waypoint click handling:
    - Current waypoint click is a no-op (player already present at location).
    - Locked waypoint click is a no-op.
    - Activated destination waypoint click initiates teleport and closes panel.
- Track current waypoint, current level, and act tab across act-scene and world-panels.
- Update tests in tests/world-panels.test.ts to verify authentic 1.13c behavior.
2026-09-23 06:43:05 +00:00
troytt 263286c0c2 fix(render): isometric grid drop dispersal and authentic ground slanted sprite perspective 2026-09-23 06:23:21 +00:00
troytt 15948eb896 fix(skills): remove translucent solid light boxes during cast overlay animation (#386, #395) 2026-09-23 06:14:11 +00:00
troytt 88bb16238d fix(render): remove duplicate blendMode declaration and add mock activeTexture 2026-09-23 05:56:33 +00:00
troytt da24f9944f Merge branch 'issue-386' into main (Fixes #386) 2026-09-23 05:54:15 +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 ff347bb946 Merge branch 'issue-387' into main (Fixes #387) 2026-09-23 05:37:19 +00:00
troytt 6eaeab4619 feat(skills): authentic 1.13c Cast Overlay system and elemental spell animations (Fixes #386) 2026-09-23 03:53:57 +00:00
troytt ea8644c2ea feat(feedback): authentic inventory full flippy bounce animation & audio-visual refusal (Fixes #392) 2026-09-23 03:22:28 +00:00
troytt 3704e7d088 feat(scene): authentic 1.13c animated map objects and phase staggering (Fixes #387)
- Decode and extract all frames for map objects (DCC/DC6) in scripts/pack-act-assets.ts
- Deduplicate unique member art across object placements and pack into objectPages atlas
- Serialize animatedFrames, frameDelta, frameDurationMs, cycleAnim, and sync from Objects.txt into scene.json
- Support multi-frame MapRuntime ObjectDrawable ticking and rendering in src/scene/act-scene.ts
- Introduce SplitMix64 spatial phase hash (computeObjectPhaseOffsetMs) for non-synced objects to eliminate unnatural mechanical synchronization across scene torches and campfires
- Preserve backward-compatibility for single-frame static objects (Stash B6)
- Add 100% passing test suite in tests/object-animation-113c.test.ts
2026-09-23 03:14:14 +00:00
troytt 53a9ef3f9b feat(interaction): implement authentic ground item & gold pickup with pathfinding (Fixes #391) 2026-09-23 03:12:06 +00:00
troytt 7d7925ab2b Merge branch 'issue-390' into main (Fixes #390) 2026-09-23 02:36:16 +00:00
troytt ff867a13e3 feat(skills): authentic baked missile DCC atlas and explosion rendering 2026-09-23 02:35:55 +00:00
troytt 30e8ecee5f feat(ui): authentic Alt key ground item floating labels and ladder collision avoidance (Fixes #390) 2026-09-23 02:35:05 +00:00
troytt 2733ba625b feat(render): authentic ground item rendering and glint sparkles (Fixes #389) 2026-09-23 02:27:31 +00:00
troytt 3f78ad782e feat(items): authentic 1.13c ground items entity, safe drop radial search and item/gold dropping (Fixes #388) 2026-09-23 02:19:12 +00:00
troytt 627af83e97 feat(skills): authentic 1.13c Fire Bolt projectile physics from Missiles.txt (Fixes #385) 2026-09-23 02:09:50 +00:00
troytt e033ae53e6 fix(ui): authentic tab indexing for skill tree and waypoint panels 2026-09-23 01:22:51 +00:00
troytt 752d7e8066 feat(map): authentic Diablo II 1.13c shadow layer (type 13) rendering and pack verification 2026-09-23 01:22:51 +00:00
troytt 8f8ee010ca docs: update README with art assets, JSON data specifications, and UI parity 2026-09-22 13:12:25 +00:00
troytt 4f6eadea6c feat(ui): authentic Diablo II 1.13c quickbar cd mask, aura styling, charges and passive filtering (Fixes #382) 2026-09-22 11:35:47 +00:00
troytt 775f4113c9 feat(quest): authentic Diablo II 1.13c quest log tbl strings (Fixes #381) 2026-09-22 11:24:02 +00:00
troytt 090de33935 feat(ui): authentic Diablo II 1.13c skill quickbar & speedbar tooltips (Fixes #380) 2026-09-22 10:57:58 +00:00
troytt 7f810e40e3 feat(class): complete 7-class switching with signature sets and stash treasures (Fixes #379) 2026-09-22 10:45:48 +00:00
troytt 67cf0e576b feat(ui): dynamic attack icon (fist/sword) and add throw & unsummon default skills (Fixes #376) 2026-09-22 10:14:11 +00:00
troytt 6f3cf6b8bb feat(ui): authentic D2 1.13c waypoint tabs and icons (Fixes #378) 2026-09-22 09:59:54 +00:00
troytt 0c4af3770d feat(ui): replicate authentic D2 1.13c skill tree tabs and skill points banner (Fixes #377) 2026-09-22 09:50:40 +00:00
troytt 43748eac53 feat(inventory): support ring, amulet, jewel, and charm VarInvGfx graphic variants (Fixes #375) 2026-09-22 09:36:29 +00:00
troytt 82e32a813e feat(ui): implement widescreen left/right panel docking and central vision corridor (Fixes #153) 2026-09-22 07:56:21 +00:00
troytt 9fac33a1e2 fix(skills): reconstruct skill tooltips to 1.13c formula and next level preview (Fixes #152) 2026-09-22 07:13:00 +00:00
troytt bc6b5cd331 feat(skills): add normal attack icon and enable dual left/right slot binding (Fixes #151) 2026-09-22 06:19:19 +00:00
troytt db82a5da32 feat(stash): implement camp town stash entities across 5 acts and 6x8 storage panel (Fixes #150) 2026-09-22 05:33:57 +00:00
troytt 317b170a22 fix(inventory): align authentic 1.13c charm dimensions and graphic variants (Fixes #149) 2026-09-22 04:48:23 +00:00
troytt e96c3a42ce fix(inventory): audit base item invfiles and pack authentic charm icons (Fixes #149) 2026-09-22 04:26:18 +00:00
troytt 56619c83f3 feat(ui): implement authentic D2 dynamic cursor and idle state machine (Fixes #148) 2026-09-22 04:02:49 +00:00
troytt 05f1ae0d18 feat(ui): implement authentic D2 dynamic cursor and idle state machine (Fixes #148) 2026-09-22 04:01:53 +00:00
troytt 19e612241c feat(stat-list): add addStat helper method to UnitStatList 2026-09-22 03:52:05 +00:00
troytt c5242c93b7 feat(skill-350): implement 1.13c Delerium Change module and Vitest suite (#374) 2026-09-22 03:48:40 +00:00
troytt 468cf5d05e feat(skill-280): implement 1.13c Royal Strike module and Vitest suite (#373) 2026-09-22 03:48:38 +00:00
troytt 2f2116f9fd feat(skill-279): implement 1.13c Shadow Master module and Vitest suite (#372) 2026-09-22 03:48:36 +00:00
troytt 2d558698dc feat(skill-278): implement 1.13c Venom module and Vitest suite (#371) 2026-09-22 03:48:34 +00:00
troytt 7b8f954d32 feat(skill-277): implement 1.13c Blade Shield module and Vitest suite (#370) 2026-09-22 03:48:32 +00:00
troytt dee07295b2 feat(skill-276): implement 1.13c Death Sentry module and Vitest suite (#369) 2026-09-22 03:48:30 +00:00
troytt 80e1af9cf4 feat(skill-275): implement 1.13c Dragon Flight module and Vitest suite (#368) 2026-09-22 03:48:29 +00:00
troytt 8d30d0b6ed feat(skill-274): implement 1.13c Blades of Ice module and Vitest suite (#367) 2026-09-22 03:48:27 +00:00
troytt 3170f0aa68 feat(skill-273): implement 1.13c Mind Blast module and Vitest suite (#366) 2026-09-22 03:48:25 +00:00
troytt a0e46c9046 feat(skill-272): implement 1.13c Inferno Sentry module and Vitest suite (#365) 2026-09-22 03:48:23 +00:00
troytt fed2fc6688 feat(skill-271): implement 1.13c Lightning Sentry module and Vitest suite (#364) 2026-09-22 03:48:21 +00:00
troytt e91554764f feat(skill-270): implement 1.13c Dragon Tail module and Vitest suite (#363) 2026-09-22 03:48:18 +00:00
troytt 5d33bf09ae feat(skill-269): implement 1.13c Claws of Thunder module and Vitest suite (#362) 2026-09-22 03:48:16 +00:00
troytt 8829f881c8 feat(skill-268): implement 1.13c Shadow Warrior module and Vitest suite (#361) 2026-09-22 03:48:14 +00:00
troytt 9bc13289d4 feat(skill-267): implement 1.13c Fade module and Vitest suite (#360) 2026-09-22 03:48:12 +00:00
troytt 50725f335b feat(skill-266): implement 1.13c Blade Fury module and Vitest suite (#359) 2026-09-22 03:48:11 +00:00
troytt bdcb2af7d1 feat(skill-265): implement 1.13c Cobra Strike module and Vitest suite (#358) 2026-09-22 03:48:09 +00:00
troytt 9fe4c77754 feat(skill-264): implement 1.13c Cloak of Shadows module and Vitest suite (#357) 2026-09-22 03:48:07 +00:00
troytt 53b2f6c9c8 feat(skill-263): implement 1.13c Weapon Block module and Vitest suite (#356) 2026-09-22 03:48:05 +00:00
troytt 76a3cf17f9 feat(skill-262): implement 1.13c Wake of Fire Sentry module and Vitest suite (#355) 2026-09-22 03:48:03 +00:00
troytt cf444ded20 feat(skill-261): implement 1.13c Charged Bolt Sentry module and Vitest suite (#354) 2026-09-22 03:48:02 +00:00
troytt 4c20bf9fb9 feat(skill-260): implement 1.13c Dragon Claw module and Vitest suite (#353) 2026-09-22 03:48:00 +00:00
troytt 3b23f61791 feat(skill-259): implement 1.13c Fists of Fire module and Vitest suite (#352) 2026-09-22 03:47:58 +00:00
troytt 190a0c5537 feat(skill-258): implement 1.13c Quickness module and Vitest suite (#351) 2026-09-22 03:47:56 +00:00
troytt 039ca21ba5 feat(skill-257): implement 1.13c Blade Sentinel module and Vitest suite (#350) 2026-09-22 03:47:54 +00:00
troytt 72570aa522 feat(skill-256): implement 1.13c Shock Field module and Vitest suite (#349) 2026-09-22 03:47:52 +00:00
troytt 8dcd62df87 feat(skill-255): implement 1.13c Dragon Talon module and Vitest suite (#348) 2026-09-22 03:47:50 +00:00
troytt e7c09b2e62 feat(skill-254): implement 1.13c Tiger Strike module and Vitest suite (#347) 2026-09-22 03:47:48 +00:00
troytt 5b2189a72e feat(skill-253): implement 1.13c Psychic Hammer module and Vitest suite (#346) 2026-09-22 03:47:47 +00:00
troytt ac9984dcc0 feat(skill-252): implement 1.13c Claw Mastery module and Vitest suite (#345) 2026-09-22 03:47:45 +00:00
troytt 0e30660401 feat(skill-251): implement 1.13c Fire Trauma module and Vitest suite (#344) 2026-09-22 03:47:43 +00:00
troytt 67d92834ca feat(skill-250): implement 1.13c Hurricane module and Vitest suite (#343) 2026-09-22 03:47:42 +00:00
troytt a32a8b21c4 feat(skill-249): implement 1.13c Armageddon module and Vitest suite (#342) 2026-09-22 03:47:40 +00:00
troytt ddc040cc90 feat(skill-248): implement 1.13c Fury module and Vitest suite (#341) 2026-09-22 03:47:38 +00:00
troytt 996f8edff9 feat(skill-247): implement 1.13c Summon Grizzly module and Vitest suite (#340) 2026-09-22 03:47:36 +00:00
troytt 022375e1a3 feat(skill-246): implement 1.13c Spirit of Barbs module and Vitest suite (#339) 2026-09-22 03:47:35 +00:00
troytt 25b8330b06 feat(skill-245): implement 1.13c Tornado module and Vitest suite (#338) 2026-09-22 03:47:31 +00:00
troytt 493fe0646f feat(skill-244): implement 1.13c Volcano module and Vitest suite (#337) 2026-09-22 03:47:30 +00:00
troytt 3adf8224d6 feat(skill-243): implement 1.13c Shock Wave module and Vitest suite (#336) 2026-09-22 03:47:28 +00:00
troytt 75c9aee478 feat(skill-242): implement 1.13c Hunger module and Vitest suite (#335) 2026-09-22 03:47:26 +00:00
troytt 7e06e2e64d feat(skill-241): implement 1.13c Vines module and Vitest suite (#334) 2026-09-22 03:47:24 +00:00
troytt 603b8ebb7f feat(skill-240): implement 1.13c Twister module and Vitest suite (#333) 2026-09-22 03:47:23 +00:00
troytt c393c5e5b3 feat(skill-239): implement 1.13c Fire Claws module and Vitest suite (#332) 2026-09-22 03:47:21 +00:00
troytt 8554d4553d feat(skill-238): implement 1.13c Rabies module and Vitest suite (#331) 2026-09-22 03:47:19 +00:00
troytt 06855b2c36 feat(skill-237): implement 1.13c Summon Fenris module and Vitest suite (#330) 2026-09-22 03:47:17 +00:00
troytt 6ff004a7df feat(skill-236): implement 1.13c Heart of Wolverine module and Vitest suite (#329) 2026-09-22 03:47:16 +00:00
troytt 6eae018c19 feat(skill-235): implement 1.13c Cyclone Armor module and Vitest suite (#328) 2026-09-22 03:47:14 +00:00
troytt a36d70fb02 feat(skill-234): implement 1.13c Eruption module and Vitest suite (#327) 2026-09-22 03:47:12 +00:00
troytt 6a770767a1 feat(skill-233): implement 1.13c Maul module and Vitest suite (#326) 2026-09-22 03:47:10 +00:00
troytt eabb962e0c feat(skill-232): implement 1.13c Feral Rage module and Vitest suite (#325) 2026-09-22 03:47:08 +00:00
troytt 3c41b87a3e feat(skill-231): implement 1.13c Cycle of Life module and Vitest suite (#324) 2026-09-22 03:47:07 +00:00
troytt aa5a6b8b4c feat(skill-230): implement 1.13c Arctic Blast module and Vitest suite (#323) 2026-09-22 03:47:05 +00:00
troytt 335cd166fe feat(skill-229): implement 1.13c Molten Boulder module and Vitest suite (#322) 2026-09-22 03:47:03 +00:00
troytt bf9cbdfd68 feat(skill-228): implement 1.13c Wearbear module and Vitest suite (#321) 2026-09-22 03:47:01 +00:00
troytt 548ff7f350 feat(skill-227): implement 1.13c Summon Spirit Wolf module and Vitest suite (#320) 2026-09-22 03:46:59 +00:00
troytt 835cac2952 feat(skill-226): implement 1.13c Oak Sage module and Vitest suite (#319) 2026-09-22 03:46:57 +00:00
troytt 274a30ada0 feat(skill-225): implement 1.13c Firestorm module and Vitest suite (#318) 2026-09-22 03:46:56 +00:00
troytt 5a5c780478 feat(skill-224): implement 1.13c Shape Shifting module and Vitest suite (#317) 2026-09-22 03:46:54 +00:00
troytt 72f5560971 feat(skill-223): implement 1.13c Wearwolf module and Vitest suite (#316) 2026-09-22 03:46:52 +00:00
troytt 26aafef83c feat(skill-222): implement 1.13c Plague Poppy module and Vitest suite (#315) 2026-09-22 03:46:50 +00:00
troytt 3ecf293db7 feat(skill-221): implement 1.13c Raven module and Vitest suite (#314) 2026-09-22 03:46:48 +00:00
troytt 91bf4f5c39 feat(skill-220): implement 1.13c Book of Townportal module and Vitest suite (#313) 2026-09-22 03:46:45 +00:00