diff --git a/osu.Game.Modes.Taiko/Judgements/TaikoDrumRollTickJudgement.cs b/osu.Game.Modes.Taiko/Judgements/TaikoDrumRollTickJudgement.cs
index b6a727aeb4..6ae476b265 100644
--- a/osu.Game.Modes.Taiko/Judgements/TaikoDrumRollTickJudgement.cs
+++ b/osu.Game.Modes.Taiko/Judgements/TaikoDrumRollTickJudgement.cs
@@ -15,6 +15,8 @@ namespace osu.Game.Modes.Taiko.Judgements
///
public override string MaxResultString => string.Empty;
+ public override bool AffectsCombo => false;
+
protected override int NumericResultForScore(TaikoHitResult result)
{
switch (result)
diff --git a/osu.Game.Modes.Taiko/Scoring/TaikoScoreProcessor.cs b/osu.Game.Modes.Taiko/Scoring/TaikoScoreProcessor.cs
index 1774787247..987c3181a4 100644
--- a/osu.Game.Modes.Taiko/Scoring/TaikoScoreProcessor.cs
+++ b/osu.Game.Modes.Taiko/Scoring/TaikoScoreProcessor.cs
@@ -187,20 +187,6 @@ namespace osu.Game.Modes.Taiko.Scoring
if (!isTick)
totalHits++;
- // Apply combo changes, must be done before the hit score is added
- if (!isTick)
- {
- switch (judgement.Result)
- {
- case HitResult.Miss:
- Combo.Value = 0;
- break;
- case HitResult.Hit:
- Combo.Value++;
- break;
- }
- }
-
// Apply score changes
addHitScore(judgement);
diff --git a/osu.Game/Modes/Judgements/Judgement.cs b/osu.Game/Modes/Judgements/Judgement.cs
index 677ec8bca9..1bf898d25c 100644
--- a/osu.Game/Modes/Judgements/Judgement.cs
+++ b/osu.Game/Modes/Judgements/Judgement.cs
@@ -17,10 +17,7 @@ namespace osu.Game.Modes.Judgements
///
public double TimeOffset;
- ///
- /// The combo after this judgement was processed.
- ///
- public int ComboAtHit;
+ public virtual bool AffectsCombo => true;
///
/// The string representation for the result achieved.
diff --git a/osu.Game/Modes/Scoring/ScoreProcessor.cs b/osu.Game/Modes/Scoring/ScoreProcessor.cs
index a64b4d4013..ba845b84dc 100644
--- a/osu.Game/Modes/Scoring/ScoreProcessor.cs
+++ b/osu.Game/Modes/Scoring/ScoreProcessor.cs
@@ -8,6 +8,7 @@ using osu.Game.Beatmaps;
using osu.Game.Modes.Judgements;
using osu.Game.Modes.Objects;
using osu.Game.Modes.UI;
+using osu.Game.Modes.Objects.Drawables;
namespace osu.Game.Modes.Scoring
{
@@ -145,10 +146,21 @@ namespace osu.Game.Modes.Scoring
if (!exists)
{
+ if (judgement.AffectsCombo)
+ {
+ switch (judgement.Result)
+ {
+ case HitResult.Miss:
+ Combo.Value = 0;
+ break;
+ case HitResult.Hit:
+ Combo.Value++;
+ break;
+ }
+ }
+
Judgements.Add(judgement);
OnNewJudgement(judgement);
-
- judgement.ComboAtHit = Combo.Value;
}
else
OnJudgementChanged(judgement);