Added smash heros hero stat table
This commit is contained in:
@@ -1,7 +1,50 @@
|
||||
import { DIFFICULTY, HEROES, MODES } from "@/data/hypixel/smashheros"
|
||||
import { DIFFICULTY, HEROES, MODES, PRESTIGECOLORS } from "@/data/hypixel/smashheros"
|
||||
import { NonNullStats } from "@/lib/schema/player"
|
||||
import { devide } from "../general"
|
||||
|
||||
export function getSmashHerosHeroPrestigeColor(pres: number) {
|
||||
if (pres < 1) return PRESTIGECOLORS.at(0)!
|
||||
if (pres > PRESTIGECOLORS.length) return PRESTIGECOLORS.at(0)!
|
||||
|
||||
return PRESTIGECOLORS.at(pres - 1)!
|
||||
}
|
||||
|
||||
export function getSmashHerosHeroLvlPres(heroId: typeof HEROES[number]["id"], stats: NonNullable<NonNullStats["SmashHeros"]>) {
|
||||
return {
|
||||
lvl: stats[`lastLevel_${heroId}`],
|
||||
pg: stats[`pg_${heroId}`]
|
||||
}
|
||||
}
|
||||
|
||||
export function getSmashHerosHero(heroId: typeof HEROES[number]["id"]) {
|
||||
return HEROES.find(h => h.id === heroId)!
|
||||
}
|
||||
|
||||
export function getSmashHerosAllHerosStats(stats: NonNullable<NonNullStats["SmashHeros"]>) {
|
||||
const vals: { id: typeof HEROES[number]["id"], nums: number[] }[] = []
|
||||
|
||||
for (const hero of HEROES) {
|
||||
vals.push({ id: hero.id, nums: getSmashHerosHeroStats(hero.id, stats) })
|
||||
}
|
||||
|
||||
return vals
|
||||
}
|
||||
|
||||
export function getSmashHerosHeroStats(heroId: typeof HEROES[number]["id"], stats: NonNullable<NonNullStats["SmashHeros"]>) {
|
||||
if (!stats.class_stats) return [0, 0, 0, 0, 0, 0]
|
||||
|
||||
const cStats = stats.class_stats[heroId]
|
||||
|
||||
return [
|
||||
cStats?.kills || 0,
|
||||
cStats?.deaths || 0,
|
||||
devide(cStats?.kills || 0, cStats?.deaths || 0),
|
||||
cStats?.wins || 0,
|
||||
cStats?.losses || 0,
|
||||
devide(cStats?.wins || 0, cStats?.losses || 0)
|
||||
]
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import z from "zod"
|
||||
|
||||
const classStats = z.object({
|
||||
games: z.number().default(0)
|
||||
games: z.number().default(0),
|
||||
kills: z.number().default(0),
|
||||
deaths: z.number().default(0),
|
||||
wins: z.number().default(0),
|
||||
losses: z.number().default(0)
|
||||
}).optional()
|
||||
|
||||
export const smashHerosStats = z.object({
|
||||
@@ -30,6 +34,38 @@ export const smashHerosStats = z.object({
|
||||
TINMAN: classStats,
|
||||
DUSK_CRAWLER: classStats
|
||||
}).optional(),
|
||||
lastLevel_BOTMUN: z.number().default(0),
|
||||
lastLevel_THE_BULK: z.number().default(0),
|
||||
lastLevel_CAKE_MONSTER: z.number().default(0),
|
||||
lastLevel_FROSTY: z.number().default(0),
|
||||
lastLevel_GENERAL_CLUCK: z.number().default(0),
|
||||
lastLevel_GREEN_HOOD: z.number().default(0),
|
||||
lastLevel_GOKU: z.number().default(0),
|
||||
lastLevel_MARAUDER: z.number().default(0),
|
||||
lastLevel_PUG: z.number().default(0),
|
||||
lastLevel_SANIC: z.number().default(0),
|
||||
lastLevel_SERGEANT_SHIELD: z.number().default(0),
|
||||
lastLevel_SHOOP_DA_WHOOP: z.number().default(0),
|
||||
lastLevel_SKULLFIRE: z.number().default(0),
|
||||
lastLevel_SPODERMAN: z.number().default(0),
|
||||
lastLevel_TINMAN: z.number().default(0),
|
||||
lastLevel_DUSK_CRAWLER: z.number().default(0),
|
||||
pg_BOTMUN: z.number().default(0),
|
||||
pg_THE_BULK: z.number().default(0),
|
||||
pg_CAKE_MONSTER: z.number().default(0),
|
||||
pg_FROSTY: z.number().default(0),
|
||||
pg_GENERAL_CLUCK: z.number().default(0),
|
||||
pg_GREEN_HOOD: z.number().default(0),
|
||||
pg_GOKU: z.number().default(0),
|
||||
pg_MARAUDER: z.number().default(0),
|
||||
pg_PUG: z.number().default(0),
|
||||
pg_SANIC: z.number().default(0),
|
||||
pg_SERGEANT_SHIELD: z.number().default(0),
|
||||
pg_SHOOP_DA_WHOOP: z.number().default(0),
|
||||
pg_SKULLFIRE: z.number().default(0),
|
||||
pg_SPODERMAN: z.number().default(0),
|
||||
pg_TINMAN: z.number().default(0),
|
||||
pg_DUSK_CRAWLER: z.number().default(0),
|
||||
kills_normal: z.number().default(0),
|
||||
deaths_normal: z.number().default(0),
|
||||
wins_normal: z.number().default(0),
|
||||
|
||||
Reference in New Issue
Block a user