Finished bw stats table

This commit is contained in:
2025-08-21 23:26:17 +02:00
parent b222fb1f60
commit b9959e86b7
4 changed files with 248 additions and 20 deletions

View File

@@ -1,5 +1,6 @@
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import { formatNumber } from "@/lib/formatters"
import { concatStatArrays } from "@/lib/funcs"
import { _BedwarsStats, getBedwarsModeStats } from "@/lib/hypixel/bedwars"
import { Player } from "@/lib/schema/player"
@@ -27,6 +28,7 @@ export default function BedwarsStatTable({ stats }: { stats: Player["player"]["s
<Swap4sStats stats={stats} />
<Underworld4sStats stats={stats} />
<CastleStats stats={stats} />
<AllModeStats stats={stats} />
</TableBody>
</Table>
)
@@ -132,17 +134,7 @@ function CoreModeStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"]
const threesStats = getBedwarsModeStats("3s", stats as _BedwarsStats, true)
const foursStats = getBedwarsModeStats("4s", stats as _BedwarsStats, true)
const fraction = [2, 5, 8]
const combinedStats = soloStats.map((v, i) => {
if (v < 0) return "?"
if (fraction.includes(i) || i === soloStats.length - 1) {
return ((v + doublesStats[i] + threesStats[i] + foursStats[i]) / 4).toFixed(2)
}
return v + doublesStats[i] + threesStats[i] + foursStats[i]
})
const combinedStats = concatStatArrays(soloStats, doublesStats, threesStats, foursStats)
return (
<TableRow className="font-bold">
@@ -363,3 +355,54 @@ function CastleStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] })
</TableRow>
)
}
function AllModeStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const soloStats = getBedwarsModeStats("solo", stats as _BedwarsStats, true)
const doublesStats = getBedwarsModeStats("doubles", stats as _BedwarsStats, true)
const threesStats = getBedwarsModeStats("3s", stats as _BedwarsStats, true)
const foursStats = getBedwarsModeStats("4s", stats as _BedwarsStats, true)
const fourVFourStats = getBedwarsModeStats("4v4", stats as _BedwarsStats, true)
const rushDoublesStats = getBedwarsModeStats("rush_2s", stats as _BedwarsStats, true)
const rush4sStats = getBedwarsModeStats("rush_4s", stats as _BedwarsStats, true)
const ultimateDoublesStats = getBedwarsModeStats("ultimate_2s", stats as _BedwarsStats, true)
const ultimate4sStats = getBedwarsModeStats("ultimate_4s", stats as _BedwarsStats, true)
const luckyDoublesStats = getBedwarsModeStats("lucky_2s", stats as _BedwarsStats, true)
const lucky4sStats = getBedwarsModeStats("lucky_4s", stats as _BedwarsStats, true)
const voidlessDoublesStats = getBedwarsModeStats("voidless_2s", stats as _BedwarsStats, true)
const voidless4sStats = getBedwarsModeStats("voidless_4s", stats as _BedwarsStats, true)
const armedDoublesStats = getBedwarsModeStats("armed_2s", stats as _BedwarsStats, true)
const armed4sStats = getBedwarsModeStats("armed_4s", stats as _BedwarsStats, true)
const swap4sStats = getBedwarsModeStats("swap_4s", stats as _BedwarsStats, true)
const underworld4sStats = getBedwarsModeStats("underworld_4s", stats as _BedwarsStats, true)
const castleStats = getBedwarsModeStats("castle", stats as _BedwarsStats, true)
const finalStats = concatStatArrays(
soloStats,
doublesStats,
threesStats,
foursStats,
fourVFourStats,
rushDoublesStats,
rush4sStats,
ultimateDoublesStats,
ultimate4sStats,
luckyDoublesStats,
lucky4sStats,
voidlessDoublesStats,
voidless4sStats,
armedDoublesStats,
armed4sStats,
swap4sStats,
underworld4sStats,
castleStats
)
return (
<TableRow className="font-bold">
<TableCell>All Modes</TableCell>
{finalStats.map((v, i) => {
return <TableCell key={i}>{typeof v === "number" ? formatNumber(v) : v}</TableCell>
})}
</TableRow>
)
}