package org.open2jam.game.judgment; import org.open2jam.render.entities.NoteEntity; import org.open2jam.game.TimingData; /** * A hit judgment strategy. * @author dttvb */ public interface JudgmentStrategy { /** * Returns true if the note should be accepted (judged) by the game. * * @param note the note to check * @return true if the note is to be judged */ boolean accept(NoteEntity note); /** * Returns true if the player missed the note. * * @param note the note to check * @return true if the note is missed, false otherwise */ boolean missed(NoteEntity note); /** * Sets the timing data associated with this judge. * * @param timing timing data to set */ void setTiming(TimingData timing); /** * Judge the note. * * @param note the note to judge * @return the result of the judgment */ JudgmentResult judge(NoteEntity note); }