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