finished skywars table
This commit is contained in:
@@ -88,6 +88,7 @@ export default function SkyWarsStats({ stats }: { stats: NonNullStats["SkyWars"]
|
|||||||
<SkyWarsGeneralStats statsChecked={stats} level={level} />
|
<SkyWarsGeneralStats statsChecked={stats} level={level} />
|
||||||
<Separator className="my-4" />
|
<Separator className="my-4" />
|
||||||
<SkywarsStatTable stats={stats} />
|
<SkywarsStatTable stats={stats} />
|
||||||
|
<Separator className="my-4" />
|
||||||
</CollapsibleContent>
|
</CollapsibleContent>
|
||||||
</Collapsible>
|
</Collapsible>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
|
|||||||
@@ -1,5 +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 { concatSkywarsStats } from "@/lib/funcs"
|
||||||
import { _SkywarsStats, getBestMode, getSkywarsModeStats } from "@/lib/hypixel/skywars"
|
import { _SkywarsStats, getBestMode, getSkywarsModeStats } from "@/lib/hypixel/skywars"
|
||||||
import { NonNullStats } from "@/lib/schema/player"
|
import { NonNullStats } from "@/lib/schema/player"
|
||||||
import { cn } from "@/lib/utils"
|
import { cn } from "@/lib/utils"
|
||||||
@@ -16,6 +17,7 @@ export default function SkywarsStatTable({ stats }: { stats: NonNullStats["SkyWa
|
|||||||
<Mega stats={stats} />
|
<Mega stats={stats} />
|
||||||
<MegaDoubles stats={stats} />
|
<MegaDoubles stats={stats} />
|
||||||
<Ranked stats={stats} />
|
<Ranked stats={stats} />
|
||||||
|
<OverallModeStats stats={stats} />
|
||||||
</TableBody>
|
</TableBody>
|
||||||
</Table>
|
</Table>
|
||||||
)
|
)
|
||||||
@@ -141,23 +143,23 @@ function Ranked({ stats }: { stats: NonNullStats["SkyWars"] }) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// function OverallModeStats({ stats }: { stats: NonNullStats["SkyWars"] }) {
|
function OverallModeStats({ stats }: { stats: NonNullStats["SkyWars"] }) {
|
||||||
// const normal = getSkywarsModeStats("normal", stats as _SkywarsStats, true)
|
const normal = getSkywarsModeStats("normal", stats as _SkywarsStats, true)
|
||||||
// const insane = getSkywarsModeStats("insane", stats as _SkywarsStats, true)
|
const insane = getSkywarsModeStats("insane", stats as _SkywarsStats, true)
|
||||||
// const teams_normal = getSkywarsModeStats("teams_normal", 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 teams_insane = getSkywarsModeStats("teams_insane", stats as _SkywarsStats, true)
|
||||||
// const mega = getSkywarsModeStats("mega", stats as _SkywarsStats, true)
|
const mega = getSkywarsModeStats("mega", stats as _SkywarsStats, true)
|
||||||
// const mega_doubles = getSkywarsModeStats("mega_doubles", stats as _SkywarsStats, true)
|
const mega_doubles = getSkywarsModeStats("mega_doubles", stats as _SkywarsStats, true)
|
||||||
// const ranked = getSkywarsModeStats("ranked", stats as _SkywarsStats, true)
|
const ranked = getSkywarsModeStats("ranked", stats as _SkywarsStats, true)
|
||||||
//
|
|
||||||
// const combinedStats = concatStatArrays(soloStats, doublesStats, threesStats, foursStats)
|
const combinedStats = concatSkywarsStats(normal, insane, teams_normal, teams_insane, mega, mega_doubles, ranked)
|
||||||
//
|
|
||||||
// return (
|
return (
|
||||||
// <TableRow className="font-bold">
|
<TableRow className="font-bold">
|
||||||
// <TableCell>Core Modes</TableCell>
|
<TableCell>Core Modes</TableCell>
|
||||||
// {combinedStats.map((v, i) => {
|
{combinedStats.map((v, i) => {
|
||||||
// return <TableCell key={i}>{typeof v === "number" ? formatNumber(v) : v}</TableCell>
|
return <TableCell key={i}>{typeof v === "number" ? formatNumber(v) : v}</TableCell>
|
||||||
// })}
|
})}
|
||||||
// </TableRow>
|
</TableRow>
|
||||||
// )
|
)
|
||||||
// }
|
}
|
||||||
|
|||||||
@@ -1,5 +1,25 @@
|
|||||||
import { BedwarsModeStats } from "./hypixel/bedwars"
|
import { BedwarsModeStats } from "./hypixel/bedwars"
|
||||||
import { devide } from "./hypixel/general"
|
import { devide } from "./hypixel/general"
|
||||||
|
import { SkywarsModeStats } from "./hypixel/skywars"
|
||||||
|
|
||||||
|
export function concatSkywarsStats(...stats: SkywarsModeStats[]) {
|
||||||
|
const summed = concatStatsArray<SkywarsModeStats>(["kills", "deaths", "wins", "losses"], ...stats)
|
||||||
|
|
||||||
|
const ret = {
|
||||||
|
...summed,
|
||||||
|
kd: devide(summed.kills, summed.deaths),
|
||||||
|
wl: devide(summed.wins, summed.losses)
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
ret.kills,
|
||||||
|
ret.deaths,
|
||||||
|
ret.kd,
|
||||||
|
ret.wins,
|
||||||
|
ret.losses,
|
||||||
|
ret.wl
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
export function concatBedwarsStats(...stats: BedwarsModeStats[]) {
|
export function concatBedwarsStats(...stats: BedwarsModeStats[]) {
|
||||||
if (stats.length === 0) return []
|
if (stats.length === 0) return []
|
||||||
@@ -15,7 +35,6 @@ export function concatBedwarsStats(...stats: BedwarsModeStats[]) {
|
|||||||
"beds_lost_bedwars"
|
"beds_lost_bedwars"
|
||||||
], ...stats)
|
], ...stats)
|
||||||
|
|
||||||
// winstreak special handling (max of provided, ignore -1)
|
|
||||||
let winstreak = -1
|
let winstreak = -1
|
||||||
for (const s of stats) {
|
for (const s of stats) {
|
||||||
if (s.winstreak !== -1) winstreak = Math.max(winstreak, s.winstreak)
|
if (s.winstreak !== -1) winstreak = Math.max(winstreak, s.winstreak)
|
||||||
|
|||||||
Reference in New Issue
Block a user