Example #1
0
    public Boolean CheckNotes(string noteName)
    {
        int note = InstrumentController.ConvertToPitch(noteName) + 48;

        if (playMode == PlayMode.Continuous)
        {
            List <Note> sameNotes = notes.Where(x => x.NoteNumber == note).ToList();
            if (sameNotes.Count > 0)
            {
                float currentTime = songTime;
                Note  closest     = sameNotes.Aggregate((x, y) => Math.Abs(GetNoteTime(x) - currentTime) < Math.Abs(GetNoteTime(y) - currentTime) ? x : y);
                if (Math.Abs(GetNoteTime(closest) - currentTime) < 1)
                {
                    streak++;
                    if (streak > 2)
                    {
                        return(true);
                    }
                    return(false);
                }
            }
        }
        else
        {
            if (notes[noteIndex].NoteNumber == note)
            {
                streak++;
                if (streak > 2)
                {
                    return(true);
                }
                return(false);
            }
        }

        streak = 0;
        return(false);
    }