예제 #1
0
    private bool checkLife(CombatAIRow row)
    {
        //Debug.Log(owner);
        List <CombatChar> targets = owner.GetTargetsOnRange(row.power.range, row.targets);

        if (targets == null)
        {
            return(false);
        }
        List <CombatChar> realTargets = new List <CombatChar>();



        if (row.condition == AIConditions.Higher)
        {
            foreach (CombatChar target in targets)
            {
                if (target.C.percentLife() >= (float)row.value)
                {
                    realTargets.Add(target);
                }
            }
        }
        else if (row.condition == AIConditions.Lesser)
        {
            foreach (CombatChar target in targets)
            {
                //Debug.Log(target.percentLife() + " " + (float)row.value);
                if (target.C.percentLife() <= (float)row.value)
                {
                    realTargets.Add(target);
                }
            }
        }
        if (realTargets.Count == 0)
        {
            return(false);
        }
        else if (realTargets.Count == 1)
        {
            owner.castTarget   = realTargets[0];
            owner.chargedPower = row.power;
            owner.castingTimer = row.power.castingTime;
            return(true);
        }
        else
        {
            realTargets.Sort(delegate(CombatChar a, CombatChar b) {
                return(a.GetAggro().CompareTo(b.GetAggro()));
            });
            owner.castTarget   = realTargets[realTargets.Count - 1];
            owner.chargedPower = row.power;
            owner.castingTimer = row.power.castingTime;
            return(true);
        }
    }
    public CombatAIRow SaveRow()
    {
        CombatAIRow row = new CombatAIRow();

        foreach (CombatAI.AIConditions condition in Enum.GetValues(typeof(CombatAI.AIConditions)))
        {
            if (condition.ToString() == conditionTab.GetComponentInChildren <Text>().text)
            {
                row.condition = condition;
            }
        }
        foreach (CombatManager.Targets target in Enum.GetValues(typeof(CombatManager.Targets)))
        {
            if (target.ToString() == targetTab.GetComponentInChildren <Text>().text)
            {
                row.targets = target;
            }
        }
        foreach (CombatAI.AIValues values in Enum.GetValues(typeof(CombatAI.AIValues)))
        {
            if (values.ToString() == valueTab.GetComponentInChildren <Text>().text)
            {
                row.value = values;
            }
        }
        foreach (CombatAI.AITests tests in Enum.GetValues(typeof(CombatAI.AITests)))
        {
            if (tests.ToString() == testTab.GetComponentInChildren <Text>().text)
            {
                row.test = tests;
            }
        }
        row.power = Owner.C.knownPowers[powerTab.GetComponentInChildren <Text>().text];

        return(row);
    }