Finished first sw stats
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user