More Pre-Start modes. (#34)

* do

* parse settings before setting
This commit is contained in:
Viktor Rådberg
2024-03-29 23:24:35 +01:00
committed by GitHub
parent fa5829b402
commit 9c27f34261
17 changed files with 756 additions and 322 deletions

View File

@@ -12,12 +12,18 @@ export enum GameFormat {
TwoHeadedGiant = 'two-headed-giant',
}
export enum PreStartMode {
None = 'none',
RandomKing = 'random-king',
FingerGame = 'finger-game',
}
export type Settings = {
keepAwake: boolean;
showStartingPlayer: boolean;
showPlayerMenuCog: boolean;
goFullscreenOnStart: boolean;
useRandomStartingPlayerInterval: boolean;
preStartMode: PreStartMode;
};
export type InitialGameSettings = {
@@ -28,10 +34,18 @@ export type InitialGameSettings = {
orientation: Orientation;
};
export const InitialGameSettingsSchema = z.object({
export const initialGameSettingsSchema = z.object({
startingLifeTotal: z.number().min(1).max(200).default(20),
useCommanderDamage: z.boolean().default(false),
gameFormat: z.nativeEnum(GameFormat).optional(),
numberOfPlayers: z.number().min(1).max(6).default(2),
orientation: z.nativeEnum(Orientation).default(Orientation.Landscape),
});
export const settingsSchema = z.object({
keepAwake: z.boolean().default(true),
showStartingPlayer: z.boolean().default(true),
showPlayerMenuCog: z.boolean().default(true),
goFullscreenOnStart: z.boolean().default(true),
preStartMode: z.nativeEnum(PreStartMode).default(PreStartMode.None),
});