Generalized weapon code, made PulseWeapon and ShotgunWeapon