## About The Pull Request
Alt to #94423 , see it for more information
Currently, the `can_baton` checks disallow harmbatonning. This is an
error.
However, untangling this code wasn't super trivial thanks to the way the
chain was split across a few procs.
This PR puts all the relevant code in `pre_attack`, so we can easily see
what contexts allows a stun, a harmbaton, both, and neither.
## Changelog
🆑 Melbert
fix: You can harm people with batons that are otherwise inoperable, like
an Abductor's baton.
refactor: Batonning was refactored ever so slightly. Report any
oddities, particularly involving harmbatonning.
/🆑