diff --git a/osu.Game/Rulesets/Mods/ModNightcore.cs b/osu.Game/Rulesets/Mods/ModNightcore.cs index f1f25f70e6..830cb87822 100644 --- a/osu.Game/Rulesets/Mods/ModNightcore.cs +++ b/osu.Game/Rulesets/Mods/ModNightcore.cs @@ -84,17 +84,25 @@ protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, if (!firstBeat.HasValue || beatIndex < firstBeat) firstBeat = Math.Max(0, (beatIndex / 16 + 1) * 16); - if (beatIndex > firstBeat) + if (beatIndex >= firstBeat) { - if (beatIndex % 16 == 0) + if (beatIndex % 16 == 0 && (beatIndex > firstBeat || !effectPoint.OmitFirstBarLine)) finishSample?.Play(); - if (beatIndex % 2 == 0) - kickSample?.Play(); - else if (beatIndex % 2 == 1) - clapSample?.Play(); - else - hatSample?.Play(); + switch (beatIndex % (int)timingPoint.TimeSignature) + { + case 0: + kickSample?.Play(); + break; + + case 2: + clapSample?.Play(); + break; + + default: + hatSample?.Play(); + break; + } } } }