public List<FormationUnit> GetAvailableTargets(FormationUnit performer, FormationParty friends, FormationParty enemies)
    {
        if (TargetRanks.IsSelfTarget)
            return new List<FormationUnit>(new FormationUnit[] { performer });

        if (TargetRanks.IsSelfFormation)
            return friends.Units.FindAll(unit =>
                (((unit == performer) && TargetRanks.IsTargetableUnit(unit) && IsSelfValid) ||
                ((unit != performer) && TargetRanks.IsTargetableUnit(unit))) && (unit.Character.BattleModifiers == null ||
                unit.Character.BattleModifiers.IsValidFriendlyTarget != false));
        else
            return enemies.Units.FindAll(unit =>
                ((unit != performer) && TargetRanks.IsTargetableUnit(unit)));
    }
    public bool HasAvailableTargets(FormationUnit performer, FormationParty friends, FormationParty enemies)
    {
        if (TargetRanks.IsSelfTarget)
            return true;

        if (TargetRanks.IsSelfFormation)
            for (int i = 0; i < friends.Units.Count; i++)
            {
                if (performer == friends.Units[i])
                {
                    if (IsSelfValid && TargetRanks.IsTargetableUnit(friends.Units[i]))
                        return true;
                }
                else if (TargetRanks.IsTargetableUnit(friends.Units[i]))
                    return true;
            }
        else 
            for (int i = 0; i < enemies.Units.Count; i++)
                if (TargetRanks.IsTargetableUnit(enemies.Units[i]))
                    return true;

        return false;
    }
Exemple #3
0
    public bool HasAvailableTargets(FormationUnit performer, FormationParty friends, FormationParty enemies)
    {
        if (TargetRanks.IsSelfTarget)
        {
            return(true);
        }

        if (TargetRanks.IsSelfFormation)
        {
            for (int i = 0; i < friends.Units.Count; i++)
            {
                if (performer == friends.Units[i])
                {
                    if (IsSelfValid && TargetRanks.IsTargetableUnit(friends.Units[i]))
                    {
                        return(true);
                    }
                }
                else if (TargetRanks.IsTargetableUnit(friends.Units[i]))
                {
                    return(true);
                }
            }
        }
        else
        {
            for (int i = 0; i < enemies.Units.Count; i++)
            {
                if (TargetRanks.IsTargetableUnit(enemies.Units[i]))
                {
                    return(true);
                }
            }
        }

        return(false);
    }