diff --git a/osu.Game.Rulesets.Taiko.Tests/TestCaseTaikoPlayfield.cs b/osu.Game.Rulesets.Taiko.Tests/TestCaseTaikoPlayfield.cs index 1bf24a46bc..ccae3cf3ce 100644 --- a/osu.Game.Rulesets.Taiko.Tests/TestCaseTaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko.Tests/TestCaseTaikoPlayfield.cs @@ -11,6 +11,7 @@ using osu.Framework.MathUtils; using osu.Framework.Timing; using osu.Game.Beatmaps; using osu.Game.Beatmaps.ControlPoints; +using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Taiko.Judgements; @@ -143,18 +144,18 @@ namespace osu.Game.Rulesets.Taiko.Tests var h = new DrawableTestHit(hit) { X = RNG.NextSingle(hitResult == HitResult.Good ? -0.1f : -0.05f, hitResult == HitResult.Good ? 0.1f : 0.05f) }; - ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(h, new TaikoJudgement { Result = hitResult }); + ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(h, new JudgementResult(new TaikoJudgement()) { Type = hitResult }); if (RNG.Next(10) == 0) { - ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(h, new TaikoJudgement { Result = hitResult }); - ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(h, new TaikoStrongHitJudgement()); + ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(h, new JudgementResult(new TaikoJudgement()) { Type = hitResult }); + ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(h, new JudgementResult(new TaikoStrongHitJudgement()) { Type = HitResult.Great }); } } private void addMissJudgement() { - ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(new DrawableTestHit(new Hit()), new TaikoJudgement { Result = HitResult.Miss }); + ((TaikoPlayfield)rulesetContainer.Playfield).OnJudgement(new DrawableTestHit(new Hit()), new JudgementResult(new TaikoJudgement()) { Type = HitResult.Miss }); } private void addBarLine(bool major, double delay = scroll_time) diff --git a/osu.Game.Rulesets.Taiko/Judgements/TaikoIntermediateSwellJudgement.cs b/osu.Game.Rulesets.Taiko/Judgements/TaikoIntermediateSwellJudgement.cs index adcf4572c5..81a1bd1344 100644 --- a/osu.Game.Rulesets.Taiko/Judgements/TaikoIntermediateSwellJudgement.cs +++ b/osu.Game.Rulesets.Taiko/Judgements/TaikoIntermediateSwellJudgement.cs @@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Taiko.Judgements { public class TaikoIntermediateSwellJudgement : TaikoJudgement { - public override HitResult MaxResult => HitResult.Perfect; + public override HitResult MaxResult => HitResult.Great; public override bool AffectsCombo => false; diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRoll.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRoll.cs index 57c0f55a59..93eaeb4a1f 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRoll.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRoll.cs @@ -13,6 +13,7 @@ using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Scoring; +using osu.Game.Rulesets.Taiko.Judgements; namespace osu.Game.Rulesets.Taiko.Objects.Drawables { @@ -23,6 +24,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables /// private const int rolling_hits_for_engaged_colour = 5; + private readonly JudgementResult result; + private readonly JudgementResult strongResult; + /// /// Rolling number of tick hits. This increases for hits and decreases for misses. /// @@ -44,6 +48,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables AddNested(newTick); tickContainer.Add(newTick); } + + result = Results.Single(r => !(r.Judgement is TaikoStrongHitJudgement)); + strongResult = Results.SingleOrDefault(r => r.Judgement is TaikoStrongHitJudgement); } protected override TaikoPiece CreateMainPiece() => new ElongatedCirclePiece(); @@ -60,9 +67,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables colourEngaged = colours.YellowDarker; } - private void onTickJudgement(DrawableHitObject obj, Judgement judgement) + private void onTickJudgement(DrawableHitObject obj, JudgementResult result) { - if (judgement.Result > HitResult.Miss) + if (result.Type > HitResult.Miss) rollingHits++; else rollingHits--; @@ -84,15 +91,15 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables int countHit = NestedHitObjects.Count(o => o.IsHit); if (countHit >= HitObject.RequiredGoodHits) { - ApplyJudgement(HitObject.Judgement, j => j.Result = countHit >= HitObject.RequiredGreatHits ? HitResult.Great : HitResult.Good); + ApplyResult(result, r => r.Type = countHit >= HitObject.RequiredGreatHits ? HitResult.Great : HitResult.Good); if (HitObject.IsStrong) - ApplyJudgement(HitObject.StrongJudgement, j => j.Result = HitResult.Great); + ApplyResult(strongResult, r => r.Type = HitResult.Great); } else { - ApplyJudgement(HitObject.Judgement, j => j.Result = HitResult.Miss); + ApplyResult(result, r => r.Type = HitResult.Miss); if (HitObject.IsStrong) - ApplyJudgement(HitObject.StrongJudgement, j => j.Result = HitResult.Miss); + ApplyResult(strongResult, r => r.Type = HitResult.Miss); } } diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRollTick.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRollTick.cs index 86853afc35..eeca1b1da3 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRollTick.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableDrumRollTick.cs @@ -2,19 +2,28 @@ // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using System; +using System.Linq; using osu.Framework.Graphics; +using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Scoring; +using osu.Game.Rulesets.Taiko.Judgements; using osu.Game.Rulesets.Taiko.Objects.Drawables.Pieces; namespace osu.Game.Rulesets.Taiko.Objects.Drawables { public class DrawableDrumRollTick : DrawableTaikoHitObject { + private readonly JudgementResult result; + private readonly JudgementResult strongResult; + public DrawableDrumRollTick(DrumRollTick tick) : base(tick) { FillMode = FillMode.Fit; + + result = Results.Single(r => !(r.Judgement is TaikoStrongHitJudgement)); + strongResult = Results.SingleOrDefault(r => r.Judgement is TaikoStrongHitJudgement); } public override bool DisplayJudgement => false; @@ -30,9 +39,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables { if (timeOffset > HitObject.HitWindow) { - ApplyJudgement(HitObject.Judgement, j => j.Result = HitResult.Miss); + ApplyResult(result, r => r.Type = HitResult.Miss); if (HitObject.IsStrong) - ApplyJudgement(HitObject.StrongJudgement, j => j.Result = HitResult.Miss); + ApplyResult(strongResult, r => r.Type = HitResult.Miss); } return; @@ -41,9 +50,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables if (Math.Abs(timeOffset) > HitObject.HitWindow) return; - ApplyJudgement(HitObject.Judgement, j => j.Result = HitResult.Great); + ApplyResult(result, r => r.Type = HitResult.Great); if (HitObject.IsStrong) - ApplyJudgement(HitObject.StrongJudgement, j => j.Result = HitResult.Great); + ApplyResult(strongResult, r => r.Type = HitResult.Great); } protected override void UpdateState(ArmedState state) diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs index f7a170d838..18177ad089 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHit.cs @@ -3,8 +3,10 @@ using System.Linq; using osu.Framework.Graphics; +using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Scoring; +using osu.Game.Rulesets.Taiko.Judgements; using osu.Game.Rulesets.Taiko.Objects.Drawables.Pieces; namespace osu.Game.Rulesets.Taiko.Objects.Drawables @@ -16,6 +18,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables /// protected abstract TaikoAction[] HitActions { get; } + protected readonly JudgementResult Result; + /// /// Whether the last key pressed is a valid hit key. /// @@ -25,6 +29,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables : base(hit) { FillMode = FillMode.Fit; + + Result = Results.Single(r => !(r.Judgement is TaikoStrongHitJudgement)); } protected override void CheckForJudgements(bool userTriggered, double timeOffset) @@ -32,7 +38,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables if (!userTriggered) { if (!HitObject.HitWindows.CanBeHit(timeOffset)) - ApplyJudgement(HitObject.Judgement, j => j.Result = HitResult.Miss); + ApplyResult(Result, r => r.Type = HitResult.Miss); return; } @@ -40,10 +46,10 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables if (result == HitResult.None) return; - if (!validKeyPressed || result == HitResult.Miss) - ApplyJudgement(HitObject.Judgement, j => j.Result = HitResult.Miss); + if (!validKeyPressed) + ApplyResult(Result, r => r.Type = HitResult.Miss); else - ApplyJudgement(HitObject.Judgement, j => j.Result = result); + ApplyResult(Result, r => r.Type = result); } public override bool OnPressed(TaikoAction action) diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHitStrong.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHitStrong.cs index ede13aadce..7ec0c08f0f 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHitStrong.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableHitStrong.cs @@ -3,8 +3,10 @@ using System; using System.Linq; +using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Objects.Drawables; using osu.Game.Rulesets.Scoring; +using osu.Game.Rulesets.Taiko.Judgements; namespace osu.Game.Rulesets.Taiko.Objects.Drawables { @@ -16,6 +18,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables /// private const double second_hit_window = 30; + private readonly JudgementResult strongResult; + private double firstHitTime; private bool firstKeyHeld; private TaikoAction firstHitAction; @@ -23,31 +27,32 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables protected DrawableHitStrong(Hit hit) : base(hit) { + strongResult = Results.SingleOrDefault(r => r.Judgement is TaikoStrongHitJudgement); } protected override void CheckForJudgements(bool userTriggered, double timeOffset) { - if (!HitObject.Judgement.HasResult) + if (!Result.HasResult) { base.CheckForJudgements(userTriggered, timeOffset); return; } - if (!HitObject.Judgement.IsHit) + if (!Result.IsHit) { - ApplyJudgement(HitObject.StrongJudgement, j => j.Result = HitResult.Miss); + ApplyResult(strongResult, r => r.Type = HitResult.Miss); return; } if (!userTriggered) { if (timeOffset > second_hit_window) - ApplyJudgement(HitObject.StrongJudgement, j => j.Result = HitResult.Miss); + ApplyResult(strongResult, r => r.Type = HitResult.Miss); return; } if (Math.Abs(firstHitTime - Time.Current) < second_hit_window) - ApplyJudgement(HitObject.StrongJudgement, j => j.Result = HitResult.Great); + ApplyResult(strongResult, r => r.Type = HitResult.Great); } protected override void UpdateState(ArmedState state) @@ -76,7 +81,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables return false; // Check if we've handled the first key - if (!HitObject.Judgement.HasResult) + if (!Result.HasResult) { // First key hasn't been handled yet, attempt to handle it bool handled = base.OnPressed(action); diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs index f44e70d11d..50b010e543 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs @@ -2,6 +2,7 @@ // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using System; +using System.Collections.Generic; using System.Linq; using osu.Framework.Allocation; using osu.Framework.Extensions.Color4Extensions; @@ -13,7 +14,9 @@ using osu.Game.Rulesets.Taiko.Objects.Drawables.Pieces; using OpenTK; using OpenTK.Graphics; using osu.Framework.Graphics.Shapes; +using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Scoring; +using osu.Game.Rulesets.Taiko.Judgements; namespace osu.Game.Rulesets.Taiko.Objects.Drawables { @@ -29,6 +32,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables private const float target_ring_scale = 5f; private const float inner_ring_alpha = 0.65f; + private readonly JudgementResult result; + private readonly List intermediateResults; + private readonly Container bodyContainer; private readonly CircularContainer targetRing; private readonly CircularContainer expandingRing; @@ -106,6 +112,9 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables }); MainPiece.Add(symbol = new SwellSymbolPiece()); + + result = Results.Single(r => !(r.Judgement is TaikoIntermediateSwellJudgement)); + intermediateResults = Results.Where(r => r.Judgement is TaikoIntermediateSwellJudgement).ToList(); } [BackgroundDependencyLoader] @@ -128,12 +137,12 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables { if (userTriggered) { - var nextIntermediate = HitObject.IntermediateJudgements.FirstOrDefault(j => !j.HasResult); + var nextIntermediate = intermediateResults.FirstOrDefault(j => !j.HasResult); if (nextIntermediate != null) - ApplyJudgement(nextIntermediate, j => j.Result = HitResult.Great); + ApplyResult(nextIntermediate, r => r.Type = HitResult.Great); - var numHits = HitObject.IntermediateJudgements.Count(j => j.HasResult); + var numHits = intermediateResults.Count(r => r.HasResult); var completion = (float)numHits / HitObject.RequiredHits; @@ -147,7 +156,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables expandingRing.ScaleTo(1f + Math.Min(target_ring_scale - 1f, (target_ring_scale - 1f) * completion * 1.3f), 260, Easing.OutQuint); if (numHits == HitObject.RequiredHits) - ApplyJudgement(HitObject.Judgement, j => j.Result = HitResult.Great); + ApplyResult(result, r => r.Type = HitResult.Great); } else { @@ -156,7 +165,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables int numHits = 0; - foreach (var intermediate in HitObject.IntermediateJudgements) + foreach (var intermediate in intermediateResults) { if (intermediate.HasResult) { @@ -164,10 +173,12 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables continue; } - ApplyJudgement(intermediate, j => j.Result = HitResult.Miss); + ApplyResult(intermediate, r => r.Type = HitResult.Miss); } - ApplyJudgement(HitObject.Judgement, j => j.Result = numHits > HitObject.RequiredHits / 2 ? HitResult.Good : HitResult.Miss); + var hitResult = numHits > HitObject.RequiredHits / 2 ? HitResult.Good : HitResult.Miss; + + ApplyResult(result, r => r.Type = hitResult); } } diff --git a/osu.Game.Rulesets.Taiko/Objects/DrumRoll.cs b/osu.Game.Rulesets.Taiko/Objects/DrumRoll.cs index b6b1efee16..2ed59d3c43 100644 --- a/osu.Game.Rulesets.Taiko/Objects/DrumRoll.cs +++ b/osu.Game.Rulesets.Taiko/Objects/DrumRoll.cs @@ -85,15 +85,12 @@ namespace osu.Game.Rulesets.Taiko.Objects } } - public TaikoJudgement Judgement { get; private set; } - public TaikoStrongHitJudgement StrongJudgement { get; private set; } - protected override IEnumerable CreateJudgements() { - yield return Judgement = new TaikoJudgement(); + yield return new TaikoJudgement(); if (IsStrong) - yield return StrongJudgement = new TaikoStrongHitJudgement(); + yield return new TaikoStrongHitJudgement(); } } } diff --git a/osu.Game.Rulesets.Taiko/Objects/Hit.cs b/osu.Game.Rulesets.Taiko/Objects/Hit.cs index 94fc1ab20f..6795aef730 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Hit.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Hit.cs @@ -9,15 +9,12 @@ namespace osu.Game.Rulesets.Taiko.Objects { public class Hit : TaikoHitObject { - public TaikoJudgement Judgement { get; private set; } - public TaikoStrongHitJudgement StrongJudgement { get; private set; } - protected override IEnumerable CreateJudgements() { - yield return Judgement = new TaikoJudgement(); + yield return new TaikoJudgement(); if (IsStrong) - yield return StrongJudgement = new TaikoStrongHitJudgement(); + yield return new TaikoStrongHitJudgement(); } } } diff --git a/osu.Game.Rulesets.Taiko/Objects/Swell.cs b/osu.Game.Rulesets.Taiko/Objects/Swell.cs index 0985853dd6..2dec6019eb 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Swell.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Swell.cs @@ -19,22 +19,12 @@ namespace osu.Game.Rulesets.Taiko.Objects /// public int RequiredHits = 10; - public TaikoJudgement Judgement { get; private set; } - - private readonly List intermediateJudgements = new List(); - public IReadOnlyList IntermediateJudgements => intermediateJudgements; - protected override IEnumerable CreateJudgements() { - yield return Judgement = new TaikoJudgement(); + yield return new TaikoJudgement(); for (int i = 0; i < RequiredHits; i++) - { - var intermediate = new TaikoIntermediateSwellJudgement(); - intermediateJudgements.Add(intermediate); - - yield return intermediate; - } + yield return new TaikoIntermediateSwellJudgement(); } } } diff --git a/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs b/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs index 7dd50ab8b8..f5c5fcbe9c 100644 --- a/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs +++ b/osu.Game.Rulesets.Taiko/Scoring/TaikoScoreProcessor.cs @@ -1,7 +1,6 @@ // Copyright (c) 2007-2018 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE -using System.Linq; using osu.Game.Beatmaps; using osu.Game.Rulesets.Judgements; using osu.Game.Rulesets.Scoring; @@ -60,63 +59,31 @@ namespace osu.Game.Rulesets.Taiko.Scoring private double hpIncreaseGood; private double hpIncreaseMiss; - public TaikoScoreProcessor() - { - } - public TaikoScoreProcessor(RulesetContainer rulesetContainer) : base(rulesetContainer) { } - protected override void SimulateAutoplay(Beatmap beatmap) + protected override void ApplyBeatmap(Beatmap beatmap) { + base.ApplyBeatmap(beatmap); + double hpMultiplierNormal = 1 / (hp_hit_great * beatmap.HitObjects.FindAll(o => o is Hit).Count * BeatmapDifficulty.DifficultyRange(beatmap.BeatmapInfo.BaseDifficulty.DrainRate, 0.5, 0.75, 0.98)); hpIncreaseTick = hp_hit_tick; hpIncreaseGreat = hpMultiplierNormal * hp_hit_great; hpIncreaseGood = hpMultiplierNormal * hp_hit_good; hpIncreaseMiss = BeatmapDifficulty.DifficultyRange(beatmap.BeatmapInfo.BaseDifficulty.DrainRate, hp_miss_min, hp_miss_mid, hp_miss_max); - - foreach (var obj in beatmap.HitObjects) - { - switch (obj) - { - case Hit _: - AddJudgement(new TaikoJudgement { Result = HitResult.Great }); - if (obj.IsStrong) - AddJudgement(new TaikoStrongHitJudgement()); - break; - case DrumRoll drumRoll: - var count = drumRoll.NestedHitObjects.OfType().Count(); - for (int i = 0; i < count; i++) - { - AddJudgement(new TaikoDrumRollTickJudgement { Result = HitResult.Great }); - - if (obj.IsStrong) - AddJudgement(new TaikoStrongHitJudgement()); - } - - AddJudgement(new TaikoJudgement { Result = HitResult.Great }); - - if (obj.IsStrong) - AddJudgement(new TaikoStrongHitJudgement()); - break; - case Swell _: - AddJudgement(new TaikoJudgement { Result = HitResult.Great }); - break; - } - } } - protected override void OnNewJudgement(Judgement judgement) + protected override void OnNewJudgement(JudgementResult result) { - base.OnNewJudgement(judgement); + base.OnNewJudgement(result); - bool isTick = judgement is TaikoDrumRollTickJudgement; + bool isTick = result.Judgement is TaikoDrumRollTickJudgement; // Apply HP changes - switch (judgement.Result) + switch (result.Type) { case HitResult.Miss: // Missing ticks shouldn't drop HP diff --git a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs index b07a3ce8df..4d660918b8 100644 --- a/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs +++ b/osu.Game.Rulesets.Taiko/UI/DrawableTaikoJudgement.cs @@ -19,16 +19,16 @@ namespace osu.Game.Rulesets.Taiko.UI /// Creates a new judgement text. /// /// The object which is being judged. - /// The judgement to visualise. - public DrawableTaikoJudgement(Judgement judgement, DrawableHitObject judgedObject) - : base(judgement, judgedObject) + /// The judgement to visualise. + public DrawableTaikoJudgement(JudgementResult result, DrawableHitObject judgedObject) + : base(result, judgedObject) { } [BackgroundDependencyLoader] private void load(OsuColour colours) { - switch (Judgement.Result) + switch (Result.Type) { case HitResult.Good: Colour = colours.GreenLight; @@ -41,7 +41,7 @@ namespace osu.Game.Rulesets.Taiko.UI protected override void LoadComplete() { - if (Judgement.IsHit) + if (Result.IsHit) this.MoveToY(-100, 500); base.LoadComplete(); diff --git a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs index 4cb8dd48a7..40198a701a 100644 --- a/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs +++ b/osu.Game.Rulesets.Taiko/UI/TaikoPlayfield.cs @@ -224,28 +224,28 @@ namespace osu.Game.Rulesets.Taiko.UI } } - internal void OnJudgement(DrawableHitObject judgedObject, Judgement judgement) + internal void OnJudgement(DrawableHitObject judgedObject, JudgementResult result) { if (!DisplayJudgements) return; if (judgedObject.DisplayJudgement && judgementContainer.FirstOrDefault(j => j.JudgedObject == judgedObject) == null) { - judgementContainer.Add(new DrawableTaikoJudgement(judgement, judgedObject) + judgementContainer.Add(new DrawableTaikoJudgement(result, judgedObject) { - Anchor = judgement.IsHit ? Anchor.TopLeft : Anchor.CentreLeft, - Origin = judgement.IsHit ? Anchor.BottomCentre : Anchor.Centre, + Anchor = result.IsHit ? Anchor.TopLeft : Anchor.CentreLeft, + Origin = result.IsHit ? Anchor.BottomCentre : Anchor.Centre, RelativePositionAxes = Axes.X, - X = judgement.IsHit ? judgedObject.Position.X : 0, + X = result.IsHit ? judgedObject.Position.X : 0, }); } - if (!judgement.IsHit) + if (!result.IsHit) return; bool isRim = judgedObject.HitObject is RimHit; - if (judgement is TaikoStrongHitJudgement) + if (result.Judgement is TaikoStrongHitJudgement) hitExplosionContainer.Children.FirstOrDefault(e => e.JudgedObject == judgedObject)?.VisualiseSecondHit(); else {