diff --git a/osu.Game/Rulesets/Scoring/JudgementProcessor.cs b/osu.Game/Rulesets/Scoring/JudgementProcessor.cs index 54debebde9..b0bc205ea9 100644 --- a/osu.Game/Rulesets/Scoring/JudgementProcessor.cs +++ b/osu.Game/Rulesets/Scoring/JudgementProcessor.cs @@ -47,6 +47,10 @@ namespace osu.Game.Rulesets.Scoring Reset(true); } + public virtual void ApplyElapsedTime(double elapsedTime) + { + } + /// /// Applies the score change of a to this . /// @@ -115,6 +119,8 @@ namespace osu.Game.Rulesets.Scoring /// The to simulate. protected virtual void SimulateAutoplay(IBeatmap beatmap) { + HitObject lastObject = null; + foreach (var obj in beatmap.HitObjects) simulate(obj); @@ -123,6 +129,9 @@ namespace osu.Game.Rulesets.Scoring foreach (var nested in obj.NestedHitObjects) simulate(nested); + if (lastObject != null) + ApplyElapsedTime(lastObject.GetEndTime() - obj.StartTime); + var judgement = obj.CreateJudgement(); if (judgement == null) return; @@ -132,8 +141,9 @@ namespace osu.Game.Rulesets.Scoring throw new InvalidOperationException($"{GetType().ReadableName()} must provide a {nameof(JudgementResult)} through {nameof(CreateResult)}."); result.Type = judgement.MaxResult; - ApplyResult(result); + + lastObject = obj; } } }