Revert "ongeki lunatic/remaster split (#85)"

This reverts commit a8c74cc665.
This commit is contained in:
zk
2026-05-17 13:31:32 +01:00
parent 529257ec44
commit 426bb250d9
13 changed files with 19 additions and 306 deletions
-132
View File
@@ -117,7 +117,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01002luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8162,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2340
},
@@ -200,7 +199,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01003luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8058,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3014
},
@@ -283,7 +281,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01004luna.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 8022,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2396
},
@@ -1227,7 +1224,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01016luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8166,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3510
},
@@ -1251,7 +1247,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01016mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 118,
"isBonusTrack": false,
"maxPlatScore": 2556
},
"difficulty": "MASTER",
@@ -1494,7 +1489,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01019luna.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 8065,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2698
},
@@ -1518,7 +1512,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01019mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 47,
"isBonusTrack": false,
"maxPlatScore": 2100
},
"difficulty": "MASTER",
@@ -1607,7 +1600,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01020luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8179,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3006
},
@@ -1963,7 +1955,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01070luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8113,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1568
},
@@ -2065,7 +2056,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01061luna.htm",
"displayVersion": "オンゲキ",
"inGameID": 8021,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 4000
},
@@ -2243,7 +2233,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01064luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8062,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 4036
},
@@ -2267,7 +2256,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01064mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 151,
"isBonusTrack": false,
"maxPlatScore": 2590
},
"difficulty": "MASTER",
@@ -2492,7 +2480,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01082luna.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 8067,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2234
},
@@ -2682,7 +2669,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01066luna.htm",
"displayVersion": "オンゲキ",
"inGameID": 8002,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1052
},
@@ -3418,7 +3404,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01083luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8165,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3048
},
@@ -3442,7 +3427,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01083mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 140,
"isBonusTrack": false,
"maxPlatScore": 2482
},
"difficulty": "MASTER",
@@ -3887,7 +3871,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01027luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8163,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 4152
},
@@ -3911,7 +3894,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01027mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 45,
"isBonusTrack": false,
"maxPlatScore": 3016
},
"difficulty": "MASTER",
@@ -4535,7 +4517,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01032luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8009,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1672
},
@@ -4917,7 +4898,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01036luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8115,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3020
},
@@ -4941,7 +4921,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01036mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 35,
"isBonusTrack": false,
"maxPlatScore": 2498
},
"difficulty": "MASTER",
@@ -5030,7 +5009,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01037luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8015,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2452
},
@@ -5946,7 +5924,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01038luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8091,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3692
},
@@ -5969,7 +5946,6 @@
"data": {
"displayVersion": "オンゲキ",
"inGameID": 36,
"isBonusTrack": false,
"maxPlatScore": 1836
},
"difficulty": "MASTER",
@@ -6058,7 +6034,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01039luna.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 8029,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2464
},
@@ -6082,7 +6057,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01039mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 63,
"isBonusTrack": false,
"maxPlatScore": 1638
},
"difficulty": "MASTER",
@@ -6171,7 +6145,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01040luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8030,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2676
},
@@ -6195,7 +6168,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01040mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 64,
"isBonusTrack": false,
"maxPlatScore": 1942
},
"difficulty": "MASTER",
@@ -6284,7 +6256,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01041luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8031,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3144
},
@@ -6308,7 +6279,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01041mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 65,
"isBonusTrack": false,
"maxPlatScore": 1762
},
"difficulty": "MASTER",
@@ -6397,7 +6367,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01042luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8094,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2834
},
@@ -6421,7 +6390,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01042mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 67,
"isBonusTrack": false,
"maxPlatScore": 2624
},
"difficulty": "MASTER",
@@ -6510,7 +6478,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01043luna.htm",
"displayVersion": "オンゲキ Re:Fresh",
"inGameID": 8186,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3222
},
@@ -6617,7 +6584,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01044luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8095,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3118
},
@@ -6641,7 +6607,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01044mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 68,
"isBonusTrack": false,
"maxPlatScore": 2184
},
"difficulty": "MASTER",
@@ -6730,7 +6695,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01045luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8033,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2922
},
@@ -6754,7 +6718,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01045mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 69,
"isBonusTrack": false,
"maxPlatScore": 1672
},
"difficulty": "MASTER",
@@ -7129,7 +7092,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01052luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8097,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3094
},
@@ -7153,7 +7115,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01052mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 76,
"isBonusTrack": false,
"maxPlatScore": 2444
},
"difficulty": "MASTER",
@@ -7242,7 +7203,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01053luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8098,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2714
},
@@ -7266,7 +7226,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01053mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 79,
"isBonusTrack": false,
"maxPlatScore": 1808
},
"difficulty": "MASTER",
@@ -7623,7 +7582,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01069luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8099,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2482
},
@@ -7647,7 +7605,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01069mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 93,
"isBonusTrack": false,
"maxPlatScore": 2408
},
"difficulty": "MASTER",
@@ -7736,7 +7693,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01074luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8100,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3170
},
@@ -7760,7 +7716,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01074mst.htm",
"displayVersion": "オンゲキ",
"inGameID": 94,
"isBonusTrack": false,
"maxPlatScore": 2280
},
"difficulty": "MASTER",
@@ -7963,7 +7918,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01063luna.htm",
"displayVersion": "オンゲキ",
"inGameID": 8001,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1738
},
@@ -9528,7 +9482,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01109luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8158,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 4434
},
@@ -10202,7 +10155,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01118luna.htm",
"displayVersion": "オンゲキ R.E.D.",
"inGameID": 8056,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 628
},
@@ -10386,7 +10338,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01120luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8063,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3690
},
@@ -10812,7 +10763,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01126luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8164,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3766
},
@@ -10836,7 +10786,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01126mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 163,
"isBonusTrack": false,
"maxPlatScore": 2614
},
"difficulty": "MASTER",
@@ -10925,7 +10874,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01127luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8173,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3040
},
@@ -10949,7 +10897,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01127mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 164,
"isBonusTrack": false,
"maxPlatScore": 2484
},
"difficulty": "MASTER",
@@ -11128,7 +11075,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01129luna.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 8024,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1994
},
@@ -11906,7 +11852,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01138luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8085,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3048
},
@@ -11930,7 +11875,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01138mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 167,
"isBonusTrack": false,
"maxPlatScore": 2546
},
"difficulty": "MASTER",
@@ -12507,7 +12451,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01145luna.htm",
"displayVersion": "オンゲキ SUMMER",
"inGameID": 8041,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2008
},
@@ -12911,7 +12854,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01150luna.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 8023,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1622
},
@@ -13024,7 +12966,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01152luna.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 8025,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1998
},
@@ -13563,7 +13504,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01161luna.htm",
"displayVersion": "オンゲキ R.E.D.",
"inGameID": 8050,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3026
},
@@ -13587,7 +13527,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01161mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 190,
"isBonusTrack": false,
"maxPlatScore": 2474
},
"difficulty": "MASTER",
@@ -13806,7 +13745,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01167luna.htm",
"displayVersion": "オンゲキ R.E.D.",
"inGameID": 8052,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3120
},
@@ -15165,7 +15103,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01177luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8101,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2586
},
@@ -15189,7 +15126,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01177mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 205,
"isBonusTrack": false,
"maxPlatScore": 2124
},
"difficulty": "MASTER",
@@ -15278,7 +15214,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01180luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8102,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2806
},
@@ -15302,7 +15237,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01180mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 206,
"isBonusTrack": false,
"maxPlatScore": 2568
},
"difficulty": "MASTER",
@@ -15391,7 +15325,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01179luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8103,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3326
},
@@ -15415,7 +15348,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01179mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 207,
"isBonusTrack": false,
"maxPlatScore": 2690
},
"difficulty": "MASTER",
@@ -16210,7 +16142,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01188luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8088,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3088
},
@@ -16234,7 +16165,6 @@
"chartViewURL": "https://sdvx.in/ongeki/01/01188mst.htm",
"displayVersion": "オンゲキ PLUS",
"inGameID": 215,
"isBonusTrack": false,
"maxPlatScore": 2618
},
"difficulty": "MASTER",
@@ -18249,7 +18179,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02017luna.htm",
"displayVersion": "オンゲキ SUMMER PLUS",
"inGameID": 8048,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3410
},
@@ -18273,7 +18202,6 @@
"chartViewURL": "https://sdvx.in/ongeki/02/02017mst.htm",
"displayVersion": "オンゲキ SUMMER",
"inGameID": 231,
"isBonusTrack": false,
"maxPlatScore": 2572
},
"difficulty": "MASTER",
@@ -18362,7 +18290,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02018luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8104,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3230
},
@@ -18386,7 +18313,6 @@
"chartViewURL": "https://sdvx.in/ongeki/02/02018mst.htm",
"displayVersion": "オンゲキ SUMMER",
"inGameID": 232,
"isBonusTrack": false,
"maxPlatScore": 3028
},
"difficulty": "MASTER",
@@ -18655,7 +18581,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02022luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8105,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3388
},
@@ -18679,7 +18604,6 @@
"chartViewURL": "https://sdvx.in/ongeki/02/02022mst.htm",
"displayVersion": "オンゲキ SUMMER",
"inGameID": 243,
"isBonusTrack": false,
"maxPlatScore": 2052
},
"difficulty": "MASTER",
@@ -18858,7 +18782,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02021luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8106,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2190
},
@@ -18882,7 +18805,6 @@
"chartViewURL": "https://sdvx.in/ongeki/02/02021mst.htm",
"displayVersion": "オンゲキ SUMMER",
"inGameID": 238,
"isBonusTrack": false,
"maxPlatScore": 1508
},
"difficulty": "MASTER",
@@ -18995,7 +18917,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02025luna.htm",
"displayVersion": "オンゲキ SUMMER",
"inGameID": 8042,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2214
},
@@ -19061,7 +18982,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02026luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8083,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3558
},
@@ -19423,7 +19343,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02031luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8086,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 634
},
@@ -22533,7 +22452,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02068luna.htm",
"displayVersion": "オンゲキ SUMMER",
"inGameID": 8043,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2450
},
@@ -24653,7 +24571,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02099luna.htm",
"displayVersion": "オンゲキ Re:Fresh",
"inGameID": 8188,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3782
},
@@ -25754,7 +25671,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02097luna.htm",
"displayVersion": "オンゲキ SUMMER PLUS",
"inGameID": 8044,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1776
},
@@ -27172,7 +27088,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02125luna.htm",
"displayVersion": "オンゲキ SUMMER PLUS",
"inGameID": 8045,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1476
},
@@ -27531,7 +27446,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02129luna.htm",
"displayVersion": "オンゲキ R.E.D.",
"inGameID": 8054,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2748
},
@@ -27555,7 +27469,6 @@
"chartViewURL": "https://sdvx.in/ongeki/02/02129mst.htm",
"displayVersion": "オンゲキ SUMMER PLUS",
"inGameID": 374,
"isBonusTrack": false,
"maxPlatScore": 2544
},
"difficulty": "MASTER",
@@ -29845,7 +29758,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02157luna.htm",
"displayVersion": "オンゲキ SUMMER PLUS",
"inGameID": 8046,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2968
},
@@ -29869,7 +29781,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02158luna.htm",
"displayVersion": "オンゲキ SUMMER PLUS",
"inGameID": 8047,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 5200
},
@@ -30447,7 +30358,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/02165luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8160,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 4572
},
@@ -31993,7 +31903,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03001luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8061,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3006
},
@@ -32017,7 +31926,6 @@
"chartViewURL": "https://sdvx.in/ongeki/03/03001mst.htm",
"displayVersion": "オンゲキ R.E.D.",
"inGameID": 413,
"isBonusTrack": false,
"maxPlatScore": 2418
},
"difficulty": "MASTER",
@@ -32935,7 +32843,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03010luna.htm",
"displayVersion": "オンゲキ R.E.D.",
"inGameID": 8049,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 4708
},
@@ -35911,7 +35818,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03052luna.htm",
"displayVersion": "オンゲキ R.E.D.",
"inGameID": 8051,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2586
},
@@ -36985,7 +36891,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03067luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8172,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2758
},
@@ -39893,7 +39798,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03100luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8064,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 1616
},
@@ -39917,7 +39821,6 @@
"chartViewURL": "https://sdvx.in/ongeki/03/03100mst.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 509,
"isBonusTrack": false,
"maxPlatScore": 2610
},
"difficulty": "MASTER",
@@ -40097,7 +40000,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03102luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8178,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3118
},
@@ -40675,7 +40577,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03106luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8057,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 4422
},
@@ -40788,7 +40689,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03109luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8059,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3172
},
@@ -45401,7 +45301,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03158luna.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 8060,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 5740
},
@@ -47627,7 +47526,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03176luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8180,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3902
},
@@ -47914,7 +47812,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03179luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8107,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 4180
},
@@ -47938,7 +47835,6 @@
"chartViewURL": "https://sdvx.in/ongeki/03/03179mst.htm",
"displayVersion": "オンゲキ R.E.D. PLUS",
"inGameID": 589,
"isBonusTrack": false,
"maxPlatScore": 4730
},
"difficulty": "MASTER",
@@ -48028,7 +47924,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03180luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8139,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 5006
},
@@ -48314,7 +48209,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03183luna.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 8081,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3184
},
@@ -48785,7 +48679,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03188luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8087,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3712
},
@@ -48899,7 +48792,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/03189luna.htm",
"displayVersion": "オンゲキ Re:Fresh",
"inGameID": 8185,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1754
},
@@ -49231,7 +49123,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04002luna.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 8079,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2886
},
@@ -50397,7 +50288,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04016luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8072,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2690
},
@@ -50421,7 +50311,6 @@
"chartViewURL": "https://sdvx.in/ongeki/04/04016mst.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 615,
"isBonusTrack": false,
"maxPlatScore": 2798
},
"difficulty": "MASTER",
@@ -51427,7 +51316,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04023luna.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 8080,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2240
},
@@ -56269,7 +56157,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04070luna.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 8069,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2114
},
@@ -57295,7 +57182,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04078luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8168,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2438
},
@@ -57319,7 +57205,6 @@
"chartViewURL": "https://sdvx.in/ongeki/04/04078mst.htm",
"displayVersion": "オンゲキ bright",
"inGameID": 676,
"isBonusTrack": false,
"maxPlatScore": 2026
},
"difficulty": "MASTER",
@@ -57967,7 +57852,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04086luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8084,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 5000
},
@@ -59835,7 +59719,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04102luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8082,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3060
},
@@ -59882,7 +59765,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04103luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8071,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2126
},
@@ -61796,7 +61678,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04126luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8070,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1194
},
@@ -61868,7 +61749,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04127luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8170,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3502
},
@@ -67831,7 +67711,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04184luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8089,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 3776
},
@@ -67923,7 +67802,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04180luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8145,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 5798
},
@@ -68053,7 +67931,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04185luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.1",
"inGameID": 8090,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 5400
},
@@ -68883,7 +68760,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/01038luna2.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8003,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2146
},
@@ -72816,7 +72692,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04215luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 8167,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2322
},
@@ -72840,7 +72715,6 @@
"chartViewURL": "https://sdvx.in/ongeki/04/04215mst.htm",
"displayVersion": "オンゲキ bright MEMORY Act.2",
"inGameID": 908,
"isBonusTrack": false,
"maxPlatScore": 1944
},
"difficulty": "MASTER",
@@ -73825,7 +73699,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04223luna.htm",
"displayVersion": "オンゲキ Re:Fresh",
"inGameID": 8177,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 4042
},
@@ -81348,7 +81221,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04285luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8175,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 2884
},
@@ -81563,7 +81435,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04288luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8169,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 2206
},
@@ -87557,7 +87428,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04359luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8181,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 4266
},
@@ -87641,7 +87511,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/04360luna.htm",
"displayVersion": "オンゲキ bright MEMORY Act.3",
"inGameID": 8182,
"isBonusTrack": false,
"isReMaster": false,
"maxPlatScore": 1946
},
@@ -88443,7 +88312,6 @@
"chartViewURL": "https://sdvx.in/ongeki/luna/05017luna.htm",
"displayVersion": "オンゲキ Re:Fresh",
"inGameID": 8187,
"isBonusTrack": false,
"isReMaster": true,
"maxPlatScore": 3066
},
+2 -24
View File
@@ -38377,7 +38377,7 @@
"slug": "refreshomni-lunatic",
"title": "LUNATIC (Re:Fresh Omnimix)",
"versionFilter": ["refreshOmni"],
"where": "chart.data->>'isBonusTrack' = 'false' AND chart.data->>'isReMaster' = 'false' AND chart.difficulty = 'LUNATIC'"
"where": "chart.data->>'isReMaster' = 'false' AND chart.difficulty = 'LUNATIC'"
},
{
"game": "ongeki",
@@ -38399,17 +38399,6 @@
"slug": "refresh-lunatic",
"title": "LUNATIC (Re:Fresh)",
"versionFilter": ["refresh"],
"where": "chart.data->>'isBonusTrack' = 'false' AND chart.data->>'isReMaster' = 'false' AND chart.difficulty = 'LUNATIC'"
},
{
"game": "ongeki",
"id": "F19d35f0cf2aa17a39b1",
"inactive": true,
"legacyFolderID": "F2de5fd8f784e94c6e2c60c5960b1306aadb76c54ce9b502421813cfa66532a36",
"searchTerms": [],
"slug": "refresh-lunatic-old",
"title": "LUNATIC (Re:Fresh) (Old)",
"versionFilter": ["refresh"],
"where": "chart.data->>'isReMaster' = 'false' AND chart.difficulty = 'LUNATIC'"
},
{
@@ -38530,7 +38519,7 @@
"slug": "refreshomni-lunatic-remaster",
"title": "Re:MASTER (Re:Fresh Omnimix)",
"versionFilter": ["refreshOmni"],
"where": "chart.data->>'isBonusTrack' = 'false' AND chart.data->>'isReMaster' = 'true' AND chart.difficulty = 'LUNATIC'"
"where": "chart.data->>'isReMaster' = 'true' AND chart.difficulty = 'LUNATIC'"
},
{
"game": "ongeki",
@@ -38552,17 +38541,6 @@
"slug": "refresh-lunatic-remaster",
"title": "Re:MASTER (Re:Fresh)",
"versionFilter": ["refresh"],
"where": "chart.data->>'isBonusTrack' = 'false' AND chart.data->>'isReMaster' = 'true' AND chart.difficulty = 'LUNATIC'"
},
{
"game": "ongeki",
"id": "F19d35f0cf2a28977612",
"inactive": true,
"legacyFolderID": "F591906452a12c984f9a5e436543802e493d15782b678b518dbeba3705720c77c",
"searchTerms": [],
"slug": "refresh-lunatic-remaster-old",
"title": "Re:MASTER (Re:Fresh) (Old)",
"versionFilter": ["refresh"],
"where": "chart.data->>'isReMaster' = 'true' AND chart.difficulty = 'LUNATIC'"
},
{
+1 -1
View File
@@ -9932,7 +9932,7 @@
},
"id": "S19d35e101d442f45394",
"legacySongID": 817,
"searchTerms": ["Loctest"],
"searchTerms": [],
"title": "Perfect Shining!!"
},
{
@@ -78,8 +78,6 @@ The default rating algorithm is `naiveRating`.
| :: | :: |
| `naiveRating` | The average of your best 45 classic ratings. This is a simpler variant of the rating algorithm used in bright MEMORY and earlier versions, without distinguishing between new and old charts, and without taking recent scores into account. |
| `naiveRatingRefresh` | A weighted sum of the average of your best 60 score ratings, and your best 50 star ratings. This is a simpler variant of the rating algorithm used in Re:Fresh, without distinguishing between new and old charts. |
| `scoreRating` | The average of your best 60 score ratings. |
| `starRating` | The average of your best 50 star ratings. |
## Difficulties
@@ -88,9 +86,6 @@ The default rating algorithm is `naiveRating`.
- `EXPERT`
- `MASTER`
- `LUNATIC`
- `Re:MASTER`
The `LUNATIC`/`Re:MASTER` split is transparent; your import script must assume every "white" chart is `LUNATIC`.
## Classes
@@ -111,11 +106,11 @@ The `LUNATIC`/`Re:MASTER` split is transparent; your import script must assume e
## Supported Match Types
- `songTitle`
- `tachiSongID` – deprecated; don't use this
- `tachiSongID`
- `inGameID`
### Song Title Matching
There are numerous songs with non-unique names (e.g. Singularity, Singularity, Singularity and Xingularity), but this can be resolved by providing the `artist` field. The only exception is Perfect Shining!!, which uniquely has two LUNATIC charts and has to be matched by `inGameID`:
There are numerous songs with non-unique names (e.g. Singularity, Singularity and Singularity), but this can be resolved by providing the `artist` field. The only exception is Perfect Shining, which uniquely has two LUNATIC charts and has to be matched by `inGameID`:
- LUNATIC 0 (Loctest chart) `inGameID: 8003`
- Re:MASTER 13+ `inGameID: 8091`
- LUNATIC 13+ (Re:Master) `inGameID: 8091`
@@ -823,7 +823,6 @@ export const GPT_CLIENT_IMPLEMENTATIONS: GPTClientImplementations = {
EXPERT: COLOUR_SET.vibrantPink,
MASTER: COLOUR_SET.purple,
LUNATIC: COLOUR_SET.white,
"Re:MASTER": COLOUR_SET.white,
},
ratingSystems: [],
ratingAlgNameOverrides: {
@@ -176,16 +176,6 @@ export const GAME_ONGEKI_CONF = {
formatter: ToDecimalPlaces(3),
associatedScoreAlgs: ["scoreRating", "starRating"],
},
scoreRating: {
description: "The average of your best 60 ScoreRatings.",
formatter: ToDecimalPlaces(3),
associatedScoreAlgs: ["scoreRating"],
},
starRating: {
description: "The average of your best 50 StarRatings.",
formatter: ToDecimalPlaces(3),
associatedScoreAlgs: ["starRating"],
},
},
defaultScoreRatingAlg: "rating",
@@ -194,13 +184,12 @@ export const GAME_ONGEKI_CONF = {
difficulties: {
type: "FIXED",
order: ["BASIC", "ADVANCED", "EXPERT", "MASTER", "Re:MASTER", "LUNATIC"],
order: ["BASIC", "ADVANCED", "EXPERT", "MASTER", "LUNATIC"],
formatShort: {
BASIC: "BAS",
ADVANCED: "ADV",
EXPERT: "EXP",
MASTER: "MAS",
"Re:MASTER": "Re:MAS",
LUNATIC: "LUN",
},
formatLong: {},
@@ -239,6 +228,7 @@ export const GAME_ONGEKI_CONF = {
"オンゲキ bright MEMORY Act.3",
"オンゲキ Re:Fresh",
]),
isReMaster: z.boolean().optional(),
maxPlatScore: z.number().int(),
inGameID: z.number().int(),
chartViewURL: z.string().optional(),
@@ -1,3 +0,0 @@
*
!.gitignore
!example.js
@@ -124,31 +124,6 @@ const CHART_CHECKS: { [G in GameGroup]?: Array<Test<ChartDocument<GamesForGroup[
(c) => c.levelNum.toString(),
),
],
ongeki: [
test("Level and LevelNum should align (X+ should be X.7 or higher)", (c) => {
if (c.level.endsWith("+")) {
return (c.levelNum * 10) % 10 >= 7;
} else {
return (c.levelNum * 10) % 10 < 7;
}
}),
test("Charts 12+ and above should have chart view links", (c) => {
if (c.levelNum === 0.0 || c.levelNum >= 12.7) {
if (c.data.chartViewURL === undefined) {
console.log(chalk.yellow(`Missing chartViewURL: ${c.chartID}`));
}
}
return true;
}),
test("Bonus tracks must be in the ID range 7000~7999", (c) => {
if (c.data.isBonusTrack) {
return (
c.data.inGameID === null || (c.data.inGameID >= 7000 && c.data.inGameID < 8000)
);
}
return true;
}),
],
};
const SONG_CHECKS: { [G in GameGroup]?: Array<Test<SongDocument<G>>> } = {};
@@ -94,17 +94,17 @@ export const ONGEKI_IMPL: GameImplementation<"ongeki"> = {
starRating: SessionAvgBest10For("starRating")(arr),
}),
profileCalcs: async (game, userID) => {
const [naiveRating, scoreRating, starRating] = await Promise.all([
const [naiveRating, score, star] = await Promise.all([
ProfileAvgBestN("rating", 45, false, 100)(game, userID),
ProfileAvgBestN("scoreRating", 60, false, 1000)(game, userID),
ProfileAvgBestN("starRating", 50, false, 1000)(game, userID),
]);
const score1k = Math.round((scoreRating ?? 0) * 1000);
const star1k = Math.round((starRating ?? 0) * 1000);
const score1k = Math.round((score ?? 0) * 1000);
const star1k = Math.round((star ?? 0) * 1000);
const naiveRatingRefresh = (Math.floor(score1k * 1.2) + star1k) / 1000.0;
return { naiveRating, naiveRatingRefresh, scoreRating, starRating };
return { naiveRating, naiveRatingRefresh };
},
classDerivers: (ratings) => {
const rating = ratings.naiveRatingRefresh;
@@ -18,12 +18,6 @@ export function AssertStrAsDifficulty(strVal: string, game: V3Game): Difficultie
);
}
if (game === "ongeki" && strVal === "Re:MASTER") {
throw new InvalidScoreFailure(
`Invalid Difficulty for ${FormatGame(game)} - Don't use Re:MASTER directly; send the score as LUNATIC instead.`,
);
}
return strVal;
}
@@ -14,7 +14,7 @@ import {
OngekiComboStatus,
OngekiLevel,
} from "#proto/generated/ongeki/common_pb";
import { FindOngekiChartOnInGameID } from "#utils/queries/charts";
import { FindChartOnInGameID } from "#utils/queries/charts";
import { FindSongOnID } from "#utils/queries/songs";
import type { MytOngekiScore } from "./types";
@@ -92,7 +92,7 @@ const ConvertAPIMytOngeki: ConverterFunction<MytOngekiScore, EmptyObject> = asyn
);
}
const chart = await FindOngekiChartOnInGameID("ongeki", data.info.musicId, difficulty);
const chart = await FindChartOnInGameID("ongeki", data.info.musicId, difficulty);
if (chart === null) {
throw new SongOrChartNotFoundFailure(
@@ -24,8 +24,6 @@ import {
FindChartWithSongDifficulty,
FindChartWithSongDifficultyVersion,
FindITGChartOnHash,
FindOngekiChartOnInGameID,
FindOngekiChartWithSongDifficulty,
FindPopnChartOnHashSHA256,
FindSDVXChartOnInGameID,
FindSDVXChartOnInGameIDVersion,
@@ -391,11 +389,7 @@ export async function ResolveSongAndChart(
resolver.version,
);
} else {
if (game === "ongeki") {
chart = await FindOngekiChartOnInGameID(game, identifier, difficulty);
} else {
chart = await FindChartOnInGameIDPrimary(game, identifier, difficulty);
}
chart = await FindChartOnInGameIDPrimary(game, identifier, difficulty);
}
if (!chart) {
@@ -468,10 +462,10 @@ export async function ResolveSongAndChart(
}
case "gcmInGameIDSpecialChart": {
const gcmGames = ["chunithm", "maimai", "maimaidx"] as const;
const gcmGames = ["chunithm", "ongeki", "maimai", "maimaidx"] as const;
if (!gcmGames.includes(game as (typeof gcmGames)[number])) {
throw new InvalidScoreFailure(
`gcmInGameIDSpecialChart matchType can only be used on CHUNITHM, maimai, or maimai DX.`,
`gcmInGameIDSpecialChart matchType can only be used on CHUNITHM, O.N.G.E.K.I., maimai, or maimai DX.`,
);
}
@@ -560,7 +554,7 @@ export async function ResolveChartFromSong(
case "CHUGEKIMAI_STYLE":
if (!gameConfig.difficulties.order.includes(difficulty)) {
throw new InvalidScoreFailure(
`This difficulty "${difficulty}" is not supported for songTitle+difficulty lookups. If you are trying to import for WORLD'S END/UTAGE scores, you must use inGameID, or a different lookup method.`,
`This difficulty "${difficulty}" is not supported for songTitle+difficulty lookups. If you are trying to import for WORLD'S END/LUNATIC/UTAGE scores, you must use inGameID, or a different lookup method.`,
);
}
break;
@@ -578,11 +572,7 @@ export async function ResolveChartFromSong(
resolver.version,
);
} else {
if (game === "ongeki") {
chart = await FindOngekiChartWithSongDifficulty(game, song.id, difficulty);
} else {
chart = await FindChartWithSongDifficulty(game, song.id, difficulty);
}
chart = await FindChartWithSongDifficulty(game, song.id, difficulty);
}
if (!chart) {
@@ -2,7 +2,6 @@ import type { Game } from "tachi-db";
import { SELECT_CHART, ToChartDocument } from "#lib/db-formats/chart";
import { SELECT_SONG_DOCUMENT, ToSongDocument } from "#lib/db-formats/song";
import { InvalidScoreFailure } from "#lib/score-import/framework/common/converter-failures";
import DB from "#services/pg/db";
import { sql, type SqlBool } from "kysely";
import {
@@ -58,44 +57,6 @@ export async function FindChartWithSongDifficulty<TGame extends V3Game = V3Game>
return ToChartDocument(row);
}
/**
* Like FindchartWithSongDifficulty, but with O.N.G.E.K.I.'s LUNATIC/Re:MASTER merger.
* @see FindChartWithSongDifficulty
*/
export async function FindOngekiChartWithSongDifficulty<TGame extends V3Game = V3Game>(
game: "ongeki",
songID: string,
difficulty: Difficulties[TGame],
) {
if (difficulty === "Re:MASTER") {
// Importers shall not specify the Re:MASTER difficulty directly.
return null;
}
let query = DB.selectFrom("chart")
.innerJoin("song", "song.id", "chart.song_id")
.select(SELECT_CHART)
.where("song.id", "=", songID)
.where("chart.game", "=", game);
if (difficulty === "LUNATIC") {
query = query.where("chart.difficulty", "in", ["LUNATIC", "Re:MASTER"]);
} else {
query = query.where("chart.difficulty", "=", difficulty as string);
}
const row = await query.execute();
if (row.length === 0) {
return null;
}
if (row.length > 1) {
throw new InvalidScoreFailure("This chart cannot be matched by songTitle+difficulty.");
}
return ToChartDocument(row[0]);
}
/**
* Find chart with Playtype, Difficulty and a given version. This does not necessarily return a chart that has
* `isPrimary` set.
@@ -456,40 +417,6 @@ export async function FindIIDXChartOnInGameIDVersion(
return ToChartDocument(row);
}
/**
* Like {@link FindChartOnInGameID} with an exception for O.N.G.E.K.I.'s LUNATIC/Re:MASTER difficulty.
*/
export async function FindOngekiChartOnInGameID(
game: "ongeki",
inGameID: number,
difficulty: Difficulties[V3Game],
) {
if (difficulty === "Re:MASTER") {
// Importers shall not specify the Re:MASTER difficulty directly.
return null;
}
let query = DB.selectFrom("chart")
.innerJoin("song", "song.id", "chart.song_id")
.select(SELECT_CHART)
.where("chart.game", "=", game)
.where(sqlChartDataInGameIDEquals(inGameID));
if (difficulty === "LUNATIC") {
query = query.where("chart.difficulty", "in", ["LUNATIC", "Re:MASTER"]);
} else {
query = query.where("chart.difficulty", "=", difficulty as string);
}
const row = await query.executeTakeFirst();
if (!row) {
return null;
}
return ToChartDocument(row);
}
/**
* Find a chart on its in-game-ID, playtype, difficulty and version.
*/