mirror of
https://github.com/ppy/osu.git
synced 2024-11-15 23:47:25 +08:00
4a7b011a53
The rationale is the same as in
6d325651dc
. Due to the recursive nature of
`GameplaySampleTriggerSource.GetMostValidObject()`, in the case of
nested hits, drum rolls and drum roll ticks, the nested strong hits
would become the most valid object, and so without propagating
the samples down to that level too, nothing would play.
47 lines
1.4 KiB
C#
47 lines
1.4 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.
|
|
|
|
#nullable disable
|
|
|
|
using osu.Game.Rulesets.Judgements;
|
|
using osu.Game.Rulesets.Scoring;
|
|
using osu.Game.Rulesets.Taiko.Judgements;
|
|
|
|
namespace osu.Game.Rulesets.Taiko.Objects
|
|
{
|
|
public class DrumRollTick : TaikoStrongableHitObject
|
|
{
|
|
/// <summary>
|
|
/// Whether this is the first (initial) tick of the slider.
|
|
/// </summary>
|
|
public bool FirstTick;
|
|
|
|
/// <summary>
|
|
/// The length (in milliseconds) between this tick and the next.
|
|
/// <para>Half of this value is the hit window of the tick.</para>
|
|
/// </summary>
|
|
public double TickSpacing;
|
|
|
|
/// <summary>
|
|
/// The time allowed to hit this tick.
|
|
/// </summary>
|
|
public double HitWindow => TickSpacing / 2;
|
|
|
|
public override Judgement CreateJudgement() => new TaikoDrumRollTickJudgement();
|
|
|
|
protected override HitWindows CreateHitWindows() => HitWindows.Empty;
|
|
|
|
public override double MaximumJudgementOffset => HitWindow;
|
|
|
|
protected override StrongNestedHitObject CreateStrongNestedHit(double startTime) => new StrongNestedHit
|
|
{
|
|
StartTime = startTime,
|
|
Samples = Samples
|
|
};
|
|
|
|
public class StrongNestedHit : StrongNestedHitObject
|
|
{
|
|
}
|
|
}
|
|
}
|