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