Commit
c6292f4b0c1fef620ce55a60082a3d69080fd459
by nossr50Fix McMMOPlayerShakeEvent never being fired and expand fishing test coverage
The Shake ability constructed McMMOPlayerShakeEvent but never dispatched
it through the plugin manager, a gap dating back to 2013. Plugins
listening for the event never received it, and its cancel/setDrop API
had no effect. The event now fires before the drop is spawned, so
cancelling it suppresses the drop, damage, and XP, and drops replaced
through the event are the ones that spawn.
Also adds unit coverage across the fishing code: the overfishing
detection state machine and its bounding-box boundary, Master Angler
wait-time math and hook processing, the Shake drop pipeline including
sheep shearing and inventory stealing, the processFishing reward
pipeline, subskill eligibility gates, cumulative-chance drop selection,
and the listener wiring for treasure override, vanilla XP boost, Shake,
and Ice Fishing.
(commit: c6292f4)