private void skillSummonInvoked()
    {
        float preCooldown;
        if(isCentralized)
            preCooldown = 0;
        else
            preCooldown = skillTeleport.GetAnim("Departure (L)").GetDuration() +
                skillTeleport.GetAnim("Arrival (L)").GetDuration();

        float conjurationTime1 = sprites.GetAnim("Casting 1 (L)").GetDuration();
        float conjurationTime2 = 2;

        if(Time.time - lastCastTime < preCooldown + conjurationTime1)
        {
            doAnimToDirection("Casting 1");
            if(controlSummon2 == false)
            {
                GetComponentInChildren<SkillSummonUndead>().activate();
                audio.PlayOneShot(sound_summon);
                controlSummon2 = true;
            }
        }
        else if(Time.time - lastCastTime < preCooldown + conjurationTime1 + conjurationTime2)
        {
            doAnimToDirection("Casting 2");
        }
        else if(Time.time - lastCastTime > preCooldown + conjurationTime1 + conjurationTime2)
        {
            for(int i = 0; i < instancedMob.Count; i++)
                Destroy(instancedMob[i]);
            instancedMob.Clear();

            GameObject enemy1 = null;
            GameObject enemy2 = null;
            if(currentSummonTurn == SummonTurn.Melee)
            {
                var position = new Vector3(teleportPoint_right_center.transform.position.x,
                    teleportPoint_right_center.transform.position.y+0.5f,
                    teleportPoint_right_center.transform.position.z);
                Instantiate(summonSmoke, teleportPoint_right_center.transform.position, transform.rotation);
                enemy1 = Instantiate(mobMelee, position, transform.rotation) as GameObject;
                position = new Vector3(teleportPoint_left_center.transform.position.x,
                    teleportPoint_right_center.transform.position.y+0.5f,
                    teleportPoint_right_center.transform.position.z);
                Instantiate(summonSmoke, teleportPoint_left_center.transform.position, transform.rotation);
                enemy2 = Instantiate(mobMelee, position, transform.rotation) as GameObject;
                currentSummonTurn = SummonTurn.Ranged;
            }
            else if(currentSummonTurn == SummonTurn.Ranged)
            {
                Instantiate(summonSmoke, teleportPoint_right2.transform.position, transform.rotation);
                enemy1 = Instantiate(mobRanged, teleportPoint_right2.transform.position, transform.rotation) as GameObject;
                Instantiate(summonSmoke, teleportPoint_left2.transform.position, transform.rotation);
                enemy2 = Instantiate(mobRanged, teleportPoint_left2.transform.position, transform.rotation) as GameObject;
                currentSummonTurn = SummonTurn.Mage;
            }
            else if(currentSummonTurn == SummonTurn.Mage)
            {
                Instantiate(summonSmoke, teleportPoint_right1.transform.position, transform.rotation);
                enemy1 = Instantiate(mobMage, teleportPoint_right1.transform.position, transform.rotation) as GameObject;
                Instantiate(summonSmoke, teleportPoint_left1.transform.position, transform.rotation);
                enemy2 = Instantiate(mobMage, teleportPoint_left1.transform.position, transform.rotation) as GameObject;
                currentSummonTurn = SummonTurn.Melee;
            }
            instancedMob.Add(enemy1);
            instancedMob.Add(enemy2);
            lastCastTime = -1;
            wasCasting = false;
            wasCastingSummon = false;
            controlSummon2 = false;
            curSummonCooldown = summonCooldown;
            GetComponentInChildren<SkillSummonUndead>().desactivate();
            doAnimToDirection("Standing");
            curGlobalCooldown = globalCooldown;
        }
    }
    private void skillSummonInvoked()
    {
        float preCooldown;

        if (isCentralized)
        {
            preCooldown = 0;
        }
        else
        {
            preCooldown = skillTeleport.GetAnim("Departure (L)").GetDuration() +
                          skillTeleport.GetAnim("Arrival (L)").GetDuration();
        }

        float conjurationTime1 = sprites.GetAnim("Casting 1 (L)").GetDuration();
        float conjurationTime2 = 2;

        if (Time.time - lastCastTime < preCooldown + conjurationTime1)
        {
            doAnimToDirection("Casting 1");
            if (controlSummon2 == false)
            {
                GetComponentInChildren <SkillSummonUndead>().activate();
                audio.PlayOneShot(sound_summon);
                controlSummon2 = true;
            }
        }
        else if (Time.time - lastCastTime < preCooldown + conjurationTime1 + conjurationTime2)
        {
            doAnimToDirection("Casting 2");
        }
        else if (Time.time - lastCastTime > preCooldown + conjurationTime1 + conjurationTime2)
        {
            for (int i = 0; i < instancedMob.Count; i++)
            {
                Destroy(instancedMob[i]);
            }
            instancedMob.Clear();

            GameObject enemy1 = null;
            GameObject enemy2 = null;
            if (currentSummonTurn == SummonTurn.Melee)
            {
                var position = new Vector3(teleportPoint_right_center.transform.position.x,
                                           teleportPoint_right_center.transform.position.y + 0.5f,
                                           teleportPoint_right_center.transform.position.z);
                Instantiate(summonSmoke, teleportPoint_right_center.transform.position, transform.rotation);
                enemy1   = Instantiate(mobMelee, position, transform.rotation) as GameObject;
                position = new Vector3(teleportPoint_left_center.transform.position.x,
                                       teleportPoint_right_center.transform.position.y + 0.5f,
                                       teleportPoint_right_center.transform.position.z);
                Instantiate(summonSmoke, teleportPoint_left_center.transform.position, transform.rotation);
                enemy2            = Instantiate(mobMelee, position, transform.rotation) as GameObject;
                currentSummonTurn = SummonTurn.Ranged;
            }
            else if (currentSummonTurn == SummonTurn.Ranged)
            {
                Instantiate(summonSmoke, teleportPoint_right2.transform.position, transform.rotation);
                enemy1 = Instantiate(mobRanged, teleportPoint_right2.transform.position, transform.rotation) as GameObject;
                Instantiate(summonSmoke, teleportPoint_left2.transform.position, transform.rotation);
                enemy2            = Instantiate(mobRanged, teleportPoint_left2.transform.position, transform.rotation) as GameObject;
                currentSummonTurn = SummonTurn.Mage;
            }
            else if (currentSummonTurn == SummonTurn.Mage)
            {
                Instantiate(summonSmoke, teleportPoint_right1.transform.position, transform.rotation);
                enemy1 = Instantiate(mobMage, teleportPoint_right1.transform.position, transform.rotation) as GameObject;
                Instantiate(summonSmoke, teleportPoint_left1.transform.position, transform.rotation);
                enemy2            = Instantiate(mobMage, teleportPoint_left1.transform.position, transform.rotation) as GameObject;
                currentSummonTurn = SummonTurn.Melee;
            }
            instancedMob.Add(enemy1);
            instancedMob.Add(enemy2);
            lastCastTime      = -1;
            wasCasting        = false;
            wasCastingSummon  = false;
            controlSummon2    = false;
            curSummonCooldown = summonCooldown;
            GetComponentInChildren <SkillSummonUndead>().desactivate();
            doAnimToDirection("Standing");
            curGlobalCooldown = globalCooldown;
        }
    }