Exemplo n.º 1
0
    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);
            }
        }
    }