1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 16:07:24 +08:00

Expose as JudgementResult instead of "passing" state

This commit is contained in:
Dean Herbert 2020-05-03 23:55:44 +09:00
parent ff1d63060d
commit cea6be5e52
4 changed files with 14 additions and 13 deletions

View File

@ -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<LegacyTaikoScroller>().ForEach(s => s.Passing.Value = !passing));
AddToggleStep("Toggle passing", passing => this.ChildrenOfType<LegacyTaikoScroller>().ForEach(s => s.LastResult.Value =
new JudgementResult(null, new Judgement()) { Type = passing ? HitResult.Perfect : HitResult.Miss }));
}
}
}

View File

@ -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<bool>)Passing).BindTo(gameplayBeatmap.Passing);
((IBindable<JudgementResult>)LastResult).BindTo(gameplayBeatmap.LastJudgementResult);
}
protected override void LoadComplete()
{
base.LoadComplete();
Passing.BindValueChanged(passing =>
LastResult.BindValueChanged(result =>
{
foreach (var sprite in InternalChildren.OfType<ScrollerSprite>())
sprite.Passing = passing.NewValue;
sprite.Passing = result.NewValue == null || result.NewValue.Type > HitResult.Miss;
}, true);
}
public Bindable<bool> Passing = new BindableBool(true);
public Bindable<JudgementResult> LastResult = new Bindable<JudgementResult>();
protected override void Update()
{

View File

@ -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<bool> Passing => passing;
private readonly Bindable<JudgementResult> lastJudgementResult = new Bindable<JudgementResult>();
private readonly BindableBool passing = new BindableBool(true);
public IBindable<JudgementResult> LastJudgementResult => lastJudgementResult;
public void OnNewResult(JudgementResult result)
{
passing.Value = result.Type > HitResult.Miss;
}
public void ApplyResult(JudgementResult result) => lastJudgementResult.Value = result;
}
}

View File

@ -193,7 +193,7 @@ namespace osu.Game.Screens.Play
{
HealthProcessor.ApplyResult(r);
ScoreProcessor.ApplyResult(r);
gameplayBeatmap.OnNewResult(r);
gameplayBeatmap.ApplyResult(r);
};
DrawableRuleset.OnRevertResult += r =>