コード例 #1
0
ファイル: EffectOverTime.cs プロジェクト: Mhyshka/FFEngine
    internal virtual EffectOverTimeReport Timeout()
    {
        EffectOverTimeInfos effectInfos = new EffectOverTimeInfos();

        effectInfos.effectOverTime = this;
        effectInfos.trigger        = EEffectOverTimeTrigger.TimeOut;

        List <AEffectReport> effectsReport = new List <AEffectReport>();

        foreach (EffectWrapper each in effects)
        {
            if (each.trigger.OnTimeOut)
            {
                effectInfos.doesStack         = each.doesStack;
                effectInfos.perStackModifier  = each.perStackModifier;
                effectInfos.isRevertOnDestroy = each.isRevertOnDestroy;
                each.effect.effectInfos       = effectInfos;
                effectsReport.Add(each.effect.Apply(target));
            }
        }

        EffectOverTimeReport report = new EffectOverTimeReport();

        report.effectInfos = effectInfos;
        report.target      = target;
        report.attackInfos = attackInfos;
        report.effects     = effectsReport;
        report.effect      = conf;
        report.trigger     = EEffectOverTimeTrigger.TimeOut;
        return(report);
    }
コード例 #2
0
ファイル: EffectOverTime.cs プロジェクト: Mhyshka/FFEngine
    internal virtual EffectOverTimeReport Refresh()
    {
        timeElapsedSinceRefresh = 0f;
        _tickNeeded             = 0;
        _currentStackCount      = Mathf.Clamp(_currentStackCount + 1,
                                              0,
                                              conf.maxStack);

        EffectOverTimeInfos effectInfos = new EffectOverTimeInfos();

        effectInfos.effectOverTime = this;
        effectInfos.trigger        = EEffectOverTimeTrigger.Refresh;

        List <AEffectReport> effectsReport = new List <AEffectReport>();

        foreach (EffectWrapper each in effects)
        {
            if (each.trigger.OnRefresh)
            {
                effectInfos.doesStack         = each.doesStack;
                effectInfos.perStackModifier  = each.perStackModifier;
                effectInfos.isRevertOnDestroy = each.isRevertOnDestroy;
                each.effect.effectInfos       = effectInfos;
                effectsReport.Add(each.effect.Apply(target));
            }
        }

        EffectOverTimeReport report = new EffectOverTimeReport();

        report.effectInfos = effectInfos;
        report.target      = target;
        report.attackInfos = attackInfos;
        report.effects     = effectsReport;
        report.effect      = conf;
        report.trigger     = EEffectOverTimeTrigger.Refresh;
        return(report);
    }