public void Shoot() { if (CanShoot == true && IsShooting == false) { if (_character.IsAimingDownSight == true) { ShotCallback?.Invoke(); } else { WeaponRecoil.ResetToIdle(); } _recoilResetDelay.Stop(); CurrentAmmo -= 1; HitScan(); IsShooting = true; _shootDelay.Start(); _kickbackState = KickBackState.Kickback; _kickTimer.Restart(); } else if (CanShoot == false && CanReload == true) { Reload(); } }