diff --git a/osu.Game.Rulesets.Osu/Judgements/OsuJudgement.cs b/osu.Game.Rulesets.Osu/Judgements/OsuJudgement.cs
index 845ff76ce6..bf30fbc351 100644
--- a/osu.Game.Rulesets.Osu/Judgements/OsuJudgement.cs
+++ b/osu.Game.Rulesets.Osu/Judgements/OsuJudgement.cs
@@ -8,11 +8,6 @@ namespace osu.Game.Rulesets.Osu.Judgements
{
public class OsuJudgement : Judgement
{
- ///
- /// The health increase for a maximum judgement result.
- ///
- protected const double MAX_HEALTH_INCREASE = 0.05;
-
public override HitResult MaxResult => HitResult.Great;
protected override int NumericResultFor(HitResult result)
@@ -32,26 +27,5 @@ namespace osu.Game.Rulesets.Osu.Judgements
return 300;
}
}
-
- protected override double HealthIncreaseFor(HitResult result)
- {
- switch (result)
- {
- case HitResult.Miss:
- return -MAX_HEALTH_INCREASE;
-
- case HitResult.Meh:
- return -MAX_HEALTH_INCREASE * 0.05;
-
- case HitResult.Good:
- return MAX_HEALTH_INCREASE * 0.3;
-
- case HitResult.Great:
- return MAX_HEALTH_INCREASE;
-
- default:
- return 0;
- }
- }
}
}
diff --git a/osu.Game/Rulesets/Judgements/Judgement.cs b/osu.Game/Rulesets/Judgements/Judgement.cs
index f07f76a2b8..599135ba54 100644
--- a/osu.Game/Rulesets/Judgements/Judgement.cs
+++ b/osu.Game/Rulesets/Judgements/Judgement.cs
@@ -11,6 +11,12 @@ namespace osu.Game.Rulesets.Judgements
///
public class Judgement
{
+ ///
+ /// The default health increase for a maximum judgement, as a proportion of total health.
+ /// By default, each maximum judgement restores 5% of total health.
+ ///
+ protected const double DEFAULT_MAX_HEALTH_INCREASE = 0.05;
+
///
/// The maximum that can be achieved.
///
@@ -55,7 +61,32 @@ namespace osu.Game.Rulesets.Judgements
///
/// The to find the numeric health increase for.
/// The numeric health increase of .
- protected virtual double HealthIncreaseFor(HitResult result) => 0;
+ protected virtual double HealthIncreaseFor(HitResult result)
+ {
+ switch (result)
+ {
+ case HitResult.Miss:
+ return -DEFAULT_MAX_HEALTH_INCREASE;
+
+ case HitResult.Meh:
+ return -DEFAULT_MAX_HEALTH_INCREASE * 0.05;
+
+ case HitResult.Ok:
+ return -DEFAULT_MAX_HEALTH_INCREASE * 0.01;
+
+ case HitResult.Good:
+ return DEFAULT_MAX_HEALTH_INCREASE * 0.3;
+
+ case HitResult.Great:
+ return DEFAULT_MAX_HEALTH_INCREASE;
+
+ case HitResult.Perfect:
+ return DEFAULT_MAX_HEALTH_INCREASE * 1.05;
+
+ default:
+ return 0;
+ }
+ }
///
/// Retrieves the numeric health increase of a .