Files
moonwell-client-core/docs
Sam Sung b584e833eb Cooldown and cast events fire at each packet's place, as 1.12.1's do (#2414)
In 1.12.1 the cooldown and cast handlers write state, then fire their events, at each packet's own place. `SPELL_COOLDOWN` (`0x6e9460`) adds its records and then fires the cooldown pair. The cast result's pop (`0x6e741a` → `0x6e4940`) runs before `SPELLCAST_STOP`. The getters (`0x6e2ea0`, `0x6e2ed0`) read the live list. benilla raised cooldown events once a frame, from counter edges, and its cast getters read a frame-end view.

Now the player's cooldown list logs each write and signal per packet, and a lane replays them in order, with the call host lent. The four cooldown getters read the list live. Cast views are logged per packet, and a listener's own cast stays visible through later packets' views.

The tests cover two cooldown packets in one frame, cast start and stop in one frame, an early-stopped drain, a worn item's cooldown and a failed cast. Each fails without the change.

Part of #2217

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 20:50:15 +07:00
..