Finished first sw stats

This commit is contained in:
2025-08-22 13:51:18 +02:00
parent 4dd571c367
commit 054ec7841b
6 changed files with 153 additions and 3 deletions

View File

@@ -11,3 +11,27 @@ export function getSkywarsLevel(xp: number) {
return 0
}
export function getSkywarsXpForLevel(level: number) {
const xps = [0, 20, 70, 150, 250, 500, 1000, 2000, 3500, 6000, 10000, 15000]
if (level >= 12) {
return (level - 12) * 10000 + 15000
}
const baseLevel = Math.floor(level)
const progress = level - baseLevel
if (baseLevel >= xps.length) {
return xps[xps.length - 1]
}
if (baseLevel === 0) {
return progress * xps[1]
}
const baseXp = xps[baseLevel]
const nextXp = xps[baseLevel + 1] || 15000
return baseXp + progress * (nextXp - baseXp)
}

View File

@@ -28,3 +28,11 @@ export function getSkyWarsIcon(icon?: string) {
return icons[icon] ?? ICONS.default
}
export function getPrestigeName(level: number) {
const floored = floorLevel(level, 5)
if (level > 150) return PRESTIGES.at(-1)!.name
return PRESTIGES.find(p => p.level === floored)!.name
}

View File

@@ -195,5 +195,7 @@ export const skywarsStatsSchema = z.looseObject({
kills: z.number().default(0),
deaths: z.number().default(0),
wins: z.number().default(0),
losses: z.number().default(0)
losses: z.number().default(0),
cosmetic_tokens: z.number().default(0),
coins: z.number().default(0)
})