diff --git a/assets/honkai3rd/bosses/aka.png b/assets/honkai3rd/bosses/aka.png new file mode 100644 index 00000000..a3f484d3 Binary files /dev/null and b/assets/honkai3rd/bosses/aka.png differ diff --git a/assets/honkai3rd/bosses/ana.png b/assets/honkai3rd/bosses/ana.png new file mode 100644 index 00000000..a884b516 Binary files /dev/null and b/assets/honkai3rd/bosses/ana.png differ diff --git a/assets/honkai3rd/bosses/aponia.png b/assets/honkai3rd/bosses/aponia.png new file mode 100644 index 00000000..a1369c9b Binary files /dev/null and b/assets/honkai3rd/bosses/aponia.png differ diff --git a/assets/honkai3rd/bosses/ask.png b/assets/honkai3rd/bosses/ask.png new file mode 100644 index 00000000..f4b74532 Binary files /dev/null and b/assets/honkai3rd/bosses/ask.png differ diff --git a/assets/honkai3rd/bosses/ask2.png b/assets/honkai3rd/bosses/ask2.png new file mode 100644 index 00000000..03fba746 Binary files /dev/null and b/assets/honkai3rd/bosses/ask2.png differ diff --git a/assets/honkai3rd/bosses/bke-sss.png b/assets/honkai3rd/bosses/bke-sss.png new file mode 100644 index 00000000..359c7275 Binary files /dev/null and b/assets/honkai3rd/bosses/bke-sss.png differ diff --git a/assets/honkai3rd/bosses/bke.png b/assets/honkai3rd/bosses/bke.png new file mode 100644 index 00000000..d565468c Binary files /dev/null and b/assets/honkai3rd/bosses/bke.png differ diff --git a/assets/honkai3rd/bosses/bns.png b/assets/honkai3rd/bosses/bns.png new file mode 100644 index 00000000..c2c390c1 Binary files /dev/null and b/assets/honkai3rd/bosses/bns.png differ diff --git a/assets/honkai3rd/bosses/dd.png b/assets/honkai3rd/bosses/dd.png new file mode 100644 index 00000000..638f3d34 Binary files /dev/null and b/assets/honkai3rd/bosses/dd.png differ diff --git a/assets/honkai3rd/bosses/dj.png b/assets/honkai3rd/bosses/dj.png new file mode 100644 index 00000000..092d5e70 Binary files /dev/null and b/assets/honkai3rd/bosses/dj.png differ diff --git a/assets/honkai3rd/bosses/hd.png b/assets/honkai3rd/bosses/hd.png new file mode 100644 index 00000000..de676194 Binary files /dev/null and b/assets/honkai3rd/bosses/hd.png differ diff --git a/assets/honkai3rd/bosses/hdl.png b/assets/honkai3rd/bosses/hdl.png new file mode 100644 index 00000000..49424fd6 Binary files /dev/null and b/assets/honkai3rd/bosses/hdl.png differ diff --git a/assets/honkai3rd/bosses/hm.png b/assets/honkai3rd/bosses/hm.png new file mode 100644 index 00000000..44e7bd7d Binary files /dev/null and b/assets/honkai3rd/bosses/hm.png differ diff --git a/assets/honkai3rd/bosses/hod.png b/assets/honkai3rd/bosses/hod.png new file mode 100644 index 00000000..2ad32e5c Binary files /dev/null and b/assets/honkai3rd/bosses/hod.png differ diff --git a/assets/honkai3rd/bosses/homu.png b/assets/honkai3rd/bosses/homu.png new file mode 100644 index 00000000..48d2abe1 Binary files /dev/null and b/assets/honkai3rd/bosses/homu.png differ diff --git a/assets/honkai3rd/bosses/hos.png b/assets/honkai3rd/bosses/hos.png new file mode 100644 index 00000000..7249fee5 Binary files /dev/null and b/assets/honkai3rd/bosses/hos.png differ diff --git a/assets/honkai3rd/bosses/hot.png b/assets/honkai3rd/bosses/hot.png new file mode 100644 index 00000000..433a4230 Binary files /dev/null and b/assets/honkai3rd/bosses/hot.png differ diff --git a/assets/honkai3rd/bosses/hov.png b/assets/honkai3rd/bosses/hov.png new file mode 100644 index 00000000..068cef02 Binary files /dev/null and b/assets/honkai3rd/bosses/hov.png differ diff --git a/assets/honkai3rd/bosses/hpt.png b/assets/honkai3rd/bosses/hpt.png new file mode 100644 index 00000000..d8eb9b7a Binary files /dev/null and b/assets/honkai3rd/bosses/hpt.png differ diff --git a/assets/honkai3rd/bosses/husk-sss.png b/assets/honkai3rd/bosses/husk-sss.png new file mode 100644 index 00000000..7ed9f1b9 Binary files /dev/null and b/assets/honkai3rd/bosses/husk-sss.png differ diff --git a/assets/honkai3rd/bosses/husk.png b/assets/honkai3rd/bosses/husk.png new file mode 100644 index 00000000..37f9ce06 Binary files /dev/null and b/assets/honkai3rd/bosses/husk.png differ diff --git a/assets/honkai3rd/bosses/husk2.png b/assets/honkai3rd/bosses/husk2.png new file mode 100644 index 00000000..6c80b893 Binary files /dev/null and b/assets/honkai3rd/bosses/husk2.png differ diff --git a/assets/honkai3rd/bosses/jizo-sss.png b/assets/honkai3rd/bosses/jizo-sss.png new file mode 100644 index 00000000..50cbeac0 Binary files /dev/null and b/assets/honkai3rd/bosses/jizo-sss.png differ diff --git a/assets/honkai3rd/bosses/jizo.png b/assets/honkai3rd/bosses/jizo.png new file mode 100644 index 00000000..a01810cf Binary files /dev/null and b/assets/honkai3rd/bosses/jizo.png differ diff --git a/assets/honkai3rd/bosses/jk.png b/assets/honkai3rd/bosses/jk.png new file mode 100644 index 00000000..ffb59728 Binary files /dev/null and b/assets/honkai3rd/bosses/jk.png differ diff --git a/assets/honkai3rd/bosses/kallen.png b/assets/honkai3rd/bosses/kallen.png new file mode 100644 index 00000000..06478547 Binary files /dev/null and b/assets/honkai3rd/bosses/kallen.png differ diff --git a/assets/honkai3rd/bosses/kalpas.png b/assets/honkai3rd/bosses/kalpas.png new file mode 100644 index 00000000..4a8d77ee Binary files /dev/null and b/assets/honkai3rd/bosses/kalpas.png differ diff --git a/assets/honkai3rd/bosses/kasumi.png b/assets/honkai3rd/bosses/kasumi.png new file mode 100644 index 00000000..c5ba9064 Binary files /dev/null and b/assets/honkai3rd/bosses/kasumi.png differ diff --git a/assets/honkai3rd/bosses/kosma.png b/assets/honkai3rd/bosses/kosma.png new file mode 100644 index 00000000..acf384ed Binary files /dev/null and b/assets/honkai3rd/bosses/kosma.png differ diff --git a/assets/honkai3rd/bosses/mpe.png b/assets/honkai3rd/bosses/mpe.png new file mode 100644 index 00000000..0a917234 Binary files /dev/null and b/assets/honkai3rd/bosses/mpe.png differ diff --git a/assets/honkai3rd/bosses/nk.png b/assets/honkai3rd/bosses/nk.png new file mode 100644 index 00000000..e05aff73 Binary files /dev/null and b/assets/honkai3rd/bosses/nk.png differ diff --git a/assets/honkai3rd/bosses/ofg.png b/assets/honkai3rd/bosses/ofg.png new file mode 100644 index 00000000..c46664e0 Binary files /dev/null and b/assets/honkai3rd/bosses/ofg.png differ diff --git a/assets/honkai3rd/bosses/otto.png b/assets/honkai3rd/bosses/otto.png new file mode 100644 index 00000000..6b2d4f19 Binary files /dev/null and b/assets/honkai3rd/bosses/otto.png differ diff --git a/assets/honkai3rd/bosses/ova.png b/assets/honkai3rd/bosses/ova.png new file mode 100644 index 00000000..4dbd17ab Binary files /dev/null and b/assets/honkai3rd/bosses/ova.png differ diff --git a/assets/honkai3rd/bosses/pl.webp b/assets/honkai3rd/bosses/pl.webp new file mode 100644 index 00000000..8c833828 Binary files /dev/null and b/assets/honkai3rd/bosses/pl.webp differ diff --git a/assets/honkai3rd/bosses/pvt-sss.png b/assets/honkai3rd/bosses/pvt-sss.png new file mode 100644 index 00000000..3f440bae Binary files /dev/null and b/assets/honkai3rd/bosses/pvt-sss.png differ diff --git a/assets/honkai3rd/bosses/pvt.png b/assets/honkai3rd/bosses/pvt.png new file mode 100644 index 00000000..62258c72 Binary files /dev/null and b/assets/honkai3rd/bosses/pvt.png differ diff --git a/assets/honkai3rd/bosses/qc.png b/assets/honkai3rd/bosses/qc.png new file mode 100644 index 00000000..e46704ce Binary files /dev/null and b/assets/honkai3rd/bosses/qc.png differ diff --git a/assets/honkai3rd/bosses/qt-sss.png b/assets/honkai3rd/bosses/qt-sss.png new file mode 100644 index 00000000..16f60111 Binary files /dev/null and b/assets/honkai3rd/bosses/qt-sss.png differ diff --git a/assets/honkai3rd/bosses/qt.png b/assets/honkai3rd/bosses/qt.png new file mode 100644 index 00000000..eefe3839 Binary files /dev/null and b/assets/honkai3rd/bosses/qt.png differ diff --git a/assets/honkai3rd/bosses/rpc-sss.png b/assets/honkai3rd/bosses/rpc-sss.png new file mode 100644 index 00000000..1572781f Binary files /dev/null and b/assets/honkai3rd/bosses/rpc-sss.png differ diff --git a/assets/honkai3rd/bosses/rpc.png b/assets/honkai3rd/bosses/rpc.png new file mode 100644 index 00000000..2b4ee5a2 Binary files /dev/null and b/assets/honkai3rd/bosses/rpc.png differ diff --git a/assets/honkai3rd/bosses/sk.png b/assets/honkai3rd/bosses/sk.png new file mode 100644 index 00000000..73c34200 Binary files /dev/null and b/assets/honkai3rd/bosses/sk.png differ diff --git a/assets/honkai3rd/bosses/tank.png b/assets/honkai3rd/bosses/tank.png new file mode 100644 index 00000000..e553e2e7 Binary files /dev/null and b/assets/honkai3rd/bosses/tank.png differ diff --git a/assets/honkai3rd/bosses/vv.png b/assets/honkai3rd/bosses/vv.png new file mode 100644 index 00000000..4dde87f3 Binary files /dev/null and b/assets/honkai3rd/bosses/vv.png differ diff --git a/assets/honkai3rd/bosses/wolf-sss.png b/assets/honkai3rd/bosses/wolf-sss.png new file mode 100644 index 00000000..9fb85f91 Binary files /dev/null and b/assets/honkai3rd/bosses/wolf-sss.png differ diff --git a/assets/honkai3rd/bosses/wolf.png b/assets/honkai3rd/bosses/wolf.png new file mode 100644 index 00000000..30c71bf3 Binary files /dev/null and b/assets/honkai3rd/bosses/wolf.png differ diff --git a/data/honkai3rd/versions.yaml b/data/honkai3rd/versions.yaml index ae992334..f9ef8f43 100644 --- a/data/honkai3rd/versions.yaml +++ b/data/honkai3rd/versions.yaml @@ -11,6 +11,18 @@ - vill-v-pri-weapon - vill-v-weapon description: '' + superstring: + - - label: qua + boss: qc + - label: img + boss: ofg + ma: + - - label: sss + boss: kosma + - label: sss + boss: jizo-sss + - label: ss + boss: hpt supplyEvents: [] - previousVersion: '5.7' version: '5.8' @@ -26,6 +38,68 @@ - griseo-pri-weapon - griseo-weapon description: '' + superstring: + - - label: physical + boss: jizo + - label: paralyze + boss: jk + - - label: type + boss: hos + - label: img + boss: hod + - - label: lightning + boss: bke + - label: bleed + boss: nk + - - label: lightning + boss: rpc + - label: lightning (paralyze) + boss: husk + - - label: ice + boss: mpe + - label: lightning (hit count) + boss: husk2 + - - label: type + boss: wolf + - label: type + boss: hdl + ma: + - - label: sss + boss: hod + - label: ss + boss: hov + - label: ss + boss: homu + - - label: sss + boss: bke-sss + - label: ss + boss: hpt + - label: ss + boss: hdl + - - label: sss + boss: ofg + - label: ss + boss: dj + - label: ss + boss: hm + - - label: sss + boss: hod + - label: ss + boss: kasumi + - label: ss + boss: ana + - - label: sss + boss: bke-sss + - label: ss + boss: hm + - label: ss + boss: ask + - - label: sss + boss: ofg + - label: ss + boss: dd + - label: ss + boss: bns supplyEvents: - name: Nue of the Shadow Supply B duration: @@ -628,6 +702,8 @@ - lost-conviction - echo-of-paradise description: '' + superstring: [] + ma: [] supplyEvents: - name: Key of Reason Focused Supply B duration: @@ -1342,6 +1418,8 @@ - gilded-librae - cerulean-flare description: '' + superstring: [] + ma: [] supplyEvents: - name: Nue of the Shadow Focused Supply B duration: @@ -2315,6 +2393,8 @@ - astral-divide-pisces - astral-rend-white-dwarf description: '' + superstring: [] + ma: [] supplyEvents: - name: Skaldi Ondurgud Supply B duration: @@ -3793,6 +3873,8 @@ - falcon-flare-0019 - falcon-flare-final description: '' + superstring: [] + ma: [] supplyEvents: - name: Eos Gloria Focused Supply B duration: diff --git a/src/components/organisms/BossTable.tsx b/src/components/organisms/BossTable.tsx new file mode 100644 index 00000000..3ec78315 --- /dev/null +++ b/src/components/organisms/BossTable.tsx @@ -0,0 +1,164 @@ +import { addDays } from 'date-fns' +import { Box, Flex, Image, Text } from 'theme-ui' +import { assetsBucketBaseUrl } from '../../lib/consts' +import { VersionData } from '../../lib/honkai3rd/versions' + +interface BossTableProps { + versionData: VersionData + today: Date | null +} + +const BossTable = ({ versionData, today }: BossTableProps) => { + const versionStartDate = new Date(versionData.duration[0]) + return ( + + + + Super String + + {versionData.superstring.map(([first, second], index) => { + const firstDuration = [ + addDays(versionStartDate, index * 7), + addDays(versionStartDate, index * 7 + 2), + ] + const secondDuration = [ + addDays(versionStartDate, index * 7 + 3), + addDays(versionStartDate, index * 7 + 6), + ] + + return ( + + + = firstDuration[0] && + today <= firstDuration[1] + } + /> + + + = secondDuration[0] && + today <= secondDuration[1] + } + /> + + + ) + })} + + + + Memorial Arena + + {versionData.ma.map(([first, second, third], index) => { + const durations = [ + addDays(versionStartDate, index * 7 + 3), + addDays(versionStartDate, (index + 1) * 7 + 2), + ] + const active = + today != null && today >= durations[0] && today <= durations[1] + return ( + + + + + + + + + + + + ) + })} + + + ) +} + +const BossCard = ({ + label, + boss, + active, +}: { + label?: string + boss: string + active?: boolean +}) => { + return ( + + {label != null && ( + + + {label?.toUpperCase()} + + + )} + {boss} + + ) +} + +export default BossTable diff --git a/src/components/organisms/GanttChart.tsx b/src/components/organisms/GanttChart.tsx index d185f261..8825dc91 100644 --- a/src/components/organisms/GanttChart.tsx +++ b/src/components/organisms/GanttChart.tsx @@ -21,7 +21,7 @@ export interface GanttChartItem { interface GanttChartProps { startDate: string endDate: string - today: string + today: Date | null items: GanttChartItem[] } @@ -33,14 +33,14 @@ const itemHeight = 30 const GanttChart = ({ startDate: startDateString, endDate: endDateString, - today: todayDateString, + today, items, }: GanttChartProps) => { const startDate = new Date(startDateString) const endDate = new Date(endDateString) const firstDateToRender = startDate const lastDateToRender = endDate - const todayDate = new Date(todayDateString) + const todayDate = today const daysToRender = differenceInCalendarDays( lastDateToRender, @@ -103,11 +103,13 @@ const GanttChart = ({ ) }, daysToRender + 2)} - + {todayDate != null && ( + + )} { const { t } = useTranslation() + const [today, setToday] = useState(null) + useEffect(() => { + setToday(new Date(getDateString(new Date()))) + }, []) return ( + + Bosses + + + + + + {t('versions.supply-events')} @@ -178,7 +192,7 @@ const VersionShowPage = ({ row: supplyEventData.track, } })} - today={getDateString(new Date())} + today={today} startDate={versionData.duration[0]} endDate={ versionData.duration[1] != null diff --git a/src/pages/honkai3rd/versions/index.tsx b/src/pages/honkai3rd/versions/index.tsx index 6ab3b052..e9832778 100644 --- a/src/pages/honkai3rd/versions/index.tsx +++ b/src/pages/honkai3rd/versions/index.tsx @@ -23,6 +23,10 @@ import Head from '../../../components/atoms/Head' import PageLink from '../../../components/atoms/PageLink' import { assetsBucketBaseUrl } from '../../../lib/consts' import Honkai3rdLayout from '../../../components/layouts/Honkai3rdLayout' +import WeaponCard from '../../../components/molecules/WeaponCard' +import BattlesuitCard from '../../../components/molecules/BattlesuitCard' +import { useEffect, useState } from 'react' +import BossTable from '../../../components/organisms/BossTable' interface VersionIndexPageProps { versionDataList: VersionData[] @@ -38,6 +42,10 @@ const VersionIndexPage = ({ currentVersionNewWeapons, }: VersionIndexPageProps) => { const { t } = useTranslation() + const [today, setToday] = useState(null) + useEffect(() => { + setToday(new Date(getDateString(new Date()))) + }, []) return ( @@ -93,23 +101,11 @@ const VersionIndexPage = ({ {currentVersionNewBattlesuits.map((battlesuit) => { return ( - - - - - {battlesuit.name} - - - + battlesuit={battlesuit} + size='sm' + /> ) })} @@ -119,29 +115,19 @@ const VersionIndexPage = ({ {currentVersionNewWeapons.map((weapon) => { - return ( - - - - - {weapon.name} - - - - ) + return })} + + Bosses + + + + + + {t('versions.supply-events')} @@ -176,7 +162,7 @@ const VersionIndexPage = ({ } } )} - today={getDateString(new Date())} + today={today} startDate={currentVersionData.duration[0]} endDate={ currentVersionData.duration[1] != null