Where people come together to learn, code, and play. Custom-built HTTP server, site generator, and website from scratch using no external libraries. Goal is to be as minimalistic and fun as possible. http://projectdivar.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
SigPlace/ArcadeReader.java

60 lines
2.0 KiB

import java.nio.file.Path;
import readers.SoundVoltexReader;
public class ArcadeReader {
/*
* Important data we would like to know for all games:
* Score
* Rank (Probably implementation-specific)
* Note accuracy [List]
* Marvelous
* Perfect
* Great
* Good
* Bad
* OK
* Miss
* Difficulty
* Song Name / Title
* Percentage (Can be EX Score, a percentage accuracy or survival percent)
* Max Combo
* Other (Not used by the auto detecter, used for storing misc. data.)
*
* Notes about Readers:
* Love Live
* - Does not use: Marvelous, OK
* Project Diva
* - Does not use: Marvelous, OK
* - Fail condition is MISSxTAKE
* DDR
* - Does not use: Max Combo (Cannot calculate in combo carryover mode), Bad
* - Fail condition is E rank.
* Pop'n Music
* - Does not use: Marvelous, Bad, OK
* - Stores number of bars filled in Percentage.
* - Fail condition is <17 in the meter (max is 24)
* Sound Voltex
* - Sound Voltex uses the note accuracy list slots as follows:
* Early:
* Error - Marvelous
* Near - Perfect
* Critical - Great
* S-Critical - Good
* Critical - Bad
* Near - OK
* Error - Miss
* - Sound Voltex stores EX score in Percentage.
* - Max Combo is Max Chain
* - Sound Voltex will store additional data about accuracy of note types as such:
* {"chip":{"scritical":0,"critical":0,"near":0,"error":0},"long":{"scritical":0,"error":0},"vol":{"scritical":0,"error":0},"gauge":<excessive|normal>,"gauge_pct":100}
* //Also storing what type of clear gauge was met and the % of the gauge.
* - Fail condition is <70% normal gauge.
* IIDX
* - Not going to support right now.
*
*/
public static void retrieveData(Path img) {
new SoundVoltexReader().interpretBoxes(img);
}
}