Finished uhc genereal stats

This commit is contained in:
2025-09-04 22:25:57 +02:00
parent 1646cb7492
commit 27a8e89d7b
5 changed files with 138 additions and 11 deletions

View File

@@ -405,9 +405,43 @@ export const buildBattleStatsSchema = z.looseObject({
wins_speed_builders_latest: z.number().default(0)
})
function uhcModesStats() {
const ids = [
"solo",
"red_vs_blue",
"no_diamonds",
"vanilla_doubles",
"brawl",
"solo_brawl",
"duo_brawl"
] as const
const stats = [
"wins",
"kills",
"deaths",
"heads_eaten"
] as const
const entries = new Map<string, z.ZodDefault<z.ZodNumber>>()
for (const id of ids) {
for (const stat of stats) {
entries.set(`${stat}_${id}`, z.number().default(0))
}
}
return Object.fromEntries(entries) as Record<`${typeof stats[number]}_${typeof ids[number]}`, z.ZodDefault<z.ZodNumber>>
}
export const uhcSchema = z.looseObject({
kills: z.number().default(0),
deaths: z.number().default(0),
wins: z.number().default(0),
score: z.number().default(0)
heads_eaten: z.number().default(0),
score: z.number().default(0),
coins: z.number().default(0),
ultimates_crafted: z.number().default(0),
ultimates_crafted_solo: z.number().default(0),
...uhcModesStats()
})