Update 6.5 data

This commit is contained in:
Sakura Knoll
2023-04-10 19:10:40 +09:00 Unverified
parent f6011456e4
commit d7733a0ff6
19 changed files with 2636 additions and 4127 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+58 -4
View File
@@ -1,3 +1,57 @@
- id: aladdin-top
version: '6.5'
name: 'Aladdin (T)'
krName: '알라딘 (상)'
type: top
rarity: 5
hp: 393
atk: 114
def: 50
crt: 0
set: aladdin
skill:
name: Street Rogue
krName: 거리의 도적
description: |-
Ultimate deals 20.0% more Physical DMG. When Ultimate deals Bleed DMG, it deals 60.0% more Total DMG.
krDescription: |-
물리 대미지가 20.0% 증가한다. 필살기가 출혈 대미지를 가할 시 가하는 모든 대미지가 60.0% 증가한다.
- id: aladdin-mid
version: '6.5'
name: 'Aladdin (M)'
krName: '알라딘 (중)'
type: mid
rarity: 5
hp: 490
atk: 0
def: 239
crt: 7
set: aladdin
skill:
name: Wishing Lamp
krName: 요술램프
description: |-
The team deals 20.0% more Physical DMG to bleeding enemies. The host's attacks inflict 25.0% more Bleed Trauma.
krDescription: |-
파티원이 출혈 상태의 적에게 가하는 물리 대미지가 20.0% 증가하고, 캐릭터의 공격이 누적하는 출혈 게이지가 25.0% 증가한다.
- id: aladdin-bot
version: '6.5'
name: 'Aladdin (B)'
krName: '알라딘 (하)'
type: bot
rarity: 5
hp: 434
atk: 61
def: 66
crt: 9
set: aladdin
skill:
name: Magic Carpet Ride
krName: 마법의 양탄자
description: |-
Increases Total DMG by 15.0%. All enemies take 20.0% more Bleed DMG.
krDescription: |-
모든 대미지가 15.0% 증가하고, 모든 적이 받는 출혈 대미지가 20.0% 증가한다.
- id: kiana-evening-invite-bot
version: '6.4'
name: 'Kiana: Evening Invite (B)'
@@ -732,11 +786,11 @@
krName: 왕자의 복수
description:
Total DMG increases by 20.0%. Triggering Ultimate Evasion Skill or
Retaliation Skill enhances host and boosts Total DMG by 20.0% for 15s.
Retaliation Skill increases Total DMG by 20.0% for 15s.
Triggering it again resets the duration.
krDescription:
'모든 대미지가 20.0% 증가한다. 극한 회피 또는 방어 반격 스킬 발동 시, 캐릭터는 강화를 획득해 모든 대미지가
추가로 20.0% 증가한다. 지속 시간: 15초, 중복 발동 시 지속 시간 갱신다.'
krDescription: |-
모든 대미지가 20.0% 증가한다. 극한 회피 스킬 또는 방어 반격 스킬 발동 시, 캐릭터는 강화를 획득해 모든 대미지가
추가로 20.0% 증가한다. 지속 시간: 15초, 중복 발동 시 지속 시간 갱신다.
- id: bianka-theatre-bot
version: '5.5'
name: 'Bianka: Theatre (B)'
+20
View File
@@ -1,5 +1,25 @@
- previousVersion: '6.4'
version: '6.5'
name: 'Hot Sands Escapade'
krName: '뜨거운 모래의 대모험'
duration:
- 2023-04-06
- 2023-05-18
newBattlesuits:
- vq
newWeapons:
- twirling-glaze-lustrous-bloom
- twirling-glaze
newStigmataSets:
- aladdin
newFoundryStigmataSets: []
description: ''
superstring: []
ma: []
supplyEvents: []
- previousVersion: '6.3'
version: '6.4'
nextVersion: '6.5'
name: 'From Finality, the Origin'
krName: '종언에서 기원으로'
duration:
+620 -1114
View File
File diff suppressed because it is too large Load Diff
+36 -32
View File
@@ -1,64 +1,68 @@
export const erVersions = [
{
version: '5.0',
battlesuits: ['hfs', 'hot', 'hor', 'sn', 'aka', 'ri', 'vg', 'pv'],
battlesuits: ['hfs', 'hot', 'hor', 'sn', 'aka', 'ri', 'vg', 'pv']
},
{
version: '5.1',
battlesuits: ['mpe', 'bke', 'lk', 'stfu'],
battlesuits: ['mpe', 'bke', 'lk', 'stfu']
},
{
version: '5.2',
battlesuits: ['io', 'ma', 'nyx'],
battlesuits: ['io', 'ma', 'nyx']
},
{
version: '5.3',
battlesuits: ['sns', 'tp', 'hos'],
battlesuits: ['sns', 'tp', 'hos']
},
{
version: '5.4',
battlesuits: ['sw', 'da'],
battlesuits: ['sw', 'da']
},
{
version: '5.5',
battlesuits: ['pe', 'spa'],
battlesuits: ['pe', 'spa']
},
{
version: '5.6',
battlesuits: ['rc', 'fr'],
battlesuits: ['rc', 'fr']
},
{
version: '5.7',
battlesuits: ['aponia', 'eden'],
battlesuits: ['aponia', 'eden']
},
{
version: '5.8',
battlesuits: ['griseo', 'ft'],
battlesuits: ['griseo', 'ft']
},
{
version: '5.9',
battlesuits: ['vill-v', 'meme'],
battlesuits: ['vill-v', 'meme']
},
{
version: '6.0',
battlesuits: ['hoh', 'hov'],
battlesuits: ['hoh', 'hov']
},
{
version: '6.1',
battlesuits: ['jk'],
battlesuits: ['jk']
},
{
version: '6.2',
battlesuits: ['cn', 'vke'],
battlesuits: ['cn', 'vke']
},
{
version: '6.3',
battlesuits: ['hotr', '6s'],
battlesuits: ['hotr', '6s']
},
{
version: '6.4',
battlesuits: ['hof', 'hoo'],
battlesuits: ['hof', 'hoo']
},
{
version: '6.4',
battlesuits: ['vq', 'sk']
}
].reverse()
export const erBattlesuits = erVersions.reduce<string[]>((list, version) => {
@@ -80,7 +84,7 @@ export const supportBattlesuitIds = [
'rc',
'sa',
'sn',
'fr',
'fr'
]
export const remembranceSigilIds = [
@@ -128,7 +132,7 @@ export const remembranceSigilIds = [
'the-lonely-moon',
'awakening',
'key-to-the-deep',
'thorny-crown',
'thorny-crown'
]
export function isGeneralSigil(sigilId: string) {
@@ -177,9 +181,9 @@ export const signetGroups = [
krName: '엘리시아',
altName: '■■',
krAltName: '■■',
setIds: erBattlesuits.map((battlesuitId) => {
setIds: erBattlesuits.map(battlesuitId => {
return `elysia-${battlesuitId}`
}),
})
},
{
id: 'eden',
@@ -187,7 +191,7 @@ export const signetGroups = [
krName: '에덴',
altName: 'Gold',
krAltName: '황금',
setIds: ['eden-normal', 'eden-nexus-1', 'eden-nexus-2'],
setIds: ['eden-normal', 'eden-nexus-1', 'eden-nexus-2']
},
{
id: 'hua',
@@ -195,7 +199,7 @@ export const signetGroups = [
krName: '화',
altName: 'Vicissitude',
krAltName: '부생',
setIds: ['hua-normal', 'hua-nexus-1', 'hua-nexus-2'],
setIds: ['hua-normal', 'hua-nexus-1', 'hua-nexus-2']
},
{
id: 'kalpas',
@@ -203,7 +207,7 @@ export const signetGroups = [
krName: '칼파스',
altName: 'Decimation',
krAltName: '오멸',
setIds: ['kalpas-normal', 'kalpas-nexus-1', 'kalpas-nexus-2'],
setIds: ['kalpas-normal', 'kalpas-nexus-1', 'kalpas-nexus-2']
},
{
id: 'kevin',
@@ -211,7 +215,7 @@ export const signetGroups = [
krName: '케빈',
altName: 'Deliverance',
krAltName: '구원',
setIds: ['kevin-normal', 'kevin-nexus-1', 'kevin-nexus-2'],
setIds: ['kevin-normal', 'kevin-nexus-1', 'kevin-nexus-2']
},
{
id: 'mobius',
@@ -219,7 +223,7 @@ export const signetGroups = [
krName: '뫼비우스',
altName: 'Infinity',
krAltName: '무한',
setIds: ['mobius-normal', 'mobius-nexus-1', 'mobius-nexus-2'],
setIds: ['mobius-normal', 'mobius-nexus-1', 'mobius-nexus-2']
},
{
id: 'sakura',
@@ -227,7 +231,7 @@ export const signetGroups = [
krName: '사쿠라',
altName: 'Setsuna',
krAltName: '찰나',
setIds: ['sakura-normal', 'sakura-nexus-1', 'sakura-nexus-2'],
setIds: ['sakura-normal', 'sakura-nexus-1', 'sakura-nexus-2']
},
{
id: 'su',
@@ -235,7 +239,7 @@ export const signetGroups = [
krName: '수',
altName: 'Bodhi',
krAltName: '천혜',
setIds: ['su-normal', 'su-nexus-1', 'su-nexus-2'],
setIds: ['su-normal', 'su-nexus-1', 'su-nexus-2']
},
{
id: 'pardofelis',
@@ -243,7 +247,7 @@ export const signetGroups = [
krName: '파르도 필리스',
altName: 'Reverie',
krAltName: '환몽',
setIds: ['pardofelis-normal', 'pardofelis-nexus-1'],
setIds: ['pardofelis-normal', 'pardofelis-nexus-1']
},
{
id: 'vill-v',
@@ -251,7 +255,7 @@ export const signetGroups = [
krName: '빌-브이',
altName: 'Helix',
krAltName: '나선',
setIds: ['vill-v-normal', 'vill-v-nexus-1'],
setIds: ['vill-v-normal', 'vill-v-nexus-1']
},
{
id: 'aponia',
@@ -259,7 +263,7 @@ export const signetGroups = [
krName: '아포니아',
altName: 'Discipline',
krAltName: '계율',
setIds: ['aponia-normal', 'aponia-nexus-1'],
setIds: ['aponia-normal', 'aponia-nexus-1']
},
{
id: 'kosma',
@@ -267,7 +271,7 @@ export const signetGroups = [
krName: '코스마',
altName: 'Daybreak',
krAltName: '욱광',
setIds: ['kosma-normal', 'kosma-nexus-1'],
setIds: ['kosma-normal', 'kosma-nexus-1']
},
{
id: 'griseo',
@@ -275,8 +279,8 @@ export const signetGroups = [
krName: '그리세오',
altName: 'Stars',
krAltName: '번성',
setIds: ['griseo-normal', 'griseo-nexus-1'],
},
setIds: ['griseo-normal', 'griseo-nexus-1']
}
]
export function parseSignetId(id: string) {
@@ -1,13 +1,5 @@
/** @jsxImportSource theme-ui */
import {
Box,
Card,
Flex,
Heading,
Paragraph,
Text,
Image,
} from '@theme-ui/components'
import { Box, Card, Flex, Heading, Paragraph, Text, Image } from '@theme-ui/components'
import { NextPageContext } from 'next'
import React from 'react'
import BattlesuitFeatureLabel from '../../../components/atoms/BattlesuitFeatureLabel'
@@ -22,13 +14,10 @@ import {
battlesuitFeatures,
BattlesuitSkillGroup,
battlesuitTypes,
valkyries,
valkyries
} from '../../../lib/honkai3rd/battlesuits'
import { generateI18NPaths, getI18NProps } from '../../../server/i18n'
import {
getBattlesuitById,
listBattlesuits,
} from '../../../server/data/honkai3rd/battlesuits'
import { getBattlesuitById, listBattlesuits } from '../../../server/data/honkai3rd/battlesuits'
import { translate, useTranslation } from '../../../lib/i18n'
import { useRouter } from 'next/router'
import Head from '../../../components/atoms/Head'
@@ -51,44 +40,31 @@ interface BattlesuitShowPageProps {
stigmataMap: StigmataObjectMap
}
const BattlesuitShowPage = ({
battlesuit,
weaponMap,
stigmataMap,
}: BattlesuitShowPageProps) => {
const BattlesuitShowPage = ({ battlesuit, weaponMap, stigmataMap }: BattlesuitShowPageProps) => {
const { t } = useTranslation()
const { locale } = useRouter()
const { label: valkyrieLabel, krLabel } = valkyries.find(
(aValkyrie) => aValkyrie.value === battlesuit.valkyrie
) || { label: battlesuit.valkyrie, krLabel: battlesuit.valkyrie }
const { label: valkyrieLabel, krLabel } = valkyries.find(aValkyrie => aValkyrie.value === battlesuit.valkyrie) || {
label: battlesuit.valkyrie,
krLabel: battlesuit.valkyrie
}
const valkyrieName = translate(locale, { 'ko-KR': krLabel }, valkyrieLabel)
const battlesuitType = battlesuitTypes.find(
(aType) => aType.value === battlesuit.type
)
const battlesuitType = battlesuitTypes.find(aType => aType.value === battlesuit.type)
const battlesuitTypeLabel = battlesuitType
? translate(
locale,
{ 'ko-KR': battlesuitType.krLabel },
battlesuitType.label
)
? translate(locale, { 'ko-KR': battlesuitType.krLabel }, battlesuitType.label)
: capitalize(battlesuit.type)
return (
<Honkai3rdLayout>
<Head
title={`${battlesuit.name} - ${t('common.honkai-3rd')} - ${t(
'common.abyss-lab'
)}`}
title={`${battlesuit.name} - ${t('common.honkai-3rd')} - ${t('common.abyss-lab')}`}
description={`${t('common.honkai-3rd')} ${t(
'battlesuit-show.battlesuit'
)} / ${valkyrieName} / ${battlesuitTypeLabel} / ${battlesuit.features
.map((feature) => {
const featureData = battlesuitFeatures.find(
(aFeature) => aFeature.value === feature
)
.map(feature => {
const featureData = battlesuitFeatures.find(aFeature => aFeature.value === feature)
if (featureData == null) {
return feature
}
@@ -107,16 +83,16 @@ const BattlesuitShowPage = ({
{ href: '/honkai3rd', label: t('common.honkai-3rd') },
{
href: '/honkai3rd/battlesuits',
label: t('common.battlesuits'),
label: t('common.battlesuits')
},
{
href: `/honkai3rd/battlesuits/${battlesuit.id}`,
label: battlesuit.name,
},
label: battlesuit.name
}
]}
/>
<Heading as='h1'>{battlesuit.name}</Heading>
<Heading as="h1">{battlesuit.name}</Heading>
<Box mb={3}>
<Box
@@ -124,7 +100,7 @@ const BattlesuitShowPage = ({
position: 'relative',
overflow: 'hidden',
width: '100%',
maxWidth: [300, 400],
maxWidth: [300, 400]
}}
>
<Image
@@ -138,7 +114,7 @@ const BattlesuitShowPage = ({
<Card
sx={{
overflow: 'hidden',
overflow: 'hidden'
}}
mb={3}
>
@@ -146,7 +122,7 @@ const BattlesuitShowPage = ({
<PageLink
href={{
pathname: '/honkai3rd/battlesuits',
query: { valkyrie: battlesuit.valkyrie },
query: { valkyrie: battlesuit.valkyrie }
}}
>
<ValkyrieLabel valkyrie={battlesuit.valkyrie} />
@@ -156,20 +132,20 @@ const BattlesuitShowPage = ({
<PageLink
href={{
pathname: '/honkai3rd/battlesuits',
query: { valkyrie: battlesuit.type },
query: { valkyrie: battlesuit.type }
}}
>
<TypeLabel type={battlesuit.type} />
</PageLink>
</Box>
<Flex p={2} sx={{ flexWrap: 'wrap', rowGap: 1 }}>
{battlesuit.features.map((feature) => {
{battlesuit.features.map(feature => {
return (
<Box mr={2} key={feature}>
<PageLink
href={{
pathname: '/honkai3rd/battlesuits',
query: { feature: feature },
query: { feature: feature }
}}
>
<BattlesuitFeatureLabel feature={feature} />
@@ -185,44 +161,30 @@ const BattlesuitShowPage = ({
sx={{
mb: 3,
p: 2,
overflow: 'hidden',
overflow: 'hidden'
}}
>
{battlesuit.equipment.map((equipmentItem) => {
{battlesuit.equipment.map(equipmentItem => {
return (
<Box key={equipmentItem.type}>
<Heading
as='h3'
as="h3"
sx={{
mb: 1,
mb: 1
}}
>
{t(`battlesuit-show.equipmentTypes.${equipmentItem.type}`)}
</Heading>
<Flex sx={{ mx: -1 }}>
{equipmentItem.weapon != null && (
<WeaponCard
size='sm'
weapon={weaponMap[equipmentItem.weapon]}
/>
)}
{equipmentItem.weapon != null && <WeaponCard size="sm" weapon={weaponMap[equipmentItem.weapon]} />}
{equipmentItem.stigmataTop != null && (
<StigmataCard
size='sm'
stigmata={stigmataMap[equipmentItem.stigmataTop]}
/>
<StigmataCard size="sm" stigmata={stigmataMap[equipmentItem.stigmataTop]} />
)}
{equipmentItem.stigmataMid != null && (
<StigmataCard
size='sm'
stigmata={stigmataMap[equipmentItem.stigmataMid]}
/>
<StigmataCard size="sm" stigmata={stigmataMap[equipmentItem.stigmataMid]} />
)}
{equipmentItem.stigmataBot != null && (
<StigmataCard
size='sm'
stigmata={stigmataMap[equipmentItem.stigmataBot]}
/>
<StigmataCard size="sm" stigmata={stigmataMap[equipmentItem.stigmataBot]} />
)}
</Flex>
</Box>
@@ -231,41 +193,20 @@ const BattlesuitShowPage = ({
</Card>
)}
<BattlesuitSkillGroupCard
heading={t('battlesuit-show.leader')}
skillGroup={battlesuit.leader}
/>
<BattlesuitSkillGroupCard heading={t('battlesuit-show.leader')} skillGroup={battlesuit.leader} />
<BattlesuitSkillGroupCard
heading={t('battlesuit-show.passive')}
skillGroup={battlesuit.passive}
/>
<BattlesuitSkillGroupCard heading={t('battlesuit-show.passive')} skillGroup={battlesuit.passive} />
<BattlesuitSkillGroupCard
heading={t('battlesuit-show.evasion')}
skillGroup={battlesuit.evasion}
/>
<BattlesuitSkillGroupCard heading={t('battlesuit-show.evasion')} skillGroup={battlesuit.evasion} />
<BattlesuitSkillGroupCard
heading={t('battlesuit-show.special-attack')}
skillGroup={battlesuit.special}
/>
<BattlesuitSkillGroupCard heading={t('battlesuit-show.special-attack')} skillGroup={battlesuit.special} />
<BattlesuitSkillGroupCard
heading={t('battlesuit-show.ultimate')}
skillGroup={battlesuit.ultimate}
/>
<BattlesuitSkillGroupCard heading={t('battlesuit-show.ultimate')} skillGroup={battlesuit.ultimate} />
<BattlesuitSkillGroupCard
heading={t('battlesuit-show.basic-attack')}
skillGroup={battlesuit.basic}
/>
<BattlesuitSkillGroupCard heading={t('battlesuit-show.basic-attack')} skillGroup={battlesuit.basic} />
{battlesuit.sp != null && (
<BattlesuitSkillGroupCard
heading={t('battlesuit-show.sp-skill')}
skillGroup={battlesuit.sp}
/>
<BattlesuitSkillGroupCard heading={t('battlesuit-show.sp-skill')} skillGroup={battlesuit.sp} />
)}
</Box>
</Honkai3rdLayout>
@@ -274,10 +215,7 @@ const BattlesuitShowPage = ({
export default BattlesuitShowPage
export async function getStaticProps({
params,
locale,
}: NextPageContext & { params: { battlesuitId: string } }) {
export async function getStaticProps({ params, locale }: NextPageContext & { params: { battlesuitId: string } }) {
const battlesuit = getBattlesuitById(params.battlesuitId, locale)!
const { weaponIds, stigmataIds } = (battlesuit.equipment || []).reduce<{
weaponIds: string[]
@@ -285,11 +223,7 @@ export async function getStaticProps({
}>(
(acc, equipmentItem) => {
acc.weaponIds.push(equipmentItem.weapon)
acc.stigmataIds.push(
equipmentItem.stigmataTop,
equipmentItem.stigmataMid,
equipmentItem.stigmataBot
)
acc.stigmataIds.push(equipmentItem.stigmataTop, equipmentItem.stigmataMid, equipmentItem.stigmataBot)
return acc
},
{ weaponIds: [], stigmataIds: [] }
@@ -303,21 +237,21 @@ export async function getStaticProps({
battlesuit,
weaponMap,
stigmataMap,
...(await getI18NProps(locale)),
},
...(await getI18NProps(locale))
}
}
}
export async function getStaticPaths() {
return {
paths: generateI18NPaths(
listBattlesuits().map((battlesuit) => {
listBattlesuits().map(battlesuit => {
return {
params: { battlesuitId: battlesuit.id },
params: { battlesuitId: battlesuit.id }
}
})
),
fallback: false,
fallback: false
}
}
@@ -326,19 +260,16 @@ interface BattlesuitSkillGroupCardProps {
skillGroup: BattlesuitSkillGroup
}
const BattlesuitSkillGroupCard = ({
heading,
skillGroup,
}: BattlesuitSkillGroupCardProps) => {
const BattlesuitSkillGroupCard = ({ heading, skillGroup }: BattlesuitSkillGroupCardProps) => {
return (
<Card mb={3}>
<Box
sx={{
p: 2,
borderBottom: 'default',
borderBottom: 'default'
}}
>
<Heading as='h2' mb={1}>
<Heading as="h2" mb={1}>
{skillGroup.core.name}
</Heading>
<SecondaryLabel>{heading}</SecondaryLabel>
@@ -348,26 +279,19 @@ const BattlesuitSkillGroupCard = ({
{skillGroup.core.description}
</Paragraph>
{skillGroup.subskills.map((subskill) => {
{skillGroup.subskills.map(subskill => {
return (
<React.Fragment key={subskill.name}>
<Heading as='h3' p={2} m={0} sx={{ borderBottom: 'default' }}>
<Heading as="h3" p={2} m={0} sx={{ borderBottom: 'default' }}>
<Flex sx={{ alignItems: 'center' }}>
<Text>{subskill.name}</Text>
{subskill.requiredRank != null ? (
/^[0-9]/.test(subskill.requiredRank) ? (
<Box
ml={2}
sx={{ height: 30, lineHeight: '30px', fontSize: 2 }}
>
<Box ml={2} sx={{ height: 30, lineHeight: '30px', fontSize: 2 }}>
{subskill.requiredRank.slice(0, 1)}
</Box>
) : (
<BattlesuitRankIcon
rank={subskill.requiredRank}
size={30}
ml={2}
/>
<BattlesuitRankIcon rank={subskill.requiredRank} size={30} ml={2} />
)
) : (
<Box sx={{ height: 30 }} />
@@ -380,7 +304,7 @@ const BattlesuitSkillGroupCard = ({
sx={{
whiteSpace: 'pre-wrap',
borderBottom: 'default',
'&:last-child': { borderBottom: 'none' },
'&:last-child': { borderBottom: 'none' }
}}
>
{subskill.description}
@@ -14,10 +14,7 @@ import { getWeaponMapByIds } from '../../../../server/data/honkai3rd/weapons'
import { StigmataData } from '../../../../lib/honkai3rd/stigmata'
import { getStigmataMapByIds } from '../../../../server/data/honkai3rd/stigmata'
import { getSignetGroupById } from '../../../../server/data/honkai3rd/elysianRealm'
import {
erBattlesuits,
SignetSet,
} from '../../../../lib/honkai3rd/elysianRealm'
import { erBattlesuits, SignetSet } from '../../../../lib/honkai3rd/elysianRealm'
import SignetCard from '../../../../components/molecules/SignetCard'
type WeaponObjectMap = { [key: string]: WeaponData }
@@ -30,22 +27,15 @@ interface BattlesuitShowPageProps {
signetSet: SignetSet
}
const BattlesuitShowPage = ({
battlesuit,
weaponMap,
stigmataMap,
signetSet,
}: BattlesuitShowPageProps) => {
const BattlesuitShowPage = ({ battlesuit, weaponMap, stigmataMap, signetSet }: BattlesuitShowPageProps) => {
const { t } = useTranslation()
return (
<Honkai3rdLayout>
<Head
title={`${battlesuit.name} (${t('common.elysian-realm')}) - ${t(
'common.honkai-3rd'
)} - ${t('common.abyss-lab')}`}
description={`${t('common.honkai-3rd')} ${t(
'common.elysian-realm'
)} ${t('battlesuit-show.battlesuit')}`}
title={`${battlesuit.name} (${t('common.elysian-realm')}) - ${t('common.honkai-3rd')} - ${t(
'common.abyss-lab'
)}`}
description={`${t('common.honkai-3rd')} ${t('common.elysian-realm')} ${t('battlesuit-show.battlesuit')}`}
canonicalHref={`/honkai3rd/elysian-realm/battlesuits/${battlesuit.id}`}
/>
@@ -55,16 +45,16 @@ const BattlesuitShowPage = ({
{ href: '/honkai3rd', label: t('common.honkai-3rd') },
{
href: '/honkai3rd/elysian-realm',
label: t('common.elysian-realm'),
label: t('common.elysian-realm')
},
{
href: `/honkai3rd/elysian-realm/battlesuits/${battlesuit.id}`,
label: battlesuit.name,
},
label: battlesuit.name
}
]}
/>
<Heading as='h1'>{battlesuit.name}</Heading>
<Heading as="h1">{battlesuit.name}</Heading>
<Box mb={3}>
<Box
@@ -72,7 +62,7 @@ const BattlesuitShowPage = ({
position: 'relative',
overflow: 'hidden',
width: '100%',
maxWidth: [300, 400],
maxWidth: [300, 400]
}}
>
<Image
@@ -84,10 +74,10 @@ const BattlesuitShowPage = ({
</Box>
</Box>
<Heading as='h2'>{t('elysian-realm.exclusive-signets')}</Heading>
<Heading as="h2">{t('elysian-realm.exclusive-signets')}</Heading>
<Box>
{signetSet.signets.map((signet) => {
{signetSet.signets.map(signet => {
return <SignetCard key={signet.id} signet={signet} />
})}
</Box>
@@ -98,10 +88,7 @@ const BattlesuitShowPage = ({
export default BattlesuitShowPage
export async function getStaticProps({
params,
locale,
}: NextPageContext & { params: { battlesuitId: string } }) {
export async function getStaticProps({ params, locale }: NextPageContext & { params: { battlesuitId: string } }) {
try {
const battlesuit = getBattlesuitById(params.battlesuitId, locale)!
const { weaponIds, stigmataIds } = (battlesuit.equipment || []).reduce<{
@@ -110,11 +97,7 @@ export async function getStaticProps({
}>(
(acc, equipmentItem) => {
acc.weaponIds.push(equipmentItem.weapon)
acc.stigmataIds.push(
equipmentItem.stigmataTop,
equipmentItem.stigmataMid,
equipmentItem.stigmataBot
)
acc.stigmataIds.push(equipmentItem.stigmataTop, equipmentItem.stigmataMid, equipmentItem.stigmataBot)
return acc
},
{ weaponIds: [], stigmataIds: [] }
@@ -124,7 +107,7 @@ export async function getStaticProps({
const stigmataMap = getStigmataMapByIds(stigmataIds)
const signetGroup = getSignetGroupById('elysia', locale)
const signetSet = signetGroup.sets.find((set) => {
const signetSet = signetGroup.sets.find(set => {
return set.id === `elysia-${params.battlesuitId}`
})
@@ -134,8 +117,8 @@ export async function getStaticProps({
weaponMap,
stigmataMap,
signetSet,
...(await getI18NProps(locale)),
},
...(await getI18NProps(locale))
}
}
} catch (error) {
console.log(error)
@@ -145,12 +128,12 @@ export async function getStaticProps({
export async function getStaticPaths() {
return {
paths: generateI18NPaths(
erBattlesuits.map((battlesuitId) => {
erBattlesuits.map(battlesuitId => {
return {
params: { battlesuitId: battlesuitId },
params: { battlesuitId: battlesuitId }
}
})
),
fallback: false,
fallback: false
}
}