diff --git a/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs b/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs index 752e3bee26..0e5df329d8 100644 --- a/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs +++ b/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs @@ -53,7 +53,7 @@ namespace osu.Game.Rulesets.Taiko.Scoring /// /// Taiko fails at the end of the map if the player has not half-filled their HP bar. /// - public override bool HasFailed => Hits == MaxHits && Health.Value <= 0.5; + protected override bool FailCondition => Hits == MaxHits && Health.Value <= 0.5; private double hpIncreaseTick; private double hpIncreaseGreat; diff --git a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs index 0b631a7148..934b19b511 100644 --- a/osu.Game/Rulesets/Scoring/ScoreProcessor.cs +++ b/osu.Game/Rulesets/Scoring/ScoreProcessor.cs @@ -69,7 +69,12 @@ namespace osu.Game.Rulesets.Scoring /// /// Whether the score is in a failed state. /// - public virtual bool HasFailed => Health.Value == Health.MinValue; + public virtual bool HasFailed => alreadyFailed; + + /// + /// The conditions for failing + /// + protected virtual bool FailCondition => Health.Value == Health.MinValue; /// /// Whether this ScoreProcessor has already triggered the failed state. @@ -121,7 +126,7 @@ namespace osu.Game.Rulesets.Scoring /// protected void UpdateFailed() { - if (alreadyFailed || !HasFailed) + if (alreadyFailed || !FailCondition) return; if (Failed?.Invoke() != false)