diff --git a/source/funkin/game/Note.hx b/source/funkin/game/Note.hx index 03165c52..db5a5207 100644 --- a/source/funkin/game/Note.hx +++ b/source/funkin/game/Note.hx @@ -170,17 +170,6 @@ class Note extends FlxSprite override function update(elapsed:Float) { super.update(elapsed); - - if (mustPress) - { - canBeHit = (strumTime > Conductor.songPosition - (Conductor.safeZoneOffset * latePressWindow) - && strumTime < Conductor.songPosition + (Conductor.safeZoneOffset * earlyPressWindow)); - - if (strumTime < Conductor.songPosition - Conductor.safeZoneOffset && !wasGoodHit) - tooLate = true; - } - else - canBeHit = false; } public function updateClipRect(strum:Strum) { diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 31a3dae8..bb8be432 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -939,14 +939,27 @@ class PlayState extends MusicBeatState if (generatedMusic) { + var toDelete:Array = []; notes.forEachAlive(function(daNote:Note) { + if (daNote.mustPress) + { + daNote.canBeHit = (daNote.strumTime > Conductor.songPosition - (Conductor.safeZoneOffset * daNote.latePressWindow) + && daNote.strumTime < Conductor.songPosition + (Conductor.safeZoneOffset * daNote.earlyPressWindow)); + + if (daNote.strumTime < Conductor.songPosition - Conductor.safeZoneOffset && !daNote.wasGoodHit) + daNote.tooLate = true; + } + else + canBeHit = false; + if (!daNote.mustPress && !daNote.wasGoodHit && daNote.strumTime <= Conductor.songPosition) goodNoteHit(daNote); // TODO: FIXED STEP CROCHET PER NOTES FOR BPM CHANGES if (daNote.wasGoodHit && daNote.isSustainNote && daNote.strumTime + (Conductor.stepCrochet) < Conductor.songPosition) { deleteNote(daNote); return; } + if (daNote.tooLate) { noteMiss(daNote); return;