Thing is, those three routines ( for each type of gun ) really need to get a signal when the trigger is pulled, and when it’s released. And that really is ‘mouse down’ / ‘mouse up’ ( or controller etc ).
Then they can respond differently internally, based on the type of gun.