Exemple #1
0
    private List <Character> SelectFinalTargets(EnemyTargetedAction targetedAction, List <Character> potentialTargets, Character targettingCharacter)
    {
        List <Character> finalTargets = new List <Character>();
        Character        targetPreference;

        switch (targetedAction.TargetType)
        {
        case TargetType.AllEnemiesExclusive:
        case TargetType.AllEnemiesInclusive:
        case TargetType.AllPlayersExclusive:
        case TargetType.AllPlayersInclusive:
            finalTargets = potentialTargets;
            break;

        case TargetType.EnemySingle:
            targetPreference = potentialTargets.FirstOrDefault(x => x.Name == targetedAction.TargetPreferenceName);
            if (targetPreference != null)
            {
                finalTargets.Add(targetPreference);
            }
            else if (targetedAction.TargetLowest)
            {
                finalTargets.Add(CharacterManager.Instance.GetWeakestEnemy());
            }
            else
            {
                finalTargets.Add(CharacterManager.Instance.GetRandomAliveEnemy());
            }
            break;

        case TargetType.PlayersSingle:
            targetPreference = potentialTargets.FirstOrDefault(x => x.Name == targetedAction.TargetPreferenceName);
            if (targetPreference != null)
            {
                finalTargets.Add(targetPreference);
            }
            else if (targetedAction.TargetLowest)
            {
                finalTargets.Add(CharacterManager.Instance.GetWeakestPlayer());
            }
            else
            {
                finalTargets.Add(CharacterManager.Instance.GetRandomAlivePlayer());
            }
            break;

        case TargetType.Self:
            potentialTargets.Add(targettingCharacter);
            break;
        }
        return(finalTargets);
    }
Exemple #2
0
    private List <Character> FindPotentialActionTargets(EnemyTargetedAction targetedAction, Character targettingCharacter)
    {
        List <Character> potentialTargets = new List <Character>();

        switch (targetedAction.TargetType)
        {
        case TargetType.AllEnemiesExclusive:
            potentialTargets = CharacterManager.Instance.GetAliveEnemies();
            break;

        case TargetType.AllEnemiesInclusive:
            potentialTargets = CharacterManager.Instance.GetAliveEnemies();
            break;

        case TargetType.AllPlayersExclusive:
            potentialTargets = CharacterManager.Instance.GetAlivePlayers();
            break;

        case TargetType.AllPlayersInclusive:
            potentialTargets = CharacterManager.Instance.GetAlivePlayers();
            break;

        case TargetType.EnemySingle:
            potentialTargets = CharacterManager.Instance.GetAliveEnemies();
            break;

        case TargetType.PlayersSingle:
            potentialTargets = CharacterManager.Instance.GetAlivePlayers();
            break;

        case TargetType.Self:
            potentialTargets.Add(targettingCharacter);
            break;
        }
        return(potentialTargets);
    }