public void fire() { if (loadedAmmo <= 0) { if (!fireHeldDown || playNoAmmoSoundAtEndOfMagazine) { soundManager.playNoAmmo(); playNoAmmoSoundAtEndOfMagazine = false; } return; } soundManager.playAKFire(); loadedAmmo--; playNoAmmoSoundAtEndOfMagazine = true; weaponController.fire(recoilTime); weaponController.recoil(upwardAngleDrift); }