IEnumerator BreatheFire() { breathingFire = true; //Rotate transform.LookAt(targetPaladin.transform.position); //Anim anim.SetBool("Breathe Fire", true); //Trigger targetPaladin.SetOnFire(); yield return(new WaitForSeconds(fireDuration)); anim.SetBool("Breathe Fire", false); fireBreathFX.SetActive(false); yield return(new WaitForSeconds(fireCooldown)); breathingFire = false; targetPaladin = null; }
void SearchForPaladin() { Collider[] hitColliders = Physics.OverlapSphere(transform.position, detectionRadius); int i = 0; while (i < hitColliders.Length) { if (hitColliders[i].transform.gameObject.CompareTag("Paladin")) { PaladinBehaviour paladin = hitColliders[i].transform.GetComponent <PaladinBehaviour>(); if (!breathingFire && paladin.Health > 0) { targetPaladin = paladin; StartCoroutine(BreatheFire()); } else if (targetPaladin != null && targetPaladin.AttackingDragon) { //being attacked } } i++; } }