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 @@ +