diff --git a/server/src/score-import/framework/calculated-data/calculated-data.test.ts b/server/src/score-import/framework/calculated-data/calculated-data.test.ts index cfe482643..2101f57a1 100644 --- a/server/src/score-import/framework/calculated-data/calculated-data.test.ts +++ b/server/src/score-import/framework/calculated-data/calculated-data.test.ts @@ -17,7 +17,7 @@ import { GetDefaultTierlist } from "../../../core/tierlist-core"; const mockLogger = CreateLogCtx("calculated-data.test.ts"); t.test("#CreateCalculatedData", async (t) => { - let res = await CreateCalculatedData(TestingIIDXSPDryScore, Testing511SPA, mockLogger); + let res = await CreateCalculatedData(TestingIIDXSPDryScore, Testing511SPA, 30, mockLogger); prAssert( res, @@ -36,6 +36,7 @@ t.test("#CreateCalculatedData", async (t) => { let gitadoraRes = await CreateCalculatedData( TestingGITADORADoraDryScore, TestingDoraChart, + 30, mockLogger ); diff --git a/server/src/score-import/framework/calculated-data/calculated-data.ts b/server/src/score-import/framework/calculated-data/calculated-data.ts index 65d2680b1..003c02a8f 100644 --- a/server/src/score-import/framework/calculated-data/calculated-data.ts +++ b/server/src/score-import/framework/calculated-data/calculated-data.ts @@ -12,6 +12,7 @@ import { CalculateCHUNITHMRating, CalculateGITADORARating } from "./game-specifi export async function CreateCalculatedData( dryScore: DryScore, chart: AnyChartDocument, + esd: number | null, logger: KtLogger ): Promise { const game = dryScore.game; @@ -23,7 +24,7 @@ export async function CreateCalculatedData( const [rating, lampRating, gameSpecific] = await Promise.all([ CalculateRating(dryScore, game, playtype, chart, logger, defaultTierlistID), CalculateLampRating(dryScore, game, playtype, chart, defaultTierlistID), - CreateGameSpecific(game, playtype, chart, dryScore, logger), + CreateGameSpecific(game, playtype, chart, dryScore, esd, logger), ]); return { diff --git a/server/src/score-import/framework/calculated-data/game-specific.test.ts b/server/src/score-import/framework/calculated-data/game-specific.test.ts index f31e4331b..c71e9572f 100644 --- a/server/src/score-import/framework/calculated-data/game-specific.test.ts +++ b/server/src/score-import/framework/calculated-data/game-specific.test.ts @@ -21,6 +21,7 @@ t.test("#CreateGameSpecific", (t) => { "SP", Testing511SPA, TestingIIDXSPDryScore, + 30, logger ); @@ -43,6 +44,7 @@ t.test("#CreateGameSpecific", (t) => { "DP", Testing511SPA, TestingIIDXSPDryScore, // fake! this is an SP score. but we're testing + 30, logger ); @@ -64,6 +66,7 @@ t.test("#CreateGameSpecific", (t) => { "Single", Testing511SPA, TestingSDVXSingleDryScore, + null, logger ); @@ -85,6 +88,7 @@ t.test("#CreateGameSpecific", (t) => { "SP", Testing511SPA, TestingIIDXSPDryScore, // fake! this is an iidx score. but we're testing + null, logger ); @@ -105,6 +109,7 @@ t.test("#CreateGameSpecific", (t) => { "DP", Testing511SPA, TestingIIDXSPDryScore, // fake! this is an iidx score. but we're testing + null, logger ); diff --git a/server/src/score-import/framework/calculated-data/game-specific.ts b/server/src/score-import/framework/calculated-data/game-specific.ts index ddd6c6a64..2bdc49eaa 100644 --- a/server/src/score-import/framework/calculated-data/game-specific.ts +++ b/server/src/score-import/framework/calculated-data/game-specific.ts @@ -16,6 +16,9 @@ export async function CreateGameSpecific( playtype: Playtypes[G], chart: AnyChartDocument, dryScore: DryScore, + // ESD gets specially passed through because it's not part of the DryScore, but + // can be used for statistics anyway. + esd: number | null, logger: KtLogger ): Promise> { let gameSpecific: Record = {}; @@ -34,10 +37,7 @@ export async function CreateGameSpecific( BPIData.coef ); - gameSpecific.KESDC = - dryScore.scoreData.esd === null - ? null - : CalculateKESDC(BPIData.kesd, dryScore.scoreData.esd); + gameSpecific.KESDC = esd === null ? null : CalculateKESDC(BPIData.kesd, esd); } else { gameSpecific.BPI = null; gameSpecific.KESDC = null; diff --git a/server/src/score-import/framework/score-importing/hydrate-score.ts b/server/src/score-import/framework/score-importing/hydrate-score.ts index e0bd6bfea..6c95e9fc1 100644 --- a/server/src/score-import/framework/score-importing/hydrate-score.ts +++ b/server/src/score-import/framework/score-importing/hydrate-score.ts @@ -22,7 +22,9 @@ export async function HydrateScore( scoreID: string, logger: KtLogger ): Promise { - const calculatedData = await CreateCalculatedData(dryScore, chart, logger); // @todo + const esd = CalculateESDForGame(dryScore.game, dryScore.scoreData.percent / 100); + + const calculatedData = await CreateCalculatedData(dryScore, chart, esd, logger); // @todo const { scoreData: dryScoreData, ...rest } = dryScore; @@ -32,7 +34,7 @@ export async function HydrateScore( // @todo lamps may need to be separate upon game:playtype someday. Maybe. We need to check this out lampIndex: config.lamps[dryScore.game].indexOf(dryScore.scoreData.lamp as string), gradeIndex: config.grades[dryScore.game].indexOf(dryScore.scoreData.grade as string), - esd: CalculateESDForGame(dryScore.game, dryScore.scoreData.percent), + esd, }, dryScoreData ); diff --git a/server/src/score-import/import-types/file/csv_eamusement-iidx/converter.test.ts b/server/src/score-import/import-types/file/csv_eamusement-iidx/converter.test.ts index 755cd2d2e..bd3b67dc9 100644 --- a/server/src/score-import/import-types/file/csv_eamusement-iidx/converter.test.ts +++ b/server/src/score-import/import-types/file/csv_eamusement-iidx/converter.test.ts @@ -28,7 +28,6 @@ const DryScorePrudence = { grade: p.equalTo("F"), lamp: p.equalTo("HARD CLEAR"), score: p.equalTo(192), - esd: p.equalTo(162.5), percent: p.aprx(12.21), hitData: { pgreat: p.equalTo(75), @@ -167,7 +166,6 @@ t.test("#EamScoreConverter", async (t) => { scoreData: { score: p.equalTo(1), percent: p.aprx(0.063), - esd: p.equalTo(200), hitData: { pgreat: p.equalTo(0), great: p.equalTo(1), diff --git a/server/src/test-utils/test-data/kamaitachi/iidx-dryscore.json b/server/src/test-utils/test-data/kamaitachi/iidx-dryscore.json index b5f060be4..301f58b1b 100644 --- a/server/src/test-utils/test-data/kamaitachi/iidx-dryscore.json +++ b/server/src/test-utils/test-data/kamaitachi/iidx-dryscore.json @@ -6,7 +6,6 @@ "lamp": "CLEAR", "percent": 50, "grade": "C", - "esd": 30, "hitData": { "pgreat": 50, "great": 10