diff --git a/osu.Game.Mode.Osu/OsuRuleset.cs b/osu.Game.Mode.Osu/OsuRuleset.cs
index c7cfd63297..15799b134a 100644
--- a/osu.Game.Mode.Osu/OsuRuleset.cs
+++ b/osu.Game.Mode.Osu/OsuRuleset.cs
@@ -17,7 +17,7 @@ namespace osu.Game.Modes.Osu
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
- public override Score CreateScore() => new OsuScore();
+ public override ScoreProcessor CreateScoreProcessor() => new OsuScoreProcessor();
protected override PlayMode PlayMode => PlayMode.Osu;
}
diff --git a/osu.Game.Mode.Osu/OsuScoreProcessor.cs b/osu.Game.Mode.Osu/OsuScoreProcessor.cs
new file mode 100644
index 0000000000..8ff053f96f
--- /dev/null
+++ b/osu.Game.Mode.Osu/OsuScoreProcessor.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace osu.Game.Modes.Osu
+{
+ class OsuScoreProcessor : ScoreProcessor
+ {
+ }
+}
diff --git a/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj b/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj
index c27f75f9c5..cca903643b 100644
--- a/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj
+++ b/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj
@@ -54,6 +54,7 @@
+
diff --git a/osu.Game.Modes.Catch/CatchRuleset.cs b/osu.Game.Modes.Catch/CatchRuleset.cs
index 08b472f1e2..695bca2593 100644
--- a/osu.Game.Modes.Catch/CatchRuleset.cs
+++ b/osu.Game.Modes.Catch/CatchRuleset.cs
@@ -18,7 +18,7 @@ namespace osu.Game.Modes.Catch
protected override PlayMode PlayMode => PlayMode.Catch;
- public override Score CreateScore() => new Score();
+ public override ScoreProcessor CreateScoreProcessor() => new ScoreProcessor();
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
}
diff --git a/osu.Game.Modes.Mania/ManiaRuleset.cs b/osu.Game.Modes.Mania/ManiaRuleset.cs
index 85e50b661e..0e7761e8fb 100644
--- a/osu.Game.Modes.Mania/ManiaRuleset.cs
+++ b/osu.Game.Modes.Mania/ManiaRuleset.cs
@@ -19,7 +19,7 @@ namespace osu.Game.Modes.Mania
protected override PlayMode PlayMode => PlayMode.Mania;
- public override Score CreateScore() => new Score();
+ public override ScoreProcessor CreateScoreProcessor() => new ScoreProcessor();
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
}
diff --git a/osu.Game.Modes.Taiko/TaikoRuleset.cs b/osu.Game.Modes.Taiko/TaikoRuleset.cs
index 51be717e04..3e697e48ea 100644
--- a/osu.Game.Modes.Taiko/TaikoRuleset.cs
+++ b/osu.Game.Modes.Taiko/TaikoRuleset.cs
@@ -19,7 +19,7 @@ namespace osu.Game.Modes.Taiko
protected override PlayMode PlayMode => PlayMode.Taiko;
- public override Score CreateScore() => new Score();
+ public override ScoreProcessor CreateScoreProcessor() => new ScoreProcessor();
public override HitObjectParser CreateHitObjectParser() => new OsuHitObjectParser();
}
diff --git a/osu.Game/Modes/Ruleset.cs b/osu.Game/Modes/Ruleset.cs
index 2b52bbc1b1..b0304f6576 100644
--- a/osu.Game/Modes/Ruleset.cs
+++ b/osu.Game/Modes/Ruleset.cs
@@ -18,7 +18,7 @@ namespace osu.Game.Modes
public abstract ScoreOverlay CreateScoreOverlay();
- public abstract Score CreateScore();
+ public abstract ScoreProcessor CreateScoreProcessor();
public abstract HitRenderer CreateHitRendererWith(List objects);
diff --git a/osu.Game/Modes/ScoreProcesssor.cs b/osu.Game/Modes/ScoreProcesssor.cs
new file mode 100644
index 0000000000..9d7eace60e
--- /dev/null
+++ b/osu.Game/Modes/ScoreProcesssor.cs
@@ -0,0 +1,16 @@
+//Copyright (c) 2007-2016 ppy Pty Ltd .
+//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace osu.Game.Modes
+{
+ public class ScoreProcessor
+ {
+ public virtual Score GetScore() => new Score();
+ }
+}
diff --git a/osu.Game/Modes/UI/ScoreOverlay.cs b/osu.Game/Modes/UI/ScoreOverlay.cs
index 31f6ebdcca..9f29ff63ff 100644
--- a/osu.Game/Modes/UI/ScoreOverlay.cs
+++ b/osu.Game/Modes/UI/ScoreOverlay.cs
@@ -46,5 +46,10 @@ namespace osu.Game.Modes.UI
AccuracyCounter = CreateAccuracyCounter(),
};
}
+
+ public void BindProcessor(ScoreProcessor processor)
+ {
+
+ }
}
}
diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs
index 590412b83a..262e5c5fbc 100644
--- a/osu.Game/Screens/Play/Player.cs
+++ b/osu.Game/Screens/Play/Player.cs
@@ -37,10 +37,10 @@ namespace osu.Game.Screens.Play
private IAdjustableClock sourceClock;
- private Score score;
-
private Ruleset ruleset;
+ private ScoreProcessor scoreProcessor;
+
[BackgroundDependencyLoader]
private void load(AudioManager audio, BeatmapDatabase beatmaps, OsuGameBase game)
{
@@ -87,7 +87,7 @@ namespace osu.Game.Screens.Play
ruleset = Ruleset.GetRuleset(usablePlayMode);
var scoreOverlay = ruleset.CreateScoreOverlay();
- scoreOverlay.Score = (score = ruleset.CreateScore());
+ scoreOverlay.BindProcessor(scoreProcessor = ruleset.CreateScoreProcessor());
var hitRenderer = ruleset.CreateHitRendererWith(beatmap.HitObjects);
@@ -126,7 +126,7 @@ namespace osu.Game.Screens.Play
if (Beatmap.Track.HasCompleted)
Push(new Results
{
- Score = score
+ Score = scoreProcessor.GetScore()
});
}
diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj
index 90bea8c033..af8feebe9a 100644
--- a/osu.Game/osu.Game.csproj
+++ b/osu.Game/osu.Game.csproj
@@ -67,6 +67,7 @@
+