public void StartAIActions() { if (isAIControlled) { List <CharacterAIHandler> aiPrioritized = team.Characters.Select(c => c.AIHandler). OrderByDescending(ai => ai.AITemplate.TurnPriority).ToList(); ActionSeriesExecuter seriesExecuter = new ActionSeriesExecuter(); seriesExecuter.DoSeriesOfDelayedActions(aiPrioritized, aiFinished.Invoke); } }
public void Execute() { OnStart.Invoke(); Caster.EventHandler.CastAbility.Invoke(this); foreach (Character target in Targets) { target.EventHandler.TargetedByAbility.Invoke(this); } Ability.Cooldown.StartCD(); List <AbilityActionInstance> actionInsts = GenerateActionInstances(); ActionSeriesExecuter seriesExecuter = new ActionSeriesExecuter(); seriesExecuter.DoSeriesOfDelayedActions(actionInsts, () => { OnComplete.Invoke(); isActive = false; }); }