mirror of
https://github.com/ppy/osu.git
synced 2026-05-17 13:23:00 +08:00
59490054db
Closes https://github.com/ppy/osu/issues/27589. Follows osu! spinner precedent in storing the holding state to the judgement result rather than attempting to keep it in the DHO (which is prone to getting dropped on pool re-use).
51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using NUnit.Framework;
|
|
using osu.Framework.Bindables;
|
|
using osu.Framework.Testing;
|
|
using osu.Game.Beatmaps;
|
|
using osu.Game.Beatmaps.ControlPoints;
|
|
using osu.Game.Rulesets.Mania.Objects;
|
|
using osu.Game.Rulesets.Mania.Objects.Drawables;
|
|
|
|
namespace osu.Game.Rulesets.Mania.Tests.Skinning
|
|
{
|
|
public partial class TestSceneHoldNote : ManiaHitObjectTestScene
|
|
{
|
|
[Test]
|
|
public void TestHoldNote()
|
|
{
|
|
AddToggleStep("toggle hitting", v =>
|
|
{
|
|
foreach (var holdNote in CreatedDrawables.SelectMany(d => d.ChildrenOfType<DrawableHoldNote>()))
|
|
{
|
|
((Bindable<bool>)holdNote.IsHolding).Value = v;
|
|
}
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public void TestFadeOnMiss()
|
|
{
|
|
AddStep("miss tick", () =>
|
|
{
|
|
foreach (var holdNote in holdNotes)
|
|
holdNote.ChildrenOfType<DrawableHoldNoteHead>().First().MissForcefully();
|
|
});
|
|
}
|
|
|
|
private IEnumerable<DrawableHoldNote> holdNotes => CreatedDrawables.SelectMany(d => d.ChildrenOfType<DrawableHoldNote>());
|
|
|
|
protected override DrawableManiaHitObject CreateHitObject()
|
|
{
|
|
var note = new HoldNote { Duration = 1000 };
|
|
note.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty());
|
|
|
|
return new DrawableHoldNote(note);
|
|
}
|
|
}
|
|
}
|