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