diablo2-web/tools/lib
troytt 2e9216fc7f feat(client): server-driven NPC/stash interaction state in ClientWorld
- 0x9D act 0x05 with a non-cursor location (NPC sale, capture 06) removes
  the item instead of moving it to the cursor.
- ClientInventoryManager.clearShop(): the server sends no RemoveFromShop
  after 0x30 (capture 05), so the store is freed locally.
- ClientWorld.npcInteraction (npcId / trade|gamble window / stashOpen from
  S2C 0x77 0x10) and lastNpcTransaction (numbered 0x2A log, display only).
- OnlineSession and the bot apply outgoing-command side effects through
  ClientWorld.noteOutgoingCommand.
- Replay tests over captures 05-09.
2026-10-01 10:08:43 +00:00
..
drlg-oracle.ts refactor: split into isolated common/netproto/server/client/baker modules 2026-10-01 00:10:18 +00:00
node-map-loader.ts refactor: split into isolated common/netproto/server/client/baker modules 2026-10-01 00:10:18 +00:00
node-tcp-stream.ts refactor: split into isolated common/netproto/server/client/baker modules 2026-10-01 00:10:18 +00:00
vendor-scenarios.ts feat(client): server-driven NPC/stash interaction state in ClientWorld 2026-10-01 10:08:43 +00:00