From fdef040a747820a37ae0d227626d351b79b0e99d Mon Sep 17 00:00:00 2001 From: nairobi <61069237+nyairobi@users.noreply.github.com> Date: Thu, 21 May 2026 22:24:07 +0200 Subject: [PATCH] feat: add arcaea april fools charts (#1547) --- db/seeds/charts-arcaea.json | 126 ++++++++++++++++++ db/seeds/folders.json | 11 ++ db/seeds/songs-arcaea.json | 55 ++++++++ db/seeds/tables.json | 1 + .../src/game-implementations/games/arcaea.ts | 2 +- 5 files changed, 194 insertions(+), 1 deletion(-) diff --git a/db/seeds/charts-arcaea.json b/db/seeds/charts-arcaea.json index cdc8c3c69..bfc40152a 100644 --- a/db/seeds/charts-arcaea.json +++ b/db/seeds/charts-arcaea.json @@ -2144,6 +2144,20 @@ "songID": "S19d35e0f98c0509130f", "versions": ["mobile"] }, + { + "data": { + "displayVersion": "1.6", + "inGameStrID": "ignotusafterburn" + }, + "difficulty": "Future", + "id": "C19e4c00b877c13a6d74", + "isPrimary": true, + "legacyChartID": "131374acaa2f8226912bf090392d47cd1180afb9", + "level": "?", + "levelNum": 0, + "songID": "S19d35e0f98c0509130f", + "versions": ["mobile"] + }, { "data": { "displayVersion": "1.1", @@ -2954,6 +2968,20 @@ "songID": "S19d35e0f99e9c3c5787", "versions": ["mobile"] }, + { + "data": { + "displayVersion": "2.0", + "inGameStrID": "redandblueandgreen" + }, + "difficulty": "Future", + "id": "C19e4c00b877e35fc003", + "isPrimary": true, + "legacyChartID": "a64c6bf7a7bbbcec944d1fa3d1d598f471885e78", + "level": "?", + "levelNum": 0, + "songID": "S19d35e0f99e9c3c5787", + "versions": ["mobile"] + }, { "data": { "displayVersion": "1.5", @@ -3509,6 +3537,20 @@ "songID": "S19d35e0f9ab0ee5b928", "versions": ["mobile"] }, + { + "data": { + "displayVersion": "2.6", + "inGameStrID": "singularityvvvip" + }, + "difficulty": "Future", + "id": "C19e4c00b877bd269704", + "isPrimary": true, + "legacyChartID": "2bb03bcbca8ef0a3f0f3913e400b15fcad999657", + "level": "?", + "levelNum": 0, + "songID": "S19d35e0f9ab0ee5b928", + "versions": ["mobile"] + }, { "data": { "displayVersion": "1.6", @@ -4559,6 +4601,20 @@ "songID": "S19d35e0f9c1c47f4ad2", "versions": ["mobile"] }, + { + "data": { + "displayVersion": "3.5", + "inGameStrID": "overdead" + }, + "difficulty": "Future", + "id": "C19e4c00b87726bfbd7a", + "isPrimary": true, + "legacyChartID": "809bf3bc4489d837f5d913c07ab3fc932e92bbbb", + "level": "?", + "levelNum": 0, + "songID": "S19d35e0f9c1c47f4ad2", + "versions": ["mobile"] + }, { "data": { "displayVersion": "1.7", @@ -26218,5 +26274,75 @@ "levelNum": 8.4, "songID": "S19e3cb7a00be7d0efaa", "versions": ["mobile"] + }, + { + "data": { + "displayVersion": "6.3", + "inGameStrID": "lfdyrmx" + }, + "difficulty": "Future", + "id": "C19e4c00b8766e1b2792", + "isPrimary": true, + "legacyChartID": "05328818602fac5753c48f47ca0f586123605ed2", + "level": "?", + "levelNum": 0, + "songID": "S19e4c00b8760d9b2806", + "versions": ["mobile"] + }, + { + "data": { + "displayVersion": "6.13", + "inGameStrID": "unknownrmx" + }, + "difficulty": "Future", + "id": "C19e4c00b8764325f362", + "isPrimary": true, + "legacyChartID": "8f1fe706ff417fcada0312a16d5f6888bc8eda11", + "level": "?", + "levelNum": 0, + "songID": "S19e4c00b876cb70a82e", + "versions": ["mobile"] + }, + { + "data": { + "displayVersion": "5.5", + "inGameStrID": "hivemindrmx" + }, + "difficulty": "Future", + "id": "C19e4c00b87710db6e21", + "isPrimary": true, + "legacyChartID": "6d65871571c38822356fd07198a81ea097aa11c6", + "level": "?", + "levelNum": 0, + "songID": "S19e4c00b877073f9cc5", + "versions": ["mobile"] + }, + { + "data": { + "displayVersion": "4.4", + "inGameStrID": "ifirmx" + }, + "difficulty": "Future", + "id": "C19e4c00b8775b1909a0", + "isPrimary": true, + "legacyChartID": "39e50e6491d0646b3ec4a5bf28a30a96d3d52a33", + "level": "?", + "levelNum": 0, + "songID": "S19e4c00b87749fc87dd", + "versions": ["mobile"] + }, + { + "data": { + "displayVersion": "3.12", + "inGameStrID": "mismal" + }, + "difficulty": "Future", + "id": "C19e4c00b8773ab27f83", + "isPrimary": true, + "legacyChartID": "b401c848d2f312b0854a5c06f1dd087ea30344b0", + "level": "?", + "levelNum": 0, + "songID": "S19e4c00b87794b7c90b", + "versions": ["mobile"] } ] diff --git a/db/seeds/folders.json b/db/seeds/folders.json index 4e662901f..de1fa488e 100644 --- a/db/seeds/folders.json +++ b/db/seeds/folders.json @@ -1,4 +1,15 @@ [ + { + "game": "arcaea", + "id": "F19e4bf951000f1afda3", + "inactive": false, + "legacyFolderID": "F2137cf7fd3bbea6fa4c6b00a7ef2c24daede1a5a1b669a1394634e9c33602137", + "searchTerms": [], + "slug": "af-mobile", + "title": "Level ? (Mobile)", + "versionFilter": ["mobile"], + "where": "chart.level = '?'" + }, { "game": "arcaea", "id": "F19d35f0cf252f552f9f", diff --git a/db/seeds/songs-arcaea.json b/db/seeds/songs-arcaea.json index 75c04d523..36fe9d967 100644 --- a/db/seeds/songs-arcaea.json +++ b/db/seeds/songs-arcaea.json @@ -6383,5 +6383,60 @@ "legacySongID": 515, "searchTerms": ["ぐらんどすぺる", "그랜드스펠"], "title": "Grandspell" + }, + { + "altTitles": [], + "artist": "Dustvoxx", + "data": { + "songPack": "Shared Time (Binary Enfold)" + }, + "id": "S19e4c00b8760d9b2806", + "legacySongID": 541, + "searchTerms": [], + "title": "Live Faster Die Younger" + }, + { + "altTitles": [], + "artist": "ぱらどっと", + "data": { + "songPack": "Lasting Eden" + }, + "id": "S19e4c00b876cb70a82e", + "legacySongID": 540, + "searchTerms": [], + "title": "UNUSED LEVELS" + }, + { + "altTitles": [], + "artist": "かたぎり", + "data": { + "songPack": "Extend Archive" + }, + "id": "S19e4c00b877073f9cc5", + "legacySongID": 544, + "searchTerms": [], + "title": "HIVEMIND INTERLINKED" + }, + { + "altTitles": [], + "artist": "f→n", + "data": { + "songPack": "Black Fate" + }, + "id": "S19e4c00b87749fc87dd", + "legacySongID": 542, + "searchTerms": [], + "title": "0xe0e1ccull" + }, + { + "altTitles": [], + "artist": "s-don vs nitro (lowiro)", + "data": { + "songPack": "Memory Archive" + }, + "id": "S19e4c00b87794b7c90b", + "legacySongID": 543, + "searchTerms": [], + "title": "Mistempered Malignance" } ] diff --git a/db/seeds/tables.json b/db/seeds/tables.json index d8f51c4c6..70bb8792b 100644 --- a/db/seeds/tables.json +++ b/db/seeds/tables.json @@ -3,6 +3,7 @@ "default": true, "description": "Levels for the mobile version of Arcaea.", "folders": [ + "af-mobile", "1-mobile", "2-mobile", "3-mobile", diff --git a/typescript/server/src/game-implementations/games/arcaea.ts b/typescript/server/src/game-implementations/games/arcaea.ts index c72eb5177..7e13791e7 100644 --- a/typescript/server/src/game-implementations/games/arcaea.ts +++ b/typescript/server/src/game-implementations/games/arcaea.ts @@ -26,7 +26,7 @@ export const ARCAEA_IMPL: GameImplementation<"arcaea"> = { grade: GetGrade(ARCAEA_GBOUNDARIES, scoreData.score), }), scoreCalcs: (scoreData, _derivedData, chart) => ({ - potential: Potential.calculate(scoreData.score, chart.levelNum), + potential: chart.levelNum > 0 ? Potential.calculate(scoreData.score, chart.levelNum) : 0, }), pbRankingValues: (pb) => ({ ranking: pb.scoreData.score,