add: mode & character page

This commit is contained in:
Vick Scarlet
2026-08-16 20:06:16 +08:00
committed by 神戸小鳥
parent 7e863021c9
commit 46a8528864
7 changed files with 94 additions and 8 deletions
+26 -2
View File
@@ -11,12 +11,18 @@ import type { Talent } from '@remake/data/talent'
export enum Step {
Idle = 'idle',
Mode = 'mode',
Chara = 'chara',
Pick = 'pick',
Alloc = 'alloc',
Play = 'play',
Summary = 'summary',
}
export enum Mode {
Classic = 'classic',
Celebrity = 'celebrity',
}
export type Log = Omit<NextResult, 'state'> & {
props: Omit<Properties, 'age'>
}
@@ -47,8 +53,8 @@ export const useGameReset = () => {
}, [resetTalent, resetAlloc, resetState, resetLogs])
}
export const useStep = () => useAtomValue(stepAtom)
export const useSetStep = () => useSetAtom(stepAtom)
export const useStep = () => [useAtomValue(stepAtom), Step] as const
export const useSetStep = () => [useSetAtom(stepAtom), Step] as const
export const useGameState = () => useAtomValue(gameStateAtom)
export const useSummary = () => useAtomValue(summaryAtom)
export const useLogs = () => useAtomValue(logsAtom)
@@ -64,6 +70,24 @@ export const useRemake = () => {
}, [mode, times, setStep, reset])
}
export const useModeChoose = () => {
const setStep = useSetAtom(stepAtom)
const choose = useCallback(
(mode: Mode) => {
switch (mode) {
case Mode.Classic:
setStep(Step.Pick)
break
case Mode.Celebrity:
setStep(Step.Chara)
break
}
},
[setStep],
)
return [Mode, choose] as const
}
export const useStart = () => {
const { spirit } = useConfig()
const [profile] = useProfile()