Exemple #1
0
    private void FightClosestTarget()
    {
        TargetableByAIAlly closestTargetAlly = AI_ControllerAlly.Instance.GetClosestTargetAlly(transform.position, soldierType.GetSoldierType);

        if (closestTargetAlly != null)
        {
            if (soldierType.melee)
            {
                charController.Command_AttackMelee(closestTargetAlly.GetComponent <Alive> ());
            }
            else if (soldierType.range)
            {
                charController.Command_AttackRange(closestTargetAlly.GetComponent <Alive> ());
            }
            else if (soldierType.magic)
            {
                charController.Command_AttackMagic(closestTargetAlly.GetComponent <Alive> ());
            }
            else
            {
                Debug.Log("Pas de type de combattant indiqué");
            }
        }
        else if (walker.IsInRallyPoint)
        {
            new WaitForSeconds(3f);
            StartCoroutine("Fight");
        }
        else
        {
            // Debug.Log (walker.IsInRallyPoint);
            charController.OnWalkToRallyPoint();
        }
    }
Exemple #2
0
    public TargetableByAIAlly GetClosestTargetAlly(Vector3 position, string type)
    {
        float minDistance                = 99999;
        float maxDistanceEngage          = GetDistanceEngageMax(type);
        TargetableByAIAlly closestTarget = null;

        //Debug.Log (targetsAlly);
        //CheckTargets ();
        //Debug.Log (targetsAlly);
        foreach (TargetableByAIAlly targetAlly in targetsAlly)
        {
            if ((targetAlly != null) && (!targetAlly.GetComponent <Alive> ().IsDead))
            {
                float distance = Vector3.Distance(position, targetAlly.transform.position);
                if (((distance < minDistance) || (closestTarget == null)) && (distance < maxDistanceEngage))
                {
                    minDistance   = distance;
                    closestTarget = targetAlly;
                }
            }
        }

        return(closestTarget);
    }