Enemy Chase Range Help

Hey guys, I am developing a Top Down Rpg and have been working on the combat mechanics of the game. I have run into a bit of a problem maybe you guys could help me with, I am sure it is just a small syntax I missed but it happens.

The problem is my chase code, I am not sure if the problem persists in the actual script or in the inspector itself but the opponent chases the player regardless of the amount of range between the opponent and the player. In other words, I want the opponent to chase player only when the player is within a certain amount of range of the opponent but the opponent immediately begins to chase player as soon as the scene loads.

Here is my sample code

using UnityEngine;
using System.Collections;

public class Mob : MonoBehaviour {

    public float speed;
    public float range;
    public CharacterController controller;
    public Transform player;

    public AnimationClip run;
    public AnimationClip idle;

    // Use this for initialization
    void Start () {
   
    }
   
    // Update is called once per frame
    void Update () {

        if (!inRange ()) {

            chase ();
   
        } else {

            GetComponent<Animation>().CrossFade (idle.name);

        }

    }

    bool inRange()
    {
        if (Vector3.Distance (transform.position, player.position) < range) {
            return true;

        } else {

            return false;
        }

    }

        void chase()
        {

        transform.LookAt (player.position);
        controller.SimpleMove (transform.forward * speed);
        GetComponent<Animation>().CrossFade (run.name);
    }

    void OnMouseOver(){
        player.GetComponent<Combat> ().opponent = gameObject;
    }
}

Thanks in advance.

Maybe if you remove the exclamation mark on line 22?

if(inRange ()){

You are chasing if not in range.