Fix lamp offbyone error in kai sdvx parser.

This commit is contained in:
zkldi
2021-11-03 04:24:44 +00:00
parent ae5a5f85ea
commit 84df038c05
3 changed files with 15 additions and 15 deletions
@@ -23,7 +23,7 @@ const PR_KaiIIDXScore = {
version_played: p.isBoundedInteger(9, 28),
lamp: p.isBoundedInteger(0, 7),
ex_score: p.isPositiveInteger,
miss_count: p.or(p.isPositiveInteger, p.is(-1)),
miss_count: p.or(p.isPositiveInteger, p.is(-1), "null"),
fast_count: p.nullable(p.isPositiveInteger),
slow_count: p.nullable(p.isPositiveInteger),
timestamp: "string",
@@ -69,7 +69,7 @@ export const ConvertAPIKaiIIDX: ConverterFunction<unknown, KaiContext> = async (
const version = score.version_played.toString();
if (!["26", "27", "28"].includes(version)) {
if (!["20", "21", "22", "23", "24", "25", "26", "27", "28"].includes(version)) {
throw new InvalidScoreFailure(`Unsupported version ${score.version_played}.`);
}
@@ -118,7 +118,7 @@ export const ConvertAPIKaiIIDX: ConverterFunction<unknown, KaiContext> = async (
hitMeta: {
fast: score.fast_count,
slow: score.slow_count,
bp: score.miss_count === -1 ? null : score.miss_count,
bp: score.miss_count === -1 || score.miss_count === null ? null : score.miss_count,
},
},
scoreMeta: {},
@@ -25,9 +25,9 @@ const PR_KaiSDVXScore = {
score: p.isBoundedInteger(0, 10_000_000),
critical: p.isPositiveInteger,
near: p.isPositiveInteger,
error: p.isPositiveInteger,
early: p.isPositiveInteger,
late: p.isPositiveInteger,
error: p.nullable(p.isPositiveInteger),
early: p.nullable(p.isPositiveInteger),
late: p.nullable(p.isPositiveInteger),
gauge_rate: p.isBoundedInteger(0, 100),
timestamp: "string",
};
@@ -135,15 +135,15 @@ export function ConvertVersion(ver: number) {
export function ResolveKaiLamp(clear: number): Lamps["sdvx:Single"] {
switch (clear) {
case 0:
return "FAILED";
case 1:
return "CLEAR";
return "FAILED";
case 2:
return "EXCESSIVE CLEAR";
return "CLEAR";
case 3:
return "ULTIMATE CHAIN";
return "EXCESSIVE CLEAR";
case 4:
return "ULTIMATE CHAIN";
case 5:
return "PERFECT ULTIMATE CHAIN";
}
@@ -7,7 +7,7 @@ export interface KaiIIDXScore {
version_played: integer;
lamp: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
ex_score: integer;
miss_count: integer; // -1 => null
miss_count: integer | null; // -1 => null
fast_count: integer | null;
slow_count: integer | null;
timestamp: string;
@@ -22,9 +22,9 @@ export interface KaiSDVXScore {
max_chain: integer;
critical: integer;
near: integer;
error: integer;
early: integer;
late: integer;
error: integer | null;
early: integer | null;
late: integer | null;
gauge_type: 0 | 1 | 2 | 3;
gauge_rate: integer;
timestamp: string;