package org.open2jam.game.judgment;
import org.open2jam.render.entities.NoteEntity;
/**
* Judge hits by time.
* @author dttvb
*/
public class TimeJudgment extends AbstractJudgmentStrategy {
private static final double BAD_THRESHOULD = 173;
private static final double GOOD_THRESHOULD = 125;
private static final double COOL_THRESHOULD = 41;
@Override
public boolean accept(NoteEntity note) {
return note.getHitTime() <= BAD_THRESHOULD;
}
@Override
public boolean missed(NoteEntity note) {
return note.getHitTime() < -BAD_THRESHOULD;
}
@Override
public JudgmentResult judge(NoteEntity note) {
double hit = Math.abs(note.getHitTime());
if (hit <= COOL_THRESHOULD) return JudgmentResult.COOL;
if (hit <= GOOD_THRESHOULD) return JudgmentResult.GOOD;
if (hit <= BAD_THRESHOULD) return JudgmentResult.BAD;
return JudgmentResult.MISS;
}
}