Skip to content

Commit b3485ee

Browse files
pinapelzblobdashzkldi
committed
SDVX: add MAXXIVE CLEAR lamp (#1288)
* sdvx: add ac MAXXIVE CLEAR lamp * seperate USC lamps from SDVX for tests * Add maxxive in converter for api-cg/sdvx * feat: add migration * fix: pre-empt service support * lint(fix) * fix: my typescript tooling stopped working * fix: test --------- Co-authored-by: blobdash <fruityenloops@gmail.com> Co-authored-by: zkldi <20380519+zkldi@users.noreply.github.com>
1 parent 7bc336e commit b3485ee

File tree

13 files changed

+139
-16
lines changed

13 files changed

+139
-16
lines changed

client/src/components/tables/cells/VF6Cell.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ type VF6GPTString = "sdvx:Single" | "usc:Keyboard" | "usc:Controller";
1616
const SHORT_LAMPS = {
1717
CLEAR: "CLR",
1818
"EXCESSIVE CLEAR": "EXC",
19+
"MAXXIVE CLEAR": "MXV",
1920
"ULTIMATE CHAIN": "UC",
2021
} as const;
2122

@@ -99,7 +100,7 @@ export default function VF6Cell({
99100

100101
function InverseVF6(
101102
vf6: number,
102-
lamp: "CLEAR" | "EXCESSIVE CLEAR" | "ULTIMATE CHAIN",
103+
lamp: "CLEAR" | "EXCESSIVE CLEAR" | "MAXXIVE CLEAR" | "ULTIMATE CHAIN",
103104
level: number
104105
) {
105106
try {

client/src/lib/games/sdvx-usc.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const SDVXLIKE_ENUM_COLOURS: GPTClientImplementation<SDVXLikes>["enumColours"] =
3131
FAILED: COLOUR_SET.red,
3232
CLEAR: COLOUR_SET.green,
3333
"EXCESSIVE CLEAR": COLOUR_SET.purple,
34+
"MAXXIVE CLEAR": COLOUR_SET.white,
3435
"ULTIMATE CHAIN": COLOUR_SET.teal,
3536
"PERFECT ULTIMATE CHAIN": COLOUR_SET.gold,
3637
},

common/src/config/game-support/sdvx.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export const SDVX_SINGLE_CONF = {
8585
"FAILED",
8686
"CLEAR",
8787
"EXCESSIVE CLEAR",
88+
"MAXXIVE CLEAR",
8889
"ULTIMATE CHAIN",
8990
"PERFECT ULTIMATE CHAIN",
9091
],

common/src/constants/game.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ export enum CHUNITHM_NOTE_LAMPS {
2626
}
2727

2828
export enum SDVX_LAMPS {
29+
FAILED = 0,
30+
CLEAR = 1,
31+
EXCESSIVE_CLEAR = 2,
32+
MAXXIVE_CLEAR = 3,
33+
ULTIMATE_CHAIN = 4,
34+
PERFECT_ULTIMATE_CHAIN = 5,
35+
}
36+
37+
export enum USC_LAMPS {
2938
FAILED = 0,
3039
CLEAR = 1,
3140
EXCESSIVE_CLEAR = 2,

server/src/game-implementations/games/usc.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { USC_CONTROLLER_IMPL, USC_KEYBOARD_IMPL } from "./usc";
22
import db from "external/mongo/db";
33
import CreateLogCtx from "lib/logger/logger";
44
import { CreatePBDoc } from "lib/score-import/framework/pb/create-pb-doc";
5-
import { GetGPTString, SDVX_GRADES, SDVX_LAMPS } from "tachi-common";
5+
import { GetGPTString, SDVX_GRADES, USC_LAMPS } from "tachi-common";
66
import t from "tap";
77
import { dmf, mkMockPB, mkMockScore } from "test-utils/misc";
88
import ResetDBState from "test-utils/resets";
@@ -24,7 +24,7 @@ const scoreData: ScoreData<GPTStrings["usc"]> = {
2424
optional: { enumIndexes: {} },
2525
enumIndexes: {
2626
grade: SDVX_GRADES.AAA,
27-
lamp: SDVX_LAMPS.CLEAR,
27+
lamp: USC_LAMPS.CLEAR,
2828
},
2929
};
3030

@@ -142,7 +142,7 @@ for (const [playtype, impl] of [
142142

143143
f("grade", { grade: "AAA+", score: 9_817_342 }, SDVX_GRADES.S, "S-83K");
144144
f("score", { score: 9_820_123 }, 1_000_000, "9,820,123");
145-
f("lamp", { lamp: "CLEAR" }, SDVX_LAMPS.CLEAR, "CLEAR");
145+
f("lamp", { lamp: "CLEAR" }, USC_LAMPS.CLEAR, "CLEAR");
146146

147147
t.end();
148148
});
@@ -168,7 +168,7 @@ for (const [playtype, impl] of [
168168
scoreData: {
169169
score: 0,
170170
lamp: "ULTIMATE CHAIN",
171-
enumIndexes: { lamp: SDVX_LAMPS.ULTIMATE_CHAIN },
171+
enumIndexes: { lamp: USC_LAMPS.ULTIMATE_CHAIN },
172172
},
173173
})
174174
);
@@ -183,7 +183,7 @@ for (const [playtype, impl] of [
183183
scoreData: {
184184
score: mockScore.scoreData.score,
185185
lamp: "ULTIMATE CHAIN",
186-
enumIndexes: { lamp: SDVX_LAMPS.ULTIMATE_CHAIN },
186+
enumIndexes: { lamp: USC_LAMPS.ULTIMATE_CHAIN },
187187
},
188188
}
189189
);

server/src/lib/migration/migrations.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import RemoveMultifolderStats from "./migrations/remove-multifolder-stats";
1717
import RemoveRandom from "./migrations/remove-random";
1818
import RemoveSessionViews from "./migrations/remove-session-views";
1919
import RmHot from "./migrations/rm-hot";
20+
// import SdvxMaxxiveGoals from "./migrations/sdvx-maxxive-goals";
21+
// import SdvxMaxxiveLampRearrange from "./migrations/sdvx-maxxive-lamp-rearrange";
2022
import SessionsToScoreIDs from "./migrations/sessions-to-scoreIDs";
2123
import UpdateJubeatPreferredTables from "./migrations/update-jubeat-preferred-tables";
2224
import V3PropsMigration from "./migrations/v3-props";
@@ -72,6 +74,8 @@ if (Environment.nodeEnv !== "test") {
7274
RemoveIIDX2dxtraBeginners,
7375
RmHot,
7476
ChunithmLampSplit
77+
// SdvxMaxxiveLampRearrange,
78+
// SdvxMaxxiveGoals
7579
);
7680
}
7781

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import db from "external/mongo/db";
2+
import type { Migration } from "utils/types";
3+
4+
const migration: Migration = {
5+
id: "sdvx-maxxive-lamp-rearrange",
6+
up: async () => {
7+
await db.goals.update(
8+
{
9+
game: "sdvx",
10+
"criteria.key": "lamp",
11+
"criteria.value": 4,
12+
name: /PERFECT ULTIMATE CHAIN/u,
13+
},
14+
{
15+
$set: {
16+
"criteria.value": 5,
17+
},
18+
}
19+
);
20+
21+
await db.goals.update(
22+
{
23+
game: "sdvx",
24+
"criteria.key": "lamp",
25+
"criteria.value": 3,
26+
},
27+
{
28+
$set: {
29+
"criteria.value": 4,
30+
},
31+
}
32+
);
33+
},
34+
down: () => {
35+
throw new Error("not doing this");
36+
},
37+
};
38+
39+
export default migration;
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import db from "external/mongo/db";
2+
import type { Migration } from "utils/types";
3+
4+
const migration: Migration = {
5+
id: "sdvx-maxxive-lamp-rearrange",
6+
up: async () => {
7+
await db.scores.update(
8+
{
9+
game: "sdvx",
10+
"scoreData.lamp": "ULTIMATE CHAIN",
11+
},
12+
{
13+
$set: {
14+
"scoreData.enumIndexes.lamp": 4,
15+
},
16+
}
17+
);
18+
19+
await db.scores.update(
20+
{
21+
game: "sdvx",
22+
"scoreData.lamp": "PERFECT ULTIMATE CHAIN",
23+
},
24+
{
25+
$set: {
26+
"scoreData.enumIndexes.lamp": 5,
27+
},
28+
}
29+
);
30+
},
31+
down: async () => {
32+
await db.scores.update(
33+
{
34+
game: "sdvx",
35+
"scoreData.lamp": "ULTIMATE CHAIN",
36+
},
37+
{
38+
$set: {
39+
"scoreData.enumIndexes.lamp": 3,
40+
},
41+
}
42+
);
43+
44+
await db.scores.update(
45+
{
46+
game: "sdvx",
47+
"scoreData.lamp": "PERFECT ULTIMATE CHAIN",
48+
},
49+
{
50+
$set: {
51+
"scoreData.enumIndexes.lamp": 4,
52+
},
53+
}
54+
);
55+
},
56+
};
57+
58+
export default migration;

server/src/lib/score-import/import-types/common/api-cg/sdvx/converter.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ function ConvertCGSDVXLamp(clearType: number): GetEnumValue<"sdvx:Single", "lamp
121121
return "ULTIMATE CHAIN";
122122
case 5:
123123
return "PERFECT ULTIMATE CHAIN";
124+
case 6:
125+
return "MAXXIVE CLEAR";
124126
}
125127

126128
throw new InvalidScoreFailure(`Invalid lamp of ${clearType} - Could not convert.`);

server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ t.test("#ResolveKaiLamp", (t) => {
145145
t.equal(ResolveKaiLamp(3), "EXCESSIVE CLEAR");
146146
t.equal(ResolveKaiLamp(4), "ULTIMATE CHAIN");
147147
t.equal(ResolveKaiLamp(5), "PERFECT ULTIMATE CHAIN");
148-
t.throws(() => ResolveKaiLamp(6));
148+
t.equal(ResolveKaiLamp(6), "MAXXIVE CLEAR");
149+
t.throws(() => ResolveKaiLamp(7));
149150
t.throws(() => ResolveKaiLamp(0));
150151

151152
t.end();

0 commit comments

Comments
 (0)