From 93915ba5270629dba09a0ff88b24fbb0cb5ca075 Mon Sep 17 00:00:00 2001
From: Dean Herbert <pe@ppy.sh>
Date: Thu, 23 Mar 2017 18:56:22 +0900
Subject: [PATCH 1/3] Fix regression of osu! judgement animation.

---
 .../Objects/Drawables/DrawableOsuJudgementInfo.cs          | 7 +------
 osu.Game/Modes/Judgements/DrawableJudgementInfo.cs         | 4 ++--
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs
index 15832bcb75..9cc09ff8d6 100644
--- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs
+++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs
@@ -17,15 +17,10 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
 
         protected override void LoadComplete()
         {
-            base.LoadComplete();
-
             if (Judgement.Result != HitResult.Miss)
-            {
                 JudgementText.TransformSpacingTo(new Vector2(14, 0), 1800, EasingTypes.OutQuint);
-                FadeOut(500);
-            }
 
-            Expire();
+            base.LoadComplete();
         }
     }
 }
\ No newline at end of file
diff --git a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs b/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs
index 85b357a995..ae51287599 100644
--- a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs
+++ b/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs
@@ -83,8 +83,8 @@ namespace osu.Game.Modes.Judgements
                     ScaleTo(0.9f);
                     ScaleTo(1, 500, EasingTypes.OutElastic);
 
-                    Delay(250);
-                    FadeOut(250, EasingTypes.OutQuint);
+                    Delay(100);
+                    FadeOut(400);
                     break;
             }
 

From 2cb801317dc62030bdb655847fe55696a7718cb3 Mon Sep 17 00:00:00 2001
From: Dean Herbert <pe@ppy.sh>
Date: Thu, 23 Mar 2017 19:00:18 +0900
Subject: [PATCH 2/3] JudgementInfo -> Judgement.

There is no case where we use the term "Judgement" without the suffix, so deemed it unnecessary.
---
 osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs  |  2 +-
 .../Tests/TestCaseTaikoPlayfield.cs                  |  8 ++++----
 osu.Game.Modes.Catch/CatchScoreProcessor.cs          |  6 +++---
 .../{CatchJudgementInfo.cs => CatchJudgement.cs}     |  2 +-
 osu.Game.Modes.Catch/UI/CatchHitRenderer.cs          |  6 +++---
 osu.Game.Modes.Catch/UI/CatchPlayfield.cs            |  2 +-
 osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj     |  2 +-
 .../{ManiaJudgementInfo.cs => ManiaJudgement.cs}     |  2 +-
 osu.Game.Modes.Mania/ManiaScoreProcessor.cs          |  6 +++---
 osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs          |  6 +++---
 osu.Game.Modes.Mania/UI/ManiaPlayfield.cs            |  2 +-
 osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj     |  2 +-
 .../{OsuJudgementInfo.cs => OsuJudgement.cs}         |  2 +-
 .../Objects/Drawables/DrawableOsuHitObject.cs        |  4 ++--
 ...leOsuJudgementInfo.cs => DrawableOsuJudgement.cs} |  4 ++--
 .../Objects/Drawables/DrawableSliderTick.cs          |  2 +-
 osu.Game.Modes.Osu/OsuScoreProcessor.cs              |  9 ++++-----
 osu.Game.Modes.Osu/UI/OsuHitRenderer.cs              |  6 +++---
 osu.Game.Modes.Osu/UI/OsuPlayfield.cs                |  8 ++++----
 osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj         |  4 ++--
 .../{TaikoJudgementInfo.cs => TaikoJudgement.cs}     |  2 +-
 .../Objects/Drawable/DrawableTaikoHitObject.cs       |  4 ++--
 osu.Game.Modes.Taiko/TaikoScoreProcessor.cs          |  6 +++---
 ...ikoJudgementInfo.cs => DrawableTaikoJudgement.cs} |  4 ++--
 osu.Game.Modes.Taiko/UI/HitExplosion.cs              |  4 ++--
 osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs          |  6 +++---
 osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs            | 12 ++++++------
 osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj     |  4 ++--
 ...DrawableJudgementInfo.cs => DrawableJudgement.cs} | 10 +++++-----
 .../Judgements/{JudgementInfo.cs => Judgement.cs}    |  2 +-
 .../Modes/Objects/Drawables/DrawableHitObject.cs     |  8 ++++----
 osu.Game/Modes/ScoreProcessor.cs                     |  4 ++--
 osu.Game/Modes/UI/HitRenderer.cs                     |  2 +-
 osu.Game/Modes/UI/Playfield.cs                       |  2 +-
 osu.Game/osu.Game.csproj                             |  4 ++--
 35 files changed, 79 insertions(+), 80 deletions(-)
 rename osu.Game.Modes.Catch/Judgements/{CatchJudgementInfo.cs => CatchJudgement.cs} (84%)
 rename osu.Game.Modes.Mania/Judgements/{ManiaJudgementInfo.cs => ManiaJudgement.cs} (84%)
 rename osu.Game.Modes.Osu/Judgements/{OsuJudgementInfo.cs => OsuJudgement.cs} (93%)
 rename osu.Game.Modes.Osu/Objects/Drawables/{DrawableOsuJudgementInfo.cs => DrawableOsuJudgement.cs} (77%)
 rename osu.Game.Modes.Taiko/Judgements/{TaikoJudgementInfo.cs => TaikoJudgement.cs} (95%)
 rename osu.Game.Modes.Taiko/UI/{DrawableTaikoJudgementInfo.cs => DrawableTaikoJudgement.cs} (87%)
 rename osu.Game/Modes/Judgements/{DrawableJudgementInfo.cs => DrawableJudgement.cs} (89%)
 rename osu.Game/Modes/Judgements/{JudgementInfo.cs => Judgement.cs} (93%)

diff --git a/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs b/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs
index f302330346..2a20cad2db 100644
--- a/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs
+++ b/osu.Desktop.VisualTests/Tests/TestCaseHitObjects.cs
@@ -136,7 +136,7 @@ namespace osu.Desktop.VisualTests.Tests
             if (auto)
             {
                 h.State = ArmedState.Hit;
-                h.Judgement = new OsuJudgementInfo { Result = HitResult.Hit };
+                h.Judgement = new OsuJudgement { Result = HitResult.Hit };
             }
 
             playfieldContainer.Add(h);
