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