public void Shoot(ShootParameters shootParameters, DamageTag damageTag)
    {
        int projectileIndex               = shootParameters.GetProjectilePrefab.GetPoolingIndex;
        ProjectileScript projPrefab       = shootParameters.GetProjectilePrefab;
        float            imprecisionAngle = shootParameters.GetImprecisionAngle;

        for (int i = 0; i < shootParameters.GetNumberOfProjectilesPerShot; i++)
        {
            ProjectileScript newProj = poolingManager.GetProjectileFromPool(projectileIndex);

            if (newProj == null)
            {
                break;
            }

            newProj.transform.position = transform.position;
            newProj.transform.rotation = Quaternion.identity;
            //ProjectileScript newProj = Instantiate(projPrefab, transform.position, Quaternion.identity);
            Vector3 shootDirection = Quaternion.Euler(0, 0, Random.Range(-imprecisionAngle / 2, imprecisionAngle / 2)) * GetTrueDirection;
            newProj.Shoot(shootParameters.GetProjectileParameters, shootDirection, damageTag);
        }
    }