diff --git a/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts b/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts index 076d9502a..da2e88425 100644 --- a/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts +++ b/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts @@ -10,6 +10,7 @@ import { TestingSDVXSingleDryScore, } from "test-utils/test-data"; import { CreateCalculatedData, CalculateDataForGamePT } from "./calculated-data"; +import { ChartDocument, ScoreDocument } from "tachi-common"; const logger = CreateLogCtx(__filename); @@ -41,6 +42,15 @@ t.test("#CreateCalculatedData", async (t) => { "Should correctly call rating function overrides for different games" ); + const uscRes = await CreateCalculatedData( + { game: "usc", playtype: "Single" } as ScoreDocument, + { data: { isOfficial: false }, playtype: "Single" } as ChartDocument, + null, + logger + ); + + t.strictSame(uscRes, { VF6: null }, "Should return null if chart was not an official."); + t.end(); }); diff --git a/server/src/lib/score-import/framework/calculated-data/calculated-data.ts b/server/src/lib/score-import/framework/calculated-data/calculated-data.ts index 2ffdb58be..c4d49f099 100644 --- a/server/src/lib/score-import/framework/calculated-data/calculated-data.ts +++ b/server/src/lib/score-import/framework/calculated-data/calculated-data.ts @@ -199,6 +199,11 @@ function CalculateDataSDVXorUSC( defaultTierlistID: string | undefined, logger: KtLogger ): CalculatedData<"sdvx:Single" | "usc:Single"> { + // for usc, unofficial charts currently have no VF6 value. + if (dryScore.game === "usc" && !(chart as ChartDocument<"usc:Single">).data.isOfficial) { + return { VF6: null }; + } + const VF6 = CalculateVF6( dryScore.scoreData.grade as Grades["sdvx:Single"], dryScore.scoreData.lamp as Lamps["sdvx:Single"],