Added speed uhc mode table stats
This commit is contained in:
@@ -1,4 +1,68 @@
|
||||
import { TITLES } from "@/data/hypixel/speeduhc"
|
||||
import { MODES, TITLES } from "@/data/hypixel/speeduhc"
|
||||
import { NonNullStats } from "@/lib/schema/player"
|
||||
import { devide } from "../general"
|
||||
|
||||
export function getSpeedUHCModeName(modeId: Exclude<typeof MODES[number]["id"], ""> | "all_modes") {
|
||||
if (modeId === "all_modes") {
|
||||
return MODES.find(m => m.id === "")!.name
|
||||
}
|
||||
|
||||
return MODES.find(m => m.id === modeId)!.name
|
||||
}
|
||||
|
||||
export function getSpeedUHCBestMode(stats: NonNullable<NonNullStats["SpeedUHC"]>) {
|
||||
let bestMode: typeof MODES[number]["id"] | null = null
|
||||
let maxGames = 0
|
||||
|
||||
for (const mode of MODES) {
|
||||
if (mode.id === "") continue
|
||||
|
||||
const wins = stats[`wins_${mode.id}`]
|
||||
const losses = stats[`losses_${mode.id}`]
|
||||
const totalGames = wins + losses
|
||||
|
||||
if (totalGames > maxGames) {
|
||||
maxGames = totalGames
|
||||
bestMode = mode.id
|
||||
}
|
||||
}
|
||||
|
||||
return bestMode
|
||||
}
|
||||
|
||||
export function getSpeedUHCModeStats(modeId: Exclude<typeof MODES[number]["id"], ""> | "all_modes", stats: NonNullable<NonNullStats["SpeedUHC"]>) {
|
||||
if (modeId === "all_modes") {
|
||||
const bestMode = getSpeedUHCBestMode(stats)
|
||||
if (!bestMode) {
|
||||
return [
|
||||
stats.kills,
|
||||
stats.deaths,
|
||||
devide(stats.kills, stats.deaths),
|
||||
stats.wins,
|
||||
stats.losses,
|
||||
devide(stats.wins, stats.losses)
|
||||
]
|
||||
}
|
||||
|
||||
return [
|
||||
stats[`kills_${bestMode}`],
|
||||
stats[`deaths_${bestMode}`],
|
||||
devide(stats[`kills_${bestMode}`], stats[`deaths_${bestMode}`]),
|
||||
stats[`wins_${bestMode}`],
|
||||
stats[`losses_${bestMode}`],
|
||||
devide(stats[`wins_${bestMode}`], stats[`losses_${bestMode}`])
|
||||
]
|
||||
}
|
||||
|
||||
return [
|
||||
stats[`kills_${modeId}`],
|
||||
stats[`deaths_${modeId}`],
|
||||
devide(stats[`kills_${modeId}`], stats[`deaths_${modeId}`]),
|
||||
stats[`wins_${modeId}`],
|
||||
stats[`losses_${modeId}`],
|
||||
devide(stats[`wins_${modeId}`], stats[`losses_${modeId}`])
|
||||
]
|
||||
}
|
||||
|
||||
export function getSpeedUHCStar(score: number) {
|
||||
for (let i = 0; i < TITLES.length; i++) {
|
||||
|
||||
@@ -1053,5 +1053,22 @@ export const speedUhcStatsSchema = z.object({
|
||||
deaths: z.number().default(0),
|
||||
wins: z.number().default(0),
|
||||
losses: z.number().default(0),
|
||||
score: z.number().default(0)
|
||||
score: z.number().default(0),
|
||||
coins: z.number().default(0),
|
||||
kills_solo_normal: z.number().default(0),
|
||||
deaths_solo_normal: z.number().default(0),
|
||||
wins_solo_normal: z.number().default(0),
|
||||
losses_solo_normal: z.number().default(0),
|
||||
kills_solo_insane: z.number().default(0),
|
||||
deaths_solo_insane: z.number().default(0),
|
||||
wins_solo_insane: z.number().default(0),
|
||||
losses_solo_insane: z.number().default(0),
|
||||
kills_team_normal: z.number().default(0),
|
||||
deaths_team_normal: z.number().default(0),
|
||||
wins_team_normal: z.number().default(0),
|
||||
losses_team_normal: z.number().default(0),
|
||||
kills_team_insane: z.number().default(0),
|
||||
deaths_team_insane: z.number().default(0),
|
||||
wins_team_insane: z.number().default(0),
|
||||
losses_team_insane: z.number().default(0)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user