From b2ac75646b07c52b7c62bba978c795e084741cb5 Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Thu, 2 Dec 2021 17:33:23 +0000 Subject: [PATCH 1/2] Support permissive gauge, but always make it a fail (unless it was a PUC or UC). --- .../src/lib/score-import/import-types/ir/usc/converter.test.ts | 3 +++ server/src/lib/score-import/import-types/ir/usc/converter.ts | 2 ++ server/src/lib/score-import/import-types/ir/usc/parser.ts | 2 +- server/src/server/router/ir/usc/_playtype/types.ts | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/server/src/lib/score-import/import-types/ir/usc/converter.test.ts b/server/src/lib/score-import/import-types/ir/usc/converter.test.ts index e0fba6455..78ccab45e 100644 --- a/server/src/lib/score-import/import-types/ir/usc/converter.test.ts +++ b/server/src/lib/score-import/import-types/ir/usc/converter.test.ts @@ -16,6 +16,9 @@ t.test("#DeriveLamp", (t) => { t.equal(DeriveLamp(d(uscScore, { options: { gaugeType: 0 }, gauge: 0.7 }), logger), "CLEAR"); + t.equal(DeriveLamp(d(uscScore, { options: { gaugeType: 2 }, gauge: 1 }), logger), "FAILED"); + t.equal(DeriveLamp(d(uscScore, { options: { gaugeType: 2 }, gauge: 0 }), logger), "FAILED"); + t.equal( DeriveLamp(d(uscScore, { options: { gaugeType: 1 }, gauge: 0.1 }), logger), "EXCESSIVE CLEAR" diff --git a/server/src/lib/score-import/import-types/ir/usc/converter.ts b/server/src/lib/score-import/import-types/ir/usc/converter.ts index 7070876bb..c93e3ca6a 100644 --- a/server/src/lib/score-import/import-types/ir/usc/converter.ts +++ b/server/src/lib/score-import/import-types/ir/usc/converter.ts @@ -50,6 +50,8 @@ export function DeriveLamp( return scoreDoc.gauge >= 0.7 ? "CLEAR" : "FAILED"; } else if (scoreDoc.options.gaugeType === 1) { return scoreDoc.gauge > 0 ? "EXCESSIVE CLEAR" : "FAILED"; + } else if (scoreDoc.options.gaugeType === 2) { + return "FAILED"; } logger.error(`Could not derive Lamp from Score Document`, { scoreDoc }); diff --git a/server/src/lib/score-import/import-types/ir/usc/parser.ts b/server/src/lib/score-import/import-types/ir/usc/parser.ts index 1b46c783b..9b46840e5 100644 --- a/server/src/lib/score-import/import-types/ir/usc/parser.ts +++ b/server/src/lib/score-import/import-types/ir/usc/parser.ts @@ -18,7 +18,7 @@ const PR_USCIRScore: PrudenceSchema = { late: p.optional(p.isPositiveInteger), combo: p.optional(p.isPositiveInteger), options: { - gaugeType: p.isIn(0, 1), + gaugeType: p.isIn(0, 1, 2), mirror: "boolean", random: "boolean", autoFlags: p.isInteger, diff --git a/server/src/server/router/ir/usc/_playtype/types.ts b/server/src/server/router/ir/usc/_playtype/types.ts index 887242eb0..ca4852d97 100644 --- a/server/src/server/router/ir/usc/_playtype/types.ts +++ b/server/src/server/router/ir/usc/_playtype/types.ts @@ -24,7 +24,7 @@ export interface USCClientScore { late: integer | null; combo: integer | null; options: { - gaugeType: 0 | 1; + gaugeType: 0 | 1 | 2; gaugeOpt: integer; mirror: boolean; random: boolean; From 4a118e533bb340263553aaae8c1b017af02cba7f Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Thu, 2 Dec 2021 17:37:00 +0000 Subject: [PATCH 2/2] Add some tests --- .../score-import/import-types/ir/usc/converter.test.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/src/lib/score-import/import-types/ir/usc/converter.test.ts b/server/src/lib/score-import/import-types/ir/usc/converter.test.ts index 78ccab45e..823103106 100644 --- a/server/src/lib/score-import/import-types/ir/usc/converter.test.ts +++ b/server/src/lib/score-import/import-types/ir/usc/converter.test.ts @@ -18,6 +18,14 @@ t.test("#DeriveLamp", (t) => { t.equal(DeriveLamp(d(uscScore, { options: { gaugeType: 2 }, gauge: 1 }), logger), "FAILED"); t.equal(DeriveLamp(d(uscScore, { options: { gaugeType: 2 }, gauge: 0 }), logger), "FAILED"); + t.equal( + DeriveLamp(d(uscScore, { options: { gaugeType: 2 }, gauge: 1, score: 10_000_000 }), logger), + "PERFECT ULTIMATE CHAIN" + ); + t.equal( + DeriveLamp(d(uscScore, { options: { gaugeType: 2 }, gauge: 1, error: 0 }), logger), + "ULTIMATE CHAIN" + ); t.equal( DeriveLamp(d(uscScore, { options: { gaugeType: 1 }, gauge: 0.1 }), logger), @@ -61,7 +69,7 @@ t.test("#DeriveLamp", (t) => { "ULTIMATE CHAIN" ); - t.throws(() => DeriveLamp(d(uscScore, { options: { gaugeType: 2 } }), logger)); + t.throws(() => DeriveLamp(d(uscScore, { options: { gaugeType: 3 } }), logger)); t.end(); });