public override void GetAction() { //Changes speed of character invocant.GetComponent <Agent>().maxSpeed = speed; invocant.GetComponent <Agent>().maxAcc = (speed * 2) + 10; if (newTargetNode == -1) { if (invocant.name == "Monster_Anger") { newTargetNode = pathFollowing.graph.GetNearestNodeByCenter(GameObject.Find("Monster_Fear").transform.position); } else if (invocant.name == "Monster_Sadness") { newTargetNode = pathFollowing.graph.GetNearestNodeByCenter(GameObject.Find("Monster_Happiness").transform.position); } } //New target node is going to be an adyacent one if (pathFollowing.path.Count == 0) { List <int> adyacents = graph.GetNodeAdyacents(newTargetNode); if (invocant.name == "Monster_Anger") { newTargetNode = graph.GetNearestAdyacentNodeByCenter(GameObject.Find("Monster_Fear").transform.position, adyacents); } else if (invocant.name == "Monster_Sadness") { newTargetNode = graph.GetNearestAdyacentNodeByCenter(GameObject.Find("Monster_Happiness").transform.position, adyacents); } pathFollowing.ChangeEndNode(newTargetNode); } }