From 1242ae3f2ab3274d53c47ef0205d6b29bd438228 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sat, 19 Nov 2016 16:19:26 +0900 Subject: [PATCH] Add the concept of a HitJudgementResolver. --- osu-framework | 2 +- osu.Game.Mode.Osu/ComboJudgement.cs | 14 ------ osu.Game.Mode.Osu/Judgement.cs | 18 -------- osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj | 2 - osu.Game/Modes/HitJudgementResolver.cs | 48 +++++++++++++++++++++ osu.Game/Modes/Ruleset.cs | 2 + osu.Game/osu.Game.csproj | 1 + 7 files changed, 52 insertions(+), 35 deletions(-) delete mode 100644 osu.Game.Mode.Osu/ComboJudgement.cs delete mode 100644 osu.Game.Mode.Osu/Judgement.cs create mode 100644 osu.Game/Modes/HitJudgementResolver.cs diff --git a/osu-framework b/osu-framework index f57175bf20..7f07833fab 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit f57175bf2035602b9451562167ddcee978c60620 +Subproject commit 7f07833fabd123c924c8c4fb30ef85f422f481df diff --git a/osu.Game.Mode.Osu/ComboJudgement.cs b/osu.Game.Mode.Osu/ComboJudgement.cs deleted file mode 100644 index bda0c52b19..0000000000 --- a/osu.Game.Mode.Osu/ComboJudgement.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.ComponentModel; - -namespace osu.Game.Modes.Osu -{ - public enum ComboJudgement - { - [Description(@"")] - None, - [Description(@"Good")] - Good, - [Description(@"Amazing")] - Perfect - } -} \ No newline at end of file diff --git a/osu.Game.Mode.Osu/Judgement.cs b/osu.Game.Mode.Osu/Judgement.cs deleted file mode 100644 index 028da7c04a..0000000000 --- a/osu.Game.Mode.Osu/Judgement.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.ComponentModel; - -namespace osu.Game.Modes.Osu -{ - public enum Judgement - { - [Description(@"Miss")] - Miss, - [Description(@"50")] - Hit50, - [Description(@"100")] - Hit100, - [Description(@"300")] - Hit300, - [Description(@"500")] - Hit500 - } -} \ No newline at end of file diff --git a/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj b/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj index d19491647e..9dd65e9b4f 100644 --- a/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj +++ b/osu.Game.Mode.Osu/osu.Game.Modes.Osu.csproj @@ -43,13 +43,11 @@ - - diff --git a/osu.Game/Modes/HitJudgementResolver.cs b/osu.Game/Modes/HitJudgementResolver.cs new file mode 100644 index 0000000000..0644cf2fd3 --- /dev/null +++ b/osu.Game/Modes/HitJudgementResolver.cs @@ -0,0 +1,48 @@ +//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.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using osu.Game.Modes.Objects; + +namespace osu.Game.Modes +{ + public class HitJudgementResolver + { + public JudgementResult CheckJudgement(HitObject h) => new JudgementResult { Combo = ComboJudgement.None, Judgement = Judgement.Hit300 }; + } + + public struct JudgementResult + { + public ComboJudgement Combo; + public Judgement Judgement; + } + + public enum ComboJudgement + { + [Description(@"")] + None, + [Description(@"Good")] + Good, + [Description(@"Amazing")] + Perfect + } + + public enum Judgement + { + [Description(@"Miss")] + Miss, + [Description(@"50")] + Hit50, + [Description(@"100")] + Hit100, + [Description(@"300")] + Hit300, + [Description(@"500")] + Hit500 + } +} diff --git a/osu.Game/Modes/Ruleset.cs b/osu.Game/Modes/Ruleset.cs index d35aab6568..6576159f62 100644 --- a/osu.Game/Modes/Ruleset.cs +++ b/osu.Game/Modes/Ruleset.cs @@ -22,6 +22,8 @@ namespace osu.Game.Modes public abstract HitObjectParser CreateHitObjectParser(); + public virtual HitJudgementResolver CreateHitJudgement() => new HitJudgementResolver(); + public static void Register(Ruleset ruleset) => availableRulesets.TryAdd(ruleset.PlayMode, ruleset.GetType()); protected abstract PlayMode PlayMode { get; } diff --git a/osu.Game/osu.Game.csproj b/osu.Game/osu.Game.csproj index 88f78b57be..bdf3ed139b 100644 --- a/osu.Game/osu.Game.csproj +++ b/osu.Game/osu.Game.csproj @@ -63,6 +63,7 @@ +