private void HandleEnemyTurn()
    {
        for (int i = enemyParticipants.collection.Count - 1; i >= 0; i--)
        {
            Character character = enemyParticipants.collection[i];
            if (character == null)
            {
                continue;
            }

            if (character.CharacterATB.Ready && !awaitingTurnQueue.Contains(character) && !character.IsDead)
            {
                BattleAction     action  = character.CharacterClass.PickRandomMove();
                List <Character> targets = new List <Character>();

                switch (action.ActionType)
                {
                case ActionType.TargetSingle:
                    targets.Add(friendlyParticipants.PickRandom());
                    break;

                case ActionType.TargetSingleTeam:
                    targets.Add(enemyParticipants.PickRandom());
                    break;

                case ActionType.TargetAOE:
                    foreach (Character t in friendlyParticipants.collection.ToArray())
                    {
                        targets.Add(t);
                    }
                    break;

                case ActionType.TargetAOETeam:
                    foreach (Character t in enemyParticipants.collection.ToArray())
                    {
                        targets.Add(t);
                    }
                    break;

                case ActionType.TargetSelf:
                    targets.Add(character);
                    break;
                }

                BattleActionManager.Instance.RegisterAction(action, new TargetData(character, targets));
                awaitingTurnQueue.Add(character);
            }
        }
    }