Updated skywars stats
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
|
||||||
import { formatNumber } from "@/lib/formatters"
|
import { formatNumber } from "@/lib/formatters"
|
||||||
import { concatStatArrays } from "@/lib/funcs"
|
import { concatBedwarsStats } from "@/lib/funcs"
|
||||||
import { _BedwarsStats, getBedwarsModeStats, getBestMode } from "@/lib/hypixel/bedwars"
|
import { _BedwarsStats, getBedwarsModeStats, getBestMode } from "@/lib/hypixel/bedwars"
|
||||||
import { NonNullStats } from "@/lib/schema/player"
|
import { NonNullStats } from "@/lib/schema/player"
|
||||||
import { cn } from "@/lib/utils"
|
import { cn } from "@/lib/utils"
|
||||||
@@ -131,7 +131,7 @@ function CoreModeStats({ stats }: { stats: NonNullStats["Bedwars"] }) {
|
|||||||
const threesStats = getBedwarsModeStats("3s", stats as _BedwarsStats, true)
|
const threesStats = getBedwarsModeStats("3s", stats as _BedwarsStats, true)
|
||||||
const foursStats = getBedwarsModeStats("4s", stats as _BedwarsStats, true)
|
const foursStats = getBedwarsModeStats("4s", stats as _BedwarsStats, true)
|
||||||
|
|
||||||
const combinedStats = concatStatArrays(soloStats, doublesStats, threesStats, foursStats)
|
const combinedStats = concatBedwarsStats(soloStats, doublesStats, threesStats, foursStats)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TableRow className="font-bold">
|
<TableRow className="font-bold">
|
||||||
@@ -345,7 +345,7 @@ function AllModeStats({ stats }: { stats: NonNullStats["Bedwars"] }) {
|
|||||||
const underworld4sStats = getBedwarsModeStats("underworld_4s", stats as _BedwarsStats, true)
|
const underworld4sStats = getBedwarsModeStats("underworld_4s", stats as _BedwarsStats, true)
|
||||||
const castleStats = getBedwarsModeStats("castle", stats as _BedwarsStats, true)
|
const castleStats = getBedwarsModeStats("castle", stats as _BedwarsStats, true)
|
||||||
|
|
||||||
const finalStats = concatStatArrays(
|
const finalStats = concatBedwarsStats(
|
||||||
soloStats,
|
soloStats,
|
||||||
doublesStats,
|
doublesStats,
|
||||||
threesStats,
|
threesStats,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import { useEffect, useRef, useState } from "react"
|
|||||||
import CollapsedStats from "../../_components/CollapsedStats"
|
import CollapsedStats from "../../_components/CollapsedStats"
|
||||||
import { SkywarsLevel, SkywarsProgress } from "./components"
|
import { SkywarsLevel, SkywarsProgress } from "./components"
|
||||||
import SkyWarsGeneralStats from "./stats"
|
import SkyWarsGeneralStats from "./stats"
|
||||||
|
import SkywarsStatTable from "./table"
|
||||||
|
|
||||||
export default function SkyWarsStats({ stats }: { stats: NonNullStats["SkyWars"] }) {
|
export default function SkyWarsStats({ stats }: { stats: NonNullStats["SkyWars"] }) {
|
||||||
const ref = useRef<HTMLDivElement>(null)
|
const ref = useRef<HTMLDivElement>(null)
|
||||||
@@ -86,6 +87,7 @@ export default function SkyWarsStats({ stats }: { stats: NonNullStats["SkyWars"]
|
|||||||
<SkywarsProgress level={Math.floor(level)} percent={percent} />
|
<SkywarsProgress level={Math.floor(level)} percent={percent} />
|
||||||
<SkyWarsGeneralStats statsChecked={stats} level={level} />
|
<SkyWarsGeneralStats statsChecked={stats} level={level} />
|
||||||
<Separator className="my-4" />
|
<Separator className="my-4" />
|
||||||
|
<SkywarsStatTable stats={stats} />
|
||||||
</CollapsibleContent>
|
</CollapsibleContent>
|
||||||
</Collapsible>
|
</Collapsible>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
|
|||||||
@@ -140,3 +140,24 @@ function Ranked({ stats }: { stats: NonNullStats["SkyWars"] }) {
|
|||||||
</TableRow>
|
</TableRow>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// function OverallModeStats({ stats }: { stats: NonNullStats["SkyWars"] }) {
|
||||||
|
// const normal = getSkywarsModeStats("normal", stats as _SkywarsStats, true)
|
||||||
|
// const insane = getSkywarsModeStats("insane", stats as _SkywarsStats, true)
|
||||||
|
// const teams_normal = getSkywarsModeStats("teams_normal", stats as _SkywarsStats, true)
|
||||||
|
// const teams_insane = getSkywarsModeStats("teams_insane", stats as _SkywarsStats, true)
|
||||||
|
// const mega = getSkywarsModeStats("mega", stats as _SkywarsStats, true)
|
||||||
|
// const mega_doubles = getSkywarsModeStats("mega_doubles", stats as _SkywarsStats, true)
|
||||||
|
// const ranked = getSkywarsModeStats("ranked", stats as _SkywarsStats, true)
|
||||||
|
//
|
||||||
|
// const combinedStats = concatStatArrays(soloStats, doublesStats, threesStats, foursStats)
|
||||||
|
//
|
||||||
|
// return (
|
||||||
|
// <TableRow className="font-bold">
|
||||||
|
// <TableCell>Core Modes</TableCell>
|
||||||
|
// {combinedStats.map((v, i) => {
|
||||||
|
// return <TableCell key={i}>{typeof v === "number" ? formatNumber(v) : v}</TableCell>
|
||||||
|
// })}
|
||||||
|
// </TableRow>
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { BedwarsModeStats } from "./hypixel/bedwars"
|
import { BedwarsModeStats } from "./hypixel/bedwars"
|
||||||
|
import { devide } from "./hypixel/general"
|
||||||
|
|
||||||
export function concatStatArrays(...stats: BedwarsModeStats[]) {
|
export function concatBedwarsStats(...stats: BedwarsModeStats[]) {
|
||||||
if (stats.length === 0) return []
|
if (stats.length === 0) return []
|
||||||
|
|
||||||
const base: BedwarsModeStats = {
|
const base: BedwarsModeStats = {
|
||||||
@@ -29,11 +30,6 @@ export function concatStatArrays(...stats: BedwarsModeStats[]) {
|
|||||||
base.beds_lost_bedwars += s.beds_lost_bedwars
|
base.beds_lost_bedwars += s.beds_lost_bedwars
|
||||||
}
|
}
|
||||||
|
|
||||||
const devide = (a: number, b: number) => {
|
|
||||||
if (b === 0) return a
|
|
||||||
return a / b
|
|
||||||
}
|
|
||||||
|
|
||||||
const ret = {
|
const ret = {
|
||||||
...base,
|
...base,
|
||||||
winstreak: base.winstreak < 0 ? "?" : base.winstreak,
|
winstreak: base.winstreak < 0 ? "?" : base.winstreak,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { PRESTIGE_ICONS, PRESTIGES, SLUMBER_ROOMS, SLUMBER_WALLETS } from "@/data/hypixel/bedwars"
|
import { PRESTIGE_ICONS, PRESTIGES, SLUMBER_ROOMS, SLUMBER_WALLETS } from "@/data/hypixel/bedwars"
|
||||||
import { floorLevel } from "./formatters"
|
import { floorLevel } from "./formatters"
|
||||||
|
import { devide } from "./general"
|
||||||
|
|
||||||
export function getBedwarsStar(level: number) {
|
export function getBedwarsStar(level: number) {
|
||||||
if (level < 1100) {
|
if (level < 1100) {
|
||||||
@@ -161,12 +162,6 @@ export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw = fals
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function devide(num: number, num2: number) {
|
|
||||||
if (num2 === 0) return num
|
|
||||||
|
|
||||||
return num / num2
|
|
||||||
}
|
|
||||||
|
|
||||||
function bedwarsModeStats(prefix: string, stats: _BedwarsStats, raw = false) {
|
function bedwarsModeStats(prefix: string, stats: _BedwarsStats, raw = false) {
|
||||||
if (raw) {
|
if (raw) {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -5,3 +5,9 @@ export function getProgress(min: number, mid: number, max: number) {
|
|||||||
|
|
||||||
return progress / diff * 100
|
return progress / diff * 100
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function devide(num: number, num2: number) {
|
||||||
|
if (num2 === 0) return num
|
||||||
|
|
||||||
|
return num / num2
|
||||||
|
}
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ export function getSkywarsModeStats(mode: Mode, stats: _SkywarsStats, raw = fals
|
|||||||
case "teams_insane":
|
case "teams_insane":
|
||||||
return skywarsModeStats("team_insane", stats, raw)
|
return skywarsModeStats("team_insane", stats, raw)
|
||||||
case "mega":
|
case "mega":
|
||||||
return skywarsModeStats("mega_mega", stats, raw)
|
return skywarsModeStats("mega", stats, raw)
|
||||||
case "mega_doubles":
|
case "mega_doubles":
|
||||||
return skywarsModeStats("mega_doubles", stats, raw)
|
return skywarsModeStats("mega_doubles", stats, raw)
|
||||||
case "ranked":
|
case "ranked":
|
||||||
|
|||||||
@@ -218,5 +218,33 @@ export const skywarsStatsSchema = z.looseObject({
|
|||||||
souls: z.number().default(0),
|
souls: z.number().default(0),
|
||||||
paid_souls: z.number().default(0),
|
paid_souls: z.number().default(0),
|
||||||
soul_well: z.number().default(0),
|
soul_well: z.number().default(0),
|
||||||
packages: z.array(z.string())
|
packages: z.array(z.string()),
|
||||||
|
kills_solo_normal: z.number().default(0),
|
||||||
|
deaths_solo_normal: z.number().default(0),
|
||||||
|
wins_solo_normal: z.number().default(0),
|
||||||
|
losses_solo_normal: z.number().default(0),
|
||||||
|
kills_solo_insane: z.number().default(0),
|
||||||
|
deaths_solo_insane: z.number().default(0),
|
||||||
|
wins_solo_insane: z.number().default(0),
|
||||||
|
losses_solo_insane: z.number().default(0),
|
||||||
|
kills_team_normal: z.number().default(0),
|
||||||
|
deaths_team_normal: z.number().default(0),
|
||||||
|
wins_team_normal: z.number().default(0),
|
||||||
|
losses_team_normal: z.number().default(0),
|
||||||
|
kills_team_insane: z.number().default(0),
|
||||||
|
deaths_team_insane: z.number().default(0),
|
||||||
|
wins_team_insane: z.number().default(0),
|
||||||
|
losses_team_insane: z.number().default(0),
|
||||||
|
kills_mega: z.number().default(0),
|
||||||
|
deaths_mega: z.number().default(0),
|
||||||
|
wins_mega: z.number().default(0),
|
||||||
|
losses_mega: z.number().default(0),
|
||||||
|
kills_mega_doubles: z.number().default(0),
|
||||||
|
deaths_mega_doubles: z.number().default(0),
|
||||||
|
wins_mega_doubles: z.number().default(0),
|
||||||
|
losses_mega_doubles: z.number().default(0),
|
||||||
|
kills_ranked_normal: z.number().default(0),
|
||||||
|
deaths_ranked_normal: z.number().default(0),
|
||||||
|
wins_ranked_normal: z.number().default(0),
|
||||||
|
losses_ranked_normal: z.number().default(0)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user