Finished blitz general stats and mode stats table

This commit is contained in:
2025-09-13 14:28:26 +02:00
parent e440ac8eb1
commit af79ccff26
4 changed files with 78 additions and 2 deletions

View File

@@ -5,12 +5,14 @@ import { devide } from "@/lib/hypixel/general"
import { NonNullStats } from "@/lib/schema/player"
import { cn } from "@/lib/utils"
import GeneralStats from "../GeneralStats"
import BlitzGeneralStats from "./stats"
import { BlitzModeStatsTable } from "./table"
export default function BlitzStats({ stats }: { stats: NonNullStats["Blitz"] }) {
if (!stats) return null
const kd = formatNumber(devide(stats.kills, stats.deaths))
const wins = stats.wins_solo_normal + stats.wins_team_normal
const wins = stats.wins_solo_normal + stats.wins_teams_normal
const mostPlayedKit = getBlitzMostPlayedKit(stats)
return (
@@ -41,6 +43,10 @@ export default function BlitzStats({ stats }: { stats: NonNullStats["Blitz"] })
]}
>
<Separator className="my-4" />
<BlitzGeneralStats stats={stats} />
<Separator className="my-4" />
<BlitzModeStatsTable stats={stats} />
<Separator className="my-4" />
</GeneralStats>
)
}

View File

@@ -0,0 +1,36 @@
import { formatNumber } from "@/lib/formatters"
import { devide } from "@/lib/hypixel/general"
import { NonNullStats } from "@/lib/schema/player"
import { BasicStat } from "../../_components/Stats"
export default function BlitzGeneralStats({ stats }: { stats: NonNullable<NonNullStats["Blitz"]> }) {
const wins = stats.wins_solo_normal + stats.wins_teams_normal
const games = wins + stats.deaths
const losses = games - wins
const kd = devide(stats.kills, stats.deaths)
const wl = devide(wins, losses)
const kg = devide(stats.kills, games)
return (
<div className="flex">
<div className="flex-1">
<BasicStat title="Coins: " value={formatNumber(stats.coins)} className="text-mc-gold" />
<BasicStat title="Kills: " value={formatNumber(stats.kills)} />
<BasicStat title="Deaths: " value={formatNumber(stats.deaths)} />
<BasicStat title="Kill/Death Ratio: " value={formatNumber(kd)} />
</div>
<div className="flex-1">
<BasicStat title="Wins: " value={formatNumber(wins)} />
<BasicStat title="Losses: " value={formatNumber(losses)} />
<BasicStat title="Win/Loss Ratio: " value={formatNumber(wl)} />
<BasicStat title="Kills/Game Ratio: " value={formatNumber(kg)} />
</div>
<div className="flex-1">
<BasicStat title="Games Played: " value={formatNumber(games)} />
<BasicStat title="Damage Dealt: " value={formatNumber(stats.damage)} />
<BasicStat title="Damage Taken: " value={formatNumber(stats.damage_taken)} />
</div>
</div>
)
}

View File

@@ -0,0 +1,29 @@
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import { formatNumber } from "@/lib/formatters"
import { NonNullStats } from "@/lib/schema/player"
export function BlitzModeStatsTable({ stats }: { stats: NonNullable<NonNullStats["Blitz"]> }) {
return (
<Table>
<TableHeader>
<TableRow>
<TableHead>Mode</TableHead>
<TableHead>Kills</TableHead>
<TableHead>Wins</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>Solo Normal</TableCell>
<TableCell>{formatNumber(stats.kills_solo_normal)}</TableCell>
<TableCell>{formatNumber(stats.wins_solo_normal)}</TableCell>
</TableRow>
<TableRow>
<TableCell>Teams Normal</TableCell>
<TableCell>{formatNumber(stats.kills_teams_normal)}</TableCell>
<TableCell>{formatNumber(stats.wins_teams_normal)}</TableCell>
</TableRow>
</TableBody>
</Table>
)
}