52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import z from "zod"
|
|
|
|
function tntGamesModeStats() {
|
|
const ids = [
|
|
"ancient",
|
|
"blood",
|
|
"fire",
|
|
"hydro",
|
|
"ice",
|
|
"kinetic",
|
|
"storm",
|
|
"toxic",
|
|
"wither"
|
|
] as const
|
|
|
|
const stats = [
|
|
"kills",
|
|
"deaths",
|
|
"assists",
|
|
"explode",
|
|
"regen"
|
|
] as const
|
|
|
|
const entries = new Map<string, z.ZodDefault<z.ZodNumber>>()
|
|
|
|
for (const id of ids) {
|
|
for (const stat of stats) {
|
|
entries.set(`new_${id}wizard_${stat}`, z.number().default(0))
|
|
}
|
|
}
|
|
|
|
return Object.fromEntries(entries) as Record<`new_${typeof ids[number]}wizard_${typeof stats[number]}`, z.ZodDefault<z.ZodNumber>>
|
|
}
|
|
|
|
export const tntGamesStatsSchema = z.object({
|
|
wins: z.number().default(0),
|
|
coins: z.number().default(0),
|
|
kills_tntag: z.number().default(0),
|
|
wins_tntag: z.number().default(0),
|
|
wins_tntrun: z.number().default(0),
|
|
record_tntrun: z.number().default(0),
|
|
kills_pvprun: z.number().default(0),
|
|
wins_pvprun: z.number().default(0),
|
|
record_pvprun: z.number().default(0),
|
|
wins_bowspleef: z.number().default(0),
|
|
deaths_bowspleef: z.number().default(0),
|
|
wins_capture: z.number().default(0),
|
|
kills_capture: z.number().default(0),
|
|
deaths_capture: z.number().default(0),
|
|
...tntGamesModeStats()
|
|
})
|