public override void EvaluateCandidates(NPC unit, float weighting = 0) { if (unit.focus != null) { Task task = new t_SimpleMeleeAttack(); task.taskName = "simple melee"; task.target = unit.focus; unit.GetComponent <AI>().tasks.Add(task); } else { foreach (Unit target in Initiative.players) { //check it can find a route. unit.destination = target.gameObject; target.GetComponent <TacticsMovement>().GetCurrentTile(); Tile t = unit.FindPath(target.GetComponent <TacticsMovement>().currentTile); unit.destination = null; if (t == null) { return; } Task task = new t_SimpleMeleeAttack(); task.taskName = "simple melee"; task.value = 1 / Vector3.Distance(unit.transform.position, target.transform.position); task.tile = t; task.target = target.GetComponent <Unit>(); unit.GetComponent <AI>().tasks.Add(task); } } }