private void Shoot()
    {
        if (Input.GetKeyDown(KeyCode.Space) && currentShootCooldown <= 0)
        {
            if (numOfBulletShot < numOfBulletChained)
            {
                //NB Added Following Codes Delete or edit if wrong
                audioSrc.Play();

                _animator.SetBool("shooting", true);
                switch (shootType)
                {
                case 0:
                    shoot.BasicShoot(direction);
                    break;

                case 1:
                    shoot.SpreadShoot(direction);
                    break;

                case 2:
                    shoot.BurstShoot(direction);
                    break;
                }

                numOfBulletShot++;
                currentBufferPeriod = maxBufferPeriod;
            }

            if (numOfBulletShot == numOfBulletChained)
            {
                currentShootCooldown = maxShootCooldown;
                currentBufferPeriod  = maxBufferPeriod;
                numOfBulletShot      = 0;
                _animator.SetBool("shooting", false);
            }
        }
        else
        {
            currentShootCooldown -= Time.deltaTime;
        }

        if (numOfBulletShot < numOfBulletChained && currentBufferPeriod <= 0)
        {
            currentBufferPeriod = maxBufferPeriod;
            numOfBulletShot     = 0;
            _animator.SetBool("shooting", false);
        }
        else
        {
            currentBufferPeriod -= Time.deltaTime;
        }
    }