Updated murder mystery stats

This commit is contained in:
2025-09-02 23:27:16 +02:00
parent e536054d2d
commit 23652bd412
5 changed files with 174 additions and 7 deletions

View File

@@ -331,15 +331,50 @@ export const duelsStatsSchema = z.looseObject({
...duelsModeStats().bridge
})
function murderMysteryModeStats() {
const ids = [
"MURDER_CLASSIC",
"MURDER_ASSASSINS",
"MURDER_DOUBLE_UP",
"MURDER_HARDCORE",
"MURDER_SHOWDOWN"
] as const
const stats = [
"kills",
"bow_kills",
"knife_kills",
"thrown_knife_kills",
"wins",
"games",
"coins_pickedup"
] 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 murderMysteryStatsSchema = z.looseObject({
kills: z.number().default(0),
deaths: z.number().default(0),
wins: z.number().default(0),
losses: z.number().default(0),
coins: z.number().default(0),
games: z.number().default(0),
bow_kills: z.number().default(0),
knife_kills: z.number().default(0),
coins_pickedup: z.number().default(0),
kills_as_murderer: z.number().default(0),
thrown_knife_kills: z.number().default(0),
active_knife_skin: z.string().optional(),
quickest_detective_win_time_seconds: z.number().default(0),
quickest_murderer_win_time_seconds: z.number().default(0)
quickest_murderer_win_time_seconds: z.number().default(0),
...murderMysteryModeStats()
})