moved reloading logic to BaseWeapon