Add recommended equipments for battlesuits
This commit is contained in:
@@ -5,6 +5,15 @@
|
||||
"type": "psychic",
|
||||
"valkyrie": "fuhua",
|
||||
"features": ["fire-dmg", "time mastery", "gather", "ignite"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "cosmic-duality",
|
||||
"stigmataTop": "fu-hua-margrave-top",
|
||||
"stigmataMid": "fu-hua-margrave-mid",
|
||||
"stigmataBot": "fu-hua-margrave-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Hex of Exposure",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "rita",
|
||||
"features": ["ice-dmg", "burst", "freeze"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "skadi-of-thrymheim",
|
||||
"stigmataTop": "ana-schariac-top",
|
||||
"stigmataMid": "ana-schariac-mid",
|
||||
"stigmataBot": "ana-schariac-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Herald of Dawn",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "asuka",
|
||||
"features": ["physical", "time mastery"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "lance-of-longinus",
|
||||
"stigmataTop": "columbus-top",
|
||||
"stigmataMid": "columbus-mid",
|
||||
"stigmataBot": "columbus-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Heart: Pure Again",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "mecha",
|
||||
"valkyrie": "durandal",
|
||||
"features": ["physical", "burst", "time mastery", "heavy-atk"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "abyss-flower-liminal-spiral",
|
||||
"stigmataTop": "dante-top",
|
||||
"stigmataMid": "dante-mid",
|
||||
"stigmataBot": "dante-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Horns of Jericho",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "durandal",
|
||||
"features": ["fire-dmg", "time mastery", "gather", "ignite"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "sagittarius-astra",
|
||||
"stigmataTop": "shakespeare-adrift-top",
|
||||
"stigmataMid": "shakespeare-adrift-mid",
|
||||
"stigmataBot": "shakespeare-adrift-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Crux Galactica",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "quantum",
|
||||
"valkyrie": "rita",
|
||||
"features": ["lightning-dmg", "time mastery", "gather", "paralyze"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "iris-of-helheim",
|
||||
"stigmataTop": "irene-adler-top",
|
||||
"stigmataMid": "irene-adler-mid",
|
||||
"stigmataBot": "irene-adler-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Tonight or Never",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "psychic",
|
||||
"valkyrie": "olenyevas",
|
||||
"features": ["physical", "gather", "time mastery"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "sleeper-s-dream",
|
||||
"stigmataTop": "dickens-top",
|
||||
"stigmataMid": "dickens-mid",
|
||||
"stigmataBot": "dickens-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "SHOWTIME!",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "psychic",
|
||||
"valkyrie": "bronya",
|
||||
"features": ["ice-dmg", "time mastery", "fast atk"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "crusher-bunny-19c",
|
||||
"stigmataTop": "turgenev-top",
|
||||
"stigmataMid": "turgenev-mid",
|
||||
"stigmataBot": "turgenev-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "H-T-T-P-S",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "psychic",
|
||||
"valkyrie": "kiana",
|
||||
"features": ["fire-dmg", "heal", "time mastery", "gather", "aerial"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "key-of-radiance",
|
||||
"stigmataTop": "murata-himeko-top",
|
||||
"stigmataMid": "murata-himeko-mid",
|
||||
"stigmataBot": "murata-himeko-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Nameless Knight-Errant's Path",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "mecha",
|
||||
"valkyrie": "bronya",
|
||||
"features": ["ice-dmg", "burst", "time mastery", "freeze"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "domain-of-revelation",
|
||||
"stigmataTop": "welt-yang-top",
|
||||
"stigmataMid": "welt-yang-mid",
|
||||
"stigmataBot": "welt-yang-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Source Protocol",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "fuhua",
|
||||
"features": ["physical", "impair", "burst", "time mastery", "gather"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "domain-of-sentience",
|
||||
"stigmataTop": "shattered-swords-top",
|
||||
"stigmataMid": "shattered-swords-mid",
|
||||
"stigmataBot": "shattered-swords-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Alliteration is an Agony",
|
||||
|
||||
@@ -11,6 +11,15 @@
|
||||
"fast atk",
|
||||
"paralyze"
|
||||
],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "domain-of-sanction",
|
||||
"stigmataTop": "benares-awakening-top",
|
||||
"stigmataMid": "benares-awakening-mid",
|
||||
"stigmataBot": "benares-awakening-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Yaoyorozu",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "kiana",
|
||||
"features": ["physical", "time mastery", "fast atk", "aerial"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "domain-of-the-void",
|
||||
"stigmataTop": "sirin-ascendant-top",
|
||||
"stigmataMid": "sirin-ascendant-mid",
|
||||
"stigmataBot": "sirin-ascendant-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Void Throne",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "mecha",
|
||||
"valkyrie": "mobius",
|
||||
"features": ["lightning-dmg", "time mastery", "aerial"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "basilisk-s-image-deathshroud",
|
||||
"stigmataTop": "linnaeus-top",
|
||||
"stigmataMid": "linnaeus-mid",
|
||||
"stigmataBot": "linnaeus-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Infinite Fate",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "imaginary",
|
||||
"valkyrie": "raven",
|
||||
"features": ["fire-dmg", "time mastery"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "obscuring-wing",
|
||||
"stigmataTop": "aslaug-top",
|
||||
"stigmataMid": "aslaug-mid",
|
||||
"stigmataBot": "aslaug-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Midnight Gathering",
|
||||
|
||||
@@ -2,6 +2,15 @@
|
||||
"id": "mpe",
|
||||
"version": "5.1",
|
||||
"name": "Miss Pink Elf♪",
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "whisper-of-the-past-sonnet",
|
||||
"stigmataTop": "elysia-top",
|
||||
"stigmataMid": "elysia-mid",
|
||||
"stigmataBot": "elysia-bot"
|
||||
}
|
||||
],
|
||||
"type": "psychic",
|
||||
"valkyrie": "elysia",
|
||||
"features": ["physical", "time mastery", "fast atk", "aerial"],
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "quantum",
|
||||
"valkyrie": "seele",
|
||||
"features": ["ice-dmg", "burst", "time mastery", "freeze"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "sanguine-gaze-union",
|
||||
"stigmataTop": "verne-top",
|
||||
"stigmataMid": "verne-mid",
|
||||
"stigmataBot": "verne-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "A Torn Heart",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "imaginary",
|
||||
"valkyrie": "pardofelis",
|
||||
"features": ["ice-dmg", "freeze", "time mastery"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "dream-of-the-past-eyes-of-the-night",
|
||||
"stigmataTop": "bastet-top",
|
||||
"stigmataMid": "bastet-mid",
|
||||
"stigmataBot": "bastet-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Life, an empty dream",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "imaginary",
|
||||
"valkyrie": "durandal",
|
||||
"features": ["physical", "time mastery"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "midnight-ataegina",
|
||||
"stigmataTop": "bianka-theatre-top",
|
||||
"stigmataMid": "bianka-theatre-mid",
|
||||
"stigmataBot": "bianka-theatre-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Stellar Crusader",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "fischl",
|
||||
"features": ["lightning-dmg", "time mastery", "fast atk", "aerial"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "mitternachts-waltz",
|
||||
"stigmataTop": "wang-zhenyi-top",
|
||||
"stigmataMid": "wang-zhenyi-mid",
|
||||
"stigmataBot": "wang-zhenyi-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Evernight Suite",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "theresa",
|
||||
"features": ["physical", "heal", "time mastery", "stun", "gather"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "zither-s-lament",
|
||||
"stigmataTop": "shuijing-top",
|
||||
"stigmataMid": "shuijing-mid",
|
||||
"stigmataBot": "shuijing-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Nine Palaces",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "quantum",
|
||||
"valkyrie": "seele",
|
||||
"features": ["physical", "time mastery", "heavy-atk"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "path-to-acheron-kindred",
|
||||
"stigmataTop": "allan-poe-top",
|
||||
"stigmataMid": "allan-poe-mid",
|
||||
"stigmataBot": "allan-poe-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Cursed Blessing",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "mecha",
|
||||
"valkyrie": "carole",
|
||||
"features": ["physical", "time mastery", "stun", "gather", "aerial"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "miracle-kissy-pillow",
|
||||
"stigmataTop": "paganini-top",
|
||||
"stigmataMid": "paganini-mid",
|
||||
"stigmataBot": "paganini-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Star of Hope",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "mecha",
|
||||
"valkyrie": "rita",
|
||||
"features": ["fire-dmg", "ignite", "time mastery", "gather"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "astral-divide-pisces",
|
||||
"stigmataTop": "ragna-top",
|
||||
"stigmataMid": "ragna-mid",
|
||||
"stigmataBot": "ragna-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Thuban: Circumpolar Star",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "biologic",
|
||||
"valkyrie": "bronya",
|
||||
"features": ["ice-dmg", "fast atk", "time mastery", "gather", "aerial"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "falcon-flare-final",
|
||||
"stigmataTop": "bronya-n-ex-top",
|
||||
"stigmataMid": "bronya-n-ex-mid",
|
||||
"stigmataBot": "bronya-n-ex-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Hyper Proxy",
|
||||
|
||||
@@ -5,6 +5,15 @@
|
||||
"type": "mecha",
|
||||
"valkyrie": "theresa",
|
||||
"features": ["physical", "bleed", "fast atk", "time mastery"],
|
||||
"equipment": [
|
||||
{
|
||||
"type": "recommended",
|
||||
"weapon": "hekate-s-sombre",
|
||||
"stigmataTop": "kafka-top",
|
||||
"stigmataMid": "kafka-mid",
|
||||
"stigmataBot": "kafka-bot"
|
||||
}
|
||||
],
|
||||
"leader": {
|
||||
"core": {
|
||||
"name": "Execution Time",
|
||||
|
||||
@@ -40,7 +40,10 @@
|
||||
"special-attack": "Special Attack",
|
||||
"ultimate": "Ultimate",
|
||||
"basic-attack": "Basic Attack",
|
||||
"sp-skill": "SP Skill"
|
||||
"sp-skill": "SP Skill",
|
||||
"equipmentTypes": {
|
||||
"recommended": "Recommended"
|
||||
}
|
||||
},
|
||||
"stigmata-list": {
|
||||
"description": "Stigmata list of Honkai 3rd",
|
||||
|
||||
@@ -35,7 +35,10 @@
|
||||
"special-attack": "특수 공격",
|
||||
"ultimate": "필살기",
|
||||
"basic-attack": "기본 공격",
|
||||
"sp-skill": "SP 스킬"
|
||||
"sp-skill": "SP 스킬",
|
||||
"equipmentTypes": {
|
||||
"recommended": "추천 장비"
|
||||
}
|
||||
},
|
||||
"stigmata-list": {
|
||||
"description": "붕괴 3rd 성흔 목록",
|
||||
|
||||
@@ -11,6 +11,14 @@ export interface BattlesuitSkillGroup {
|
||||
subskills: BattlesuitSkill[]
|
||||
}
|
||||
|
||||
export interface BattlesuitEquipment {
|
||||
type: string
|
||||
weapon: string
|
||||
stigmataTop: string
|
||||
stigmataMid: string
|
||||
stigmataBot: string
|
||||
}
|
||||
|
||||
export interface BattlesuitData {
|
||||
id: string
|
||||
version?: string
|
||||
@@ -19,6 +27,7 @@ export interface BattlesuitData {
|
||||
type: string
|
||||
valkyrie: string
|
||||
features: string[]
|
||||
equipment?: BattlesuitEquipment[]
|
||||
leader: BattlesuitSkillGroup
|
||||
special: BattlesuitSkillGroup
|
||||
evasion: BattlesuitSkillGroup
|
||||
|
||||
@@ -35,12 +35,27 @@ import Head from '../../../components/atoms/Head'
|
||||
import { capitalize } from '../../../lib/string'
|
||||
import { assetsBucketBaseUrl } from '../../../lib/consts'
|
||||
import Honkai3rdLayout from '../../../components/layouts/Honkai3rdLayout'
|
||||
import { WeaponData } from '../../../lib/honkai3rd/weapons'
|
||||
import { getWeaponById } from '../../../server/data/honkai3rd/weapons'
|
||||
import { StigmataData } from '../../../lib/honkai3rd/stigmata'
|
||||
import WeaponCard from '../../../components/molecules/WeaponCard'
|
||||
import StigmataCard from '../../../components/molecules/StigmataCard'
|
||||
import { getStigmataById } from '../../../server/data/honkai3rd/stigmata'
|
||||
|
||||
type WeaponObjectMap = { [key: string]: WeaponData }
|
||||
type StigmataObjectMap = { [key: string]: StigmataData }
|
||||
|
||||
interface BattlesuitShowPageProps {
|
||||
battlesuit: BattlesuitData
|
||||
weaponMap: WeaponObjectMap
|
||||
stigmataMap: StigmataObjectMap
|
||||
}
|
||||
|
||||
const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
|
||||
const BattlesuitShowPage = ({
|
||||
battlesuit,
|
||||
weaponMap,
|
||||
stigmataMap,
|
||||
}: BattlesuitShowPageProps) => {
|
||||
const { t } = useTranslation()
|
||||
const { locale } = useRouter()
|
||||
|
||||
@@ -170,6 +185,44 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
|
||||
</Flex>
|
||||
</Card>
|
||||
|
||||
{battlesuit.equipment != null && (
|
||||
<Card
|
||||
sx={{
|
||||
mb: 3,
|
||||
overflow: 'hidden',
|
||||
}}
|
||||
>
|
||||
{battlesuit.equipment.map((equipmentItem) => {
|
||||
return (
|
||||
<Box key={equipmentItem.type}>
|
||||
<Heading
|
||||
as='h3'
|
||||
sx={{
|
||||
pt: 2,
|
||||
px: 2,
|
||||
mb: 1,
|
||||
}}
|
||||
>
|
||||
{t(`battlesuit-show.equipmentTypes.${equipmentItem.type}`)}
|
||||
</Heading>
|
||||
<Flex>
|
||||
<WeaponCard weapon={weaponMap[equipmentItem.weapon]} />
|
||||
<StigmataCard
|
||||
stigmata={stigmataMap[equipmentItem.stigmataTop]}
|
||||
/>
|
||||
<StigmataCard
|
||||
stigmata={stigmataMap[equipmentItem.stigmataMid]}
|
||||
/>
|
||||
<StigmataCard
|
||||
stigmata={stigmataMap[equipmentItem.stigmataBot]}
|
||||
/>
|
||||
</Flex>
|
||||
</Box>
|
||||
)
|
||||
})}
|
||||
</Card>
|
||||
)}
|
||||
|
||||
<BattlesuitSkillGroupCard
|
||||
heading={t('battlesuit-show.leader')}
|
||||
skillGroup={battlesuit.leader}
|
||||
@@ -224,10 +277,50 @@ export async function getStaticProps({
|
||||
params,
|
||||
locale,
|
||||
}: NextPageContext & { params: { battlesuitId: string } }) {
|
||||
const battlesuit = getBattlesuitById(params.battlesuitId)
|
||||
const battlesuit = getBattlesuitById(params.battlesuitId)!
|
||||
const { weaponIds, stigmataIds } = (battlesuit.equipment || []).reduce<{
|
||||
weaponIds: string[]
|
||||
stigmataIds: string[]
|
||||
}>(
|
||||
(acc, equipmentItem) => {
|
||||
acc.weaponIds.push(equipmentItem.weapon)
|
||||
acc.stigmataIds.push(
|
||||
equipmentItem.stigmataTop,
|
||||
equipmentItem.stigmataMid,
|
||||
equipmentItem.stigmataBot
|
||||
)
|
||||
return acc
|
||||
},
|
||||
{ weaponIds: [], stigmataIds: [] }
|
||||
)
|
||||
const weaponMap = weaponIds.reduce<{ [key: string]: WeaponData }>(
|
||||
(map, id) => {
|
||||
const weapon = getWeaponById(id)
|
||||
if (weapon != null) {
|
||||
map[id] = weapon
|
||||
}
|
||||
return map
|
||||
},
|
||||
{}
|
||||
)
|
||||
const stigmataMap = stigmataIds.reduce<{ [key: string]: StigmataData }>(
|
||||
(map, id) => {
|
||||
const stigmata = getStigmataById(id)
|
||||
if (stigmata != null) {
|
||||
map[id] = stigmata
|
||||
}
|
||||
return map
|
||||
},
|
||||
{}
|
||||
)
|
||||
|
||||
return {
|
||||
props: { battlesuit, ...(await getI18NProps(locale)) },
|
||||
props: {
|
||||
battlesuit,
|
||||
weaponMap,
|
||||
stigmataMap,
|
||||
...(await getI18NProps(locale)),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user