diff --git a/osu.Game.Rulesets.Mania/UI/DrawableManiaJudgement.cs b/osu.Game.Rulesets.Mania/UI/DrawableManiaJudgement.cs
index 5874bac7f6..8797f014df 100644
--- a/osu.Game.Rulesets.Mania/UI/DrawableManiaJudgement.cs
+++ b/osu.Game.Rulesets.Mania/UI/DrawableManiaJudgement.cs
@@ -22,22 +22,15 @@ namespace osu.Game.Rulesets.Mania.UI
JudgementText.Font = JudgementText.Font.With(size: 25);
}
- protected override void LoadComplete()
+ protected override double FadeInDuration => 50;
+
+ protected override void ApplyHitAnimations()
{
- base.LoadComplete();
+ JudgementBody.ScaleTo(0.8f);
+ JudgementBody.ScaleTo(1, 250, Easing.OutElastic);
- this.FadeInFromZero(50, Easing.OutQuint);
-
- if (Result.IsHit)
- {
- JudgementBody.ScaleTo(0.8f);
- JudgementBody.ScaleTo(1, 250, Easing.OutElastic);
-
- JudgementBody.Delay(50).ScaleTo(0.75f, 250);
- this.Delay(50).FadeOut(200);
- }
-
- Expire();
+ JudgementBody.Delay(FadeInDuration).ScaleTo(0.75f, 250);
+ this.Delay(FadeInDuration).FadeOut(200);
}
}
}
diff --git a/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuJudgement.cs b/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuJudgement.cs
index 2512e74da7..938a2293ba 100644
--- a/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuJudgement.cs
+++ b/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuJudgement.cs
@@ -5,7 +5,6 @@ using osu.Framework.Graphics;
using osuTK;
using osu.Game.Rulesets.Judgements;
using osu.Game.Rulesets.Objects.Drawables;
-using osu.Game.Rulesets.Scoring;
namespace osu.Game.Rulesets.Osu.Objects.Drawables
{
@@ -16,12 +15,10 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
{
}
- protected override void LoadComplete()
+ protected override void ApplyHitAnimations()
{
- if (Result.Type != HitResult.Miss)
- JudgementText?.TransformSpacingTo(new Vector2(14, 0), 1800, Easing.OutQuint);
-
- base.LoadComplete();
+ JudgementText?.TransformSpacingTo(new Vector2(14, 0), 1800, Easing.OutQuint);
+ base.ApplyHitAnimations();
}
}
}
diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs
index 90841f11f5..943adaed4b 100644
--- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs
+++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs
@@ -39,12 +39,10 @@ namespace osu.Game.Rulesets.Taiko.UI
}
}
- protected override void LoadComplete()
+ protected override void ApplyHitAnimations()
{
- if (Result.IsHit)
- this.MoveToY(-100, 500);
-
- base.LoadComplete();
+ this.MoveToY(-100, 500);
+ base.ApplyHitAnimations();
}
}
}
diff --git a/osu.Game/Rulesets/Judgements/DrawableJudgement.cs b/osu.Game/Rulesets/Judgements/DrawableJudgement.cs
index 0d6e11c649..89db954c36 100644
--- a/osu.Game/Rulesets/Judgements/DrawableJudgement.cs
+++ b/osu.Game/Rulesets/Judgements/DrawableJudgement.cs
@@ -32,6 +32,12 @@ namespace osu.Game.Rulesets.Judgements
protected Container JudgementBody;
protected SpriteText JudgementText;
+ ///
+ /// Duration of initial fade in.
+ /// Default fade out will start immediately after this duration.
+ ///
+ protected virtual double FadeInDuration => 100;
+
///
/// Creates a drawable which visualises a .
///
@@ -65,11 +71,19 @@ namespace osu.Game.Rulesets.Judgements
};
}
+ protected virtual void ApplyHitAnimations()
+ {
+ JudgementBody.ScaleTo(0.9f);
+ JudgementBody.ScaleTo(1, 500, Easing.OutElastic);
+
+ this.Delay(FadeInDuration).FadeOut(400);
+ }
+
protected override void LoadComplete()
{
base.LoadComplete();
- this.FadeInFromZero(100, Easing.OutQuint);
+ this.FadeInFromZero(FadeInDuration, Easing.OutQuint);
switch (Result.Type)
{
@@ -85,10 +99,7 @@ namespace osu.Game.Rulesets.Judgements
this.Delay(600).FadeOut(200);
break;
default:
- JudgementBody.ScaleTo(0.9f);
- JudgementBody.ScaleTo(1, 500, Easing.OutElastic);
-
- this.Delay(100).FadeOut(400);
+ ApplyHitAnimations();
break;
}