private void SetInDefend(bool inDefend) { if (inDefend) { this._perfectDefendState = PerfectDefendState.WaitToStart; this._perfectDefendTimer.timespan = base.instancedAbility.Evaluate(this.config.DefendPerfectStartTime); this._perfectDefendTimer.Reset(true); if (this.config.DefendDurationModifierName != null) { this._defendAttachedModifier = base.actor.abilityPlugin.ApplyModifier(base.instancedAbility, this.config.DefendDurationModifierName); } } else if (this._defendAttachedModifier != null) { base.actor.abilityPlugin.TryRemoveModifier(this._defendAttachedModifier); this._defendAttachedModifier = null; } this._isInDefend = inDefend; }
public override void Core() { if (this._perfectDefendState == PerfectDefendState.WaitToStart) { this._perfectDefendTimer.Core(1f); if (this._perfectDefendTimer.isTimeUp) { this._perfectDefendTimer.timespan = this._perfectDefendDuration; this._perfectDefendTimer.Reset(true); this._perfectDefendState = PerfectDefendState.PerfectDefend; if (this.config.DefendPerfectDurationModifierName != null) { this._defendPerfectAttachedModifier = base.actor.abilityPlugin.ApplyModifier(base.instancedAbility, this.config.DefendPerfectDurationModifierName); } } } else if (this._perfectDefendState == PerfectDefendState.PerfectDefend) { this._perfectDefendTimer.Core(1f); if (this._perfectDefendTimer.isTimeUp) { this._perfectDefendTimer.Reset(false); this._perfectDefendState = PerfectDefendState.Idle; if (this._defendPerfectAttachedModifier != null) { base.actor.abilityPlugin.TryRemoveModifier(this._defendPerfectAttachedModifier); this._defendPerfectAttachedModifier = null; } } } if (this._state == State.Before) { if (!this._isInDefend && (base.entity.GetCurrentNormalizedTime() > this.config.DefendBSNormalizedStartTime)) { this.SetInDefend(true); } } else if (((this._state == State.After) && this._isInDefend) && (base.entity.GetCurrentNormalizedTime() > this.config.DefendASNormalizedEndTime)) { this.SetInDefend(false); } }
public override void OnAdded() { this._state = State.Idle; this._perfectDefendState = PerfectDefendState.Idle; base.entity.onCurrentSkillIDChanged = (Action <string, string>)Delegate.Combine(base.entity.onCurrentSkillIDChanged, new Action <string, string>(this.SkillIDChangedCallback)); }