feat: support resolving multi-element characters
This commit is contained in:
@@ -57,6 +57,18 @@ export type ElementType =
|
||||
| "Ice"
|
||||
| "Grass";
|
||||
|
||||
export const ElementList = [
|
||||
"None",
|
||||
"Fire",
|
||||
"Water",
|
||||
"Grass",
|
||||
"Electric",
|
||||
"Ice",
|
||||
"Physical",
|
||||
"Wind",
|
||||
"Rock",
|
||||
];
|
||||
|
||||
export type WeaponType =
|
||||
| "WEAPON_SWORD_ONE_HAND"
|
||||
| "WEAPON_CLAYMORE"
|
||||
|
||||
+16
-4
@@ -28,7 +28,7 @@ import { cardErrorLocs } from "@/lib/locs";
|
||||
import { createLogger } from "@/lib/logger";
|
||||
import { mockData } from "@/lib/mock";
|
||||
import { buildDisplayRows } from "@/lib/rows";
|
||||
import { SubstatOrder } from "@/type/enka";
|
||||
import { ElementList, SubstatOrder } from "@/type/enka";
|
||||
import { PercentageFightProp } from "@/type/fightPropMap";
|
||||
import { ErrorPage } from "./error";
|
||||
|
||||
@@ -136,7 +136,19 @@ export function card(app: App) {
|
||||
);
|
||||
if (!char) return error(400, errorLoc.notInShowcase);
|
||||
|
||||
const avatar = avatarStore[char.avatar.avatarId];
|
||||
const avatar =
|
||||
Object.entries(avatarStore).find(
|
||||
([avatarId, avatar]) =>
|
||||
avatarId.split("-")[0] === `${char.avatar.avatarId}` &&
|
||||
avatar.Element ===
|
||||
ElementList[
|
||||
(
|
||||
data.playerInfo.showAvatarInfoList.find(
|
||||
(e) => e.avatar.avatarId === char.avatar.avatarId,
|
||||
) as { energyType: number } | undefined
|
||||
)?.energyType ?? 0
|
||||
],
|
||||
)?.[1] || avatarStore[char.avatar.avatarId];
|
||||
if (!avatar) return error(400, errorLoc.unsupported);
|
||||
|
||||
if (!char.equipList)
|
||||
@@ -376,7 +388,7 @@ export function card(app: App) {
|
||||
{/* constellation */}
|
||||
<div
|
||||
tw="flex align-start flex-col text-[1.12em]"
|
||||
className={`${char.avatar.element} locked`}
|
||||
className={`${avatar.Element} locked`}
|
||||
>
|
||||
{avatar.Consts.map((c, i) => (
|
||||
<div
|
||||
@@ -428,7 +440,7 @@ export function card(app: App) {
|
||||
return (
|
||||
<div tw="mt-[.6em] relative">
|
||||
<TalentSvg
|
||||
tw={`Talents ${char.avatar.element} w-[3.6em] opacity-60 text-black`}
|
||||
tw={`Talents ${avatar.Element} w-[3.6em] opacity-60 text-black`}
|
||||
/>
|
||||
<img
|
||||
key={key}
|
||||
|
||||
Reference in New Issue
Block a user