Updated murder mystery stats
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import { KNIFESKINS } from "@/data/hypixel/murder-mystery"
|
||||
import { KNIFESKINS, MODES } from "@/data/hypixel/murder-mystery"
|
||||
import { NonNullStats } from "@/lib/schema/player"
|
||||
import { devide } from "../general"
|
||||
|
||||
export function getKnifeName(name?: string) {
|
||||
if (!name) return KNIFESKINS.undefined
|
||||
@@ -9,3 +11,60 @@ export function getKnifeName(name?: string) {
|
||||
|
||||
return skin
|
||||
}
|
||||
|
||||
export function getModeTitle(mode: Exclude<typeof MODES[number]["id"], ""> | "all_modes") {
|
||||
if (mode === "all_modes") return MODES.find(m => m.id === "")!.name
|
||||
|
||||
return MODES.find(m => m.id === mode)!.name
|
||||
}
|
||||
|
||||
export function getBestMurderMysteryMode(stats: NonNullable<NonNullStats["MurderMystery"]>) {
|
||||
let best: typeof MODES[number] | null = null
|
||||
let mostPlays = 0
|
||||
for (const mode of MODES.filter(m => m.id !== "")) {
|
||||
const [, , , wins, losses] = getMurderMysteryModeStats(mode.id, stats)
|
||||
const plays = (wins as number || 0) + (losses as number || 0)
|
||||
if (plays > mostPlays) {
|
||||
mostPlays = plays
|
||||
best = mode
|
||||
}
|
||||
}
|
||||
return best === null ? null : best.id
|
||||
}
|
||||
|
||||
export function getMurderMysteryModeStats(
|
||||
index: Exclude<typeof MODES[number]["id"], ""> | "all_modes",
|
||||
stats: NonNullable<NonNullStats["MurderMystery"]>
|
||||
) {
|
||||
return murderMysteryModeStats(index, stats)
|
||||
}
|
||||
|
||||
function murderMysteryModeStats(index: Exclude<typeof MODES[number]["id"], ""> | "all_modes", stats: NonNullable<NonNullStats["MurderMystery"]>) {
|
||||
if (index === "all_modes") {
|
||||
const losses = stats["games"] - stats["wins"]
|
||||
|
||||
return [
|
||||
stats["kills"],
|
||||
stats["bow_kills"],
|
||||
stats["knife_kills"],
|
||||
stats["thrown_knife_kills"],
|
||||
stats["wins"],
|
||||
losses,
|
||||
devide(stats["wins"], losses),
|
||||
stats["coins_pickedup"]
|
||||
]
|
||||
}
|
||||
|
||||
const losses = stats[`games_${index}`] - stats[`wins_${index}`]
|
||||
|
||||
return [
|
||||
stats[`kills_${index}`],
|
||||
stats[`bow_kills_${index}`],
|
||||
stats[`knife_kills_${index}`],
|
||||
stats[`thrown_knife_kills_${index}`],
|
||||
stats[`wins_${index}`],
|
||||
losses,
|
||||
devide(stats[`wins_${index}`], losses),
|
||||
stats[`coins_pickedup_${index}`]
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user