Updated skywars stats
This commit is contained in:
@@ -56,7 +56,7 @@ export function SkywarsProgress({ level, percent }: { level: number, percent: nu
|
||||
<div className="flex items-center mb-10">
|
||||
<LevelNumber level={level} className="mr-2" />
|
||||
<Progress level={level} percent={percent} />
|
||||
<div className="flex-1 h-5 rounded-r-md bg-background"></div>
|
||||
<div className={cn("flex-1 h-5 rounded-r-md bg-background", percent === 0 ? "rounded-l-md" : undefined)}></div>
|
||||
<LevelNumber level={level + 1} className="ml-2" />
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -64,15 +64,15 @@ export default function SkyWarsStats({ stats }: { stats: Player["player"]["stats
|
||||
},
|
||||
{
|
||||
title: <p>KD</p>,
|
||||
stat: <p>{kd}</p>
|
||||
stat: <p className="text-muted-foreground">{kd}</p>
|
||||
},
|
||||
{
|
||||
title: <p>Wins</p>,
|
||||
stat: <p>{formatNumber(stats.wins)}</p>
|
||||
stat: <p className="text-muted-foreground">{formatNumber(stats.wins)}</p>
|
||||
},
|
||||
{
|
||||
title: <p>WL</p>,
|
||||
stat: <p>{wl}</p>
|
||||
stat: <p className="text-muted-foreground">{wl}</p>
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -45,12 +45,14 @@ export default function SkyWarsGeneralStats({
|
||||
<p>
|
||||
<br />
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex-1">
|
||||
<BasicStat title="Melee Kills: " value={formatNumber(stats.melee_kills)} />
|
||||
<BasicStat title="Void Kills: " value={formatNumber(stats.void_kills)} />
|
||||
<BasicStat title="Bow Kills: " value={formatNumber(stats.bow_kills)} />
|
||||
<BasicStat title="Mobs Kills: " value={formatNumber(stats.mobs_kills)} />
|
||||
<BasicStat title="Eggs Thrown: " value={formatNumber(stats.egg_thrown)} />
|
||||
<BasicStat title="Pearls Thrown: " value={formatNumber(stats.enderpearls_thrown)} />
|
||||
</div>
|
||||
<div className="flex-1">
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -1,37 +1,26 @@
|
||||
export function getSkywarsLevel(xp: number) {
|
||||
const xps = [0, 20, 70, 150, 250, 500, 1000, 2000, 3500, 6000, 10000, 15000]
|
||||
if (xp >= 15000) {
|
||||
return (xp - 15000) / 10000 + 12
|
||||
}
|
||||
for (let i = 0; i < xps.length; i += 1) {
|
||||
if (xp < xps[i]) {
|
||||
return i + (xp - xps[i - 1]) / (xps[i] - xps[i - 1])
|
||||
}
|
||||
}
|
||||
import { INITIAL_XP, RECURRING_XP } from "@/data/hypixel/skywars"
|
||||
|
||||
export function getSkywarsLevel(xp: number) {
|
||||
if (xp >= 15000) {
|
||||
return (xp - 15000) / RECURRING_XP + 12
|
||||
} else {
|
||||
for (let i = 0; i < INITIAL_XP.length; i++) {
|
||||
if (xp < INITIAL_XP[i]) {
|
||||
return i + (xp - INITIAL_XP[i - 1]) / (INITIAL_XP[i] - INITIAL_XP[i - 1])
|
||||
}
|
||||
}
|
||||
}
|
||||
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
|
||||
export function getSkywarsXpForLevel(lvl: number) {
|
||||
let xp = 0
|
||||
for (let i = 0; i < lvl; i++) {
|
||||
if (i < INITIAL_XP.length) {
|
||||
xp = INITIAL_XP[i]
|
||||
} else {
|
||||
xp += RECURRING_XP
|
||||
}
|
||||
|
||||
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)
|
||||
return xp
|
||||
}
|
||||
|
||||
@@ -33,13 +33,8 @@ export function getTotalChallenges(challenges: Player["player"]["challenges"]) {
|
||||
|
||||
export function rewardClaimed(claimedAt?: number) {
|
||||
if (!claimedAt) return false
|
||||
const now = new Date()
|
||||
const claimedDate = new Date(claimedAt)
|
||||
const now = Date.now()
|
||||
const diff = now - claimedAt
|
||||
const oneDay = 24 * 60 * 60 * 1000
|
||||
|
||||
if (now.getMilliseconds() - claimedDate.getMilliseconds() > oneDay) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
return diff <= oneDay
|
||||
}
|
||||
|
||||
@@ -194,8 +194,20 @@ export const skywarsStatsSchema = z.looseObject({
|
||||
selected_prestige_icon: z.string().optional(),
|
||||
kills: z.number().default(0),
|
||||
deaths: z.number().default(0),
|
||||
assists: z.number().default(0),
|
||||
wins: z.number().default(0),
|
||||
losses: z.number().default(0),
|
||||
cosmetic_tokens: z.number().default(0),
|
||||
coins: z.number().default(0)
|
||||
coins: z.number().default(0),
|
||||
blocks_placed: z.number().default(0),
|
||||
blocks_broken: z.number().default(0),
|
||||
chests_opened: z.number().default(0),
|
||||
arrows_hit: z.number().default(0),
|
||||
arrows_shot: z.number().default(0),
|
||||
melee_kills: z.number().default(0),
|
||||
void_kills: z.number().default(0),
|
||||
bow_kills: z.number().default(0),
|
||||
mobs_kills: z.number().default(0),
|
||||
enderpearls_thrown: z.number().default(0),
|
||||
egg_thrown: z.number().default(0)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user