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

Remove usage of LastTick in osu! ruleset

This commit is contained in:
Dean Herbert 2023-09-29 16:20:21 +09:00
parent e3695d2be0
commit dd6d09189e
4 changed files with 6 additions and 13 deletions

View File

@ -129,7 +129,7 @@ namespace osu.Game.Rulesets.Osu.Mods
});
break;
case SliderEventType.LastTick:
case SliderEventType.Tail:
AddNested(TailCircle = new StrictTrackingSliderTailCircle(this)
{
RepeatIndex = e.SpanIndex,

View File

@ -129,9 +129,11 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
if (userTriggered)
return;
if (timeOffset >= 0 && Tracking)
// The player needs to have engaged in tracking at any point after the tail leniency cutoff.
// An actual tick miss should only occur if reaching the tick itself.
if (timeOffset >= SliderEventGenerator.TAIL_LENIENCY && Tracking)
ApplyResult(r => r.Type = r.Judgement.MaxResult);
else if (timeOffset >= -SliderEventGenerator.LAST_TICK_OFFSET)
else if (timeOffset >= 0)
ApplyResult(r => r.Type = r.Judgement.MinResult);
}

View File

@ -204,11 +204,7 @@ namespace osu.Game.Rulesets.Osu.Objects
});
break;
case SliderEventType.LastTick:
// Of note, we are directly mapping LastTick (instead of `SliderEventType.Tail`) to SliderTailCircle.
// It is required as difficulty calculation and gameplay relies on reading this value.
// (although it is displayed in classic skins, which may be a concern).
// If this is to change, we should revisit this.
case SliderEventType.Tail:
AddNested(TailCircle = new SliderTailCircle(this)
{
RepeatIndex = e.SpanIndex,

View File

@ -2,16 +2,11 @@
// See the LICENCE file in the repository root for full licence text.
using osu.Game.Rulesets.Judgements;
using osu.Game.Rulesets.Objects;
using osu.Game.Rulesets.Osu.Judgements;
using osu.Game.Rulesets.Scoring;
namespace osu.Game.Rulesets.Osu.Objects
{
/// <summary>
/// Note that this should not be used for timing correctness.
/// See <see cref="SliderEventType.LastTick"/> usage in <see cref="Slider"/> for more information.
/// </summary>
public class SliderTailCircle : SliderEndCircle
{
public SliderTailCircle(Slider slider)