Engine has some built-in weapondef
parameters that control impulse.
ZK then overwrites these defaults using the
UnitPreDamaged in the
weapon_impulse gadget, based on some of its own defaults, and more importantly, the
impulse weaponDef customParam.
IIRC the ZK gadget also mostly reimplements impulse handling because engine has/had some weirdnesses.
[Spoiler]Most of this is findable by searching for impulse in zk github and duckduckgoing for "impulse site:springrts.com/wiki", but i guess knowing where and how to search is half the answer anyway. Hence why it's included here!