From cea6be5e52324d706b6120ffdaf340609b923447 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Sun, 3 May 2020 23:55:44 +0900 Subject: [PATCH] Expose as JudgementResult instead of "passing" state --- .../Skinning/TestSceneTaikoScroller.cs | 5 ++++- .../Skinning/LegacyTaikoScroller.cs | 10 ++++++---- osu.Game/Screens/Play/GameplayBeatmap.cs | 10 +++------- osu.Game/Screens/Play/Player.cs | 2 +- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs index 3d1ccadd6e..e26f410b71 100644 --- a/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko.Tests/Skinning/TestSceneTaikoScroller.cs @@ -3,6 +3,8 @@ using osu.Framework.Extensions.IEnumerableExtensions; using osu.Framework.Testing; +using osu.Game.Rulesets.Judgements; +using osu.Game.Rulesets.Scoring; using osu.Game.Rulesets.Taiko.Skinning; using osu.Game.Skinning; @@ -13,7 +15,8 @@ namespace osu.Game.Rulesets.Taiko.Tests.Skinning public TestSceneTaikoScroller() { AddStep("Load scroller", () => SetContents(() => new SkinnableDrawable(new TaikoSkinComponent(TaikoSkinComponents.TaikoScroller), _ => Empty()))); - AddToggleStep("Toggle passing", passing => this.ChildrenOfType().ForEach(s => s.Passing.Value = !passing)); + AddToggleStep("Toggle passing", passing => this.ChildrenOfType().ForEach(s => s.LastResult.Value = + new JudgementResult(null, new Judgement()) { Type = passing ? HitResult.Perfect : HitResult.Miss })); } } } diff --git a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs index f61ee0301d..027fe1f302 100644 --- a/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs +++ b/osu.Game.Rulesets.Taiko/Skinning/LegacyTaikoScroller.cs @@ -7,6 +7,8 @@ using osu.Framework.Bindables; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Sprites; +using osu.Game.Rulesets.Judgements; +using osu.Game.Rulesets.Scoring; using osu.Game.Screens.Play; using osu.Game.Skinning; using osuTK; @@ -24,21 +26,21 @@ namespace osu.Game.Rulesets.Taiko.Skinning private void load(GameplayBeatmap gameplayBeatmap) { if (gameplayBeatmap != null) - ((IBindable)Passing).BindTo(gameplayBeatmap.Passing); + ((IBindable)LastResult).BindTo(gameplayBeatmap.LastJudgementResult); } protected override void LoadComplete() { base.LoadComplete(); - Passing.BindValueChanged(passing => + LastResult.BindValueChanged(result => { foreach (var sprite in InternalChildren.OfType()) - sprite.Passing = passing.NewValue; + sprite.Passing = result.NewValue == null || result.NewValue.Type > HitResult.Miss; }, true); } - public Bindable Passing = new BindableBool(true); + public Bindable LastResult = new Bindable(); protected override void Update() { diff --git a/osu.Game/Screens/Play/GameplayBeatmap.cs b/osu.Game/Screens/Play/GameplayBeatmap.cs index 0afa189e66..64894544f4 100644 --- a/osu.Game/Screens/Play/GameplayBeatmap.cs +++ b/osu.Game/Screens/Play/GameplayBeatmap.cs @@ -9,7 +9,6 @@ using osu.Game.Beatmaps.ControlPoints; using osu.Game.Beatmaps.Timing; using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects; -using osu.Game.Rulesets.Scoring; namespace osu.Game.Screens.Play { @@ -42,13 +41,10 @@ namespace osu.Game.Screens.Play public IBeatmap Clone() => PlayableBeatmap.Clone(); - public IBindable Passing => passing; + private readonly Bindable lastJudgementResult = new Bindable(); - private readonly BindableBool passing = new BindableBool(true); + public IBindable LastJudgementResult => lastJudgementResult; - public void OnNewResult(JudgementResult result) - { - passing.Value = result.Type > HitResult.Miss; - } + public void ApplyResult(JudgementResult result) => lastJudgementResult.Value = result; } } diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index eeb514b4be..f20d2504f7 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -193,7 +193,7 @@ namespace osu.Game.Screens.Play { HealthProcessor.ApplyResult(r); ScoreProcessor.ApplyResult(r); - gameplayBeatmap.OnNewResult(r); + gameplayBeatmap.ApplyResult(r); }; DrawableRuleset.OnRevertResult += r =>