private void Split()
 {
     for (int i = 0; i < fragmentDirections.Length; i++)
     {
         BossSpitProjectile fragment = Instantiate(this.gameObject, transform.position + fragmentDirections[i] * 10.0f + Vector3.up * 10.0f,
                                                   transform.rotation, null).GetComponent <BossSpitProjectile>();
         fragment.isFragment = true;
     }
 }
    private IEnumerator SpitProjectile()
    {
        AudioManager.Instance.PlaySoundVaried("ToadSpit");

        // Create projectile
        GameObject         newProjectile = Instantiate(projectilePrefab, projectileSpawnSocket.position, Quaternion.identity, null);
        BossSpitProjectile proj          = newProjectile.GetComponent <BossSpitProjectile>();

        proj.spitUpAttack = this;

        // Find a tile for it to aim for
        GridTile aimTile = GetRandomFreeTile();

        proj.aimedTile = aimTile;
        ProjectileCreated(aimTile);

        proj.rigidBody.AddForce(Vector3.up * 2.0f, ForceMode.Impulse);

        if (bossScript.ateRock)
        {
            proj.rockEaten = true;
        }

        yield return(new WaitForSeconds(0.5f));

        // When projectile is off screen, move it above the tile it will land on
        proj.rigidBody.velocity = Vector3.zero;
        proj.transform.position = proj.aimedTile.transform.position + Vector3.up * dropHeight;

        //List<GameObject> aimIndicators = new List<GameObject>();

        //aimIndicators.Add(Instantiate(aimIndicatorPrefab, aimTile.transform.position, Quaternion.identity, null));

        //if (bossScript.ateRock)
        //{
        //    for (int i = 0; i < 4; i++)
        //    {
        //        aimIndicators.Add(Instantiate(aimIndicatorPrefab, aimTile.transform.position + (fragmentDirections[i] * 10.0f), Quaternion.identity, null));
        //    }
        //}

        //proj.AddAimIndicators(aimIndicators);
    }