Skip to content

Commit b9ebf65

Browse files
committed
add: grand servant classes
1 parent b5f604f commit b9ebf65

File tree

3 files changed

+48
-3
lines changed

3 files changed

+48
-3
lines changed

src/cache/prepare-cache/classNames.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
import { ClassName } from "@atlasacademy/api-connector";
22

33
export function convertClassName(name: ClassName): ServantClass {
4+
// TEMP: manually handle grand servants
5+
if (name.startsWith("grandUnBeast")) {
6+
return "grandUnbeast";
7+
}
8+
if (name.startsWith("grand")) {
9+
return name as Extract<ServantClass, `grand${string}`>;
10+
}
11+
412
switch (name) {
513
case ClassName.SABER:
614
case ClassName.ARCHER:
@@ -22,8 +30,8 @@ export function convertClassName(name: ClassName): ServantClass {
2230
// case ClassName.UN_BEAST_OLGA_MARIE: // not yet published change
2331
return "beast";
2432
// @ts-ignore
25-
case "unBeastOlgaMarie": // TEMP: unbeast is not yet in the atlas data
26-
return "beast";
33+
case "unBeastOlgaMarie": // TEMP: unbeast is not yet in the api-connector
34+
return "unbeast";
2735
default:
2836
throw new Error(`Unsupported class name '${name}'`);
2937
}

src/types/servant.d.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,23 @@ type ServantClass =
1313
| "moonCancer"
1414
| "pretender"
1515
| "foreigner"
16-
| "beast";
16+
| "beast"
17+
| "unbeast"
18+
| "grandSaber"
19+
| "grandArcher"
20+
| "grandLancer"
21+
| "grandRider"
22+
| "grandCaster"
23+
| "grandAssassin"
24+
| "grandBerserker"
25+
| "grandShielder"
26+
| "grandRuler"
27+
| "grandAlterego"
28+
| "grandAvenger"
29+
| "grandMoonCancer"
30+
| "grandForeigner"
31+
| "grandPretender"
32+
| "grandUnbeast";
1733

1834
interface Servant extends EntityBase {
1935
names: string[];

src/utils/describeServantClass.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77
export function describeServantClass(name: ServantClass): string {
88
switch (name) {
9+
// REGULAR
910
case "saber":
1011
case "archer":
1112
case "lancer":
@@ -19,10 +20,30 @@ export function describeServantClass(name: ServantClass): string {
1920
case "pretender":
2021
case "foreigner":
2122
case "beast":
23+
case "unbeast":
2224
return name.replace(/^(.)/, c => c.toUpperCase());
2325
case "moonCancer":
2426
return "Moon Cancer";
2527
case "alterEgo":
2628
return "Alter Ego";
29+
// GRANDS
30+
case "grandSaber":
31+
case "grandArcher":
32+
case "grandLancer":
33+
case "grandRider":
34+
case "grandCaster":
35+
case "grandAssassin":
36+
case "grandBerserker":
37+
case "grandShielder":
38+
case "grandRuler":
39+
case "grandAvenger":
40+
case "grandForeigner":
41+
case "grandPretender":
42+
case "grandUnbeast":
43+
return name.replace(/^grand/, "Grand ");
44+
case "grandMoonCancer":
45+
return "Grand Moon Cancer";
46+
case "grandAlterego":
47+
return "Grand Alter Ego";
2748
}
2849
}

0 commit comments

Comments
 (0)