diff --git a/db/seeds/charts-ongeki.json b/db/seeds/charts-ongeki.json index 1648c5270..76c8ca2cc 100644 --- a/db/seeds/charts-ongeki.json +++ b/db/seeds/charts-ongeki.json @@ -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 }, diff --git a/db/seeds/folders.json b/db/seeds/folders.json index 3fe1a1135..d656ea270 100644 --- a/db/seeds/folders.json +++ b/db/seeds/folders.json @@ -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'" }, { diff --git a/db/seeds/songs-ongeki.json b/db/seeds/songs-ongeki.json index 0a8e8dc4c..e95efcbfc 100644 --- a/db/seeds/songs-ongeki.json +++ b/db/seeds/songs-ongeki.json @@ -9932,7 +9932,7 @@ }, "id": "S19d35e101d442f45394", "legacySongID": 817, - "searchTerms": ["Loctest"], + "searchTerms": [], "title": "Perfect Shining!!" }, { diff --git a/docs/docs/game-support/games/ongeki-Single.md b/docs/docs/game-support/games/ongeki-Single.md index fae9559e5..59d244dc2 100644 --- a/docs/docs/game-support/games/ongeki-Single.md +++ b/docs/docs/game-support/games/ongeki-Single.md @@ -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` diff --git a/typescript/client/src/lib/game-implementations.tsx b/typescript/client/src/lib/game-implementations.tsx index 9a9e710fa..5bacc2b40 100644 --- a/typescript/client/src/lib/game-implementations.tsx +++ b/typescript/client/src/lib/game-implementations.tsx @@ -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: { diff --git a/typescript/common/src/config/game-support/ongeki.ts b/typescript/common/src/config/game-support/ongeki.ts index 95cb6f59f..e3f1882d4 100644 --- a/typescript/common/src/config/game-support/ongeki.ts +++ b/typescript/common/src/config/game-support/ongeki.ts @@ -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(), diff --git a/typescript/seeds-scripts/personal/.gitignore b/typescript/seeds-scripts/personal/.gitignore deleted file mode 100644 index b84b5cc65..000000000 --- a/typescript/seeds-scripts/personal/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!.gitignore -!example.js diff --git a/typescript/seeds-scripts/test/custom.test.ts b/typescript/seeds-scripts/test/custom.test.ts index 2e124ed73..6bf916ae3 100644 --- a/typescript/seeds-scripts/test/custom.test.ts +++ b/typescript/seeds-scripts/test/custom.test.ts @@ -124,31 +124,6 @@ const CHART_CHECKS: { [G in GameGroup]?: Array 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>> } = {}; diff --git a/typescript/server/src/game-implementations/games/ongeki.ts b/typescript/server/src/game-implementations/games/ongeki.ts index 3e5b9a145..f488205a2 100644 --- a/typescript/server/src/game-implementations/games/ongeki.ts +++ b/typescript/server/src/game-implementations/games/ongeki.ts @@ -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; diff --git a/typescript/server/src/lib/score-import/framework/common/string-asserts.ts b/typescript/server/src/lib/score-import/framework/common/string-asserts.ts index 472990f4b..f6f4ff5c0 100644 --- a/typescript/server/src/lib/score-import/framework/common/string-asserts.ts +++ b/typescript/server/src/lib/score-import/framework/common/string-asserts.ts @@ -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; } diff --git a/typescript/server/src/lib/score-import/import-types/api/myt-ongeki/converter.ts b/typescript/server/src/lib/score-import/import-types/api/myt-ongeki/converter.ts index 0814516c2..c0c4d8039 100644 --- a/typescript/server/src/lib/score-import/import-types/api/myt-ongeki/converter.ts +++ b/typescript/server/src/lib/score-import/import-types/api/myt-ongeki/converter.ts @@ -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 = 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( diff --git a/typescript/server/src/lib/score-import/import-types/common/batch-manual/converter.ts b/typescript/server/src/lib/score-import/import-types/common/batch-manual/converter.ts index 91b761a4e..a388c3849 100644 --- a/typescript/server/src/lib/score-import/import-types/common/batch-manual/converter.ts +++ b/typescript/server/src/lib/score-import/import-types/common/batch-manual/converter.ts @@ -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) { diff --git a/typescript/server/src/utils/queries/charts.ts b/typescript/server/src/utils/queries/charts.ts index 667719cdd..f38dd478f 100644 --- a/typescript/server/src/utils/queries/charts.ts +++ b/typescript/server/src/utils/queries/charts.ts @@ -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 return ToChartDocument(row); } -/** - * Like FindchartWithSongDifficulty, but with O.N.G.E.K.I.'s LUNATIC/Re:MASTER merger. - * @see FindChartWithSongDifficulty - */ -export async function FindOngekiChartWithSongDifficulty( - 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. */