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); } } }