Commit Graph

1087 Commits

Author SHA1 Message Date
troytt 33b3448fb0 fix(mcp,map): shift statstring[27] progression by 1 bit and skip [D2MissingArt] on 0-block DT1 tiles (#738, #739)
- Decode 5-bit character progression from MCP 0x19 33-byte statstring via
  (statBytes[27] >>> 1) & 0x1f per D2Game.dll CLIENTS_FillCharacterPreviewInfo
  (0x6FC32810) and Fog.#10085 FOG_Encode14BitsToString, fixing doubled
  progression values in parseMcpCharStatString and charSummaryToRosterCharacter.
- Do not trigger spurious [D2MissingArt] reports in LevelView enrichDraws or
  WorldRenderer wall drawing on legitimate blockCount === 0 collision/marker
  DT1 tiles (such as baallair\floor.dt1 tileIndex=109 in Worldstone Keep L2).
- Add regression tests for progression decoding and 136-level zero-missing-art
  LevelView construction.

Closes #738
Closes #739
2026-10-03 11:01:41 +00:00
troytt 72d413fa93 fix(plugins): remediate Iteration 2 plugin system docs, runtime edge-cases, E2E checks, and unit tests
- Align plugins/README.md, src/client/README.md, and README.md with actual plugin architecture, file inventories, and test paths
- Rethrow initial repository read failures in StatsPage.init() and expose ready: false on window.__d2StatsApp in bootStatsApp()
- Remove duplicate PLUGIN_CONFIG_STORAGE_KEY storage listener branch in src/client/plugin-host/api.ts
- Serialize cross-tab reload reconciliation onto record.queue and unconditionally clear record.error in resetAllToDefaults()
- Align localized strings in plugins/kill-stats/index.ts with plugin contract
- Extend tools/verify-plugin-menu-browser.ts with Steps 4-7 (corrupt JSON alert banner, raw storage preservation, and reset recovery)
- Add comprehensive unit tests in plugin-config-store.test.ts, plugin-menu.test.ts, plugin-host.test.ts, kill-stats-view.test.ts, and registry.test.ts

TAG=agy
CONV=2cf150d5-78df-48ac-be0c-42ef1694a004
2026-10-03 10:08:55 +00:00
troytt ff76655d4d feat(plugins): implement top-level plugin architecture, toolbar plugin modal menu, and kill-stats plugin migration 2026-10-03 08:13:18 +00:00
troytt db1b69f440 fix(m9): bind e2e-parity suite to real M1-M8 production symbols, preserve /assets/ in Minimap.loadAtlases, and align TEST_READY/TEST_INFRA taxonomy 2026-10-03 06:09:43 +00:00
troytt 25fdf81aa2 fix(units): align getMonsterKindByHcIdx with MONSTER_HCIDX_TO_ID for hcIdx 0..733 (Closes #713) 2026-10-03 06:01:43 +00:00
troytt 948a586432 feat(frontend): implement 1.13c D2Launch/D2Multi/D2Win frontend renderer & flow state parity (#696-#701, #703-#711) 2026-10-03 04:24:01 +00:00
troytt f209f4e6e2 Fix skill button overlays, UI missing-art fail-fast, offline tome/equip rules, skill tree tbl strings, and integer formatting (Closes #690, #691, #692, #693, #694, #695) 2026-10-03 03:14:57 +00:00
troytt 8f48c4b1ec Add per-account/character monster kill statistics page (stats.html) 2026-10-03 03:06:08 +00:00
troytt 0897bf6114 Fix campfire bafws/pafws forward overlays, frontend manifest tbl strings, main.ts validation/difficulty guards, and i18n listener error propagation (Closes #702, #712) 2026-10-03 02:28:31 +00:00
troytt 171f7c00fc Fix world panels NPC menu anchor, hover state, static options, waypoints, tooltips, and fail-fast parity (Closes #664, #665, #666, #667, #668, #669, #670, #671, #672, #673, #674, #675, #676, #677, #678) 2026-10-03 01:53:27 +00:00
troytt 2733a720ae Fix speedbar generic skills, skilldesc.txt tooltips, character sheet dual AR/damage and stat colors, skills.txt metadata, and Attack icon (Closes #679, #686, #687, #688, #689) 2026-10-03 01:32:49 +00:00
troytt 04bfa1a157 Fix inventory.txt layout, item graphicIndex, misc.txt usables, weapon swap tabs, slot colors, and socket overlays (Closes #680, #681, #682, #683, #684, #685) 2026-10-03 00:39:52 +00:00
troytt f26fa9e636 Fix Attack skill 0 targeting, DCC hitbox picking, corpse skills, warp 0x13, and net-world authority (Closes #577, #578, #579, #580, #581, #582, #583, #585, #589, #590, #591, #593, #594, #595) 2026-10-02 23:38:48 +00:00
troytt d7ca085046 Fix dual-clock animation, Overlay.txt data, panel camera shift, and automap toggle (Closes #584, #592, #596, #597, #599, #601, #602, #603) 2026-10-02 23:30:08 +00:00
troytt 17fd1f1b6c Fix remote entity velocity, player FRW kinematics, PATHTYPE_STRAIGHT, and gateModeBase (Closes #586, #587, #588, #598, #600) 2026-10-02 23:16:40 +00:00
troytt 3c7586b500 Fix D2Gfx 8 blending modes, object sync speed formula, click parallax, and hitbox precedence (Batch 4 Gate Remediation) 2026-10-02 22:32:52 +00:00
troytt a4d514cbec Fix unit colormaps, object animation modes, portal palettes, camera centering, and DCC HTH parity (Closes #604, #605, #607, #608, #610, #611, #613, #615, #616, #617, #618, #620) 2026-10-02 21:36:03 +00:00
troytt 6af87acc13 Fix flippy DC6 offsets, missile data-driven sprites, automap cel extraction, and art loader fail-fast (Closes #609, #612, #619, #622, #623) 2026-10-02 21:22:55 +00:00
troytt 56f4f7f4fe Fix data-driven point lights, elevation-aware shaders, authentic palette rows, and dead code cleanup (Closes #606, #614, #621) 2026-10-02 21:22:31 +00:00
troytt 8b619c23c3 Fix bilingual test fixture, font Node fetch resilience, NPC talk packet duplicate, and Act 5 hcIdx alignment (Batch 3 Gate Remediation) 2026-10-02 20:20:23 +00:00
troytt c6c2eb2007 Fix NPC menus, quest log progression, left panels inventory layouts, and item tooltips (Closes #655, #656, #657, #658, #659, #660, #661, #662, #663) 2026-10-02 19:37:42 +00:00
troytt 7136c3aefe Enable authentic text drop shadow for top-left mercenary portrait 2026-10-02 19:17:28 +00:00
troytt aae6000f06 Fix control bar tooltips, cursor state machine, stamina bar, defense formulas, and HUD asset fallbacks (Closes #644, #645, #646, #647, #648, #649, #651, #652, #653, #654) 2026-10-02 19:14:53 +00:00
troytt 7d6a5bc743 Fix bitmap font colors, Chinese DC6 typography, and fail-fast metric loading (Closes #642, #643, #650) 2026-10-02 19:02:41 +00:00
troytt 11cd616847 Fix automap boundaries, unhandled setContext, town NPC dots, and background exploration (Batch 2 Gate Remediation) 2026-10-02 18:27:26 +00:00
troytt 036d36bccb Fix automap exploration, viewport geometry, markers, and fail-fast loading (Closes #624, #625, #626, #627, #628, #629, #630, #631, #632, #635) 2026-10-02 17:20:35 +00:00
troytt f1ca3dfc2b Fix mini-panel 8-button layout, death DC6, belt indexing/tables, and experience table (Closes #636, #637, #638, #639, #640, #641) 2026-10-02 17:08:01 +00:00
troytt 2d5c23a55f Fix map tile atlas fallbacks and level view grounded spawn protection (Closes #633, #634) 2026-10-02 16:39:06 +00:00
troytt 6d38c03110 Fix E2E parity test types and crossbow localization check (Closes Gate 1 Review) 2026-10-02 16:11:15 +00:00
troytt cc0756de2e Fix skill anim modes, monster knockback, warp hover, and rate limiting (Closes #565, #566, #573, #575) 2026-10-02 15:25:34 +00:00
troytt 43d32e6d23 Fix Multiple Shot ammunition branching and Missiles.txt 684-row parity (Closes #562, #568, #571, #572, #574, #576) 2026-10-02 15:08:23 +00:00
troytt f8c938f866 Fix S2C 0x59 identity stability and 0x8E corpse packets (Closes #563, #564, #567, #569, #570) 2026-10-02 15:00:35 +00:00
troytt 7658ad94f1 Merge branch 'fix/unit-turn-transition' into main (closes #543) 2026-10-02 13:50:43 +00:00
troytt 282834e434 Merge branch 'fix/issue-555-ground-item-pickup-and-alt-labels' into main (Closes #555) 2026-10-02 13:45:42 +00:00
troytt 659f442df0 merge: resolve conflicts preserving 1.13c turn transition and monster movement speed 2026-10-02 13:42:19 +00:00
troytt 394369e9c1 Merge branch 'fix/issue-559-monster-nameplate' into main (Closes #559)
# Conflicts:
#	src/common/units/monsters-data.ts
2026-10-02 13:22:07 +00:00
troytt 273aa6ffb8 fix(hud): restore 1.13c monster nameplate full names, race/desc subtext, elite/boss ranks & immunities (Closes #559) 2026-10-02 13:19:05 +00:00
troytt 3feb58fcfc fix(client): fix Multiple Shot missile key, UnitStateSet iteration, local player state overlays, and arrow classId (#550) 2026-10-02 13:12:50 +00:00
troytt 94f0a705c8 feat(client,common): implement 1.13c frame-by-frame 25Hz unit turn transition (closes #543) 2026-10-02 12:29:29 +00:00
troytt 4460f356e6 docs(agents): add Teamwork hourly Beijing Time reporting and immediate merge/push rule 2026-10-02 12:26:59 +00:00
troytt 778bd57806 fix(client/netproto): align monster movement speed with 1.13c MonStats velocity and D2GS 0x67/0x68 nVelocity 2026-10-02 12:02:44 +00:00
troytt 77a20c742d Merge remote-tracking branch 'origin/main' into fix/cast-anim-refresh-rate-decouple 2026-10-02 11:17:52 +00:00
troytt a08b837ba5 fix(ui): guard parseColoredText against non-string inputs 2026-10-02 11:15:46 +00:00
troytt 8a4521a62a Merge remote-tracking branch 'origin/main' into fix/cast-anim-refresh-rate-decouple 2026-10-02 11:14:25 +00:00
troytt 62663c4840 fix(client): decouple 25Hz simulation and character animations from display refresh rate
- Decouple discrete simulation stepping (missiles, overlays, frameCount) in ClientWorld to fixed 25Hz ticks (40ms) via accumulator, preventing animation speedup at high refresh rates (120Hz/144Hz/240Hz).
- Continuous movement interpolation for moving units using exact (safeDt / 1000) * 10 without Math.max(1, ...).
- Guard held mouse / repeat clicks from interrupting active cast animation every 100ms via CommandMapper.isPlayerBusyCasting.
- Preserve locally-predicted cast timing and avoid animation restart when server 0x4C SkillCast echo arrives.
- Drive fallback cast overlay in unit-drawables using elapsedTicks and animRate instead of global display tick.
- Add comprehensive vitest coverage in tests/client/char-anim-speed-loop.test.ts.
2026-10-02 11:13:26 +00:00
troytt 7e46fab753 test(client): add headless browser verification script for Issue #542 HUD docking and hover tooltips 2026-10-02 11:08:54 +00:00
troytt 773e3be117 chore: resolve merge types in world-panels, hud-manager and client-world 2026-10-02 10:53:45 +00:00
troytt e31e1b561a fix(ui): fix skill tooltips, HUD docking offsets, and UI clamping at >800x600 viewports (#557)
- Translate HUD mouse-move, click, drag, and drop coordinates across all 4 viewport profiles (800x600, 1024x768, 1068x600, 1280x720) using toControlBarLocal, toLeftDockLocal, fromLeftDockLocal, toRightDockLocal, and fromRightDockLocal
- Make HudManager.leftPanel and HudManager.rightPanel getters/setters that keep charSheet.visible, inventory.visible, and skillTree.visible synchronized on direct assignment (e.g., HudModel.syncFromWorld)
- Draw SkillTreePanel tooltips on the top-most HUD tooltip layer with minLocalX = 8 - deltaRight so they are never occluded by the bottom control bar/globes/belt and never clamp over column-1 skill nodes on widescreen viewports
- Swap belt.draw before hotkeys.draw so right-hand speedbar popups and skill tooltips render above the belt
- Route both left-click and right-click on HUD regions in CommandMapper.handlePointerDown to HudManager.handleClick
- Reverse-translate Mercenary, Trade, and Quest Reward (Imbue/Add Sockets/Personalize) left-dock item hover tooltips and clamp NPC dialog menus, Area Entry Banner, and Death Overlay against active viewport dimensions

Closes #557
Closes #542
2026-10-02 10:52:27 +00:00
troytt 9e749a21cf Merge branch 'fix/hud-portraits-merc-summon' into main (Fixes #556) 2026-10-02 10:42:59 +00:00
troytt be82459dfe fix(ui): top-left HUD portraits for party members, mercenaries, and summoned minions (Fixes #556) 2026-10-02 10:42:13 +00:00