Example #1
0
    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);
        }
    }
Example #2
0
    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;
        });
    }