Added smash heros stat table
This commit is contained in:
@@ -1,5 +1,53 @@
|
||||
import { DIFFICULTY, HEROES } from "@/data/hypixel/smashheros"
|
||||
import { DIFFICULTY, HEROES, MODES } from "@/data/hypixel/smashheros"
|
||||
import { NonNullStats } from "@/lib/schema/player"
|
||||
import { devide } from "../general"
|
||||
|
||||
export function getSmashHerosModeName(modeId: Exclude<typeof MODES[number]["id"], ""> | "all") {
|
||||
if (modeId === "all") return MODES.find(m => m.id === "")!.name
|
||||
return MODES.find(m => m.id === modeId)!.name
|
||||
}
|
||||
|
||||
export function getSmashHerosMostPlayedMode(stats: NonNullable<NonNullStats["SmashHeros"]>) {
|
||||
const modes: { mode: Exclude<typeof MODES[number]["id"], "">, games: number }[] = [
|
||||
{ mode: "normal", games: stats.wins_normal + stats.losses_normal },
|
||||
{ mode: "2v2", games: stats.wins_2v2 + stats.losses_2v2 },
|
||||
{ mode: "teams", games: stats.wins_teams + stats.losses_teams }
|
||||
]
|
||||
|
||||
let maxGames = 0
|
||||
let mostPlayedMode: Exclude<typeof MODES[number]["id"], ""> | null = null
|
||||
|
||||
for (const { mode, games } of modes) {
|
||||
if (games > maxGames) {
|
||||
maxGames = games
|
||||
mostPlayedMode = mode
|
||||
}
|
||||
}
|
||||
|
||||
return mostPlayedMode
|
||||
}
|
||||
|
||||
export function getSmashHerosModeStats(modeId: Exclude<typeof MODES[number]["id"], ""> | "all", stats: NonNullable<NonNullStats["SmashHeros"]>) {
|
||||
if (modeId === "all") {
|
||||
return [
|
||||
stats.kills,
|
||||
stats.deaths,
|
||||
devide(stats.kills, stats.deaths),
|
||||
stats.wins,
|
||||
stats.losses,
|
||||
devide(stats.wins, stats.losses)
|
||||
]
|
||||
}
|
||||
|
||||
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 getSmashHerosDifficultyColor(difficulty: number) {
|
||||
if (difficulty < 1) return DIFFICULTY.at(0)!
|
||||
|
||||
@@ -29,5 +29,17 @@ export const smashHerosStats = z.object({
|
||||
SPODERMAN: classStats,
|
||||
TINMAN: classStats,
|
||||
DUSK_CRAWLER: classStats
|
||||
}).optional()
|
||||
}).optional(),
|
||||
kills_normal: z.number().default(0),
|
||||
deaths_normal: z.number().default(0),
|
||||
wins_normal: z.number().default(0),
|
||||
losses_normal: z.number().default(0),
|
||||
kills_2v2: z.number().default(0),
|
||||
deaths_2v2: z.number().default(0),
|
||||
wins_2v2: z.number().default(0),
|
||||
losses_2v2: z.number().default(0),
|
||||
kills_teams: z.number().default(0),
|
||||
deaths_teams: z.number().default(0),
|
||||
wins_teams: z.number().default(0),
|
||||
losses_teams: z.number().default(0)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user