bool InFront()
    {
        Vector3 direction = player.position - this.transform.position;
        direction.y = 0;
        float angle = Vector3.Angle(direction, head.forward);
        float yDistanceLimit = Mathf.Abs(waypoints[currentWP].transform.position.y - enemy.transform.position.y);
        if (state == "patrol" && waypoints.Length > 0)
        {

            Debug.DrawLine(head.position, player.position, Color.green);
            agent.destination = waypoints[currentWP].position;
            if (Vector3.Distance(waypoints[currentWP].transform.position, transform.position) < accuracyWP)
            {
                if (randomizedWPs == true)
                {
                    currentWP = Random.Range(0, waypoints.Length);
                }
                else
                {
                    currentWP++;
                }
                StartCoroutine(stop());
                if (currentWP >= waypoints.Length)
                {
                    currentWP = 0;
                }
            }
        }
        else if (state == "emergencyprotocol")
        {

            agent.destination = emergencyWP.position;
            if (Vector3.Distance(emergencyWP.transform.position, transform.position) < accuracyWP)
            {
                state = "stop";
            }
        }


        if (state == "stop")
        {
                if ((ticktock <= 3) && (ticktock > 0))
                {
                    ticktock -= Time.deltaTime;
                    Debug.DrawLine(head.position, player.position, Color.yellow);
                if (agent.isOnOffMeshLink == false)
                {
                    agent.speed = 0;
                }
                    //this.transform.Translate(0, 0, Time.deltaTime * speed2);
                    anim.SetBool("isIdle", true);
                    anim.SetBool("isRunning", false);
                    anim.SetBool("isAttacking", false);
                    anim.SetBool("isWalking", false);
                }
                if (ticktock <= 0)
            {
                chasemusic.Stop();
                countupenable = false;
                if (yDistanceLimit > YDistanceCutOff)
                {
                    if (Vector3.Distance(emergencyWP.transform.position, transform.position) < accuracyWP)
                    {
                        ticktock = 3f;
                        state = "stop";
                    }
                    else
                    {
                        ticktock = Time.deltaTime;
                        ticktock = 3f;
                        agent.speed = 1;
                        //this.transform.Translate(0, 0, Time.deltaTime * speed);
                        anim.SetBool("isIdle", false);
                        anim.SetBool("isWalking", true);
                        //rotate towards waypoint
                        //agent.SetDestination(emergencyWP.transform.position - transform.position);
                        this.transform.rotation = Quaternion.Slerp(transform.rotation,
                                             Quaternion.LookRotation(direction), rotSpeed * Time.deltaTime);
                        //this.transform.Translate(0, 0, Time.deltaTime * speed);
                        //Debug.LogError("ruh roh raggy.");
                        state = "emergencyprotocol";
                    }
                }
                else
                {
                    ticktock = Time.deltaTime;
                    ticktock = 3f;
                    agent.speed = 1;
                    //this.transform.Translate(0, 0, Time.deltaTime * speed);
                    anim.SetBool("isIdle", false);
                    anim.SetBool("isWalking", true);
                    //agent.SetDestination(waypoints[currentWP].transform.position - transform.position);
                    this.transform.rotation = Quaternion.Slerp(transform.rotation,
                                         Quaternion.LookRotation(direction), rotSpeed * Time.deltaTime);
                    //this.transform.Translate(0, 0, Time.deltaTime * speed);
                    state = "patrol";
                }
            }
        }