示例#1
0
        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();
            }
        }
示例#2
0
        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();
            }
        }