|
|
|
@ -1,6 +1,9 @@ |
|
|
|
|
import java.nio.file.Path; |
|
|
|
|
import java.nio.file.Paths; |
|
|
|
|
|
|
|
|
|
import javax.imageio.ImageIO; |
|
|
|
|
|
|
|
|
|
import readers.ColorRange; |
|
|
|
|
import readers.DDRReader; |
|
|
|
|
import readers.ITGReader; |
|
|
|
|
import readers.LoveLiveReader; |
|
|
|
@ -9,6 +12,10 @@ import readers.Reader; |
|
|
|
|
import readers.SoundVoltexReader; |
|
|
|
|
import readers.TestReader; |
|
|
|
|
|
|
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.awt.Color; |
|
|
|
|
|
|
|
|
|
public class ArcadeReader { |
|
|
|
|
/* |
|
|
|
|
* Important data we would like to know for all games: |
|
|
|
@ -62,6 +69,9 @@ public class ArcadeReader { |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
static int testCount=0; |
|
|
|
|
static int testsSucceeded=0; |
|
|
|
|
|
|
|
|
|
final static int DDR_AAA=0; |
|
|
|
|
final static int DDR_AAPLUS=1; |
|
|
|
|
final static int DDR_AA=2; |
|
|
|
@ -121,16 +131,61 @@ public class ArcadeReader { |
|
|
|
|
final static int SDVX_B=7; |
|
|
|
|
final static int SDVX_C=8; |
|
|
|
|
final static int SDVX_D=9; |
|
|
|
|
boolean test(String filename,Class<Reader> reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo) { |
|
|
|
|
return test(filename,reader,score,rank,notes,diff,pct,maxcombo,""); |
|
|
|
|
static Reader interpret(String filename) { |
|
|
|
|
try { |
|
|
|
|
BufferedImage img = ImageIO.read(Paths.get("tests",filename).toFile()); |
|
|
|
|
if (img.getHeight()>img.getWidth()) { |
|
|
|
|
return new SoundVoltexReader(); |
|
|
|
|
} else { |
|
|
|
|
Color col1 = new Color(img.getRGB(31, 41),true); |
|
|
|
|
ColorRange range1 = new ColorRange(245,255,235,240,70,80); |
|
|
|
|
Color col2 = new Color(img.getRGB(27, 1012),true); |
|
|
|
|
ColorRange range2 = new ColorRange(245,255,160,170,195,205); |
|
|
|
|
if (range1.colorInRange(col1)) { |
|
|
|
|
return new PopnReader(); |
|
|
|
|
} |
|
|
|
|
if (col1.equals(Color.BLACK)) { |
|
|
|
|
return new DDRReader(); |
|
|
|
|
} |
|
|
|
|
if (col1.equals(Color.WHITE)) { |
|
|
|
|
return new ITGReader(); |
|
|
|
|
} |
|
|
|
|
if (range2.colorInRange(col2)) { |
|
|
|
|
return new LoveLiveReader(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
static void test(String filename,Class<?> reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo){ |
|
|
|
|
test(filename,reader,score,rank,notes,diff,pct,maxcombo,""); |
|
|
|
|
} |
|
|
|
|
boolean test(String filename,Class<Reader> reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo,String other) { |
|
|
|
|
static void test(String filename,Class<?> reader,int score,int rank,int[] notes,int diff,double pct,int maxcombo,String other){ |
|
|
|
|
testCount++; |
|
|
|
|
Reader r = interpret(filename); |
|
|
|
|
r.interpretBoxes(Paths.get("tests",filename)); |
|
|
|
|
r.interpretBoxes(Paths.get("tests",filename),true); |
|
|
|
|
Reader compare = new TestReader(score,rank,notes,diff,pct,maxcombo,other); |
|
|
|
|
if (!reader.isInstance(r)) { |
|
|
|
|
ArcadeReader.err(new Exception("Test \""+filename+"\" Failed:\nExpected class type: "+reader+" \nActual:"+r.getClass())); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if (!compare.equals(r)) { |
|
|
|
|
throw new Exception("Test Failed:\nExpected:"+compare+"\nActual:"+r); |
|
|
|
|
ArcadeReader.err(new Exception("Test \""+filename+"\" Failed:\nExpected:"+compare+"\nActual:"+r)); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
ArcadeReader.success(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void err(Exception e){ |
|
|
|
|
System.out.println(e.getStackTrace()[0]); |
|
|
|
|
System.out.println(e.getMessage()); |
|
|
|
|
System.exit(1); |
|
|
|
|
} |
|
|
|
|
public static void success(){ |
|
|
|
|
testsSucceeded++; |
|
|
|
|
System.out.println(testsSucceeded+"/"+testCount+"passed!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void runTests() { |
|
|
|
@ -141,7 +196,7 @@ public class ArcadeReader { |
|
|
|
|
9/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
287/*maxcombo*/, |
|
|
|
|
"{ex:1411,fast:18,slow:62,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); |
|
|
|
|
"{ex:1411,fast:18,slow:62,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr2.png",DDRReader.class, |
|
|
|
|
875800/*score*/, |
|
|
|
|
DDR_APLUS/*rank*/, |
|
|
|
@ -149,7 +204,7 @@ public class ArcadeReader { |
|
|
|
|
11/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
230/*maxcombo*/, |
|
|
|
|
"{ex:1529,fast:105,slow:217,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); |
|
|
|
|
"{ex:1529,fast:105,slow:217,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr3.png",DDRReader.class, |
|
|
|
|
991000/*score*/, |
|
|
|
|
DDR_AAA/*rank*/, |
|
|
|
@ -157,7 +212,7 @@ public class ArcadeReader { |
|
|
|
|
9/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
526/*maxcombo*/, |
|
|
|
|
"{ex:1701,fast:16,slow:95,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); |
|
|
|
|
"{ex:1701,fast:16,slow:95,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr4.png",DDRReader.class, |
|
|
|
|
959410/*score*/, |
|
|
|
|
DDR_AAPLUS/*rank*/, |
|
|
|
@ -165,7 +220,7 @@ public class ArcadeReader { |
|
|
|
|
10/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
310/*maxcombo*/, |
|
|
|
|
"{ex:2128,fast:158,slow:82,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); |
|
|
|
|
"{ex:2128,fast:158,slow:82,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr5.png",DDRReader.class, |
|
|
|
|
996070/*score*/, |
|
|
|
|
DDR_AAA/*rank*/, |
|
|
|
@ -173,7 +228,7 @@ public class ArcadeReader { |
|
|
|
|
12/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
339/*maxcombo*/, |
|
|
|
|
"{ex:997,fast:14,slow:36,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); |
|
|
|
|
"{ex:997,fast:14,slow:36,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr6.png",DDRReader.class, |
|
|
|
|
995410/*score*/, |
|
|
|
|
DDR_AAA/*rank*/, |
|
|
|
@ -181,7 +236,7 @@ public class ArcadeReader { |
|
|
|
|
13/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
779/*maxcombo*/, |
|
|
|
|
"{ex:1322,fast:20,slow:54,playstyle:\"SINGLE\",diff:\"CHALLENGE\"}"/*other*/); |
|
|
|
|
"{ex:1322,fast:20,slow:54,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr7.png",DDRReader.class, |
|
|
|
|
940300/*score*/, |
|
|
|
|
DDR_AA/*rank*/, |
|
|
|
@ -189,7 +244,7 @@ public class ArcadeReader { |
|
|
|
|
14/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
100/*maxcombo*/, |
|
|
|
|
"{ex:1258,fast:51,slow:82,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); |
|
|
|
|
"{ex:1258,fast:51,slow:82,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr8.png",DDRReader.class, |
|
|
|
|
978970/*score*/, |
|
|
|
|
DDR_AAPLUS/*rank*/, |
|
|
|
@ -197,7 +252,7 @@ public class ArcadeReader { |
|
|
|
|
15/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
320/*maxcombo*/, |
|
|
|
|
"{ex:1541,fast:72,slow:83,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); |
|
|
|
|
"{ex:1541,fast:72,slow:83,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr9.png",DDRReader.class, |
|
|
|
|
891770/*score*/, |
|
|
|
|
DDR_APLUS/*rank*/, |
|
|
|
@ -205,7 +260,7 @@ public class ArcadeReader { |
|
|
|
|
16/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
211/*maxcombo*/, |
|
|
|
|
"{ex:1633,fast:186,slow:99,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); |
|
|
|
|
"{ex:1633,fast:186,slow:99,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr10.png",DDRReader.class, |
|
|
|
|
867270/*score*/, |
|
|
|
|
DDR_APLUS/*rank*/, |
|
|
|
@ -213,7 +268,7 @@ public class ArcadeReader { |
|
|
|
|
17/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
80/*maxcombo*/, |
|
|
|
|
"{ex:1457,fast:166,slow:110,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); |
|
|
|
|
"{ex:1457,fast:166,slow:110,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("ddr11.png",DDRReader.class, |
|
|
|
|
201760/*score*/, |
|
|
|
|
DDR_E/*rank*/, |
|
|
|
@ -221,7 +276,7 @@ public class ArcadeReader { |
|
|
|
|
18/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
65/*maxcombo*/, |
|
|
|
|
"{ex:329,fast:62,slow:10,playstyle:\"SINGLE\",diff:\"EXPERT\"}"/*other*/); |
|
|
|
|
"{ex:329,fast:62,slow:10,playstyle:\"\",diff:\"\"}"/*other*/); |
|
|
|
|
test("itg1.png",ITGReader.class, |
|
|
|
|
8020/*score*/, |
|
|
|
|
ITG_APLUS/*rank*/, |
|
|
|
@ -331,91 +386,91 @@ public class ArcadeReader { |
|
|
|
|
325415/*score*/, |
|
|
|
|
LOVELIVE_SSS/*rank*/, |
|
|
|
|
new int[]{539,4,0,0,0,0,0}/*notes*/, |
|
|
|
|
10/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
119.8/*pct*/, |
|
|
|
|
543/*maxcombo*/); |
|
|
|
|
test("lovelive2.png",LoveLiveReader.class, |
|
|
|
|
331923/*score*/, |
|
|
|
|
LOVELIVE_SS/*rank*/, |
|
|
|
|
new int[]{514,96,0,0,0,0,0}/*notes*/, |
|
|
|
|
11/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
116.8/*pct*/, |
|
|
|
|
610/*maxcombo*/); |
|
|
|
|
test("lovelive3.png",LoveLiveReader.class, |
|
|
|
|
282182/*score*/, |
|
|
|
|
LOVELIVE_SS/*rank*/, |
|
|
|
|
new int[]{573,45,4,3,8,0,0}/*notes*/, |
|
|
|
|
11/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
115.9/*pct*/, |
|
|
|
|
334/*maxcombo*/); |
|
|
|
|
test("lovelive4.png",LoveLiveReader.class, |
|
|
|
|
282182/*score*/, |
|
|
|
|
LOVELIVE_SS/*rank*/, |
|
|
|
|
new int[]{573,45,4,3,8,0,0}/*notes*/, |
|
|
|
|
11/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
115.9/*pct*/, |
|
|
|
|
334/*maxcombo*/); |
|
|
|
|
test("lovelive5.png",LoveLiveReader.class, |
|
|
|
|
19454/*score*/, |
|
|
|
|
LOVELIVE_SS/*rank*/, |
|
|
|
|
new int[]{117,11,1,0,0,0,0}/*notes*/, |
|
|
|
|
2/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
117.5/*pct*/, |
|
|
|
|
74/*maxcombo*/); |
|
|
|
|
test("lovelive6.png",LoveLiveReader.class, |
|
|
|
|
290746/*score*/, |
|
|
|
|
LOVELIVE_SS/*rank*/, |
|
|
|
|
new int[]{525,104,0,1,1,0,0}/*notes*/, |
|
|
|
|
10/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
116.3/*pct*/, |
|
|
|
|
427/*maxcombo*/); |
|
|
|
|
test("lovelive7.png",LoveLiveReader.class, |
|
|
|
|
0/*score*/, |
|
|
|
|
LOVELIVE_D/*rank*/, |
|
|
|
|
new int[]{0,0,0,0,0,0,0}/*notes*/, |
|
|
|
|
11/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
0/*maxcombo*/); |
|
|
|
|
test("lovelive8.png",LoveLiveReader.class, |
|
|
|
|
140879/*score*/, |
|
|
|
|
LOVELIVE_A/*rank*/, |
|
|
|
|
new int[]{445,16,0,0,1,0,0}/*notes*/, |
|
|
|
|
7/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
119.0/*pct*/, |
|
|
|
|
237/*maxcombo*/); |
|
|
|
|
test("lovelive9.png",LoveLiveReader.class, |
|
|
|
|
183644/*score*/, |
|
|
|
|
LOVELIVE_SSS/*rank*/, |
|
|
|
|
new int[]{452,10,0,0,0,0,0}/*notes*/, |
|
|
|
|
7/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
119.5/*pct*/, |
|
|
|
|
462/*maxcombo*/); |
|
|
|
|
test("lovelive10.png",LoveLiveReader.class, |
|
|
|
|
143468/*score*/, |
|
|
|
|
LOVELIVE_S/*rank*/, |
|
|
|
|
new int[]{410,12,0,1,37,0,0}/*notes*/, |
|
|
|
|
7/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
109.1/*pct*/, |
|
|
|
|
334/*maxcombo*/); |
|
|
|
|
test("lovelive11.png",LoveLiveReader.class, |
|
|
|
|
100456/*score*/, |
|
|
|
|
LOVELIVE_B/*rank*/, |
|
|
|
|
new int[]{303,17,0,0,119,0,0}/*notes*/, |
|
|
|
|
7/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
82.3/*pct*/, |
|
|
|
|
235/*maxcombo*/); |
|
|
|
|
test("lovelive12.png",LoveLiveReader.class, |
|
|
|
|
70288/*score*/, |
|
|
|
|
LOVELIVE_C/*rank*/, |
|
|
|
|
new int[]{197,16,0,0,206,0,0}/*notes*/, |
|
|
|
|
7/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
54.6/*pct*/, |
|
|
|
|
213/*maxcombo*/); |
|
|
|
|
test("popn1.png",PopnReader.class, |
|
|
|
|
83520/*score*/, |
|
|
|
|
POPN_A/*rank*/, |
|
|
|
|
new int[]{495,238,54,44,0,0,0}/*notes*/, |
|
|
|
|
36/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
78/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -423,7 +478,7 @@ public class ArcadeReader { |
|
|
|
|
81259/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{482,310,91,36,0,0,0}/*notes*/, |
|
|
|
|
40/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
112/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -431,7 +486,7 @@ public class ArcadeReader { |
|
|
|
|
79269/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{481,396,112,37,0,0,0}/*notes*/, |
|
|
|
|
41/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
99/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -439,7 +494,7 @@ public class ArcadeReader { |
|
|
|
|
80911/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{485,322,89,40,0,0,0}/*notes*/, |
|
|
|
|
41/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
157/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -447,7 +502,7 @@ public class ArcadeReader { |
|
|
|
|
78495/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{425,297,127,35,0,0,0}/*notes*/, |
|
|
|
|
41/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
127/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -455,7 +510,7 @@ public class ArcadeReader { |
|
|
|
|
80173/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{438,305,101,26,0,0,0}/*notes*/, |
|
|
|
|
41/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
153/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -463,7 +518,7 @@ public class ArcadeReader { |
|
|
|
|
79907/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{474,369,107,34,0,0,0}/*notes*/, |
|
|
|
|
39/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
122/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -471,7 +526,7 @@ public class ArcadeReader { |
|
|
|
|
80814/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{496,286,96,50,0,0,0}/*notes*/, |
|
|
|
|
40/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
103/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -479,7 +534,7 @@ public class ArcadeReader { |
|
|
|
|
82848/*score*/, |
|
|
|
|
POPN_A/*rank*/, |
|
|
|
|
new int[]{528,322,80,28,0,0,0}/*notes*/, |
|
|
|
|
40/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
202/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -487,7 +542,7 @@ public class ArcadeReader { |
|
|
|
|
81631/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{532,342,98,32,0,0,0}/*notes*/, |
|
|
|
|
40/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
145/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -495,7 +550,7 @@ public class ArcadeReader { |
|
|
|
|
80875/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{500,310,102,36,0,0,0}/*notes*/, |
|
|
|
|
40/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
123/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -503,7 +558,7 @@ public class ArcadeReader { |
|
|
|
|
81600/*score*/, |
|
|
|
|
POPN_B/*rank*/, |
|
|
|
|
new int[]{524,339,98,33,0,0,0}/*notes*/, |
|
|
|
|
40/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
199/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -511,7 +566,7 @@ public class ArcadeReader { |
|
|
|
|
87204/*score*/, |
|
|
|
|
POPN_A/*rank*/, |
|
|
|
|
new int[]{665,293,55,18,0,0,0}/*notes*/, |
|
|
|
|
40/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
420/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -519,7 +574,7 @@ public class ArcadeReader { |
|
|
|
|
83279/*score*/, |
|
|
|
|
POPN_A/*rank*/, |
|
|
|
|
new int[]{493,285,78,27,0,0,0}/*notes*/, |
|
|
|
|
41/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
332/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -527,7 +582,7 @@ public class ArcadeReader { |
|
|
|
|
86786/*score*/, |
|
|
|
|
POPN_A/*rank*/, |
|
|
|
|
new int[]{439,215,32,9,0,0,0}/*notes*/, |
|
|
|
|
37/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
276/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -535,7 +590,7 @@ public class ArcadeReader { |
|
|
|
|
3019559/*score*/, |
|
|
|
|
SDVX_D/*rank*/, |
|
|
|
|
new int[]{13,59,31,495,34,56,502}/*notes*/, |
|
|
|
|
18/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
233/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -543,7 +598,7 @@ public class ArcadeReader { |
|
|
|
|
2060643/*score*/, |
|
|
|
|
SDVX_D/*rank*/, |
|
|
|
|
new int[]{0,3,2,160,3,0,109}/*notes*/, |
|
|
|
|
6/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
87/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -551,7 +606,7 @@ public class ArcadeReader { |
|
|
|
|
8759328/*score*/, |
|
|
|
|
SDVX_A/*rank*/, |
|
|
|
|
new int[]{14,88,141,1460,155,156,130}/*notes*/, |
|
|
|
|
18/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
257/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -559,7 +614,7 @@ public class ArcadeReader { |
|
|
|
|
9129755/*score*/, |
|
|
|
|
SDVX_APLUS/*rank*/, |
|
|
|
|
new int[]{7,84,96,1474,99,86,75}/*notes*/, |
|
|
|
|
18/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
234/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -567,7 +622,7 @@ public class ArcadeReader { |
|
|
|
|
9653667/*score*/, |
|
|
|
|
SDVX_AAPLUS/*rank*/, |
|
|
|
|
new int[]{1,53,88,1517,21,12,26}/*notes*/, |
|
|
|
|
16/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
593/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
@ -583,7 +638,7 @@ public class ArcadeReader { |
|
|
|
|
9698351/*score*/, |
|
|
|
|
SDVX_AA/*rank*/, |
|
|
|
|
new int[]{2,70,142,1782,43,29,55}/*notes*/, |
|
|
|
|
17/*difficulty*/, |
|
|
|
|
0/*difficulty*/, |
|
|
|
|
0.0/*pct*/, |
|
|
|
|
372/*maxcombo*/, |
|
|
|
|
"{failed:false}"/*other*/); |
|
|
|
|