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;
}
}
}