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; } }