From d3dc9360573f053f867a67a60041fb1ed8c82591 Mon Sep 17 00:00:00 2001 From: zkldi Date: Sun, 20 Jun 2021 14:57:46 +0100 Subject: [PATCH] build new config stuff --- common/js/common-core/esd-core.js.map | 1 - common/js/common-core/score-core.d.ts | 3 - common/js/common-core/score-core.js | 55 - common/js/common-core/score-core.js.map | 1 - common/js/config.d.ts | 537 ------ common/js/config.js | 1584 ----------------- common/js/config.js.map | 1 - common/js/config/config.d.ts | 71 + common/js/config/config.js | 820 +++++++++ common/js/config/config.js.map | 1 + common/js/config/static-config.d.ts | 14 + common/js/config/static-config.js | 78 + common/js/config/static-config.js.map | 1 + common/js/game-classes.js.map | 2 +- common/js/index.d.ts | 4 +- common/js/index.js | 6 +- common/js/index.js.map | 2 +- .../esd-core.d.ts => lib/esd.d.ts} | 0 .../{common-core/esd-core.js => lib/esd.js} | 39 +- common/js/lib/esd.js.map | 1 + common/js/lib/util.d.ts | 2 + common/js/lib/util.js | 20 + common/js/lib/util.js.map | 1 + common/js/types.d.ts | 18 +- common/package.json | 2 +- common/pnpm-lock.yaml | 23 +- common/tsconfig.json | 4 +- 27 files changed, 1054 insertions(+), 2237 deletions(-) delete mode 100644 common/js/common-core/esd-core.js.map delete mode 100644 common/js/common-core/score-core.d.ts delete mode 100644 common/js/common-core/score-core.js delete mode 100644 common/js/common-core/score-core.js.map delete mode 100644 common/js/config.d.ts delete mode 100644 common/js/config.js delete mode 100644 common/js/config.js.map create mode 100644 common/js/config/config.d.ts create mode 100644 common/js/config/config.js create mode 100644 common/js/config/config.js.map create mode 100644 common/js/config/static-config.d.ts create mode 100644 common/js/config/static-config.js create mode 100644 common/js/config/static-config.js.map rename common/js/{common-core/esd-core.d.ts => lib/esd.d.ts} (100%) rename common/js/{common-core/esd-core.js => lib/esd.js} (81%) create mode 100644 common/js/lib/esd.js.map create mode 100644 common/js/lib/util.d.ts create mode 100644 common/js/lib/util.js create mode 100644 common/js/lib/util.js.map diff --git a/common/js/common-core/esd-core.js.map b/common/js/common-core/esd-core.js.map deleted file mode 100644 index f1abc50e6..000000000 --- a/common/js/common-core/esd-core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"esd-core.js","sourceRoot":"","sources":["../../src/common-core/esd-core.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/common/js/common-core/score-core.d.ts b/common/js/common-core/score-core.d.ts deleted file mode 100644 index 53b7460fd..000000000 --- a/common/js/common-core/score-core.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { ScoreDocument } from ".."; -import { ICollection } from "monk"; -export declare function AutoCoerce(collection: ICollection, scores: ScoreDocument[]): Promise; diff --git a/common/js/common-core/score-core.js b/common/js/common-core/score-core.js deleted file mode 100644 index 5b392ae44..000000000 --- a/common/js/common-core/score-core.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.AutoCoerce = void 0; -function AutoCoerce(collection, scores) { - return __awaiter(this, void 0, void 0, function* () { - let notPBsArr = []; - for (const s of scores) { - if (!s.isLampPB) { - notPBsArr.push({ - userID: s.userID, - chartID: s.chartID, - isLampPB: true, - }); - } - } - if (notPBsArr.length === 0) { - return scores; - } - let lampPBsArr = yield collection.find({ - $or: notPBsArr, - }); - let lampPBs = new Map(); - for (const score of lampPBsArr) { - lampPBs.set(`${score.userID}-${score.chartID}`, score); - } - for (const score of scores) { - if (!score.isLampPB) { - let lampPB = lampPBs.get(`${score.userID}-${score.chartID}`); - if (lampPB) { - score.scoreData.lamp = lampPB.scoreData.lamp; - score.scoreData.lampIndex = lampPB.scoreData.lampIndex; - score.calculatedData.lampRating = lampPB.calculatedData.lampRating; - // not too happy about this, this is a sign - // of something not properly being generalised. - if (score.game === "bms") { - score.calculatedData.rating = lampPB.calculatedData.rating; - } - score.isLampPB = true; - } - } - } - return scores; - }); -} -exports.AutoCoerce = AutoCoerce; -//# sourceMappingURL=score-core.js.map \ No newline at end of file diff --git a/common/js/common-core/score-core.js.map b/common/js/common-core/score-core.js.map deleted file mode 100644 index 3c5f31c22..000000000 --- a/common/js/common-core/score-core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"score-core.js","sourceRoot":"","sources":["../../src/common-core/score-core.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,SAAsB,UAAU,CAC5B,UAAsC,EACtC,MAAuB;;QAEvB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;YACpB,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACb,SAAS,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;aACN;SACJ;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,MAAM,CAAC;SACjB;QAED,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;YACnC,GAAG,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,IAAI,OAAO,GAA+B,IAAI,GAAG,EAAE,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;SAC1D;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACjB,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE7D,IAAI,MAAM,EAAE;oBACR,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC7C,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;oBACvD,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC;oBAEnE,2CAA2C;oBAC3C,+CAA+C;oBAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;wBACtB,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;qBAC9D;oBACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACzB;aACJ;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CAAA;AAjDD,gCAiDC"} \ No newline at end of file diff --git a/common/js/config.d.ts b/common/js/config.d.ts deleted file mode 100644 index 72474361e..000000000 --- a/common/js/config.d.ts +++ /dev/null @@ -1,537 +0,0 @@ -import { Game, Playtypes, ImportTypes, FileUploadImportTypes, AnyChartDocument, IRImportTypes, APIImportTypes } from "./types"; -export declare const fileImportTypes: FileUploadImportTypes[]; -export declare const irImportTypes: IRImportTypes[]; -export declare const apiImportTypes: APIImportTypes[]; -export declare const importTypes: ImportTypes[]; -export declare const supportedGames: Game[]; -export declare const gameSpecificCalc: Partial>>>; -export declare const gameSpecificCalcDescriptions: { - iidx: { - SP: { - BPI: string; - "K%": string; - }; - DP: { - BPI: string; - }; - }; - sdvx: { - Single: { - VF4: string; - VF5: string; - }; - }; - ddr: { - SP: { - MFCP: string; - }; - DP: { - MFCP: string; - }; - }; - usc: { - Single: { - VF4: string; - VF5: string; - }; - }; -}; -export declare const validDifficulties: Record; -export declare const defaultTable: Record; -export declare const folderTables: Record; -export declare const validHitData: Record; -export declare const gameColours: Record; -export declare const gameRelevantScoreBucket: Record; -export declare const gameHuman: Record; -export declare const versionHuman: Record>; -export declare const gameOrders: { - iidx: string[]; - museca: string[]; - maimai: string[]; - jubeat: string[]; - popn: string[]; - sdvx: string[]; - ddr: string[]; - bms: string[]; - chunithm: string[]; - gitadora: string[]; - usc: string[]; -}; -export declare const defaultPlaytype: Record; -export declare const defaultDifficulty: Record; -export declare function humaniseGame(game: T, pt?: Playtypes[T]): string; -export declare const validPlaytypes: Record; -export declare const grades: Record; -export declare const gradeBoundaries: Record; -export declare const boundaryHCF: Record; -export declare const expChartScale: Record; -export declare const lamps: Record; -export declare const clearLamp: Record; -export declare const clearGrade: { - iidx: string; - bms: string; - museca: string; - maimai: string; - jubeat: string; - popn: string; - sdvx: string; - ddr: string; - chunithm: string; - gitadora: string; - usc: string; -}; -export declare const judgementWindows: { - iidx: { - SP: { - name: string; - msBorder: number; - value: number; - }[]; - DP: { - name: string; - msBorder: number; - value: number; - }[]; - }; - ddr: { - SP: { - name: string; - msBorder: number; - value: number; - }[]; - DP: { - name: string; - msBorder: number; - value: number; - }[]; - }; - museca: { - Single: { - name: string; - msBorder: number; - value: number; - }[]; - }; - gitadora: { - Gita: { - name: string; - msBorder: number; - value: number; - }[]; - Dora: { - name: string; - msBorder: number; - value: number; - }[]; - }; -}; -export declare const COLOUR_SET: { - gray: string; - maroon: string; - red: string; - paleGreen: string; - paleBlue: string; - green: string; - blue: string; - gold: string; - vibrantYellow: string; - teal: string; - white: string; - purple: string; - vibrantPurple: string; - paleOrange: string; - orange: string; - vibrantOrange: string; - vibrantBlue: string; - vibrantGreen: string; -}; -interface ColourStuff { - [index: string]: { - outline: Record; - fill?: Record; - }; -} -export declare const gradeColours: ColourStuff; -export declare const lampColours: ColourStuff; -export declare const judgeColours: { - iidx: { - fill: { - MISS: string; - BAD: string; - GOOD: string; - GREAT: string; - PGREAT: string; - }; - outline: { - MISS: string; - BAD: string; - GOOD: string; - GREAT: string; - PGREAT: string; - }; - }; - bms: { - fill: { - MISS: string; - BAD: string; - GOOD: string; - GREAT: string; - PGREAT: string; - }; - outline: { - MISS: string; - BAD: string; - GOOD: string; - GREAT: string; - PGREAT: string; - }; - }; - ddr: { - fill: { - MISS: string; - BOO: string; - GOOD: string; - GREAT: string; - PERFECT: string; - MARVELOUS: string; - }; - outline: { - MISS: string; - BOO: string; - GOOD: string; - GREAT: string; - PERFECT: string; - MARVELOUS: string; - }; - }; - museca: { - fill: { - MISS: string; - NEAR: string; - CRITICAL: string; - }; - outline: { - MISS: string; - NEAR: string; - CRITICAL: string; - }; - }; - sdvx: { - fill: { - MISS: string; - NEAR: string; - CRITICAL: string; - }; - outline: { - MISS: string; - NEAR: string; - CRITICAL: string; - }; - }; - usc: { - fill: { - MISS: string; - NEAR: string; - CRITICAL: string; - }; - outline: { - MISS: string; - NEAR: string; - CRITICAL: string; - }; - }; - popn: { - fill: { - BAD: string; - GOOD: string; - GREAT: string; - PGREAT: string; - }; - outline: { - BAD: string; - GOOD: string; - GREAT: string; - PGREAT: string; - }; - }; - maimai: { - fill: { - MISS: string; - GOOD: string; - GREAT: string; - PERFECT: string; - }; - outline: { - MISS: string; - GOOD: string; - GREAT: string; - PERFECT: string; - }; - }; - jubeat: { - fill: { - MISS: string; - POOR: string; - GOOD: string; - GREAT: string; - PERFECT: string; - }; - outline: { - MISS: string; - POOR: string; - GOOD: string; - GREAT: string; - PERFECT: string; - }; - }; - chunithm: { - outline: { - MISS: string; - ATTACK: string; - JUSTICE: string; - JCRIT: string; - }; - fill: { - MISS: string; - ATTACK: string; - JUSTICE: string; - JCRIT: string; - }; - }; - gitadora: { - outline: { - MISS: string; - OK: string; - GOOD: string; - GREAT: string; - PERFECT: string; - }; - fill: { - MISS: string; - OK: string; - GOOD: string; - GREAT: string; - PERFECT: string; - }; - }; -}; -export declare const gameChartIndicators: { - iidx: string[]; - popn: string[]; - ddr: string[]; - museca: never[]; - maimai: never[]; - jubeat: string[]; - sdvx: never[]; - usc: never[]; - bms: never[]; - chunithm: never[]; - gitadora: never[]; -}; -export declare const ratingParameters: { - iidx: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - bms: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - museca: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - popn: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - maimai: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - jubeat: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - sdvx: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - usc: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - ddr: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - chunithm: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; - gitadora: { - failHarshnessMultiplier: number; - pivotPercent: number; - clearExpMultiplier: number; - }; -}; -export declare function DirectScoreGradeDelta(game: Game, score: number, percent: number, chart: AnyChartDocument, delta: number): SGDReturn | null; -export declare const supportsESD: Record; -interface SGDReturn { - grade: string; - delta: number; - formattedString: string; -} -interface PartialScore { - scoreData: { - score: number; - grade: string; - }; -} -export declare function ScoreGradeDelta(game: Game, score: PartialScore, chart: AnyChartDocument, delta: number): SGDReturn | null; -export declare function AbsoluteScoreGradeDelta(game: Game, score: number, percent: number, absDelta: number): SGDReturn | null; -export declare function CalculateScore(game: Game, percent: number, chart: AnyChartDocument): number | null; -export declare function PercentToScore(percent: number, game: Game, chartData: AnyChartDocument): number; -export declare function FormatDifficulty(chart: AnyChartDocument, game: Game): string; -export declare const gamePercentMax: { - iidx: number; - ddr: number; - gitadora: number; - popn: number; - sdvx: number; - museca: number; - jubeat: number; - bms: number; - chunithm: number; - maimai: number; - maimaidx: number; - usc: number; -}; -export declare const defaultRatingAlgorithm: { - iidx: { - SP: string; - DP: string; - }; - popn: { - "9B": string; - }; - sdvx: { - Single: string; - }; - usc: { - Single: string; - }; - ddr: { - SP: string; - DP: string; - }; - maimai: { - Single: string; - }; - jubeat: { - Single: string; - }; - museca: { - Single: string; - }; - bms: { - "7K": string; - "14K": string; - }; - chunithm: { - Single: string; - }; - gitadora: { - Gita: string; - Dora: string; - }; -}; -export declare const defaultScoreRatingAlgorithm: { - iidx: { - SP: string; - DP: string; - }; - popn: { - "9B": string; - }; - sdvx: { - Single: string; - }; - usc: { - Single: string; - }; - ddr: { - SP: string; - DP: string; - }; - maimai: { - Single: string; - }; - jubeat: { - Single: string; - }; - museca: { - Single: string; - }; - bms: { - "7K": string; - "14K": string; - }; - chunithm: { - Single: string; - }; - gitadora: { - Gita: string; - Dora: string; - }; -}; -export declare const defaultSessionRatingAlgorithm: { - iidx: { - SP: string; - DP: string; - }; - popn: { - "9B": string; - }; - sdvx: { - Single: string; - }; - usc: { - Single: string; - }; - ddr: { - SP: string; - DP: string; - }; - maimai: { - Single: string; - }; - jubeat: { - Single: string; - }; - museca: { - Single: string; - }; - bms: { - "7K": string; - "14K": string; - }; - chunithm: { - Single: string; - }; - gitadora: { - Gita: string; - Dora: string; - }; -}; -export {}; diff --git a/common/js/config.js b/common/js/config.js deleted file mode 100644 index 00bd6e1d8..000000000 --- a/common/js/config.js +++ /dev/null @@ -1,1584 +0,0 @@ -"use strict"; -// Hi, Just so you know, this code is not representative of the internal site code. -// This has been added to over the course of around 10 months at the time of writing, and is the source -// of some of my first javascript code. -// It's,, alright, but I like the versatility it brings. -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultSessionRatingAlgorithm = exports.defaultScoreRatingAlgorithm = exports.defaultRatingAlgorithm = exports.gamePercentMax = exports.FormatDifficulty = exports.PercentToScore = exports.CalculateScore = exports.AbsoluteScoreGradeDelta = exports.ScoreGradeDelta = exports.supportsESD = exports.DirectScoreGradeDelta = exports.ratingParameters = exports.gameChartIndicators = exports.judgeColours = exports.lampColours = exports.gradeColours = exports.COLOUR_SET = exports.judgementWindows = exports.clearGrade = exports.clearLamp = exports.lamps = exports.expChartScale = exports.boundaryHCF = exports.gradeBoundaries = exports.grades = exports.validPlaytypes = exports.humaniseGame = exports.defaultDifficulty = exports.defaultPlaytype = exports.gameOrders = exports.versionHuman = exports.gameHuman = exports.gameRelevantScoreBucket = exports.gameColours = exports.validHitData = exports.folderTables = exports.defaultTable = exports.validDifficulties = exports.gameSpecificCalcDescriptions = exports.gameSpecificCalc = exports.supportedGames = exports.importTypes = exports.apiImportTypes = exports.irImportTypes = exports.fileImportTypes = void 0; -exports.fileImportTypes = [ - "file/eamusement-iidx-csv", - "file/batch-manual", - "file/solid-state-squad", - "file/mer-iidx", - "file/pli-iidx-csv", -]; -exports.irImportTypes = [ - "ir/direct-manual", - "ir/barbatos", - "ir/fervidex", - "ir/fervidex-static", - "ir/beatoraja", - "ir/chunitachi", - "ir/usc", -]; -exports.apiImportTypes = [ - "api/arc-iidx", - "api/arc-sdvx", - "api/arc-ddr", - "api/eag-iidx", - "api/eag-sdvx", - "api/flo-iidx", - "api/flo-sdvx", -]; -exports.importTypes = [...exports.fileImportTypes, ...exports.irImportTypes, ...exports.apiImportTypes]; -exports.supportedGames = [ - "iidx", - "museca", - "maimai", - "jubeat", - "popn", - "sdvx", - "ddr", - "bms", - "chunithm", - "gitadora", - "usc", -]; -exports.gameSpecificCalc = { - iidx: { - SP: ["BPI", "K%"], - DP: ["BPI"], - }, - sdvx: { - Single: ["VF4", "VF5"], - }, - ddr: { - SP: ["MFCP"], - DP: ["MFCP"], - }, - usc: { - Single: ["VF4", "VF5"], - }, -}; -exports.gameSpecificCalcDescriptions = { - iidx: { - SP: { - BPI: "Beat Power Index: How good a score is relative to Kaiden Average (BPI 0) and the World Record (BPI 100).", - "K%": "Kaiden Percentile: How many Kaidens you're ahead of on a given chart.", - }, - DP: { - BPI: "Beat Power Index: How good a score is relative to Kaiden Average (BPI 0) and the World Record (BPI 100).", - }, - }, - sdvx: { - Single: { - VF4: "VOLFORCE as calculated in SOUND VOLTEX IV: HEAVENLY HAVEN.", - VF5: "VOLFORCE as calculated in SOUND VOLTEX V: VIVID WAVE.", - }, - }, - ddr: { - SP: { - MFCP: "MFC Points as described in LIFE4.", - }, - DP: { - MFCP: "MFC Points as described in LIFE4.", - }, - }, - usc: { - Single: { - VF4: "VOLFORCE as calculated in SOUND VOLTEX IV: HEAVENLY HAVEN.", - VF5: "VOLFORCE as calculated in SOUND VOLTEX V: VIVID WAVE.", - }, - }, -}; -exports.validDifficulties = { - iidx: ["BEGINNER", "NORMAL", "HYPER", "ANOTHER", "LEGGENDARIA"], - museca: ["Green", "Yellow", "Red"], - maimai: ["Easy", "Basic", "Advanced", "Expert", "Master", "Re:Master"], - jubeat: ["BSC", "ADV", "EXT"], - popn: ["Easy", "Normal", "Hyper", "EX"], - sdvx: ["NOV", "ADV", "EXH", "MXM", "INF", "GRV", "HVN", "VVD"], - ddr: ["BEGINNER", "BASIC", "DIFFICULT", "EXPERT", "CHALLENGE"], - bms: ["BEGINNER", "NORMAL", "HYPER", "ANOTHER", "INSANE", "CUSTOM"], - chunithm: ["BASIC", "ADVANCED", "EXPERT", "MASTER", "WORLD'S END"], - gitadora: [ - "BASIC", - "ADVANCED", - "EXTREME", - "MASTER", - "BASS BASIC", - "BASS ADVANCED", - "BASS EXTREME", - "BASS MASTER", - ], - usc: ["NOV", "ADV", "EXH", "INF"], -}; -exports.defaultTable = { - iidx: "Levels (N-1)", - bms: "Insane", - museca: "Levels", - jubeat: "Levels", - popn: "Levels", - sdvx: "Levels", - ddr: "Levels", - chunithm: "Levels", - gitadora: "Levels", - usc: "Levels", - maimai: "Levels", -}; -exports.folderTables = { - iidx: ["Levels", "Levels (Omnimix)", "Levels (N-1)", "Levels (N-1 Omnimix)", "Versions"], - bms: ["Normal", "Insane", "Overjoy", "Satellite", "Stella", "Insane 2", "Joverjoy"], - museca: ["Levels", "Versions"], - jubeat: ["Levels", "Versions"], - popn: ["Levels", "Versions"], - sdvx: ["Levels", "Versions"], - ddr: ["Levels", "Versions"], - chunithm: ["Levels", "Levels (Omnimix)", "Versions"], - gitadora: ["Levels", "Versions"], - usc: ["Levels", "Versions"], - maimai: ["Levels", "Versions"], -}; -exports.validHitData = { - iidx: ["pgreat", "great", "good", "bad", "poor"], - bms: ["pgreat", "great", "good", "bad", "poor"], - museca: ["critical", "near", "miss"], - ddr: ["marvelous", "perfect", "great", "good", "boo", "miss", "ok", "ng"], - sdvx: ["critical", "near", "miss"], - popn: ["cool", "great", "good", "bad"], - maimai: ["perfect", "great", "good", "miss"], - jubeat: ["perfect", "great", "good", "bad", "miss"], - chunithm: ["jcrit", "justice", "attack", "miss"], - gitadora: ["perfect", "great", "good", "ok", "miss"], - usc: ["critical", "near", "miss"], -}; -exports.gameColours = { - iidx: "#E7BDB3", - museca: "#C9A4A0", - maimai: "#AE8094", - sdvx: "#D6B7B1", - ddr: "#CC5079", - gitadora: "#CA9CA9", - // gfdm: "#DA836E", - jubeat: "#129A7D", - popn: "#F39CA4", - bms: "#B5DCCD", - chunithm: "#AE8094", - usc: "#D6B7B1", // TODO -}; -exports.gameRelevantScoreBucket = { - iidx: "lamp", - museca: "grade", - maimai: "grade", - sdvx: "grade", - ddr: "lamp", - gitadora: "grade", - // gfdm: "grade", - jubeat: "grade", - popn: "grade", - bms: "lamp", - chunithm: "grade", - usc: "grade", -}; -// human readable stuff for games -exports.gameHuman = { - iidx: "beatmania IIDX", - museca: "MÚSECA", - maimai: "maimai", - sdvx: "SOUND VOLTEX", - ddr: "DDR", - gitadora: "GITADORA", - jubeat: "jubeat", - popn: "pop'n music", - bms: "BMS", - chunithm: "CHUNITHM", - usc: "unnamed sdvx clone", -}; -// human readable stuff for versions -exports.versionHuman = { - iidx: { - 0: "1st Style", - 1: "substream", - 2: "2nd Style", - 3: "3rd Style", - 4: "4th Style", - 5: "5th Style", - 6: "6th Style", - 7: "7th Style", - 8: "8th Style", - 9: "9th Style", - 10: "10th Style", - 11: "IIDX RED", - 12: "HAPPY SKY", - 13: "DISTORTED", - 14: "GOLD", - 15: "DJ TROOPERS", - 16: "EMPRESS", - 17: "SIRIUS", - 18: "Resort Anthem", - 19: "Lincle", - 20: "tricoro", - 21: "SPADA", - 22: "PENDUAL", - 23: "copula", - 24: "SINOBUZ", - 25: "CANNON BALLERS", - 26: "ROOTAGE", - 27: "HEROIC VERSE", - 28: "BISTROVER", - }, - museca: { - 1: "", - 1.5: "1+1/2", - }, - maimai: { - maimai: "", - maimaiplus: "PLUS", - green: "GReeN", - greenplus: "GReeN PLUS", - orange: "ORANGE", - orangeplus: "ORANGE PLUS", - pink: "PiNK", - pinkplus: "PiNK PLUS", - murasaki: "MURASAKi", - murasakiplus: "MURASAKi PLUS", - milk: "MiLK", - milkplus: "MiLK PLUS", - finale: "FiNALE", - }, - jubeat: { - jubeat: "", - ripples: "ripples", - knit: "knit", - copious: "copious", - saucer: "saucer", - saucerfulfill: "saucer fulfill", - prop: "prop", - qubell: "Qubell", - clan: "clan", - festo: "festo", - }, - popn: { - 1: "1", - 2: "2", - 3: "3", - 4: "4", - 5: "5", - 6: "6", - 7: "7", - 8: "8", - 9: "9", - 10: "10", - 11: "11", - 12: "12 Iroha", - 13: "13 CARNIVAL", - 14: "14 FEVER!", - 15: "15 ADVENTURE", - 16: "16 PARTY♪", - 17: "17 THE MOVIE", - 18: "18 Sengoku", - 19: "19 TUNE STREET", - 20: "20 fantasia", - park: "Sunny Park", - lapis: "Lapistoria", - eclale: "éclale", - usaneko: "Usaneko", - peace: "peace", - }, - sdvx: { - booth: "BOOTH", - inf: "II -infinite infection-", - gw: "III GRAVITY WARS", - heaven: "IV HEAVENLY HAVEN", - vivid: "V VIVID WAVE", - }, - ddr: { - 1: "1st Mix", - 2: "2nd Mix", - 3: "3rd Mix", - 4: "4th Mix", - 5: "5th Mix", - max: "MAX", - max2: "MAX2", - extreme: "EXTREME", - snova: "SuperNOVA", - snova2: "SuperNOVA 2", - x: "X", - x2: "X2", - x3: "X3 vs. 2nd Mix", - 2013: "(2013)", - 2014: "(2014)", - a: "Ace", - a20: "A20", - }, - chunithm: { - chuni: "", - chuniplus: "PLUS", - air: "AIR", - airplus: "AIR PLUS", - star: "STAR", - starplus: "STAR PLUS", - amazon: "AMAZON", - amazonplus: "AMAZON PLUS", - crystal: "CRYSTAL", - crystalplus: "CRYSTAL PLUS", - }, - gitadora: { - xg: "XG", - xg2: "XG2", - xg3: "XG3", - gitadora: "", - overdrive: "OverDrive", - triboost: "Tri-Boost", - triboostplus: "Tri-Boost (Re:EVOLVE)", - matixx: "Matixx", - exchain: "EXCHAIN", - nextage: "NEX+AGE", - }, - bms: { - 0: "BMS", - }, - usc: { - 0: "USC", - }, -}; -// release orders of the games. -exports.gameOrders = { - iidx: [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "23", - "24", - "25", - "26", - "27", - "28", - ], - museca: ["1", "1.5"], - maimai: [ - "maimai", - "maimaiplus", - "green", - "greenplus", - "orange", - "orangeplus", - "pink", - "pinkplus", - "murasaki", - "murasakiplus", - "milk", - "milkplus", - "finale", - ], - jubeat: [ - "jubeat", - "ripples", - "knit", - "copious", - "saucer", - "saucerfulfill", - "prop", - "qubell", - "clan", - "festo", - ], - popn: [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "park", - "lapis", - "eclale", - "usaneko", - "peace", - ], - sdvx: ["booth", "inf", "gw", "heaven", "vivid"], - ddr: [ - "1", - "2", - "3", - "4", - "5", - "max", - "max2", - "extreme", - "snova", - "snova2", - "x", - "x2", - "x3", - "2013", - "2014", - "a", - "a20", - ], - bms: ["0"], - chunithm: [ - "chuni", - "chuniplus", - "air", - "airplus", - "star", - "starplus", - "amazon", - "amazonplus", - "crystal", - "crystalplus", - ], - gitadora: [ - "gf1", - "gf2dm1", - "gf3dm2", - "gf4dm3", - "gf5dm4", - "gf6dm5", - "gf7dm6", - "gf8dm7", - "gf8dm7plus", - "gf9dm8", - "gf10dm9", - "gf11dm10", - "v", - "v2", - "v3", - "v4", - "v5", - "v6", - "v7", - "v8", - "xg", - "xg2", - "xg3", - "gitadora", - "overdrive", - "triboost", - "triboostplus", - "matixx", - "exchain", - "nextage", - ], - usc: ["0"], -}; -exports.defaultPlaytype = { - iidx: "SP", - museca: "Single", - maimai: "Single", - jubeat: "Single", - popn: "9B", - sdvx: "Single", - ddr: "SP", - bms: "7K", - chunithm: "Single", - gitadora: "Dora", - usc: "Single", -}; -exports.defaultDifficulty = { - iidx: "ANOTHER", - museca: "Red", - maimai: "Master", - jubeat: "EXT", - popn: "EX", - sdvx: "EXH", - ddr: "EXPERT", - bms: "CUSTOM", - chunithm: "MASTER", - gitadora: "MASTER", - usc: "EXH", -}; -function humaniseGame(game, pt) { - if (!pt) { - return exports.gameHuman[game]; - } - if (exports.validPlaytypes[game].length === 1) { - return exports.gameHuman[game]; - } - return `${exports.gameHuman[game]} (${pt})`; -} -exports.humaniseGame = humaniseGame; -// todo, maybe -// export const difficultyColours = { -// iidx: { -// "BEGINNER": , -// "NORMAL": , -// "HYPER": , -// "ANOTHER": , -// "LEGGENDARIA": , -// } -// } -exports.validPlaytypes = { - iidx: ["SP", "DP"], - popn: ["9B"], - sdvx: ["Single"], - ddr: ["SP", "DP"], - maimai: ["Single"], - jubeat: ["Single"], - museca: ["Single"], - bms: ["7K", "14K"], - chunithm: ["Single"], - gitadora: ["Gita", "Dora"], - usc: ["Single"], -}; -// correct order for grades -exports.grades = { - iidx: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "MAX-", "MAX"], - bms: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "MAX-", "MAX"], - museca: ["没", "拙", "凡", "佳", "良", "優", "秀", "傑", "傑G"], - maimai: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "S", "S+", "SS", "SS+", "SSS", "SSS+"], - jubeat: ["E", "D", "C", "B", "A", "S", "SS", "SSS", "EXC"], - popn: ["E", "D", "C", "B", "A", "AA", "AAA", "S"], - sdvx: ["D", "C", "B", "A", "A+", "AA", "AA+", "AAA", "AAA+", "S"], - ddr: [ - "D", - "D+", - "C-", - "C", - "C+", - "B-", - "B", - "B+", - "A-", - "A", - "A+", - "AA-", - "AA", - "AA+", - "AAA", - "MAX", - ], - chunithm: ["D", "C", "B", "BB", "BBB", "A", "AA", "AAA", "S", "SS", "SSS"], - gitadora: ["C", "B", "A", "S", "SS", "MAX"], - usc: ["D", "C", "B", "A", "A+", "AA", "AA+", "AAA", "AAA+", "S"], -}; -exports.gradeBoundaries = { - iidx: [0, 22.22, 33.33, 44.44, 55.55, 66.66, 77.77, 88.88, 94.44, 100.0], - bms: [0, 22.22, 33.33, 44.44, 55.55, 66.66, 77.77, 88.88, 94.44, 100.0], - museca: [0, 60, 70, 80, 85, 90, 95, 97.5, 100], - // maimai is fidgety with grades - SSS+ is only possible if you get above 100%, but what the limit is depends on the chart - maimai: [0, 10, 20, 40, 60, 80, 90, 94, 97, 98, 99, 99.5, 100, 9999], - jubeat: [0, 50, 70, 80, 85, 90, 95, 98, 100], - popn: [0, 50, 62, 72, 82, 90, 95, 98], - // popn is fidgety with grades - A is the limit of grades if you fail. this NEEDS TO BE HANDLED in importhelpers. - 18/09/2020 isnt done yet lol - sdvx: [0, 70, 80, 87, 90, 93, 95, 97, 98, 99], - ddr: [0, 55, 59, 60, 65, 69, 70, 75, 79, 80, 85, 89, 90, 95, 99, 100], - chunithm: [0, 50, 60, 70, 80, 90, 92.5, 95.0, 97.5, 100, 107.5, 101], - gitadora: [0, 63, 73, 80, 95, 100], - usc: [0, 70, 80, 87, 90, 93, 95, 97, 98, 99], -}; -// these are to resolve some GARBAGE in chart.js -exports.boundaryHCF = { - iidx: 5.555, - bms: 5.555, - museca: 2.5, - maimai: 0.5, - jubeat: 1, - popn: 1, - sdvx: 1, - ddr: 1, - chunithm: 0.5, - gitadora: 1, - usc: 1, -}; -exports.expChartScale = { - iidx: 1, - bms: 1, - museca: 5, - maimai: 8, - jubeat: 5, - popn: 1, - sdvx: 7, - usc: 7, - ddr: 6, - chunithm: 4, - gitadora: 3, -}; -// valid lamps for a game, and also in order. -exports.lamps = { - iidx: [ - "NO PLAY", - "FAILED", - "ASSIST CLEAR", - "EASY CLEAR", - "CLEAR", - "HARD CLEAR", - "EX HARD CLEAR", - "FULL COMBO", - ], - bms: [ - "NO PLAY", - "FAILED", - "ASSIST CLEAR", - "EASY CLEAR", - "CLEAR", - "HARD CLEAR", - "EX HARD CLEAR", - "FULL COMBO", - ], - museca: ["FAILED", "CLEAR", "CONNECT ALL", "PERFECT CONNECT ALL"], - maimai: ["FAILED", "CLEAR", "FULL COMBO", "ALL PERFECT", "ALL PERFECT+"], - jubeat: ["FAILED", "CLEAR", "FULL COMBO", "EXCELLENT"], - popn: ["FAILED", "CLEAR", "FULL COMBO", "PERFECT"], - sdvx: ["FAILED", "CLEAR", "EXCESSIVE CLEAR", "ULTIMATE CHAIN", "PERFECT ULTIMATE CHAIN"], - ddr: [ - "FAILED", - "CLEAR", - "LIFE4", - "FULL COMBO", - "GREAT FULL COMBO", - "PERFECT FULL COMBO", - "MARVELOUS FULL COMBO", - ], - chunithm: ["FAILED", "CLEAR", "FULL COMBO", "ALL JUSTICE", "ALL JUSTICE CRITICAL"], - gitadora: ["FAILED", "CLEAR", "FULL COMBO", "EXCELLENT"], - usc: ["FAILED", "CLEAR", "EXCESSIVE CLEAR", "ULTIMATE CHAIN", "PERFECT ULTIMATE CHAIN"], -}; -// first lamp that is considered a "true clear" by the game. -// laugh now, but who'll be laughing when some nerds at sega come up with a brand new -// minimal clear grade called "SOFTER EASIER ASSIST CLEAR EPIC X3" -exports.clearLamp = { - iidx: "CLEAR", - bms: "EASY CLEAR", - museca: "CLEAR", - maimai: "CLEAR", - jubeat: "CLEAR", - popn: "CLEAR", - sdvx: "CLEAR", - ddr: "CLEAR", - chunithm: "CLEAR", - gitadora: "CLEAR", - usc: "CLEAR", -}; -// minimum grade considered by the game (or kamaitachi) to be a clearing grade. -exports.clearGrade = { - iidx: "A", - bms: "A", - museca: "良", - maimai: "A", - jubeat: "A", - popn: "A", - sdvx: "AA", - ddr: "A", - chunithm: "A", - gitadora: "A", - usc: "A", -}; -exports.judgementWindows = { - iidx: { - SP: [ - { name: "PGREAT", msBorder: 16.667, value: 2 }, - { name: "GREAT", msBorder: 33.333, value: 1 }, - { name: "GOOD", msBorder: 116.667, value: 0 }, - ], - DP: [ - { name: "PGREAT", msBorder: 16.667, value: 2 }, - { name: "GREAT", msBorder: 33.333, value: 1 }, - { name: "GOOD", msBorder: 116.667, value: 0 }, - ], - }, - ddr: { - SP: [ - { name: "MARVELOUS", msBorder: 15, value: 3 }, - { name: "PERFECT", msBorder: 30, value: 2 }, - { name: "GREAT", msBorder: 59, value: 1 }, - { name: "GOOD", msBorder: 89, value: 0 }, - { name: "BAD", msBorder: 119, value: 0 }, - ], - DP: [ - { name: "MARVELOUS", msBorder: 15, value: 3 }, - { name: "PERFECT", msBorder: 30, value: 2 }, - { name: "GREAT", msBorder: 59, value: 1 }, - { name: "GOOD", msBorder: 89, value: 0 }, - { name: "BAD", msBorder: 119, value: 0 }, - ], - }, - museca: { - Single: [ - { name: "CRITICAL", msBorder: 33.333, value: 2 }, - { name: "NEAR", msBorder: 66.667, value: 1 }, - ], - }, - gitadora: { - Gita: [ - { name: "PERFECT", msBorder: 33, value: 1 }, - { name: "GREAT", msBorder: 57, value: 0.5 }, - { name: "GOOD", msBorder: 81, value: 0.2 }, - { name: "OK", msBorder: 116.667 /* not really, but yknow */, value: 0 }, - ], - Dora: [ - { name: "PERFECT", msBorder: 27, value: 1 }, - { name: "GREAT", msBorder: 48, value: 0.5 }, - { name: "GOOD", msBorder: 72, value: 0.2 }, - { name: "OK", msBorder: 116.667 /* not really, but yknow */, value: 0 }, - ], - }, -}; -exports.COLOUR_SET = { - gray: "rgba(105, 105, 105, 1)", - maroon: "rgba(85, 17, 17, 1)", - red: "rgba(170, 85, 85, 1)", - paleGreen: "rgba(142,174,79, 1)", - paleBlue: "rgba(92, 97, 153, 1)", - green: "rgba(50, 205, 50, 1)", - blue: "rgba(70, 130, 180, 1)", - gold: "rgba(255, 215, 0, 1)", - vibrantYellow: "rgba(245, 229, 27, 1)", - teal: "rgba(127, 255, 212, 1)", - white: "rgba(192, 192, 192, 1)", - purple: "rgba(153, 50, 204, 1)", - vibrantPurple: "rgba(161, 23, 230, 1)", - paleOrange: "rgba(235, 151, 78, 1)", - orange: "rgba(248, 148, 6, 1)", - vibrantOrange: "rgba(248, 175, 6, 1)", - vibrantBlue: "rgba(43, 149, 237, 1)", - vibrantGreen: "rgba(26, 232, 26, 1)", -}; -exports.gradeColours = { - museca: { - outline: { - 没: exports.COLOUR_SET.gray, - 拙: exports.COLOUR_SET.maroon, - 凡: exports.COLOUR_SET.red, - 佳: exports.COLOUR_SET.paleGreen, - 良: exports.COLOUR_SET.paleBlue, - 優: exports.COLOUR_SET.green, - 秀: exports.COLOUR_SET.blue, - 傑: exports.COLOUR_SET.teal, - 傑G: exports.COLOUR_SET.gold, - }, - }, - gitadora: { - outline: { - MAX: exports.COLOUR_SET.white, - SS: exports.COLOUR_SET.gold, - S: exports.COLOUR_SET.orange, - A: exports.COLOUR_SET.green, - B: exports.COLOUR_SET.blue, - C: exports.COLOUR_SET.purple, - }, - }, - ddr: { - outline: { - D: exports.COLOUR_SET.gray, - "D+": exports.COLOUR_SET.maroon, - "C-": exports.COLOUR_SET.red, - C: exports.COLOUR_SET.purple, - "C+": exports.COLOUR_SET.vibrantPurple, - "B-": exports.COLOUR_SET.paleBlue, - B: exports.COLOUR_SET.blue, - "B+": exports.COLOUR_SET.vibrantBlue, - "A-": exports.COLOUR_SET.paleGreen, - A: exports.COLOUR_SET.green, - "A+": exports.COLOUR_SET.vibrantGreen, - "AA-": exports.COLOUR_SET.paleOrange, - AA: exports.COLOUR_SET.orange, - "AA+": exports.COLOUR_SET.vibrantOrange, - AAA: exports.COLOUR_SET.gold, - }, - }, - jubeat: { - outline: { - E: exports.COLOUR_SET.gray, - D: exports.COLOUR_SET.maroon, - C: exports.COLOUR_SET.purple, - B: exports.COLOUR_SET.paleBlue, - A: exports.COLOUR_SET.paleGreen, - S: exports.COLOUR_SET.blue, - SS: exports.COLOUR_SET.gold, - SSS: exports.COLOUR_SET.teal, - EXC: exports.COLOUR_SET.white, - }, - }, - maimai: { - outline: { - F: exports.COLOUR_SET.gray, - E: exports.COLOUR_SET.red, - D: exports.COLOUR_SET.maroon, - C: exports.COLOUR_SET.purple, - B: exports.COLOUR_SET.paleGreen, - A: exports.COLOUR_SET.green, - AA: exports.COLOUR_SET.paleBlue, - AAA: exports.COLOUR_SET.blue, - S: exports.COLOUR_SET.gold, - "S+": exports.COLOUR_SET.vibrantYellow, - SS: exports.COLOUR_SET.paleOrange, - "SS+": exports.COLOUR_SET.orange, - SSS: exports.COLOUR_SET.teal, - "SSS+": exports.COLOUR_SET.white, - }, - }, - popn: { - outline: { - F: exports.COLOUR_SET.gray, - E: exports.COLOUR_SET.red, - D: exports.COLOUR_SET.maroon, - C: exports.COLOUR_SET.purple, - B: exports.COLOUR_SET.paleBlue, - A: exports.COLOUR_SET.green, - AA: exports.COLOUR_SET.paleOrange, - AAA: exports.COLOUR_SET.gold, - S: exports.COLOUR_SET.teal, - }, - }, - iidx: { - outline: { - F: exports.COLOUR_SET.gray, - E: exports.COLOUR_SET.red, - D: exports.COLOUR_SET.maroon, - C: exports.COLOUR_SET.purple, - B: exports.COLOUR_SET.paleBlue, - A: exports.COLOUR_SET.green, - AA: exports.COLOUR_SET.blue, - AAA: exports.COLOUR_SET.gold, - "MAX-": exports.COLOUR_SET.teal, - MAX: exports.COLOUR_SET.white, - }, - }, - bms: { - outline: { - F: exports.COLOUR_SET.gray, - E: exports.COLOUR_SET.red, - D: exports.COLOUR_SET.maroon, - C: exports.COLOUR_SET.purple, - B: exports.COLOUR_SET.paleBlue, - A: exports.COLOUR_SET.green, - AA: exports.COLOUR_SET.blue, - AAA: exports.COLOUR_SET.gold, - "MAX-": exports.COLOUR_SET.teal, - MAX: exports.COLOUR_SET.white, - }, - }, - sdvx: { - outline: { - D: exports.COLOUR_SET.gray, - C: exports.COLOUR_SET.red, - B: exports.COLOUR_SET.maroon, - A: exports.COLOUR_SET.paleBlue, - "A+": exports.COLOUR_SET.blue, - AA: exports.COLOUR_SET.paleGreen, - "AA+": exports.COLOUR_SET.green, - AAA: exports.COLOUR_SET.gold, - "AAA+": exports.COLOUR_SET.vibrantYellow, - S: exports.COLOUR_SET.teal, - }, - }, - usc: { - outline: { - D: exports.COLOUR_SET.gray, - C: exports.COLOUR_SET.red, - B: exports.COLOUR_SET.maroon, - A: exports.COLOUR_SET.paleBlue, - "A+": exports.COLOUR_SET.blue, - AA: exports.COLOUR_SET.paleGreen, - "AA+": exports.COLOUR_SET.green, - AAA: exports.COLOUR_SET.gold, - "AAA+": exports.COLOUR_SET.vibrantYellow, - S: exports.COLOUR_SET.teal, - }, - }, - chunithm: { - outline: { - D: exports.COLOUR_SET.red, - C: exports.COLOUR_SET.purple, - B: exports.COLOUR_SET.paleBlue, - BB: exports.COLOUR_SET.blue, - BBB: exports.COLOUR_SET.vibrantBlue, - A: exports.COLOUR_SET.paleGreen, - AA: exports.COLOUR_SET.green, - AAA: exports.COLOUR_SET.vibrantGreen, - S: exports.COLOUR_SET.vibrantOrange, - SS: exports.COLOUR_SET.vibrantYellow, - SSS: exports.COLOUR_SET.teal, - }, - }, -}; -exports.lampColours = { - gitadora: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.blue, - "FULL COMBO": exports.COLOUR_SET.teal, - EXCELLENT: exports.COLOUR_SET.gold, - }, - }, - ddr: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.paleGreen, - LIFE4: exports.COLOUR_SET.orange, - "FULL COMBO": exports.COLOUR_SET.paleBlue, - "GREAT FULL COMBO": exports.COLOUR_SET.green, - "PERFECT FULL COMBO": exports.COLOUR_SET.gold, - "MARVELOUS FULL COMBO": exports.COLOUR_SET.teal, - }, - }, - iidx: { - outline: { - "NO PLAY": exports.COLOUR_SET.gray, - FAILED: exports.COLOUR_SET.red, - "ASSIST CLEAR": exports.COLOUR_SET.purple, - "EASY CLEAR": exports.COLOUR_SET.green, - CLEAR: exports.COLOUR_SET.blue, - "HARD CLEAR": exports.COLOUR_SET.orange, - "EX HARD CLEAR": exports.COLOUR_SET.gold, - "FULL COMBO": exports.COLOUR_SET.teal, - }, - }, - bms: { - outline: { - "NO PLAY": exports.COLOUR_SET.gray, - FAILED: exports.COLOUR_SET.red, - "ASSIST CLEAR": exports.COLOUR_SET.purple, - "EASY CLEAR": exports.COLOUR_SET.green, - CLEAR: exports.COLOUR_SET.blue, - "HARD CLEAR": exports.COLOUR_SET.orange, - "EX HARD CLEAR": exports.COLOUR_SET.gold, - "FULL COMBO": exports.COLOUR_SET.teal, - }, - }, - museca: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.green, - "CONNECT ALL": exports.COLOUR_SET.teal, - "PERFECT CONNECT ALL": exports.COLOUR_SET.gold, - }, - }, - sdvx: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.green, - "EXCESSIVE CLEAR": exports.COLOUR_SET.orange, - "ULTIMATE CHAIN": exports.COLOUR_SET.teal, - "PERFECT ULTIMATE CHAIN": exports.COLOUR_SET.gold, - }, - }, - usc: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.green, - "EXCESSIVE CLEAR": exports.COLOUR_SET.orange, - "ULTIMATE CHAIN": exports.COLOUR_SET.teal, - "PERFECT ULTIMATE CHAIN": exports.COLOUR_SET.gold, - }, - }, - popn: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.green, - "FULL COMBO": exports.COLOUR_SET.teal, - PERFECT: exports.COLOUR_SET.gold, - }, - }, - maimai: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.green, - "FULL COMBO": exports.COLOUR_SET.blue, - "ALL PERFECT": exports.COLOUR_SET.gold, - "ALL PERFECT+": exports.COLOUR_SET.teal, - }, - }, - jubeat: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.paleBlue, - "FULL COMBO": exports.COLOUR_SET.teal, - EXCELLENT: exports.COLOUR_SET.gold, - }, - }, - chunithm: { - outline: { - FAILED: exports.COLOUR_SET.red, - CLEAR: exports.COLOUR_SET.paleGreen, - "FULL COMBO": exports.COLOUR_SET.paleBlue, - "ALL JUSTICE": exports.COLOUR_SET.gold, - "ALL JUSTICE CRITICAL": exports.COLOUR_SET.white, - }, - }, -}; -// ok -// shoutouts to stack overflow -// https://stackoverflow.com/questions/41993515/access-object-key-using-variable-in-typescript -function typedKeys(o) { - return Object.keys(o); -} -for (const colourConfig of [exports.lampColours, exports.gradeColours]) { - for (const game of typedKeys(colourConfig)) { - if (colourConfig.hasOwnProperty(game)) { - colourConfig[game].fill = {}; - for (const key in colourConfig[game].outline) { - if (colourConfig[game].outline.hasOwnProperty(key)) { - const element = colourConfig[game].outline[key]; - if (!element) { - continue; - } - let fadedEl = element.split(","); - fadedEl[fadedEl.length - 1] = "0.2)"; - colourConfig[game].fill[key] = fadedEl.join(","); - } - } - } - } -} -exports.judgeColours = { - iidx: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - BAD: "rgba(165, 38, 211, 0.2)", - GOOD: "rgba(38, 211, 78, 0.2)", - GREAT: "rgba(241, 245, 24, 0.2)", - PGREAT: "rgba(158, 248, 255, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - BAD: "rgba(165, 38, 211, 1)", - GOOD: "rgba(38, 211, 78, 1)", - GREAT: "rgba(241, 245, 24, 1)", - PGREAT: "rgba(158, 248, 255, 1)", - }, - }, - bms: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - BAD: "rgba(165, 38, 211, 0.2)", - GOOD: "rgba(38, 211, 78, 0.2)", - GREAT: "rgba(241, 245, 24, 0.2)", - PGREAT: "rgba(158, 248, 255, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - BAD: "rgba(165, 38, 211, 1)", - GOOD: "rgba(38, 211, 78, 1)", - GREAT: "rgba(241, 245, 24, 1)", - PGREAT: "rgba(158, 248, 255, 1)", - }, - }, - ddr: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - BOO: "rgba(165, 38, 211, 0.2)", - GOOD: "rgba(38, 211, 78, 0.2)", - GREAT: exports.COLOUR_SET.green, - PERFECT: "rgba(158, 248, 255, 0.2)", - MARVELOUS: "rgba(241, 245, 24, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - BOO: "rgba(165, 38, 211, 1)", - GOOD: "rgba(38, 211, 78, 1)", - GREAT: ChangeAlpha(exports.COLOUR_SET.green, "1"), - PERFECT: "rgba(158, 248, 255, 1)", - MARVELOUS: "rgba(241, 245, 24, 1)", - }, - }, - museca: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - NEAR: "rgba(20, 210, 223, 0.2)", - CRITICAL: "rgba(241, 245, 24, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - NEAR: "rgba(20, 210, 223, 1)", - CRITICAL: "rgba(241, 245, 24, 1)", - }, - }, - sdvx: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - NEAR: "rgba(20, 210, 223, 0.2)", - CRITICAL: "rgba(241, 245, 24, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - NEAR: "rgba(20, 210, 223, 1)", - CRITICAL: "rgba(241, 245, 24, 1)", - }, - }, - usc: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - NEAR: "rgba(20, 210, 223, 0.2)", - CRITICAL: "rgba(241, 245, 24, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - NEAR: "rgba(20, 210, 223, 1)", - CRITICAL: "rgba(241, 245, 24, 1)", - }, - }, - popn: { - fill: { - BAD: "rgba(165, 38, 211, 0.2)", - GOOD: "rgba(239, 84, 81, 0.2)", - GREAT: "rgba(241, 245, 24, 0.2)", - PGREAT: "rgba(158, 248, 255, 0.2)", - }, - outline: { - BAD: "rgba(165, 38, 211, 1)", - GOOD: "rgba(239, 84, 81, 1)", - GREAT: "rgba(241, 245, 24, 1)", - PGREAT: "rgba(158, 248, 255, 1)", - }, - }, - maimai: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - GOOD: "rgba(38, 211, 78, 0.2)", - GREAT: "rgba(228, 62, 225, 0.2)", - PERFECT: "rgba(241, 245, 24, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - GOOD: "rgba(38, 211, 78, 1)", - GREAT: "rgba(228, 62, 225,1)", - PERFECT: "rgba(241, 245, 24, 1)", - }, - }, - jubeat: { - fill: { - MISS: "rgba(211, 38, 38, 0.2)", - POOR: "rgba(165, 38, 211, 0.2)", - GOOD: "rgba(39, 190, 117,0.2)", - GREAT: "rgba(38, 211, 78, 0.2)", - PERFECT: "rgba(241, 245, 24, 0.2)", - }, - outline: { - MISS: "rgba(211, 38, 38, 1)", - POOR: "rgba(165, 38, 211, 1)", - GOOD: "rgba(39, 190, 117, 1)", - GREAT: "rgba(38, 211, 78, 1)", - PERFECT: "rgba(241, 245, 24, 1)", - }, - }, - chunithm: { - outline: { - MISS: exports.COLOUR_SET.gray, - ATTACK: exports.COLOUR_SET.green, - JUSTICE: exports.COLOUR_SET.orange, - JCRIT: exports.COLOUR_SET.gold, - }, - fill: { - MISS: ChangeAlpha(exports.COLOUR_SET.gray, "1"), - ATTACK: ChangeAlpha(exports.COLOUR_SET.green, "1"), - JUSTICE: ChangeAlpha(exports.COLOUR_SET.orange, "1"), - JCRIT: ChangeAlpha(exports.COLOUR_SET.gold, "1"), - }, - }, - gitadora: { - outline: { - MISS: exports.COLOUR_SET.red, - OK: exports.COLOUR_SET.purple, - GOOD: exports.COLOUR_SET.blue, - GREAT: exports.COLOUR_SET.green, - PERFECT: exports.COLOUR_SET.gold, - }, - fill: { - MISS: ChangeAlpha(exports.COLOUR_SET.red, "1"), - OK: ChangeAlpha(exports.COLOUR_SET.purple, "1"), - GOOD: ChangeAlpha(exports.COLOUR_SET.blue, "1"), - GREAT: ChangeAlpha(exports.COLOUR_SET.green, "1"), - PERFECT: ChangeAlpha(exports.COLOUR_SET.gold, "1"), - }, - }, -}; -exports.gameChartIndicators = { - iidx: ["cn", "bss", "hcn", "hbss"], - popn: ["holds"], - ddr: ["shocks", "freezes"], - museca: [], - maimai: [], - jubeat: ["holds"], - sdvx: [], - usc: [], - bms: [], - chunithm: [], - gitadora: [], -}; -function GetGrade(game, percent) { - // THIS FOR LOOP IS ITERATING DOWNWARDS - // JUST INCASE YOU DON'T ACTUALLY READ IT PROPERLY - for (let i = exports.grades[game].length; i >= 0; i--) { - let gradeName = exports.grades[game][i]; - let gradeBound = exports.gradeBoundaries[game][i]; - if (percent >= gradeBound) { - return gradeName; - } - } - // if we get all this way they've got a negative score - // idk what to write in this case so ur gonna get null and throw an error in my logs - return null; -} -exports.ratingParameters = { - iidx: { - failHarshnessMultiplier: 0.3, - pivotPercent: 0.7777, - clearExpMultiplier: 1, - }, - bms: { - failHarshnessMultiplier: 0.5, - pivotPercent: 0.7777, - clearExpMultiplier: 0.75, - }, - museca: { - failHarshnessMultiplier: 1, - pivotPercent: 0.8, - clearExpMultiplier: 1, // no real reason - }, - popn: { - failHarshnessMultiplier: 1, - pivotPercent: 0.8, - clearExpMultiplier: 0.4, // no real reason - }, - maimai: { - failHarshnessMultiplier: 1, - pivotPercent: 0.8, - clearExpMultiplier: 1, - }, - jubeat: { - failHarshnessMultiplier: 0.9, - pivotPercent: 0.7, - clearExpMultiplier: 1, - }, - sdvx: { - failHarshnessMultiplier: 1, - pivotPercent: 0.92, - clearExpMultiplier: 1.45, // testing - }, - usc: { - failHarshnessMultiplier: 1, - pivotPercent: 0.92, - clearExpMultiplier: 1.45, // testing - }, - ddr: { - failHarshnessMultiplier: 0.9, - pivotPercent: 0.9, - clearExpMultiplier: 1, - }, - chunithm: { - failHarshnessMultiplier: 1, - pivotPercent: 0.975, - clearExpMultiplier: 1.1, - }, - gitadora: { - // GENERIC PARAMS. THIS IS **NOT** THE USED CALC. - failHarshnessMultiplier: 1, - pivotPercent: 0.8, - clearExpMultiplier: 1.1, - }, -}; -function ChangeAlpha(string, alpha) { - let spl = string.split(","); - spl[spl.length - 1] = `${alpha})`; - return spl.join(","); -} -function DirectScoreGradeDelta(game, score, percent, chart, delta) { - let grade = GetGrade(game, percent); - if (!grade) { - throw new Error(`Invalid grade created from ${game}, ${percent}`); - } - let scoreObj = { - scoreData: { - score, - grade, - }, - }; - return ScoreGradeDelta(game, scoreObj, chart, delta); -} -exports.DirectScoreGradeDelta = DirectScoreGradeDelta; -exports.supportsESD = { - iidx: true, - museca: false, - bms: false, - chunithm: false, - ddr: false, - gitadora: false, - jubeat: false, - maimai: false, - popn: false, - sdvx: false, - usc: false, -}; -function ScoreGradeDelta(game, score, chart, delta) { - let nextGrade = exports.grades[game][exports.grades[game].indexOf(score.scoreData.grade) + delta]; - if (nextGrade) { - let nextGradePercent = exports.gradeBoundaries[game][exports.grades[game].indexOf(nextGrade)]; - let nGScore = CalculateScore(game, nextGradePercent, chart); - if (nGScore) { - let delta = score.scoreData.score - nGScore; - let formattedString = `(${nextGrade})`; - if (Number.isInteger(delta)) { - formattedString += delta >= 0 ? `+${delta}` : `${delta}`; - } - else { - formattedString += delta >= 0 ? `+${delta.toFixed(2)}` : `${delta.toFixed(2)}`; - } - return { - grade: nextGrade, - delta: delta, - formattedString: formattedString, - }; - } - else { - return null; - } - } - else { - return null; - } -} -exports.ScoreGradeDelta = ScoreGradeDelta; -function AbsoluteScoreGradeDelta(game, score, percent, absDelta) { - let grade = exports.grades[game][absDelta]; - if (grade) { - let chart = null; - if (game === "iidx" || game === "bms") { - let reversedNC = Math.floor((score / percent) * 100) / 2; - chart = { - data: { - notecount: reversedNC, - }, - }; // heheh - } - let sc = CalculateScore(game, exports.gradeBoundaries[game][absDelta], chart); - if (sc) { - let delta = score - sc; - let formattedString = `(${grade})`; - formattedString += delta >= 0 ? `+${delta}` : `${delta}`; - return { - grade: grade, - delta: delta, - formattedString: formattedString, - }; - } - else { - return null; - } - } - else { - return null; - } -} -exports.AbsoluteScoreGradeDelta = AbsoluteScoreGradeDelta; -function CalculateScore(game, percent, chart) { - let score = percent; - if (game === "iidx" || game === "bms") { - score = chart.data.notecount * 2 * (percent / 100); - } - else if (game === "ddr" || game === "museca" || game === "jubeat" || game === "chunithm") { - score = 1000000 * (percent / 100); - } - else if (game === "popn") { - score = 100000 * (percent / 100); - } - else if (game === "sdvx" || game === "usc") { - score = 10000000 * (percent / 100); - } - if (score) { - return score; - } - return null; -} -exports.CalculateScore = CalculateScore; -function PercentToScore(percent, game, chartData) { - let eScore = 0; - if (game === "iidx" || game === "bms") { - eScore = percent * chartData.data.notecount * 2; - } - else if (game === "museca" || game === "jubeat") { - eScore = percent * 1000000; - } - else if (game === "popn") { - eScore = percent * 100000; - } - else if (game === "sdvx" || game === "usc") { - eScore = percent * 10000000; - } - else if (game === "ddr") { - // todo - } - else if (game === "chunithm") { - eScore = percent * 1000000; - } - else if (game === "gitadora") { - eScore = percent; - } - return eScore; -} -exports.PercentToScore = PercentToScore; -function FormatDifficulty(chart, game) { - if (exports.validPlaytypes[game].length > 1) { - return `${chart.playtype} ${chart.difficulty} ${chart.level}`; - } - return `${chart.difficulty}`; -} -exports.FormatDifficulty = FormatDifficulty; -exports.gamePercentMax = { - iidx: 100, - ddr: 100, - gitadora: 100, - popn: 100, - sdvx: 100, - museca: 100, - jubeat: 100, - bms: 100, - chunithm: 101, - maimai: 150, - maimaidx: 150, - usc: 100, -}; -exports.defaultRatingAlgorithm = { - iidx: { - SP: "ktRating", - DP: "ktRating", - }, - popn: { - "9B": "todo", - }, - sdvx: { - Single: "VF6", - }, - usc: { - Single: "VF6", - }, - ddr: { - SP: "ktRating", - DP: "ktRating", - }, - maimai: { - Single: "ktRating", - }, - jubeat: { - Single: "jubility", - }, - museca: { - Single: "ktRating", - }, - bms: { - "7K": "ktLampRating", - "14K": "ktLampRating", - }, - chunithm: { - Single: "naiveRating", - }, - gitadora: { - Gita: "skill", - Dora: "skill", - }, -}; -exports.defaultScoreRatingAlgorithm = { - iidx: { - SP: "ktRating", - DP: "ktRating", - }, - popn: { - "9B": "todo", - }, - sdvx: { - Single: "VF6", - }, - usc: { - Single: "VF6", - }, - ddr: { - SP: "ktRating", - DP: "ktRating", - }, - maimai: { - Single: "ktRating", - }, - jubeat: { - Single: "jubility", - }, - museca: { - Single: "ktRating", - }, - bms: { - "7K": "ktLampRating", - "14K": "ktLampRating", - }, - chunithm: { - Single: "rating", - }, - gitadora: { - Gita: "skill", - Dora: "skill", - }, -}; -exports.defaultSessionRatingAlgorithm = { - iidx: { - SP: "ktRating", - DP: "ktRating", - }, - popn: { - "9B": "todo", - }, - sdvx: { - Single: "ProfileVF6", - }, - usc: { - Single: "ProfileVF6", - }, - ddr: { - SP: "ktRating", - DP: "ktRating", - }, - maimai: { - Single: "ktRating", - }, - jubeat: { - Single: "jubility", - }, - museca: { - Single: "ktRating", - }, - bms: { - "7K": "ktLampRating", - "14K": "ktLampRating", - }, - chunithm: { - Single: "rating", - }, - gitadora: { - Gita: "skill", - Dora: "skill", - }, -}; -//# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/common/js/config.js.map b/common/js/config.js.map deleted file mode 100644 index 2213c5bf9..000000000 --- a/common/js/config.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/common/js/config/config.d.ts b/common/js/config/config.d.ts new file mode 100644 index 000000000..ba97ab7f5 --- /dev/null +++ b/common/js/config/config.d.ts @@ -0,0 +1,71 @@ +import { ESDJudgementFormat } from "../lib/esd"; +import { Playtypes, Game, Difficulties, IDStrings, ScoreCalculatedDataLookup, SessionCalculatedDataLookup, UGSRatingsLookup, Grades, Lamps } from "../types"; +export interface GameConfig { + internalName: string; + name: string; + defaultPlaytype: Playtypes[G]; + validPlaytypes: Playtypes[G][]; +} +interface BaseGamePTConfig { + idString: I; + percentMax: number; + defaultScoreRatingAlg: ScoreCalculatedDataLookup[I]; + defaultSessionRatingAlg: SessionCalculatedDataLookup[I]; + defaultProfileRatingAlg: UGSRatingsLookup[I]; + difficulties: Difficulties[I][]; + defaultDifficulty: Difficulties[I]; + difficultyColours: Record; + grades: Grades[I][]; + gradeColours: Record; + clearGrade: Grades[I]; + gradeBoundaries: number[]; + lamps: Lamps[I][]; + lampColours: Record; + clearLamp: Lamps[I]; + supportsESD: boolean; + judgementWindows?: ESDJudgementFormat[]; + defaultTable: string; + scoreBucket: "grade" | "lamp"; +} +interface GamePTConfigWithESD extends BaseGamePTConfig { + supportsESD: true; + judgementWindows: ESDJudgementFormat[]; +} +interface GamePTConfigWithoutESD extends BaseGamePTConfig { + supportsESD: false; +} +export declare type GamePTConfig = GamePTConfigWithESD | GamePTConfigWithoutESD; +/** + * A collection of CSS colours we want to work with. + */ +export declare const COLOUR_SET: { + gray: string; + maroon: string; + red: string; + paleGreen: string; + paleBlue: string; + green: string; + blue: string; + gold: string; + vibrantYellow: string; + teal: string; + white: string; + purple: string; + vibrantPurple: string; + paleOrange: string; + orange: string; + vibrantOrange: string; + vibrantBlue: string; + vibrantGreen: string; +}; +/** + * Returns the configuration for this game. + */ +export declare function GetGameConfig(game: G): GameConfig; +/** + * Returns the configuration for this Game + Playtype. + * Optionally, a generic parameter - IDStrings - can be passed + * to indicate what IDString this configuration is for. + */ +export declare function GetGamePTConfig(game: Game, playtype: Playtypes[Game]): GamePTConfig; +export {}; diff --git a/common/js/config/config.js b/common/js/config/config.js new file mode 100644 index 000000000..a9b4ed252 --- /dev/null +++ b/common/js/config/config.js @@ -0,0 +1,820 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GetGamePTConfig = exports.GetGameConfig = exports.COLOUR_SET = void 0; +/** + * A collection of CSS colours we want to work with. + */ +exports.COLOUR_SET = { + gray: "rgba(105, 105, 105, 1)", + maroon: "rgba(85, 17, 17, 1)", + red: "rgba(170, 85, 85, 1)", + paleGreen: "rgba(142,174,79, 1)", + paleBlue: "rgba(92, 97, 153, 1)", + green: "rgba(50, 205, 50, 1)", + blue: "rgba(70, 130, 180, 1)", + gold: "rgba(255, 215, 0, 1)", + vibrantYellow: "rgba(245, 229, 27, 1)", + teal: "rgba(127, 255, 212, 1)", + white: "rgba(192, 192, 192, 1)", + purple: "rgba(153, 50, 204, 1)", + vibrantPurple: "rgba(161, 23, 230, 1)", + paleOrange: "rgba(235, 151, 78, 1)", + orange: "rgba(248, 148, 6, 1)", + vibrantOrange: "rgba(248, 175, 6, 1)", + vibrantBlue: "rgba(43, 149, 237, 1)", + vibrantGreen: "rgba(26, 232, 26, 1)", +}; +const GAME_CONFIGS = { + iidx: { + defaultPlaytype: "SP", + name: "beatmania IIDX", + internalName: "iidx", + validPlaytypes: ["SP", "DP"], + }, + museca: { + defaultPlaytype: "Single", + name: "MÚSECA", + internalName: "museca", + validPlaytypes: ["Single"], + }, + chunithm: { + defaultPlaytype: "Single", + name: "CHUNITHM", + internalName: "chunithm", + validPlaytypes: ["Single"], + }, + ddr: { + defaultPlaytype: "SP", + name: "DDR", + internalName: "ddr", + validPlaytypes: ["SP", "DP"], + }, + bms: { + defaultPlaytype: "7K", + name: "BMS", + internalName: "bms", + validPlaytypes: ["7K", "14K"], + }, + gitadora: { + defaultPlaytype: "Dora", + name: "GITADORA", + internalName: "gitadora", + validPlaytypes: ["Gita", "Dora"], + }, + // jubeat: { + // defaultPlaytype: "Single", + // name: "jubeat", + // internalName: "jubeat", + // validPlaytypes: ["Single"], + // }, + maimai: { + defaultPlaytype: "Single", + name: "maimai", + internalName: "maimai", + validPlaytypes: ["Single"], + }, + // popn: { + // defaultPlaytype: "9B", + // name: "pop'n music", + // internalName: "popn", // note: KAI servers use pnm as a name. + // validPlaytypes: ["9B"], + // }, + sdvx: { + defaultPlaytype: "Single", + name: "SOUND VOLTEX", + internalName: "sdvx", + validPlaytypes: ["Single"], + }, + usc: { + defaultPlaytype: "Single", + name: "unnamed_sdvx_clone", + internalName: "usc", + validPlaytypes: ["Single"], + }, +}; +const GAME_PT_CONFIGS = { + "iidx:SP": { + idString: "iidx:SP", + percentMax: 100, + defaultScoreRatingAlg: "ktRating", + defaultSessionRatingAlg: "ktRating", + defaultProfileRatingAlg: "ktRating", + difficulties: ["BEGINNER", "NORMAL", "HYPER", "ANOTHER", "LEGGENDARIA"], + defaultDifficulty: "ANOTHER", + difficultyColours: { + BEGINNER: exports.COLOUR_SET.paleGreen, + NORMAL: exports.COLOUR_SET.blue, + HYPER: exports.COLOUR_SET.orange, + ANOTHER: exports.COLOUR_SET.red, + LEGGENDARIA: exports.COLOUR_SET.purple, + }, + grades: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "MAX-", "MAX"], + gradeColours: { + F: exports.COLOUR_SET.gray, + E: exports.COLOUR_SET.red, + D: exports.COLOUR_SET.maroon, + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.paleBlue, + A: exports.COLOUR_SET.green, + AA: exports.COLOUR_SET.blue, + AAA: exports.COLOUR_SET.gold, + "MAX-": exports.COLOUR_SET.teal, + MAX: exports.COLOUR_SET.white, + }, + clearGrade: "A", + gradeBoundaries: [0, 22.22, 33.33, 44.44, 55.55, 66.66, 77.77, 88.88, 94.44, 100.0], + lamps: [ + "NO PLAY", + "FAILED", + "ASSIST CLEAR", + "EASY CLEAR", + "CLEAR", + "HARD CLEAR", + "EX HARD CLEAR", + "FULL COMBO", + ], + lampColours: { + "NO PLAY": exports.COLOUR_SET.gray, + FAILED: exports.COLOUR_SET.red, + "ASSIST CLEAR": exports.COLOUR_SET.purple, + "EASY CLEAR": exports.COLOUR_SET.green, + CLEAR: exports.COLOUR_SET.blue, + "HARD CLEAR": exports.COLOUR_SET.orange, + "EX HARD CLEAR": exports.COLOUR_SET.gold, + "FULL COMBO": exports.COLOUR_SET.teal, + }, + clearLamp: "CLEAR", + supportsESD: true, + judgementWindows: [ + { name: "PGREAT", msBorder: 16.667, value: 2 }, + { name: "GREAT", msBorder: 33.333, value: 1 }, + { name: "GOOD", msBorder: 116.667, value: 0 }, + ], + defaultTable: "Levels (N-1)", + scoreBucket: "lamp", + }, + "iidx:DP": { + idString: "iidx:DP", + percentMax: 100, + defaultScoreRatingAlg: "ktRating", + defaultSessionRatingAlg: "ktRating", + defaultProfileRatingAlg: "ktRating", + difficulties: ["NORMAL", "HYPER", "ANOTHER", "LEGGENDARIA"], + defaultDifficulty: "ANOTHER", + difficultyColours: { + NORMAL: exports.COLOUR_SET.blue, + HYPER: exports.COLOUR_SET.orange, + ANOTHER: exports.COLOUR_SET.red, + LEGGENDARIA: exports.COLOUR_SET.purple, + }, + grades: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "MAX-", "MAX"], + gradeColours: { + F: exports.COLOUR_SET.gray, + E: exports.COLOUR_SET.red, + D: exports.COLOUR_SET.maroon, + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.paleBlue, + A: exports.COLOUR_SET.green, + AA: exports.COLOUR_SET.blue, + AAA: exports.COLOUR_SET.gold, + "MAX-": exports.COLOUR_SET.teal, + MAX: exports.COLOUR_SET.white, + }, + clearGrade: "A", + gradeBoundaries: [0, 22.22, 33.33, 44.44, 55.55, 66.66, 77.77, 88.88, 94.44, 100.0], + lamps: [ + "NO PLAY", + "FAILED", + "ASSIST CLEAR", + "EASY CLEAR", + "CLEAR", + "HARD CLEAR", + "EX HARD CLEAR", + "FULL COMBO", + ], + lampColours: { + "NO PLAY": exports.COLOUR_SET.gray, + FAILED: exports.COLOUR_SET.red, + "ASSIST CLEAR": exports.COLOUR_SET.purple, + "EASY CLEAR": exports.COLOUR_SET.green, + CLEAR: exports.COLOUR_SET.blue, + "HARD CLEAR": exports.COLOUR_SET.orange, + "EX HARD CLEAR": exports.COLOUR_SET.gold, + "FULL COMBO": exports.COLOUR_SET.teal, + }, + clearLamp: "CLEAR", + supportsESD: true, + judgementWindows: [ + { name: "PGREAT", msBorder: 16.667, value: 2 }, + { name: "GREAT", msBorder: 33.333, value: 1 }, + { name: "GOOD", msBorder: 116.667, value: 0 }, + ], + defaultTable: "Levels (N-1)", + scoreBucket: "lamp", + }, + "chunithm:Single": { + idString: "chunithm:Single", + percentMax: 101, + defaultScoreRatingAlg: "rating", + defaultSessionRatingAlg: "rating", + defaultProfileRatingAlg: "naiveRating", + difficulties: ["BASIC", "ADVANCED", "EXPERT", "MASTER", "WORLD'S END"], + defaultDifficulty: "MASTER", + difficultyColours: { + BASIC: exports.COLOUR_SET.blue, + ADVANCED: exports.COLOUR_SET.orange, + EXPERT: exports.COLOUR_SET.red, + MASTER: exports.COLOUR_SET.purple, + "WORLD'S END": exports.COLOUR_SET.vibrantYellow, + }, + grades: ["D", "C", "B", "BB", "BBB", "A", "AA", "AAA", "S", "SS", "SSS"], + gradeColours: { + D: exports.COLOUR_SET.red, + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.paleBlue, + BB: exports.COLOUR_SET.blue, + BBB: exports.COLOUR_SET.vibrantBlue, + A: exports.COLOUR_SET.paleGreen, + AA: exports.COLOUR_SET.green, + AAA: exports.COLOUR_SET.vibrantGreen, + S: exports.COLOUR_SET.vibrantOrange, + SS: exports.COLOUR_SET.vibrantYellow, + SSS: exports.COLOUR_SET.teal, + }, + clearGrade: "A", + gradeBoundaries: [0, 50, 60, 70, 80, 90, 92.5, 95.0, 97.5, 100, 107.5, 101], + lamps: ["FAILED", "CLEAR", "FULL COMBO", "ALL JUSTICE", "ALL JUSTICE CRITICAL"], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.paleGreen, + "FULL COMBO": exports.COLOUR_SET.paleBlue, + "ALL JUSTICE": exports.COLOUR_SET.gold, + "ALL JUSTICE CRITICAL": exports.COLOUR_SET.white, + }, + clearLamp: "CLEAR", + supportsESD: false, + defaultTable: "Levels (N-1)", + scoreBucket: "grade", + }, + "sdvx:Single": { + idString: "sdvx:Single", + percentMax: 100, + defaultScoreRatingAlg: "VF6", + defaultSessionRatingAlg: "ProfileVF6", + defaultProfileRatingAlg: "VF6", + difficulties: ["NOV", "ADV", "EXH", "INF", "GRV", "HVN", "VVD", "MXM"], + defaultDifficulty: "EXH", + difficultyColours: { + NOV: exports.COLOUR_SET.purple, + ADV: exports.COLOUR_SET.vibrantYellow, + EXH: exports.COLOUR_SET.red, + INF: "TODO", + GRV: exports.COLOUR_SET.orange, + HVN: exports.COLOUR_SET.teal, + VVD: "TODO", + MXM: exports.COLOUR_SET.white, + }, + grades: ["D", "C", "B", "A", "A+", "AA", "AA+", "AAA", "AAA+", "S"], + gradeColours: { + D: exports.COLOUR_SET.gray, + C: exports.COLOUR_SET.red, + B: exports.COLOUR_SET.maroon, + A: exports.COLOUR_SET.paleBlue, + "A+": exports.COLOUR_SET.blue, + AA: exports.COLOUR_SET.paleGreen, + "AA+": exports.COLOUR_SET.green, + AAA: exports.COLOUR_SET.gold, + "AAA+": exports.COLOUR_SET.vibrantYellow, + S: exports.COLOUR_SET.teal, + }, + clearGrade: "A", + gradeBoundaries: [0, 70, 80, 87, 90, 93, 95, 97, 98, 99], + lamps: ["FAILED", "CLEAR", "EXCESSIVE CLEAR", "ULTIMATE CHAIN", "PERFECT ULTIMATE CHAIN"], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.green, + "EXCESSIVE CLEAR": exports.COLOUR_SET.orange, + "ULTIMATE CHAIN": exports.COLOUR_SET.teal, + "PERFECT ULTIMATE CHAIN": exports.COLOUR_SET.gold, + }, + clearLamp: "CLEAR", + supportsESD: false, + defaultTable: "Levels (N-1)", + scoreBucket: "grade", + }, + "usc:Single": { + idString: "usc:Single", + percentMax: 100, + defaultScoreRatingAlg: "VF6", + defaultSessionRatingAlg: "ProfileVF6", + defaultProfileRatingAlg: "VF6", + difficulties: ["NOV", "ADV", "EXH", "INF"], + defaultDifficulty: "EXH", + difficultyColours: { + NOV: exports.COLOUR_SET.purple, + ADV: exports.COLOUR_SET.vibrantYellow, + EXH: exports.COLOUR_SET.red, + INF: "TODO", // colour set light pink + }, + grades: ["D", "C", "B", "A", "A+", "AA", "AA+", "AAA", "AAA+", "S"], + gradeColours: { + D: exports.COLOUR_SET.gray, + C: exports.COLOUR_SET.red, + B: exports.COLOUR_SET.maroon, + A: exports.COLOUR_SET.paleBlue, + "A+": exports.COLOUR_SET.blue, + AA: exports.COLOUR_SET.paleGreen, + "AA+": exports.COLOUR_SET.green, + AAA: exports.COLOUR_SET.gold, + "AAA+": exports.COLOUR_SET.vibrantYellow, + S: exports.COLOUR_SET.teal, + }, + clearGrade: "A", + gradeBoundaries: [0, 70, 80, 87, 90, 93, 95, 97, 98, 99], + lamps: ["FAILED", "CLEAR", "EXCESSIVE CLEAR", "ULTIMATE CHAIN", "PERFECT ULTIMATE CHAIN"], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.green, + "EXCESSIVE CLEAR": exports.COLOUR_SET.orange, + "ULTIMATE CHAIN": exports.COLOUR_SET.teal, + "PERFECT ULTIMATE CHAIN": exports.COLOUR_SET.gold, + }, + clearLamp: "CLEAR", + supportsESD: false, + defaultTable: "Levels (N-1)", + scoreBucket: "grade", + }, + "museca:Single": { + idString: "museca:Single", + percentMax: 100, + defaultScoreRatingAlg: "ktRating", + defaultSessionRatingAlg: "ktRating", + defaultProfileRatingAlg: "ktRating", + difficulties: ["Green", "Yellow", "Red"], + defaultDifficulty: "Red", + difficultyColours: { + Green: exports.COLOUR_SET.green, + Yellow: exports.COLOUR_SET.vibrantYellow, + Red: exports.COLOUR_SET.red, + }, + grades: ["没", "拙", "凡", "佳", "良", "優", "秀", "傑", "傑G"], + gradeColours: { + 没: exports.COLOUR_SET.gray, + 拙: exports.COLOUR_SET.maroon, + 凡: exports.COLOUR_SET.red, + 佳: exports.COLOUR_SET.paleGreen, + 良: exports.COLOUR_SET.paleBlue, + 優: exports.COLOUR_SET.green, + 秀: exports.COLOUR_SET.blue, + 傑: exports.COLOUR_SET.teal, + 傑G: exports.COLOUR_SET.gold, + }, + clearGrade: "良", + gradeBoundaries: [0, 60, 70, 80, 85, 90, 95, 97.5, 100], + lamps: ["FAILED", "CLEAR", "CONNECT ALL", "PERFECT CONNECT ALL"], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.green, + "CONNECT ALL": exports.COLOUR_SET.teal, + "PERFECT CONNECT ALL": exports.COLOUR_SET.gold, + }, + clearLamp: "CLEAR", + supportsESD: true, + judgementWindows: [ + { name: "CRITICAL", msBorder: 33.333, value: 2 }, + { name: "NEAR", msBorder: 66.667, value: 1 }, + ], + defaultTable: "Levels (N-1)", + scoreBucket: "grade", + }, + "bms:7K": { + idString: "bms:7K", + percentMax: 100, + defaultScoreRatingAlg: "ktLampRating", + defaultSessionRatingAlg: "ktLampRating", + defaultProfileRatingAlg: "ktLampRating", + difficulties: ["CHART"], + defaultDifficulty: "CHART", + difficultyColours: { + CHART: null, + }, + grades: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "MAX-", "MAX"], + gradeColours: { + F: exports.COLOUR_SET.gray, + E: exports.COLOUR_SET.red, + D: exports.COLOUR_SET.maroon, + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.paleBlue, + A: exports.COLOUR_SET.green, + AA: exports.COLOUR_SET.blue, + AAA: exports.COLOUR_SET.gold, + "MAX-": exports.COLOUR_SET.teal, + MAX: exports.COLOUR_SET.white, + }, + clearGrade: "A", + gradeBoundaries: [0, 22.22, 33.33, 44.44, 55.55, 66.66, 77.77, 88.88, 94.44, 100.0], + lamps: [ + "NO PLAY", + "FAILED", + "ASSIST CLEAR", + "EASY CLEAR", + "CLEAR", + "HARD CLEAR", + "EX HARD CLEAR", + "FULL COMBO", + ], + lampColours: { + "NO PLAY": exports.COLOUR_SET.gray, + FAILED: exports.COLOUR_SET.red, + "ASSIST CLEAR": exports.COLOUR_SET.purple, + "EASY CLEAR": exports.COLOUR_SET.green, + CLEAR: exports.COLOUR_SET.blue, + "HARD CLEAR": exports.COLOUR_SET.orange, + "EX HARD CLEAR": exports.COLOUR_SET.gold, + "FULL COMBO": exports.COLOUR_SET.teal, + }, + clearLamp: "CLEAR", + supportsESD: false, + defaultTable: "Insane", + scoreBucket: "lamp", + }, + "bms:14K": { + idString: "bms:14K", + percentMax: 100, + defaultScoreRatingAlg: "ktLampRating", + defaultSessionRatingAlg: "ktLampRating", + defaultProfileRatingAlg: "ktLampRating", + difficulties: ["CHART"], + defaultDifficulty: "CHART", + difficultyColours: { + CHART: null, + }, + grades: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "MAX-", "MAX"], + gradeColours: { + F: exports.COLOUR_SET.gray, + E: exports.COLOUR_SET.red, + D: exports.COLOUR_SET.maroon, + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.paleBlue, + A: exports.COLOUR_SET.green, + AA: exports.COLOUR_SET.blue, + AAA: exports.COLOUR_SET.gold, + "MAX-": exports.COLOUR_SET.teal, + MAX: exports.COLOUR_SET.white, + }, + clearGrade: "A", + gradeBoundaries: [0, 22.22, 33.33, 44.44, 55.55, 66.66, 77.77, 88.88, 94.44, 100.0], + lamps: [ + "NO PLAY", + "FAILED", + "ASSIST CLEAR", + "EASY CLEAR", + "CLEAR", + "HARD CLEAR", + "EX HARD CLEAR", + "FULL COMBO", + ], + lampColours: { + "NO PLAY": exports.COLOUR_SET.gray, + FAILED: exports.COLOUR_SET.red, + "ASSIST CLEAR": exports.COLOUR_SET.purple, + "EASY CLEAR": exports.COLOUR_SET.green, + CLEAR: exports.COLOUR_SET.blue, + "HARD CLEAR": exports.COLOUR_SET.orange, + "EX HARD CLEAR": exports.COLOUR_SET.gold, + "FULL COMBO": exports.COLOUR_SET.teal, + }, + clearLamp: "CLEAR", + supportsESD: false, + defaultTable: "Insane", + scoreBucket: "lamp", + }, + "ddr:SP": { + idString: "ddr:SP", + percentMax: 100, + defaultScoreRatingAlg: "ktRating", + defaultSessionRatingAlg: "ktRating", + defaultProfileRatingAlg: "ktRating", + difficulties: ["BEGINNER", "BASIC", "DIFFICULT", "EXPERT", "CHALLENGE"], + defaultDifficulty: "EXPERT", + difficultyColours: { + BEGINNER: exports.COLOUR_SET.paleBlue, + BASIC: exports.COLOUR_SET.orange, + DIFFICULT: exports.COLOUR_SET.red, + EXPERT: exports.COLOUR_SET.green, + CHALLENGE: exports.COLOUR_SET.purple, + }, + grades: [ + "D", + "D+", + "C-", + "C", + "C+", + "B-", + "B", + "B+", + "A-", + "A", + "A+", + "AA-", + "AA", + "AA+", + "AAA", + ], + gradeColours: { + D: exports.COLOUR_SET.gray, + "D+": exports.COLOUR_SET.maroon, + "C-": exports.COLOUR_SET.red, + C: exports.COLOUR_SET.purple, + "C+": exports.COLOUR_SET.vibrantPurple, + "B-": exports.COLOUR_SET.paleBlue, + B: exports.COLOUR_SET.blue, + "B+": exports.COLOUR_SET.vibrantBlue, + "A-": exports.COLOUR_SET.paleGreen, + A: exports.COLOUR_SET.green, + "A+": exports.COLOUR_SET.vibrantGreen, + "AA-": exports.COLOUR_SET.paleOrange, + AA: exports.COLOUR_SET.orange, + "AA+": exports.COLOUR_SET.vibrantOrange, + AAA: exports.COLOUR_SET.gold, + }, + clearGrade: "A", + gradeBoundaries: [0, 55, 59, 60, 65, 69, 70, 75, 79, 80, 85, 89, 90, 95, 99], + lamps: [ + "FAILED", + "CLEAR", + "LIFE4", + "FULL COMBO", + "GREAT FULL COMBO", + "PERFECT FULL COMBO", + "MARVELOUS FULL COMBO", + ], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.paleGreen, + LIFE4: exports.COLOUR_SET.orange, + "FULL COMBO": exports.COLOUR_SET.paleBlue, + "GREAT FULL COMBO": exports.COLOUR_SET.green, + "PERFECT FULL COMBO": exports.COLOUR_SET.gold, + "MARVELOUS FULL COMBO": exports.COLOUR_SET.teal, + }, + clearLamp: "CLEAR", + supportsESD: true, + judgementWindows: [ + { name: "MARVELOUS", msBorder: 15, value: 3 }, + { name: "PERFECT", msBorder: 30, value: 2 }, + { name: "GREAT", msBorder: 59, value: 1 }, + { name: "GOOD", msBorder: 89, value: 0 }, + { name: "BAD", msBorder: 119, value: 0 }, + ], + defaultTable: "Levels (N-1)", + scoreBucket: "lamp", + }, + "ddr:DP": { + idString: "ddr:DP", + percentMax: 100, + defaultScoreRatingAlg: "ktRating", + defaultSessionRatingAlg: "ktRating", + defaultProfileRatingAlg: "ktRating", + difficulties: ["BASIC", "DIFFICULT", "EXPERT", "CHALLENGE"], + defaultDifficulty: "EXPERT", + difficultyColours: { + BASIC: exports.COLOUR_SET.orange, + DIFFICULT: exports.COLOUR_SET.red, + EXPERT: exports.COLOUR_SET.green, + CHALLENGE: exports.COLOUR_SET.purple, + }, + grades: [ + "D", + "D+", + "C-", + "C", + "C+", + "B-", + "B", + "B+", + "A-", + "A", + "A+", + "AA-", + "AA", + "AA+", + "AAA", + ], + gradeColours: { + D: exports.COLOUR_SET.gray, + "D+": exports.COLOUR_SET.maroon, + "C-": exports.COLOUR_SET.red, + C: exports.COLOUR_SET.purple, + "C+": exports.COLOUR_SET.vibrantPurple, + "B-": exports.COLOUR_SET.paleBlue, + B: exports.COLOUR_SET.blue, + "B+": exports.COLOUR_SET.vibrantBlue, + "A-": exports.COLOUR_SET.paleGreen, + A: exports.COLOUR_SET.green, + "A+": exports.COLOUR_SET.vibrantGreen, + "AA-": exports.COLOUR_SET.paleOrange, + AA: exports.COLOUR_SET.orange, + "AA+": exports.COLOUR_SET.vibrantOrange, + AAA: exports.COLOUR_SET.gold, + }, + clearGrade: "A", + gradeBoundaries: [0, 55, 59, 60, 65, 69, 70, 75, 79, 80, 85, 89, 90, 95, 99], + lamps: [ + "FAILED", + "CLEAR", + "LIFE4", + "FULL COMBO", + "GREAT FULL COMBO", + "PERFECT FULL COMBO", + "MARVELOUS FULL COMBO", + ], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.paleGreen, + LIFE4: exports.COLOUR_SET.orange, + "FULL COMBO": exports.COLOUR_SET.paleBlue, + "GREAT FULL COMBO": exports.COLOUR_SET.green, + "PERFECT FULL COMBO": exports.COLOUR_SET.gold, + "MARVELOUS FULL COMBO": exports.COLOUR_SET.teal, + }, + clearLamp: "CLEAR", + supportsESD: true, + judgementWindows: [ + { name: "MARVELOUS", msBorder: 15, value: 3 }, + { name: "PERFECT", msBorder: 30, value: 2 }, + { name: "GREAT", msBorder: 59, value: 1 }, + { name: "GOOD", msBorder: 89, value: 0 }, + { name: "BAD", msBorder: 119, value: 0 }, + ], + defaultTable: "Levels (N-1)", + scoreBucket: "lamp", + }, + "maimai:Single": { + idString: "maimai:Single", + percentMax: 120, + defaultScoreRatingAlg: "ktRating", + defaultSessionRatingAlg: "ktRating", + defaultProfileRatingAlg: "ktRating", + difficulties: ["Easy", "Basic", "Advanced", "Expert", "Master", "Re:Master"], + defaultDifficulty: "Master", + difficultyColours: { + Easy: exports.COLOUR_SET.blue, + Basic: exports.COLOUR_SET.green, + Advanced: exports.COLOUR_SET.orange, + Expert: exports.COLOUR_SET.red, + Master: exports.COLOUR_SET.purple, + "Re:Master": exports.COLOUR_SET.white, + }, + grades: ["F", "E", "D", "C", "B", "A", "AA", "AAA", "S", "S+", "SS", "SS+", "SSS", "SSS+"], + gradeColours: { + F: exports.COLOUR_SET.gray, + E: exports.COLOUR_SET.red, + D: exports.COLOUR_SET.maroon, + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.paleGreen, + A: exports.COLOUR_SET.green, + AA: exports.COLOUR_SET.paleBlue, + AAA: exports.COLOUR_SET.blue, + S: exports.COLOUR_SET.gold, + "S+": exports.COLOUR_SET.vibrantYellow, + SS: exports.COLOUR_SET.paleOrange, + "SS+": exports.COLOUR_SET.orange, + SSS: exports.COLOUR_SET.teal, + "SSS+": exports.COLOUR_SET.white, + }, + clearGrade: "A", + // @hack Maimai's top grade depends on the chart's maximum percent + // we just set it at percentMax, but it's not technically correct + gradeBoundaries: [0, 10, 20, 40, 60, 80, 90, 94, 97, 98, 99, 99.5, 100, 120], + lamps: ["FAILED", "CLEAR", "FULL COMBO", "ALL PERFECT", "ALL PERFECT+"], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.green, + "FULL COMBO": exports.COLOUR_SET.blue, + "ALL PERFECT": exports.COLOUR_SET.gold, + "ALL PERFECT+": exports.COLOUR_SET.teal, + }, + clearLamp: "CLEAR", + supportsESD: false, + defaultTable: "Levels", + scoreBucket: "grade", + }, + "gitadora:Gita": { + idString: "gitadora:Gita", + percentMax: 100, + defaultScoreRatingAlg: "skill", + defaultSessionRatingAlg: "skill", + defaultProfileRatingAlg: "skill", + difficulties: [ + "BASIC", + "ADVANCED", + "EXTREME", + "MASTER", + "BASS BASIC", + "BASS ADVANCED", + "BASS EXTREME", + "BASS MASTER", + ], + defaultDifficulty: "EXTREME", + difficultyColours: { + BASIC: exports.COLOUR_SET.blue, + ADVANCED: exports.COLOUR_SET.orange, + EXTREME: exports.COLOUR_SET.red, + MASTER: exports.COLOUR_SET.purple, + "BASS BASIC": exports.COLOUR_SET.vibrantBlue, + "BASS ADVANCED": exports.COLOUR_SET.vibrantOrange, + "BASS EXTREME": "todo", + "BASS MASTER": exports.COLOUR_SET.vibrantPurple, + }, + grades: ["C", "B", "A", "S", "SS", "MAX"], + gradeColours: { + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.blue, + A: exports.COLOUR_SET.green, + S: exports.COLOUR_SET.orange, + SS: exports.COLOUR_SET.gold, + MAX: exports.COLOUR_SET.white, + }, + clearGrade: "A", + gradeBoundaries: [0, 63, 73, 80, 95, 100], + lamps: ["FAILED", "CLEAR", "FULL COMBO", "EXCELLENT"], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.blue, + "FULL COMBO": exports.COLOUR_SET.teal, + EXCELLENT: exports.COLOUR_SET.gold, + }, + clearLamp: "CLEAR", + supportsESD: true, + judgementWindows: [ + { name: "PERFECT", msBorder: 33, value: 1 }, + { name: "GREAT", msBorder: 57, value: 0.5 }, + { name: "GOOD", msBorder: 81, value: 0.2 }, + { name: "OK", msBorder: 116.667 /* not really, but yknow */, value: 0 }, + ], + defaultTable: "Levels (N-1)", + scoreBucket: "grade", + }, + "gitadora:Dora": { + idString: "gitadora:Dora", + percentMax: 100, + defaultScoreRatingAlg: "skill", + defaultSessionRatingAlg: "skill", + defaultProfileRatingAlg: "skill", + difficulties: ["BASIC", "ADVANCED", "EXTREME", "MASTER"], + defaultDifficulty: "EXTREME", + difficultyColours: { + BASIC: exports.COLOUR_SET.blue, + ADVANCED: exports.COLOUR_SET.orange, + EXTREME: exports.COLOUR_SET.red, + MASTER: exports.COLOUR_SET.purple, + }, + grades: ["C", "B", "A", "S", "SS", "MAX"], + gradeColours: { + C: exports.COLOUR_SET.purple, + B: exports.COLOUR_SET.blue, + A: exports.COLOUR_SET.green, + S: exports.COLOUR_SET.orange, + SS: exports.COLOUR_SET.gold, + MAX: exports.COLOUR_SET.white, + }, + clearGrade: "A", + gradeBoundaries: [0, 63, 73, 80, 95, 100], + lamps: ["FAILED", "CLEAR", "FULL COMBO", "EXCELLENT"], + lampColours: { + FAILED: exports.COLOUR_SET.red, + CLEAR: exports.COLOUR_SET.blue, + "FULL COMBO": exports.COLOUR_SET.teal, + EXCELLENT: exports.COLOUR_SET.gold, + }, + clearLamp: "CLEAR", + supportsESD: true, + judgementWindows: [ + { name: "PERFECT", msBorder: 27, value: 1 }, + { name: "GREAT", msBorder: 48, value: 0.5 }, + { name: "GOOD", msBorder: 72, value: 0.2 }, + { name: "OK", msBorder: 116.667 /* not really, but yknow */, value: 0 }, + ], + defaultTable: "Levels (N-1)", + scoreBucket: "grade", + }, +}; +/** + * Returns the configuration for this game. + */ +function GetGameConfig(game) { + return GAME_CONFIGS[game]; +} +exports.GetGameConfig = GetGameConfig; +/** + * Returns the configuration for this Game + Playtype. + * Optionally, a generic parameter - IDStrings - can be passed + * to indicate what IDString this configuration is for. + */ +function GetGamePTConfig(game, playtype) { + const idString = `${game}:${playtype}`; + return GAME_PT_CONFIGS[idString]; +} +exports.GetGamePTConfig = GetGamePTConfig; +//# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/common/js/config/config.js.map b/common/js/config/config.js.map new file mode 100644 index 000000000..5e52f119a --- /dev/null +++ b/common/js/config/config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/common/js/config/static-config.d.ts b/common/js/config/static-config.d.ts new file mode 100644 index 000000000..7ef6ba20e --- /dev/null +++ b/common/js/config/static-config.d.ts @@ -0,0 +1,14 @@ +import { FileUploadImportTypes, IRImportTypes, APIImportTypes, ImportTypes, Game } from ".."; +export declare const fileImportTypes: FileUploadImportTypes[]; +export declare const irImportTypes: IRImportTypes[]; +export declare const apiImportTypes: APIImportTypes[]; +export declare const allImportTypes: ImportTypes[]; +export declare const allSupportedGames: Game[]; +export interface ServerConfig { + name: string; + supportedGames: Game[]; + supportedImportTypes: ImportTypes[]; +} +export declare const KTCHI_CONFIG: ServerConfig; +export declare const BTCHI_CONFIG: ServerConfig; +export declare const OMNI_CONFIG: ServerConfig; diff --git a/common/js/config/static-config.js b/common/js/config/static-config.js new file mode 100644 index 000000000..e9aea68b3 --- /dev/null +++ b/common/js/config/static-config.js @@ -0,0 +1,78 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.OMNI_CONFIG = exports.BTCHI_CONFIG = exports.KTCHI_CONFIG = exports.allSupportedGames = exports.allImportTypes = exports.apiImportTypes = exports.irImportTypes = exports.fileImportTypes = void 0; +exports.fileImportTypes = [ + "file/eamusement-iidx-csv", + "file/batch-manual", + "file/solid-state-squad", + "file/mer-iidx", + "file/pli-iidx-csv", +]; +exports.irImportTypes = [ + "ir/direct-manual", + "ir/barbatos", + "ir/fervidex", + "ir/fervidex-static", + "ir/beatoraja", + "ir/chunitachi", + "ir/usc", +]; +exports.apiImportTypes = [ + "api/arc-iidx", + "api/arc-sdvx", + "api/arc-ddr", + "api/eag-iidx", + "api/eag-sdvx", + "api/flo-iidx", + "api/flo-sdvx", +]; +exports.allImportTypes = [ + ...exports.fileImportTypes, + ...exports.irImportTypes, + ...exports.apiImportTypes, +]; +exports.allSupportedGames = [ + "iidx", + "museca", + "maimai", + // "jubeat", + // "popn", + "sdvx", + "ddr", + "bms", + "chunithm", + "gitadora", + "usc", +]; +exports.KTCHI_CONFIG = { + name: "Kamaitachi", + supportedGames: ["iidx", "gitadora", "chunithm", "maimai", "museca", "sdvx"], + supportedImportTypes: [ + "api/arc-iidx", + "api/arc-sdvx", + "api/arc-ddr", + "api/eag-iidx", + "api/eag-sdvx", + "api/flo-iidx", + "api/flo-sdvx", + "ir/direct-manual", + "ir/fervidex", + "ir/fervidex-static", + "ir/chunitachi", + "file/eamusement-iidx-csv", + "file/solid-state-squad", + "file/mer-iidx", + "file/pli-iidx-csv", + ], +}; +exports.BTCHI_CONFIG = { + name: "Bokutachi", + supportedGames: ["usc", "bms"], + supportedImportTypes: ["ir/beatoraja", "ir/usc", "ir/direct-manual", "file/batch-manual"], +}; +exports.OMNI_CONFIG = { + name: "Omnitachi", + supportedGames: exports.allSupportedGames, + supportedImportTypes: exports.allImportTypes, +}; +//# sourceMappingURL=static-config.js.map \ No newline at end of file diff --git a/common/js/config/static-config.js.map b/common/js/config/static-config.js.map new file mode 100644 index 000000000..7494e245a --- /dev/null +++ b/common/js/config/static-config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static-config.js","sourceRoot":"","sources":["../../src/config/static-config.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAA4B;IACvD,0BAA0B;IAC1B,mBAAmB;IACnB,wBAAwB;IACxB,eAAe;IACf,mBAAmB;CACnB,CAAC;AAEW,QAAA,aAAa,GAAoB;IAC7C,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,QAAQ;CACR,CAAC;AAEW,QAAA,cAAc,GAAqB;IAC/C,cAAc;IACd,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;CACd,CAAC;AAEW,QAAA,cAAc,GAAkB;IAC5C,GAAG,uBAAe;IAClB,GAAG,qBAAa;IAChB,GAAG,sBAAc;CACjB,CAAC;AAEW,QAAA,iBAAiB,GAAW;IACxC,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,MAAM;IACN,KAAK;IACL,KAAK;IACL,UAAU;IACV,UAAU;IACV,KAAK;CACL,CAAC;AAQW,QAAA,YAAY,GAAiB;IACzC,IAAI,EAAE,YAAY;IAClB,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;IAC5E,oBAAoB,EAAE;QACrB,cAAc;QACd,cAAc;QACd,aAAa;QACb,cAAc;QACd,cAAc;QACd,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,aAAa;QACb,oBAAoB;QACpB,eAAe;QACf,0BAA0B;QAC1B,wBAAwB;QACxB,eAAe;QACf,mBAAmB;KACnB;CACD,CAAC;AAEW,QAAA,YAAY,GAAiB;IACzC,IAAI,EAAE,WAAW;IACjB,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IAC9B,oBAAoB,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;CACzF,CAAC;AAEW,QAAA,WAAW,GAAiB;IACxC,IAAI,EAAE,WAAW;IACjB,cAAc,EAAE,yBAAiB;IACjC,oBAAoB,EAAE,sBAAc;CACpC,CAAC"} \ No newline at end of file diff --git a/common/js/game-classes.js.map b/common/js/game-classes.js.map index 3965452b4..ec3d14eda 100644 --- a/common/js/game-classes.js.map +++ b/common/js/game-classes.js.map @@ -1 +1 @@ -{"version":3,"file":"game-classes.js","sourceRoot":"","sources":["../src/game-classes.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"game-classes.js","sourceRoot":"","sources":["../src/game-classes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/common/js/index.d.ts b/common/js/index.d.ts index 5d60d2631..162868464 100644 --- a/common/js/index.d.ts +++ b/common/js/index.d.ts @@ -1,4 +1,4 @@ export * from "./types"; -export * as config from "./config"; +export * from "./config/config"; export * as gameClasses from "./game-classes"; -export * as ESDCore from "./common-core/esd-core"; +export * as ESDCore from "./lib/esd"; diff --git a/common/js/index.js b/common/js/index.js index 72e69fe51..9e039c911 100644 --- a/common/js/index.js +++ b/common/js/index.js @@ -22,9 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.ESDCore = exports.gameClasses = exports.config = void 0; +exports.ESDCore = exports.gameClasses = void 0; __exportStar(require("./types"), exports); -exports.config = __importStar(require("./config")); +__exportStar(require("./config/config"), exports); exports.gameClasses = __importStar(require("./game-classes")); -exports.ESDCore = __importStar(require("./common-core/esd-core")); +exports.ESDCore = __importStar(require("./lib/esd")); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/common/js/index.js.map b/common/js/index.js.map index 19b3b3d63..28d09f9e3 100644 --- a/common/js/index.js.map +++ b/common/js/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAwB;AAExB,mDAAmC;AACnC,8DAA8C;AAC9C,kEAAkD"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAwB;AAExB,kDAAgC;AAChC,8DAA8C;AAC9C,qDAAqC"} \ No newline at end of file diff --git a/common/js/common-core/esd-core.d.ts b/common/js/lib/esd.d.ts similarity index 100% rename from common/js/common-core/esd-core.d.ts rename to common/js/lib/esd.d.ts diff --git a/common/js/common-core/esd-core.js b/common/js/lib/esd.js similarity index 81% rename from common/js/common-core/esd-core.js rename to common/js/lib/esd.js index 3b89f2131..16f3a72ca 100644 --- a/common/js/common-core/esd-core.js +++ b/common/js/lib/esd.js @@ -14,18 +14,18 @@ function cdf(x, mean, variance) { */ function erf(x) { // save the sign of x - let sign = x >= 0 ? 1 : -1; + const sign = x >= 0 ? 1 : -1; x = Math.abs(x); // constants - let a1 = 0.254829592; - let a2 = -0.284496736; - let a3 = 1.421413741; - let a4 = -1.453152027; - let a5 = 1.061405429; - let p = 0.3275911; + const a1 = 0.254829592; + const a2 = -0.284496736; + const a3 = 1.421413741; + const a4 = -1.453152027; + const a5 = 1.061405429; + const p = 0.3275911; // A&S formula 7.1.26 - let t = 1.0 / (1.0 + p * x); - let y = 1.0 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * Math.exp(-x * x); + const t = 1.0 / (1.0 + p * x); + const y = 1.0 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * Math.exp(-x * x); return sign * y; // erf(-x) = -erf(x); } function CDFBetween(lowBound, highBound, mean, variance) { @@ -45,8 +45,8 @@ function StdDeviationToPercent(judgements, stddev, largestValue) { let lastJudgeMSBorder = 0; let prbSum = 0; for (let i = 0; i < judgements.length; i++) { - let judge = judgements[i]; - let nVal = CDFBetween(lastJudgeMSBorder, judge.msBorder, MEAN, Math.pow(stddev, 2)) * judge.value; + const judge = judgements[i]; + const nVal = CDFBetween(lastJudgeMSBorder, judge.msBorder, MEAN, Math.pow(stddev, 2)) * judge.value; lastJudgeMSBorder = judge.msBorder; prbSum += nVal; } @@ -67,7 +67,7 @@ function CalculateESD(judgements, percent, errOnInaccuracy = false) { if (percent > 1 || percent < 0 || Number.isNaN(percent)) { throw new Error("(ESD) Invalid percent. Percent must be between 0 and 1, and also a number."); } - let largestValue = judgements.slice(0).sort((a, b) => b.value - a.value)[0].value; + const largestValue = judgements.slice(0).sort((a, b) => b.value - a.value)[0].value; // massive optimisation possible here by using better initial estimates with precalc'd table of values. // until then, it's just kinda slow. let minSD = 0; @@ -80,7 +80,7 @@ function CalculateESD(judgements, percent, errOnInaccuracy = false) { // the defaults for these are 100 for iterations, and 0.001 for error. // for most of what i've tested, this has been fine. for (let i = 0; i < MAX_ITERATIONS; i++) { - let estimatedPercent = StdDeviationToPercent(judgements, estSD, largestValue); + const estimatedPercent = StdDeviationToPercent(judgements, estSD, largestValue); if (Math.abs(estimatedPercent - percent) < ACCEPTABLE_ERROR) { return estSD; } @@ -99,10 +99,7 @@ function CalculateESD(judgements, percent, errOnInaccuracy = false) { if (errOnInaccuracy) { throw `(ESD-JS) Did not reach value within MAX_ITERATIONS (${MAX_ITERATIONS})`; } - else { - console.warn(`(ESD-JS) Did not reach value within MAX_ITERATIONS (${MAX_ITERATIONS}), returning last estimate (${estSD}), which was generated from ${percent}.`); - return estSD; - } + return estSD; } exports.CalculateESD = CalculateESD; /** @@ -127,7 +124,7 @@ function ESDCompare(baseESD, compareESD, cdeg = 1) { variance = Math.pow(baseESD, 2); bound = CONFIDENCE_DEGREE * compareESD; } - let esdc = CDFBetween(-1 * bound, bound, 0, variance) / 2; + const esdc = CDFBetween(-1 * bound, bound, 0, variance) / 2; let besdc = BASE_CASE - esdc; if (inv) { besdc *= -1; @@ -139,9 +136,9 @@ exports.ESDCompare = ESDCompare; * Converts two percents to ESD, then runs ESDCompare. */ function PercentCompare(judgements, baseP, compareP, cdeg = 1) { - let e1 = CalculateESD(judgements, baseP); - let e2 = CalculateESD(judgements, compareP); + const e1 = CalculateESD(judgements, baseP); + const e2 = CalculateESD(judgements, compareP); return ESDCompare(e1, e2, cdeg); } exports.PercentCompare = PercentCompare; -//# sourceMappingURL=esd-core.js.map \ No newline at end of file +//# sourceMappingURL=esd.js.map \ No newline at end of file diff --git a/common/js/lib/esd.js.map b/common/js/lib/esd.js.map new file mode 100644 index 000000000..c9e2d001b --- /dev/null +++ b/common/js/lib/esd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"esd.js","sourceRoot":"","sources":["../../src/lib/esd.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/common/js/lib/util.d.ts b/common/js/lib/util.d.ts new file mode 100644 index 000000000..c92f800ee --- /dev/null +++ b/common/js/lib/util.d.ts @@ -0,0 +1,2 @@ +import { Grades, integer } from "../types"; +export declare function CalculateGradeDeltaIIDX(cmpGrade: Grades["iidx:SP" | "iidx:DP"], score: integer, notecount: integer): string; diff --git a/common/js/lib/util.js b/common/js/lib/util.js new file mode 100644 index 000000000..2e8c7827f --- /dev/null +++ b/common/js/lib/util.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CalculateGradeDeltaIIDX = void 0; +const config_1 = require("../config/config"); +const IIDXConfig = config_1.GetGamePTConfig("iidx", "SP"); +function CalculateGradeDeltaIIDX(cmpGrade, score, notecount) { + const cmpGradeIDX = IIDXConfig.grades.indexOf(cmpGrade); + const cmpGradePercent = IIDXConfig.gradeBoundaries[cmpGradeIDX]; + const cmpScore = Math.ceil(notecount * (cmpGradePercent / 100)); + const delta = score - cmpScore; + if (delta >= 0) { + return `${cmpGrade}+${delta}`; + } + else { + // negative numbers implicitly stringify with the - prefix + return `${cmpGrade}${delta}`; + } +} +exports.CalculateGradeDeltaIIDX = CalculateGradeDeltaIIDX; +//# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/common/js/lib/util.js.map b/common/js/lib/util.js.map new file mode 100644 index 000000000..e54129be7 --- /dev/null +++ b/common/js/lib/util.js.map @@ -0,0 +1 @@ +{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/lib/util.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AAGnD,MAAM,UAAU,GAAG,wBAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEjD,SAAgB,uBAAuB,CACtC,QAAuC,EACvC,KAAc,EACd,SAAkB;IAElB,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExD,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;IAE/B,IAAI,KAAK,IAAI,CAAC,EAAE;QACf,OAAO,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;KAC9B;SAAM;QACN,0DAA0D;QAC1D,OAAO,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;KAC7B;AACF,CAAC;AAnBD,0DAmBC"} \ No newline at end of file diff --git a/common/js/types.d.ts b/common/js/types.d.ts index 03b108cb6..1027036df 100644 --- a/common/js/types.d.ts +++ b/common/js/types.d.ts @@ -11,7 +11,7 @@ export interface CounterDocument { * apply two levels of indexing to types, which makes writing generic interfaces * like the ScoreDocument (Especially the ScoreDocument) *very* hard! */ -export declare type IDStrings = "iidx:SP" | "iidx:DP" | "popn:9B" | "sdvx:Single" | "usc:Single" | "ddr:SP" | "ddr:DP" | "maimai:Single" | "museca:Single" | "jubeat:Single" | "bms:7K" | "bms:14K" | "chunithm:Single" | "gitadora:Gita" | "gitadora:Dora"; +export declare type IDStrings = "iidx:SP" | "iidx:DP" | "sdvx:Single" | "usc:Single" | "ddr:SP" | "ddr:DP" | "maimai:Single" | "museca:Single" | "bms:7K" | "bms:14K" | "chunithm:Single" | "gitadora:Gita" | "gitadora:Dora"; export interface IDStringToPlaytype { "iidx:SP": "SP"; "iidx:DP": "DP"; @@ -76,7 +76,7 @@ export declare type ValidDatabases = Databases | `songs-${Game}` | `charts-${Gam /** * Supported games by Kamaitachi. */ -export declare type Game = "iidx" | "museca" | "maimai" | "jubeat" | "popn" | "sdvx" | "ddr" | "bms" | "chunithm" | "gitadora" | "usc"; +export declare type Game = "iidx" | "museca" | "maimai" | "sdvx" | "ddr" | "bms" | "chunithm" | "gitadora" | "usc"; /** * This is the generic response from the Kamaitachi API in event of a failure. */ @@ -112,7 +112,7 @@ export interface Playtypes { } declare type IIDXGrades = "F" | "E" | "D" | "C" | "B" | "A" | "AA" | "AAA" | "MAX-" | "MAX"; declare type SDVXGrades = "D" | "C" | "B" | "A" | "A+" | "AA" | "AA+" | "AAA" | "AAA+" | "S"; -declare type DDRGrades = "D" | "D+" | "C-" | "C" | "C+" | "B-" | "B" | "B+" | "A-" | "A" | "A+" | "AA-" | "AA" | "AA+" | "AAA" | "MAX"; +declare type DDRGrades = "D" | "D+" | "C-" | "C" | "C+" | "B-" | "B" | "B+" | "A-" | "A" | "A+" | "AA-" | "AA" | "AA+" | "AAA"; declare type GitadoraGrades = "C" | "B" | "A" | "S" | "SS" | "MAX"; export interface Grades { "iidx:SP": IIDXGrades; @@ -122,12 +122,12 @@ export interface Grades { "usc:Single": SDVXGrades; "ddr:SP": DDRGrades; "ddr:DP": DDRGrades; - "maimai:Single": "E" | "D" | "C" | "B" | "A" | "AA" | "AAA" | "S" | "S+" | "SS" | "SS+" | "SSS" | "SSS+"; + "maimai:Single": "F" | "E" | "D" | "C" | "B" | "A" | "AA" | "AAA" | "S" | "S+" | "SS" | "SS+" | "SSS" | "SSS+"; "jubeat:Single": "E" | "D" | "C" | "B" | "A" | "S" | "SS" | "SSS" | "EXC"; "museca:Single": "没" | "拙" | "凡" | "佳" | "良" | "優" | "秀" | "傑" | "傑G"; "bms:7K": IIDXGrades; "bms:14K": IIDXGrades; - "chunithm:Single": "BASIC" | "ADVANCED" | "EXPERT" | "MASTER" | "WORLD'S END"; + "chunithm:Single": "D" | "C" | "B" | "BB" | "BBB" | "A" | "AA" | "AAA" | "S" | "SS" | "SSS"; "gitadora:Gita": GitadoraGrades; "gitadora:Dora": GitadoraGrades; } @@ -163,8 +163,8 @@ export interface Difficulties { "maimai:Single": "Easy" | "Basic" | "Advanced" | "Expert" | "Master" | "Re:Master"; "jubeat:Single": "BSC" | "ADV" | "EXT"; "museca:Single": "Green" | "Yellow" | "Red"; - "bms:7K": "BEGINNER" | "NORMAL" | "HYPER" | "ANOTHER" | "INSANE" | "CUSTOM"; - "bms:14K": "BEGINNER" | "NORMAL" | "HYPER" | "ANOTHER" | "INSANE" | "CUSTOM"; + "bms:7K": "CHART"; + "bms:14K": "CHART"; "chunithm:Single": "BASIC" | "ADVANCED" | "EXPERT" | "MASTER" | "WORLD'S END"; "gitadora:Gita": "BASIC" | "ADVANCED" | "EXTREME" | "MASTER" | "BASS BASIC" | "BASS ADVANCED" | "BASS EXTREME" | "BASS MASTER"; "gitadora:Dora": "BASIC" | "ADVANCED" | "EXTREME" | "MASTER"; @@ -367,7 +367,7 @@ interface SessionScoreNewInfo { isNewScore: true; } export declare type SessionScoreInfo = SessionScorePBInfo | SessionScoreNewInfo; -interface SessionCalculatedDataLookup { +export interface SessionCalculatedDataLookup { "iidx:SP": "BPI" | "ktRating" | "ktLampRating"; "iidx:DP": "BPI" | "ktRating" | "ktLampRating"; "popn:9B": never; @@ -934,13 +934,11 @@ export interface JudgementLookup { export interface ScoreCalculatedDataLookup { "iidx:SP": "BPI" | "K%" | "ktRating" | "ktLampRating"; "iidx:DP": "BPI" | "ktRating" | "ktLampRating"; - "popn:9B": never; "sdvx:Single": "VF6"; "usc:Single": "VF6"; "ddr:SP": "MFCP" | "ktRating"; "ddr:DP": "MFCP" | "ktRating"; "maimai:Single": "ktRating"; - "jubeat:Single": "jubility"; "museca:Single": "ktRating"; "bms:7K": "ktLampRating"; "bms:14K": "ktLampRating"; diff --git a/common/package.json b/common/package.json index 96af75d1d..7eb17eebd 100644 --- a/common/package.json +++ b/common/package.json @@ -21,7 +21,7 @@ "typescript": "^4.3.4" }, "dependencies": { - "monk": "^7.3.3", + "monk": "^7.3.4", "tap": "^15.0.9" }, "nyc": { diff --git a/common/pnpm-lock.yaml b/common/pnpm-lock.yaml index 248d08e6e..57b58821e 100644 --- a/common/pnpm-lock.yaml +++ b/common/pnpm-lock.yaml @@ -7,7 +7,7 @@ specifiers: eslint: ^7.22.0 eslint-config-prettier: ^8.1.0 eslint-plugin-prettier: ^3.3.1 - monk: ^7.3.3 + monk: ^7.3.4 prettier: ^2.2.1 tap: ^15.0.9 ts-node: ^10.0.0 @@ -413,27 +413,22 @@ packages: /@types/bson/4.0.3: resolution: {integrity: sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==} dependencies: - '@types/node': 14.14.41 + '@types/node': 15.12.4 dev: false /@types/json-schema/7.0.7: resolution: {integrity: sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==} dev: true - /@types/mongodb/3.6.12: - resolution: {integrity: sha512-49aEzQD5VdHPxyd5dRyQdqEveAg9LanwrH8RQipnMuulwzKmODXIZRp0umtxi1eBUfEusRkoy8AVOMr+kVuFog==} + /@types/mongodb/3.6.18: + resolution: {integrity: sha512-JSVFt9p0rTfZ4EgzXmVHUB3ue00xe3CRbQho8nXfImzEDDM4O7I3po1bwbWl/EIbLENxUreZxqLOc8lvcnLVPA==} dependencies: '@types/bson': 4.0.3 - '@types/node': 14.14.41 - dev: false - - /@types/node/14.14.41: - resolution: {integrity: sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==} + '@types/node': 15.12.4 dev: false /@types/node/15.12.4: resolution: {integrity: sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==} - dev: true /@types/tap/15.0.3: resolution: {integrity: sha512-usOLtmMm1jfjPdkt9R9HMTU/J6m9QNYjgFs5U2tFiOzQSd7lDd/aAMprExYLnJnZb6tM4ujmGv7ITe+1smIRgg==} @@ -1799,8 +1794,8 @@ packages: hasBin: true dev: false - /mongodb/3.6.6: - resolution: {integrity: sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==} + /mongodb/3.6.9: + resolution: {integrity: sha512-1nSCKgSunzn/CXwgOWgbPHUWOO5OfERcuOWISmqd610jn0s8BU9K4879iJVabqgpPPbA6hO7rG48eq+fGED3Mg==} engines: {node: '>=4'} peerDependencies: aws4: '*' @@ -1859,9 +1854,9 @@ packages: /monk/7.3.4: resolution: {integrity: sha512-PkPNiElwroVyKQj01usyziOvwiKYBUVSq7YU1FB4KFr0J3v0GeXW0TebYsLR4u33WB8JGqPiAcuzDspfdujqQg==} dependencies: - '@types/mongodb': 3.6.12 + '@types/mongodb': 3.6.18 debug: 4.3.1 - mongodb: 3.6.6 + mongodb: 3.6.9 monk-middleware-cast-ids: 0.2.1 monk-middleware-fields: 0.2.0 monk-middleware-handle-callback: 0.2.2 diff --git a/common/tsconfig.json b/common/tsconfig.json index cedc1eccc..c7a997c66 100644 --- a/common/tsconfig.json +++ b/common/tsconfig.json @@ -11,6 +11,6 @@ "typeRoots": [ "@types" ], "sourceMap": true }, - "include": ["src"], - "exclude": ["node_modules"] + "include": ["src/**/*.ts"], + "exclude": ["src/**/*.test.ts", "src/legacy/**/*.ts"] } \ No newline at end of file