diff --git a/osu.Game.Rulesets.Taiko/Scoring/TaikoHealthProcessor.cs b/osu.Game.Rulesets.Taiko/Scoring/TaikoHealthProcessor.cs index 679addc32d..85f072fa54 100644 --- a/osu.Game.Rulesets.Taiko/Scoring/TaikoHealthProcessor.cs +++ b/osu.Game.Rulesets.Taiko/Scoring/TaikoHealthProcessor.cs @@ -27,7 +27,7 @@ namespace osu.Game.Rulesets.Taiko.Scoring private double hpMissMultiplier; public TaikoHealthProcessor(double gameplayStartTime) - : base(gameplayStartTime) + : base(gameplayStartTime, 0.5) { } @@ -42,6 +42,5 @@ namespace osu.Game.Rulesets.Taiko.Scoring protected override double GetHealthIncreaseFor(JudgementResult result) => base.GetHealthIncreaseFor(result) * (result.Type == HitResult.Miss ? hpMissMultiplier : hpMultiplier); - protected override bool DefaultFailCondition => JudgedHits == MaxHits && Health.Value <= 0.5; } } diff --git a/osu.Game/Rulesets/Scoring/AccumulatingHealthProcessor.cs b/osu.Game/Rulesets/Scoring/AccumulatingHealthProcessor.cs index edc8d18804..540b4b8a1d 100644 --- a/osu.Game/Rulesets/Scoring/AccumulatingHealthProcessor.cs +++ b/osu.Game/Rulesets/Scoring/AccumulatingHealthProcessor.cs @@ -3,11 +3,25 @@ namespace osu.Game.Rulesets.Scoring { + /// + /// A that accumulates health and causes a fail if the final health + /// is less than a value required to pass the beatmap. + /// public class AccumulatingHealthProcessor : HealthProcessor { - public AccumulatingHealthProcessor(double gameplayStartTime) + protected override bool DefaultFailCondition => JudgedHits == MaxHits && Health.Value < requiredHealth; + + private readonly double requiredHealth; + + /// + /// Creates a new . + /// + /// The gameplay start time. + /// The minimum amount of health required to beatmap. + public AccumulatingHealthProcessor(double gameplayStartTime, double requiredHealth) : base(gameplayStartTime) { + this.requiredHealth = requiredHealth; } protected override void Reset(bool storeResults) diff --git a/osu.Game/Rulesets/Scoring/DrainingHealthProcessor.cs b/osu.Game/Rulesets/Scoring/DrainingHealthProcessor.cs index 8b30728caf..df9fba0cca 100644 --- a/osu.Game/Rulesets/Scoring/DrainingHealthProcessor.cs +++ b/osu.Game/Rulesets/Scoring/DrainingHealthProcessor.cs @@ -9,6 +9,9 @@ using osu.Game.Rulesets.Objects; namespace osu.Game.Rulesets.Scoring { + /// + /// A which continuously drains health. + /// public class DrainingHealthProcessor : HealthProcessor { private IBeatmap beatmap; @@ -17,6 +20,10 @@ namespace osu.Game.Rulesets.Scoring private double targetMinimumHealth; private double drainRate = 1; + /// + /// Creates a new . + /// + /// The gameplay start time. public DrainingHealthProcessor(double gameplayStartTime) : base(gameplayStartTime) { diff --git a/osu.Game/Rulesets/Scoring/HealthProcessor.cs b/osu.Game/Rulesets/Scoring/HealthProcessor.cs index 597989701d..d8addc2b4d 100644 --- a/osu.Game/Rulesets/Scoring/HealthProcessor.cs +++ b/osu.Game/Rulesets/Scoring/HealthProcessor.cs @@ -41,6 +41,10 @@ namespace osu.Game.Rulesets.Scoring /// protected readonly double GameplayStartTime; + /// + /// Creates a new . + /// + /// The gameplay start time. protected HealthProcessor(double gameplayStartTime) { GameplayStartTime = gameplayStartTime; @@ -70,6 +74,11 @@ namespace osu.Game.Rulesets.Scoring // Todo: Revert HasFailed state with proper player support } + /// + /// Retrieves the health increase for a . + /// + /// The . + /// The health increase. protected virtual double GetHealthIncreaseFor(JudgementResult result) => result.Judgement.HealthIncreaseFor(result); ///