public static void Caster_NewTurnStarted(this OnHitStatus onHitStatus, object sender, StartNewTurnEventArgs args) { onHitStatus.CheckDotDamage(true, true); if (onHitStatus.HasAMaximumDuration && onHitStatus.DurationIsCalculatedOnCasterTurn && onHitStatus.DurationIsBasedOnStartOfTurn) { onHitStatus.RemoveDuration(); } }
public static void Affected_TurnEnded(this OnHitStatus onHitStatus, object sender, TurnEndedEventArgs args) { bool expired = false; onHitStatus.CheckDotDamage(false, false); if (onHitStatus.HasAMaximumDuration && !onHitStatus.DurationIsCalculatedOnCasterTurn && !onHitStatus.DurationIsBasedOnStartOfTurn) { expired = onHitStatus.RemoveDuration(); } if (!expired && onHitStatus.CanRedoSavingThrow && !onHitStatus.SavingIsRemadeAtStartOfTurn) { OnHitStatusApplyWindow window = new OnHitStatusApplyWindow(onHitStatus.Caster, onHitStatus.Affected, false); window.DataContext = onHitStatus; window.ShowCentered(); } }