diff --git a/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs b/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs
index 3087b90e36..395a0cab13 100644
--- a/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs
+++ b/osu.Desktop.VisualTests/Tests/TestCaseTaikoPlayfield.cs
@@ -36,7 +36,7 @@ namespace osu.Desktop.VisualTests.Tests
             playfield.OnJudgement(new DrawableTestHit(new Hit())
             {
                 X = RNG.NextSingle(hitResult == TaikoHitResult.Good ? -0.1f : -0.05f, hitResult == TaikoHitResult.Good ? 0.1f : 0.05f),
-                Judgement = new TaikoJudgementInfo
+                Judgement = new TaikoJudgement
                 {
                     Result = HitResult.Hit,
                     TaikoResult = hitResult,
@@ -51,7 +51,7 @@ namespace osu.Desktop.VisualTests.Tests
         {
             playfield.OnJudgement(new DrawableTestHit(new Hit())
             {
-                Judgement = new TaikoJudgementInfo
+                Judgement = new TaikoJudgement
                 {
                     Result = HitResult.Miss,
                     TimeOffset = 0,
@@ -60,14 +60,14 @@ namespace osu.Desktop.VisualTests.Tests
             });
         }
 
-        private class DrawableTestHit : DrawableHitObject<TaikoHitObject, TaikoJudgementInfo>
+        private class DrawableTestHit : DrawableHitObject<TaikoHitObject, TaikoJudgement>
         {
             public DrawableTestHit(TaikoHitObject hitObject)
                 : base(hitObject)
             {
             }
 
-            protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo();
+            protected override TaikoJudgement CreateJudgement() => new TaikoJudgement();
 
             protected override void UpdateState(ArmedState state)
             {
diff --git a/osu.Game.Modes.Catch/CatchScoreProcessor.cs b/osu.Game.Modes.Catch/CatchScoreProcessor.cs
index be4ae8b799..6563949fbc 100644
--- a/osu.Game.Modes.Catch/CatchScoreProcessor.cs
+++ b/osu.Game.Modes.Catch/CatchScoreProcessor.cs
@@ -7,18 +7,18 @@ using osu.Game.Modes.UI;
 
 namespace osu.Game.Modes.Catch
 {
-    internal class CatchScoreProcessor : ScoreProcessor<CatchBaseHit, CatchJudgementInfo>
+    internal class CatchScoreProcessor : ScoreProcessor<CatchBaseHit, CatchJudgement>
     {
         public CatchScoreProcessor()
         {
         }
 
-        public CatchScoreProcessor(HitRenderer<CatchBaseHit, CatchJudgementInfo> hitRenderer)
+        public CatchScoreProcessor(HitRenderer<CatchBaseHit, CatchJudgement> hitRenderer)
             : base(hitRenderer)
         {
         }
 
-        protected override void UpdateCalculations(CatchJudgementInfo newJudgement)
+        protected override void UpdateCalculations(CatchJudgement newJudgement)
         {
         }
     }
diff --git a/osu.Game.Modes.Catch/Judgements/CatchJudgementInfo.cs b/osu.Game.Modes.Catch/Judgements/CatchJudgement.cs
similarity index 84%
rename from osu.Game.Modes.Catch/Judgements/CatchJudgementInfo.cs
rename to osu.Game.Modes.Catch/Judgements/CatchJudgement.cs
index 53e0c6c0bf..8e18c68153 100644
--- a/osu.Game.Modes.Catch/Judgements/CatchJudgementInfo.cs
+++ b/osu.Game.Modes.Catch/Judgements/CatchJudgement.cs
@@ -5,7 +5,7 @@ using osu.Game.Modes.Judgements;
 
 namespace osu.Game.Modes.Catch.Judgements
 {
-    public class CatchJudgementInfo : JudgementInfo
+    public class CatchJudgement : Judgement
     {
         public override string ScoreString => string.Empty;
 
diff --git a/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs b/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs
index c02b6b6c49..751a8291d4 100644
--- a/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs
+++ b/osu.Game.Modes.Catch/UI/CatchHitRenderer.cs
@@ -10,7 +10,7 @@ using osu.Game.Modes.UI;
 
 namespace osu.Game.Modes.Catch.UI
 {
-    public class CatchHitRenderer : HitRenderer<CatchBaseHit, CatchJudgementInfo>
+    public class CatchHitRenderer : HitRenderer<CatchBaseHit, CatchJudgement>
     {
         public CatchHitRenderer(WorkingBeatmap beatmap)
             : base(beatmap)
@@ -23,8 +23,8 @@ namespace osu.Game.Modes.Catch.UI
 
         protected override IBeatmapProcessor<CatchBaseHit> CreateBeatmapProcessor() => new CatchBeatmapProcessor();
 
-        protected override Playfield<CatchBaseHit, CatchJudgementInfo> CreatePlayfield() => new CatchPlayfield();
+        protected override Playfield<CatchBaseHit, CatchJudgement> CreatePlayfield() => new CatchPlayfield();
 
-        protected override DrawableHitObject<CatchBaseHit, CatchJudgementInfo> GetVisualRepresentation(CatchBaseHit h) => null;
+        protected override DrawableHitObject<CatchBaseHit, CatchJudgement> GetVisualRepresentation(CatchBaseHit h) => null;
     }
 }
diff --git a/osu.Game.Modes.Catch/UI/CatchPlayfield.cs b/osu.Game.Modes.Catch/UI/CatchPlayfield.cs
index eba8734eaf..cf1a665470 100644
--- a/osu.Game.Modes.Catch/UI/CatchPlayfield.cs
+++ b/osu.Game.Modes.Catch/UI/CatchPlayfield.cs
@@ -10,7 +10,7 @@ using osu.Game.Modes.Catch.Judgements;
 
 namespace osu.Game.Modes.Catch.UI
 {
-    public class CatchPlayfield : Playfield<CatchBaseHit, CatchJudgementInfo>
+    public class CatchPlayfield : Playfield<CatchBaseHit, CatchJudgement>
     {
         public CatchPlayfield()
         {
diff --git a/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj b/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj
index a32416173d..717e9175e4 100644
--- a/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj
+++ b/osu.Game.Modes.Catch/osu.Game.Modes.Catch.csproj
@@ -51,7 +51,7 @@
     <Compile Include="Beatmaps\CatchBeatmapProcessor.cs" />
     <Compile Include="CatchDifficultyCalculator.cs" />
     <Compile Include="CatchScoreProcessor.cs" />
-    <Compile Include="Judgements\CatchJudgementInfo.cs" />
+    <Compile Include="Judgements\CatchJudgement.cs" />
     <Compile Include="Objects\CatchBaseHit.cs" />
     <Compile Include="Objects\Drawable\DrawableFruit.cs" />
     <Compile Include="Objects\Droplet.cs" />
diff --git a/osu.Game.Modes.Mania/Judgements/ManiaJudgementInfo.cs b/osu.Game.Modes.Mania/Judgements/ManiaJudgement.cs
similarity index 84%
rename from osu.Game.Modes.Mania/Judgements/ManiaJudgementInfo.cs
rename to osu.Game.Modes.Mania/Judgements/ManiaJudgement.cs
index c65bd87b6b..07c5fcbfef 100644
--- a/osu.Game.Modes.Mania/Judgements/ManiaJudgementInfo.cs
+++ b/osu.Game.Modes.Mania/Judgements/ManiaJudgement.cs
@@ -5,7 +5,7 @@ using osu.Game.Modes.Judgements;
 
 namespace osu.Game.Modes.Mania.Judgements
 {
-    public class ManiaJudgementInfo : JudgementInfo
+    public class ManiaJudgement : Judgement
     {
         public override string ScoreString => string.Empty;
 
diff --git a/osu.Game.Modes.Mania/ManiaScoreProcessor.cs b/osu.Game.Modes.Mania/ManiaScoreProcessor.cs
index 60ed336c8e..c694717edb 100644
--- a/osu.Game.Modes.Mania/ManiaScoreProcessor.cs
+++ b/osu.Game.Modes.Mania/ManiaScoreProcessor.cs
@@ -7,18 +7,18 @@ using osu.Game.Modes.UI;
 
 namespace osu.Game.Modes.Mania
 {
-    internal class ManiaScoreProcessor : ScoreProcessor<ManiaBaseHit, ManiaJudgementInfo>
+    internal class ManiaScoreProcessor : ScoreProcessor<ManiaBaseHit, ManiaJudgement>
     {
         public ManiaScoreProcessor()
         {
         }
 
-        public ManiaScoreProcessor(HitRenderer<ManiaBaseHit, ManiaJudgementInfo> hitRenderer)
+        public ManiaScoreProcessor(HitRenderer<ManiaBaseHit, ManiaJudgement> hitRenderer)
             : base(hitRenderer)
         {
         }
 
-        protected override void UpdateCalculations(ManiaJudgementInfo newJudgement)
+        protected override void UpdateCalculations(ManiaJudgement newJudgement)
         {
         }
     }
diff --git a/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs b/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs
index 0f26c944a0..2a6629e25b 100644
--- a/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs
+++ b/osu.Game.Modes.Mania/UI/ManiaHitRenderer.cs
@@ -10,7 +10,7 @@ using osu.Game.Modes.UI;
 
 namespace osu.Game.Modes.Mania.UI
 {
-    public class ManiaHitRenderer : HitRenderer<ManiaBaseHit, ManiaJudgementInfo>
+    public class ManiaHitRenderer : HitRenderer<ManiaBaseHit, ManiaJudgement>
     {
         private readonly int columns;
 
@@ -26,8 +26,8 @@ namespace osu.Game.Modes.Mania.UI
 
         protected override IBeatmapProcessor<ManiaBaseHit> CreateBeatmapProcessor() => new ManiaBeatmapProcessor();
 
-        protected override Playfield<ManiaBaseHit, ManiaJudgementInfo> CreatePlayfield() => new ManiaPlayfield(columns);
+        protected override Playfield<ManiaBaseHit, ManiaJudgement> CreatePlayfield() => new ManiaPlayfield(columns);
 
-        protected override DrawableHitObject<ManiaBaseHit, ManiaJudgementInfo> GetVisualRepresentation(ManiaBaseHit h) => null;
+        protected override DrawableHitObject<ManiaBaseHit, ManiaJudgement> GetVisualRepresentation(ManiaBaseHit h) => null;
     }
 }
diff --git a/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs b/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs
index 3984fce626..670d18f71f 100644
--- a/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs
+++ b/osu.Game.Modes.Mania/UI/ManiaPlayfield.cs
@@ -11,7 +11,7 @@ using osu.Game.Modes.Mania.Judgements;
 
 namespace osu.Game.Modes.Mania.UI
 {
-    public class ManiaPlayfield : Playfield<ManiaBaseHit, ManiaJudgementInfo>
+    public class ManiaPlayfield : Playfield<ManiaBaseHit, ManiaJudgement>
     {
         public ManiaPlayfield(int columns)
         {
diff --git a/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj b/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj
index 8b78929510..d9af517eee 100644
--- a/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj
+++ b/osu.Game.Modes.Mania/osu.Game.Modes.Mania.csproj
@@ -49,7 +49,7 @@
   <ItemGroup>
     <Compile Include="Beatmaps\ManiaBeatmapConverter.cs" />
     <Compile Include="Beatmaps\ManiaBeatmapProcessor.cs" />
-    <Compile Include="Judgements\ManiaJudgementInfo.cs" />
+    <Compile Include="Judgements\ManiaJudgement.cs" />
     <Compile Include="ManiaDifficultyCalculator.cs" />
     <Compile Include="ManiaScoreProcessor.cs" />
     <Compile Include="Objects\Drawable\DrawableNote.cs" />
diff --git a/osu.Game.Modes.Osu/Judgements/OsuJudgementInfo.cs b/osu.Game.Modes.Osu/Judgements/OsuJudgement.cs
similarity index 93%
rename from osu.Game.Modes.Osu/Judgements/OsuJudgementInfo.cs
rename to osu.Game.Modes.Osu/Judgements/OsuJudgement.cs
index b945bad8a1..bbb1754ce6 100644
--- a/osu.Game.Modes.Osu/Judgements/OsuJudgementInfo.cs
+++ b/osu.Game.Modes.Osu/Judgements/OsuJudgement.cs
@@ -8,7 +8,7 @@ using osu.Framework.Extensions;
 
 namespace osu.Game.Modes.Osu.Judgements
 {
-    public class OsuJudgementInfo : JudgementInfo
+    public class OsuJudgement : Judgement
     {
         /// <summary>
         /// The positional hit offset.
diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs
index 8593430f80..816faa0d98 100644
--- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs
+++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuHitObject.cs
@@ -7,7 +7,7 @@ using osu.Game.Modes.Osu.Judgements;
 
 namespace osu.Game.Modes.Osu.Objects.Drawables
 {
-    public class DrawableOsuHitObject : DrawableHitObject<OsuHitObject, OsuJudgementInfo>
+    public class DrawableOsuHitObject : DrawableHitObject<OsuHitObject, OsuJudgement>
     {
         public const float TIME_PREEMPT = 600;
         public const float TIME_FADEIN = 400;
@@ -19,7 +19,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
             AccentColour = HitObject.ComboColour;
         }
 
-        protected override OsuJudgementInfo CreateJudgementInfo() => new OsuJudgementInfo { MaxScore = OsuScoreResult.Hit300 };
+        protected override OsuJudgement CreateJudgement() => new OsuJudgement { MaxScore = OsuScoreResult.Hit300 };
 
         protected override void UpdateState(ArmedState state)
         {
diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgement.cs
similarity index 77%
rename from osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs
rename to osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgement.cs
index 9cc09ff8d6..13937e3c39 100644
--- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgementInfo.cs
+++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableOsuJudgement.cs
@@ -9,9 +9,9 @@ using osu.Game.Modes.Judgements;
 
 namespace osu.Game.Modes.Osu.Objects.Drawables
 {
-    public class DrawableOsuJudgementInfo : DrawableJudgementInfo<OsuJudgementInfo>
+    public class DrawableOsuJudgement : DrawableJudgement<OsuJudgement>
     {
-        public DrawableOsuJudgementInfo(OsuJudgementInfo judgement) : base(judgement)
+        public DrawableOsuJudgement(OsuJudgement judgement) : base(judgement)
         {
         }
 
diff --git a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs
index 1af9a2b7a2..1c9f1e617c 100644
--- a/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs
+++ b/osu.Game.Modes.Osu/Objects/Drawables/DrawableSliderTick.cs
@@ -27,7 +27,7 @@ namespace osu.Game.Modes.Osu.Objects.Drawables
 
         public override bool RemoveWhenNotAlive => false;
 
-        protected override OsuJudgementInfo CreateJudgementInfo() => new OsuJudgementInfo { MaxScore = OsuScoreResult.SliderTick };
+        protected override OsuJudgement CreateJudgement() => new OsuJudgement { MaxScore = OsuScoreResult.SliderTick };
 
         public DrawableSliderTick(SliderTick sliderTick) : base(sliderTick)
         {
diff --git a/osu.Game.Modes.Osu/OsuScoreProcessor.cs b/osu.Game.Modes.Osu/OsuScoreProcessor.cs
index 50eb685ecd..f473a578bd 100644
--- a/osu.Game.Modes.Osu/OsuScoreProcessor.cs
+++ b/osu.Game.Modes.Osu/OsuScoreProcessor.cs
@@ -8,13 +8,13 @@ using osu.Game.Modes.UI;
 
 namespace osu.Game.Modes.Osu
 {
-    internal class OsuScoreProcessor : ScoreProcessor<OsuHitObject, OsuJudgementInfo>
+    internal class OsuScoreProcessor : ScoreProcessor<OsuHitObject, OsuJudgement>
     {
         public OsuScoreProcessor()
         {
         }
 
-        public OsuScoreProcessor(HitRenderer<OsuHitObject, OsuJudgementInfo> hitRenderer)
+        public OsuScoreProcessor(HitRenderer<OsuHitObject, OsuJudgement> hitRenderer)
             : base(hitRenderer)
         {
         }
@@ -27,7 +27,7 @@ namespace osu.Game.Modes.Osu
             Accuracy.Value = 1;
         }
 
-        protected override void UpdateCalculations(OsuJudgementInfo judgement)
+        protected override void UpdateCalculations(OsuJudgement judgement)
         {
             if (judgement != null)
             {
@@ -47,9 +47,8 @@ namespace osu.Game.Modes.Osu
             int score = 0;
             int maxScore = 0;
 
-            foreach (var judgementInfo in Judgements)
+            foreach (var j in Judgements)
             {
-                var j = judgementInfo;
                 score += j.ScoreValue;
                 maxScore += j.MaxScoreValue;
             }
diff --git a/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs b/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs
index 7a1e83d3a5..18f8fbb8b9 100644
--- a/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs
+++ b/osu.Game.Modes.Osu/UI/OsuHitRenderer.cs
@@ -12,7 +12,7 @@ using osu.Game.Screens.Play;
 
 namespace osu.Game.Modes.Osu.UI
 {
-    public class OsuHitRenderer : HitRenderer<OsuHitObject, OsuJudgementInfo>
+    public class OsuHitRenderer : HitRenderer<OsuHitObject, OsuJudgement>
     {
         public OsuHitRenderer(WorkingBeatmap beatmap)
             : base(beatmap)
@@ -25,11 +25,11 @@ namespace osu.Game.Modes.Osu.UI
 
         protected override IBeatmapProcessor<OsuHitObject> CreateBeatmapProcessor() => new OsuBeatmapProcessor();
 
-        protected override Playfield<OsuHitObject, OsuJudgementInfo> CreatePlayfield() => new OsuPlayfield();
+        protected override Playfield<OsuHitObject, OsuJudgement> CreatePlayfield() => new OsuPlayfield();
 
         protected override KeyConversionInputManager CreateKeyConversionInputManager() => new OsuKeyConversionInputManager();
 
-        protected override DrawableHitObject<OsuHitObject, OsuJudgementInfo> GetVisualRepresentation(OsuHitObject h)
+        protected override DrawableHitObject<OsuHitObject, OsuJudgement> GetVisualRepresentation(OsuHitObject h)
         {
             var circle = h as HitCircle;
             if (circle != null)
diff --git a/osu.Game.Modes.Osu/UI/OsuPlayfield.cs b/osu.Game.Modes.Osu/UI/OsuPlayfield.cs
index 8924fe71e7..8090263fe1 100644
--- a/osu.Game.Modes.Osu/UI/OsuPlayfield.cs
+++ b/osu.Game.Modes.Osu/UI/OsuPlayfield.cs
@@ -15,7 +15,7 @@ using osu.Game.Modes.Osu.Judgements;
 
 namespace osu.Game.Modes.Osu.UI
 {
-    public class OsuPlayfield : Playfield<OsuHitObject, OsuJudgementInfo>
+    public class OsuPlayfield : Playfield<OsuHitObject, OsuJudgement>
     {
         private readonly Container approachCircles;
         private readonly Container judgementLayer;
@@ -65,7 +65,7 @@ namespace osu.Game.Modes.Osu.UI
             AddInternal(new GameplayCursor());
         }
 
-        public override void Add(DrawableHitObject<OsuHitObject, OsuJudgementInfo> h)
+        public override void Add(DrawableHitObject<OsuHitObject, OsuJudgement> h)
         {
             h.Depth = (float)h.HitObject.StartTime;
 
@@ -83,9 +83,9 @@ namespace osu.Game.Modes.Osu.UI
                 .OrderBy(h => h.StartTime);
         }
 
-        public override void OnJudgement(DrawableHitObject<OsuHitObject, OsuJudgementInfo> judgedObject)
+        public override void OnJudgement(DrawableHitObject<OsuHitObject, OsuJudgement> judgedObject)
         {
-            DrawableOsuJudgementInfo explosion = new DrawableOsuJudgementInfo(judgedObject.Judgement)
+            DrawableOsuJudgement explosion = new DrawableOsuJudgement(judgedObject.Judgement)
             {
                 Origin = Anchor.Centre,
                 Position = judgedObject.HitObject.StackedEndPosition + judgedObject.Judgement.PositionOffset
diff --git a/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj b/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj
index 1c1add8b94..a56bb799c4 100644
--- a/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj
+++ b/osu.Game.Modes.Osu/osu.Game.Modes.Osu.csproj
@@ -48,7 +48,7 @@
     <Compile Include="Objects\Drawables\DrawableOsuHitObject.cs" />
     <Compile Include="Objects\Drawables\Connections\ConnectionRenderer.cs" />
     <Compile Include="Objects\Drawables\Connections\FollowPointRenderer.cs" />
-    <Compile Include="Judgements\OsuJudgementInfo.cs" />
+    <Compile Include="Judgements\OsuJudgement.cs" />
     <Compile Include="Objects\Drawables\Pieces\ApproachCircle.cs" />
     <Compile Include="Objects\Drawables\Pieces\SpinnerBackground.cs" />
     <Compile Include="Objects\Drawables\Pieces\CirclePiece.cs" />
@@ -58,7 +58,7 @@
     <Compile Include="Objects\Drawables\Pieces\ExplodePiece.cs" />
     <Compile Include="Objects\Drawables\Pieces\FlashPiece.cs" />
     <Compile Include="Objects\Drawables\Pieces\GlowPiece.cs" />
-    <Compile Include="Objects\Drawables\DrawableOsuJudgementInfo.cs" />
+    <Compile Include="Objects\Drawables\DrawableOsuJudgement.cs" />
     <Compile Include="Objects\Drawables\Pieces\NumberPiece.cs" />
     <Compile Include="Objects\Drawables\DrawableSliderTick.cs" />
     <Compile Include="Objects\Drawables\Pieces\RingPiece.cs" />
diff --git a/osu.Game.Modes.Taiko/Judgements/TaikoJudgementInfo.cs b/osu.Game.Modes.Taiko/Judgements/TaikoJudgement.cs
similarity index 95%
rename from osu.Game.Modes.Taiko/Judgements/TaikoJudgementInfo.cs
rename to osu.Game.Modes.Taiko/Judgements/TaikoJudgement.cs
index 3312661e2a..d715fd0183 100644
--- a/osu.Game.Modes.Taiko/Judgements/TaikoJudgementInfo.cs
+++ b/osu.Game.Modes.Taiko/Judgements/TaikoJudgement.cs
@@ -6,7 +6,7 @@ using osu.Framework.Extensions;
 
 namespace osu.Game.Modes.Taiko.Judgements
 {
-    public class TaikoJudgementInfo : JudgementInfo
+    public class TaikoJudgement : Judgement
     {
         /// <summary>
         /// The maximum score value.
diff --git a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs
index ebad53e787..c77c7762e3 100644
--- a/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs
+++ b/osu.Game.Modes.Taiko/Objects/Drawable/DrawableTaikoHitObject.cs
@@ -7,7 +7,7 @@ using osu.Game.Modes.Taiko.Judgements;
 
 namespace osu.Game.Modes.Taiko.Objects.Drawable
 {
-    public abstract class DrawableTaikoHitObject : DrawableHitObject<TaikoHitObject, TaikoJudgementInfo>
+    public abstract class DrawableTaikoHitObject : DrawableHitObject<TaikoHitObject, TaikoJudgement>
     {
         protected DrawableTaikoHitObject(TaikoHitObject hitObject)
             : base(hitObject)
@@ -26,7 +26,7 @@ namespace osu.Game.Modes.Taiko.Objects.Drawable
             base.LoadComplete();
         }
 
-        protected override TaikoJudgementInfo CreateJudgementInfo() => new TaikoJudgementInfo();
+        protected override TaikoJudgement CreateJudgement() => new TaikoJudgement();
 
         /// <summary>
         /// Sets the scroll position of the DrawableHitObject relative to the offset between
diff --git a/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs b/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs
index 849c0fa894..fc414c3382 100644
--- a/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs
+++ b/osu.Game.Modes.Taiko/TaikoScoreProcessor.cs
@@ -7,18 +7,18 @@ using osu.Game.Modes.UI;
 
 namespace osu.Game.Modes.Taiko
 {
-    internal class TaikoScoreProcessor : ScoreProcessor<TaikoHitObject, TaikoJudgementInfo>
+    internal class TaikoScoreProcessor : ScoreProcessor<TaikoHitObject, TaikoJudgement>
     {
         public TaikoScoreProcessor()
         {
         }
 
-        public TaikoScoreProcessor(HitRenderer<TaikoHitObject, TaikoJudgementInfo> hitRenderer)
+        public TaikoScoreProcessor(HitRenderer<TaikoHitObject, TaikoJudgement> hitRenderer)
             : base(hitRenderer)
         {
         }
 
-        protected override void UpdateCalculations(TaikoJudgementInfo newJudgement)
+        protected override void UpdateCalculations(TaikoJudgement newJudgement)
         {
         }
     }
diff --git a/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgementInfo.cs b/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgement.cs
similarity index 87%
rename from osu.Game.Modes.Taiko/UI/DrawableTaikoJudgementInfo.cs
rename to osu.Game.Modes.Taiko/UI/DrawableTaikoJudgement.cs
index 87f321d557..78c9657b40 100644
--- a/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgementInfo.cs
+++ b/osu.Game.Modes.Taiko/UI/DrawableTaikoJudgement.cs
@@ -12,13 +12,13 @@ namespace osu.Game.Modes.Taiko.UI
     /// <summary>
     /// Text that is shown as judgement when a hit object is hit or missed.
     /// </summary>
-    public class DrawableTaikoJudgementInfo : DrawableJudgementInfo<TaikoJudgementInfo>
+    public class DrawableTaikoJudgement : DrawableJudgement<TaikoJudgement>
     {
         /// <summary>
         /// Creates a new judgement text.
         /// </summary>
         /// <param name="judgement">The judgement to visualise.</param>
-        public DrawableTaikoJudgementInfo(TaikoJudgementInfo judgement)
+        public DrawableTaikoJudgement(TaikoJudgement judgement)
             : base(judgement)
         {
         }
diff --git a/osu.Game.Modes.Taiko/UI/HitExplosion.cs b/osu.Game.Modes.Taiko/UI/HitExplosion.cs
index 3aa7977617..adc6a77c5d 100644
--- a/osu.Game.Modes.Taiko/UI/HitExplosion.cs
+++ b/osu.Game.Modes.Taiko/UI/HitExplosion.cs
@@ -19,10 +19,10 @@ namespace osu.Game.Modes.Taiko.UI
     /// </summary>
     internal class HitExplosion : CircularContainer
     {
-        private readonly TaikoJudgementInfo judgement;
+        private readonly TaikoJudgement judgement;
         private readonly Box innerFill;
 
-        public HitExplosion(TaikoJudgementInfo judgement)
+        public HitExplosion(TaikoJudgement judgement)
         {
             this.judgement = judgement;
 
diff --git a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs
index 80e42cb976..21ee3434d3 100644
--- a/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs
+++ b/osu.Game.Modes.Taiko/UI/TaikoHitRenderer.cs
@@ -10,7 +10,7 @@ using osu.Game.Modes.UI;
 
 namespace osu.Game.Modes.Taiko.UI
 {
-    public class TaikoHitRenderer : HitRenderer<TaikoHitObject, TaikoJudgementInfo>
+    public class TaikoHitRenderer : HitRenderer<TaikoHitObject, TaikoJudgement>
     {
         public TaikoHitRenderer(WorkingBeatmap beatmap)
             : base(beatmap)
@@ -23,8 +23,8 @@ namespace osu.Game.Modes.Taiko.UI
 
         protected override IBeatmapProcessor<TaikoHitObject> CreateBeatmapProcessor() => new TaikoBeatmapProcessor();
 
-        protected override Playfield<TaikoHitObject, TaikoJudgementInfo> CreatePlayfield() => new TaikoPlayfield();
+        protected override Playfield<TaikoHitObject, TaikoJudgement> CreatePlayfield() => new TaikoPlayfield();
 
-        protected override DrawableHitObject<TaikoHitObject, TaikoJudgementInfo> GetVisualRepresentation(TaikoHitObject h) => null;
+        protected override DrawableHitObject<TaikoHitObject, TaikoJudgement> GetVisualRepresentation(TaikoHitObject h) => null;
     }
 }
diff --git a/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs
index b322e167df..b7fac507d6 100644
--- a/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs
+++ b/osu.Game.Modes.Taiko/UI/TaikoPlayfield.cs
@@ -17,7 +17,7 @@ using osu.Framework.Graphics.Primitives;
 
 namespace osu.Game.Modes.Taiko.UI
 {
-    public class TaikoPlayfield : Playfield<TaikoHitObject, TaikoJudgementInfo>
+    public class TaikoPlayfield : Playfield<TaikoHitObject, TaikoJudgement>
     {
         /// <summary>
         /// The default play field height.
@@ -48,7 +48,7 @@ namespace osu.Game.Modes.Taiko.UI
 
         private readonly Container<HitExplosion> hitExplosionContainer;
         //private Container<DrawableBarLine> barLineContainer;
-        private readonly Container<DrawableTaikoJudgementInfo> judgementContainer;
+        private readonly Container<DrawableTaikoJudgement> judgementContainer;
 
         private readonly Container hitObjectContainer;
         //private Container topLevelHitContainer;
@@ -117,7 +117,7 @@ namespace osu.Game.Modes.Taiko.UI
                                 {
                                     RelativeSizeAxes = Axes.Both,
                                 },
-                                judgementContainer = new Container<DrawableTaikoJudgementInfo>
+                                judgementContainer = new Container<DrawableTaikoJudgement>
                                 {
                                     RelativeSizeAxes = Axes.Both,
                                     BlendingMode = BlendingMode.Additive
@@ -170,21 +170,21 @@ namespace osu.Game.Modes.Taiko.UI
             rightBackground.Colour = colours.Gray0;
         }
 
-        public override void Add(DrawableHitObject<TaikoHitObject, TaikoJudgementInfo> h)
+        public override void Add(DrawableHitObject<TaikoHitObject, TaikoJudgement> h)
         {
             h.Depth = (float)h.HitObject.StartTime;
 
             base.Add(h);
         }
 
-        public override void OnJudgement(DrawableHitObject<TaikoHitObject, TaikoJudgementInfo> judgedObject)
+        public override void OnJudgement(DrawableHitObject<TaikoHitObject, TaikoJudgement> judgedObject)
         {
             bool wasHit = judgedObject.Judgement.Result == HitResult.Hit;
 
             if (wasHit)
                 hitExplosionContainer.Add(new HitExplosion(judgedObject.Judgement));
 
-            judgementContainer.Add(new DrawableTaikoJudgementInfo(judgedObject.Judgement)
+            judgementContainer.Add(new DrawableTaikoJudgement(judgedObject.Judgement)
             {
                 Anchor = wasHit ? Anchor.TopLeft : Anchor.CentreLeft,
                 Origin = wasHit ? Anchor.BottomCentre : Anchor.Centre,
diff --git a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj
index 312bde5f04..7b96651e0d 100644
--- a/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj
+++ b/osu.Game.Modes.Taiko/osu.Game.Modes.Taiko.csproj
@@ -49,7 +49,7 @@
   <ItemGroup>
     <Compile Include="Beatmaps\TaikoBeatmapConverter.cs" />
     <Compile Include="Beatmaps\TaikoBeatmapProcessor.cs" />
-    <Compile Include="Judgements\TaikoJudgementInfo.cs" />
+    <Compile Include="Judgements\TaikoJudgement.cs" />
     <Compile Include="Judgements\TaikoHitResult.cs" />
     <Compile Include="Objects\Drawable\DrawableTaikoHitObject.cs" />
     <Compile Include="Objects\Bash.cs" />
@@ -62,7 +62,7 @@
     <Compile Include="TaikoScoreProcessor.cs" />
     <Compile Include="UI\HitTarget.cs" />
     <Compile Include="UI\InputDrum.cs" />
-    <Compile Include="UI\DrawableTaikoJudgementInfo.cs" />
+    <Compile Include="UI\DrawableTaikoJudgement.cs" />
     <Compile Include="UI\HitExplosion.cs" />
     <Compile Include="UI\TaikoHitRenderer.cs" />
     <Compile Include="UI\TaikoPlayfield.cs" />
diff --git a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs b/osu.Game/Modes/Judgements/DrawableJudgement.cs
similarity index 89%
rename from osu.Game/Modes/Judgements/DrawableJudgementInfo.cs
rename to osu.Game/Modes/Judgements/DrawableJudgement.cs
index ae51287599..ef67d07310 100644
--- a/osu.Game/Modes/Judgements/DrawableJudgementInfo.cs
+++ b/osu.Game/Modes/Judgements/DrawableJudgement.cs
@@ -15,21 +15,21 @@ using osu.Game.Modes.Objects.Drawables;
 namespace osu.Game.Modes.Judgements
 {
     /// <summary>
-    /// A drawable object which visualises the hit result of a <see cref="JudgementInfo"/>.
+    /// A drawable object which visualises the hit result of a <see cref="Judgements.Judgement"/>.
     /// </summary>
     /// <typeparam name="TJudgement">The type of judgement to visualise.</typeparam>
-    public class DrawableJudgementInfo<TJudgement> : Container
-        where TJudgement : JudgementInfo
+    public class DrawableJudgement<TJudgement> : Container
+        where TJudgement : Judgement
     {
         protected readonly TJudgement Judgement;
 
         protected readonly SpriteText JudgementText;
 
         /// <summary>
-        /// Creates a drawable which visualises a <see cref="JudgementInfo"/>.
+        /// Creates a drawable which visualises a <see cref="Judgements.Judgement"/>.
         /// </summary>
         /// <param name="judgement">The judgement to visualise.</param>
-        public DrawableJudgementInfo(TJudgement judgement)
+        public DrawableJudgement(TJudgement judgement)
         {
             Judgement = judgement;
 
diff --git a/osu.Game/Modes/Judgements/JudgementInfo.cs b/osu.Game/Modes/Judgements/Judgement.cs
similarity index 93%
rename from osu.Game/Modes/Judgements/JudgementInfo.cs
rename to osu.Game/Modes/Judgements/Judgement.cs
index a3cb9ba51f..45f40647ca 100644
--- a/osu.Game/Modes/Judgements/JudgementInfo.cs
+++ b/osu.Game/Modes/Judgements/Judgement.cs
@@ -5,7 +5,7 @@ using osu.Game.Modes.Objects.Drawables;
 
 namespace osu.Game.Modes.Judgements
 {
-    public abstract class JudgementInfo
+    public abstract class Judgement
     {
         /// <summary>
         /// Whether this judgement is the result of a hit or a miss.
diff --git a/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs b/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs
index 277e65c1b1..3998a3e385 100644
--- a/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs
+++ b/osu.Game/Modes/Objects/Drawables/DrawableHitObject.cs
@@ -16,7 +16,7 @@ using OpenTK.Graphics;
 namespace osu.Game.Modes.Objects.Drawables
 {
     public abstract class DrawableHitObject<TJudgement> : Container, IStateful<ArmedState>
-        where TJudgement : JudgementInfo
+        where TJudgement : Judgement
     {
         public override bool HandleInput => Interactive;
 
@@ -24,7 +24,7 @@ namespace osu.Game.Modes.Objects.Drawables
 
         public TJudgement Judgement;
 
-        protected abstract TJudgement CreateJudgementInfo();
+        protected abstract TJudgement CreateJudgement();
 
         protected abstract void UpdateState(ArmedState state);
 
@@ -62,7 +62,7 @@ namespace osu.Game.Modes.Objects.Drawables
 
             //we may be setting a custom judgement in test cases or what not.
             if (Judgement == null)
-                Judgement = CreateJudgementInfo();
+                Judgement = CreateJudgement();
 
             //force application of the state that was set before we loaded.
             UpdateState(State);
@@ -71,7 +71,7 @@ namespace osu.Game.Modes.Objects.Drawables
 
     public abstract class DrawableHitObject<TObject, TJudgement> : DrawableHitObject<TJudgement>
         where TObject : HitObject
-        where TJudgement : JudgementInfo
+        where TJudgement : Judgement
     {
         public event Action<DrawableHitObject<TObject, TJudgement>> OnJudgement;
 
diff --git a/osu.Game/Modes/ScoreProcessor.cs b/osu.Game/Modes/ScoreProcessor.cs
index a6e29d53e1..0886f34d55 100644
--- a/osu.Game/Modes/ScoreProcessor.cs
+++ b/osu.Game/Modes/ScoreProcessor.cs
@@ -105,7 +105,7 @@ namespace osu.Game.Modes
 
     public abstract class ScoreProcessor<TObject, TJudgement> : ScoreProcessor
         where TObject : HitObject
-        where TJudgement : JudgementInfo
+        where TJudgement : Judgement
     {
         /// <summary>
         /// All judgements held by this ScoreProcessor.
@@ -158,7 +158,7 @@ namespace osu.Game.Modes
         /// <summary>
         /// Update any values that potentially need post-processing on a judgement change.
         /// </summary>
-        /// <param name="newJudgement">A new JudgementInfo that triggered this calculation. May be null.</param>
+        /// <param name="newJudgement">A new Judgement that triggered this calculation. May be null.</param>
         protected abstract void UpdateCalculations(TJudgement newJudgement);
     }
 }
\ No newline at end of file
diff --git a/osu.Game/Modes/UI/HitRenderer.cs b/osu.Game/Modes/UI/HitRenderer.cs
index 05b02a77b3..d53c65ec16 100644
--- a/osu.Game/Modes/UI/HitRenderer.cs
+++ b/osu.Game/Modes/UI/HitRenderer.cs
@@ -143,7 +143,7 @@ namespace osu.Game.Modes.UI
     /// <typeparam name="TJudgement">The type of Judgement of DrawableHitObjects contained by this HitRenderer.</typeparam>
     public abstract class HitRenderer<TObject, TJudgement> : HitRenderer<TObject>
         where TObject : HitObject
-        where TJudgement : JudgementInfo
+        where TJudgement : Judgement
     {
         public event Action<TJudgement> OnJudgement;
 
diff --git a/osu.Game/Modes/UI/Playfield.cs b/osu.Game/Modes/UI/Playfield.cs
index 4e4e1ed2fa..eff06ce80f 100644
--- a/osu.Game/Modes/UI/Playfield.cs
+++ b/osu.Game/Modes/UI/Playfield.cs
@@ -13,7 +13,7 @@ namespace osu.Game.Modes.UI
 {
     public abstract class Playfield<TObject, TJudgement> : Container
         where TObject : HitObject
-        where TJudgement : JudgementInfo
+        where TJudgement : Judgement
     {
         /// <summary>
         /// The HitObjects contained in this Playfield.
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index 378dfec57b..bcae668e9f 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -96,7 +96,7 @@
     <Compile Include="IO\Legacy\SerializationReader.cs" />
     <Compile Include="IO\Legacy\SerializationWriter.cs" />
     <Compile Include="IPC\ScoreIPCChannel.cs" />
-    <Compile Include="Modes\Judgements\DrawableJudgementInfo.cs" />
+    <Compile Include="Modes\Judgements\DrawableJudgement.cs" />
     <Compile Include="Modes\LegacyReplay.cs" />
     <Compile Include="Modes\Mods\IApplicableMod.cs" />
     <Compile Include="Modes\Mods\ModType.cs" />
@@ -113,7 +113,7 @@
     <Compile Include="Modes\Objects\SliderCurve.cs" />
     <Compile Include="Modes\Objects\Types\CurveType.cs" />
     <Compile Include="Modes\Objects\Drawables\IDrawableHitObjectWithProxiedApproach.cs" />
-    <Compile Include="Modes\Judgements\JudgementInfo.cs" />
+    <Compile Include="Modes\Judgements\Judgement.cs" />
     <Compile Include="Modes\Objects\HitObjectParser.cs" />
     <Compile Include="Modes\Objects\Types\IHasCombo.cs" />
     <Compile Include="Modes\Objects\Types\IHasEndTime.cs" />

From c52ad6c6eecd99044eee255b9ac835164cb16921 Mon Sep 17 00:00:00 2001
From: Dean Herbert <pe@ppy.sh>
Date: Thu, 23 Mar 2017 20:34:24 +0900
Subject: [PATCH 3/3] Attempt to speed up CI by excluding some file types from
 analysis.

---
 osu.sln.DotSettings | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/osu.sln.DotSettings b/osu.sln.DotSettings
index f266b81ec9..a92832ec8c 100644
--- a/osu.sln.DotSettings
+++ b/osu.sln.DotSettings
@@ -1,4 +1,9 @@
 <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
+	<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002A_002Efnt/@EntryIndexedValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002A_002Emp3/@EntryIndexedValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002A_002Epng/@EntryIndexedValue">True</s:Boolean>
+	<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002A_002Ewav/@EntryIndexedValue">True</s:Boolean>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=D9A367C9_002D4C1A_002D489F_002D9B05_002DA0CEA2B53B58/@EntryIndexedValue">ExplicitlyExcluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/Highlighting/AnalysisEnabled/@EntryValue">SOLUTION</s:String>
 	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ArrangeModifiersOrder/@EntryIndexedValue">WARNING</s:String>
 	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ArrangeRedundantParentheses/@EntryIndexedValue">WARNING</s:String>