Added zombies stats

This commit is contained in:
2025-09-14 21:49:22 +02:00
parent 0d7c79a310
commit 060e277c37
3 changed files with 50 additions and 1 deletions

View File

@@ -4,7 +4,7 @@ import { getArcadeTotalWins } from "@/lib/hypixel/arcade/general"
import { NonNullStats } from "@/lib/schema/player"
import { BasicStat } from "../../_components/Stats"
import GeneralStats from "../GeneralStats"
import { ArcadeMiniWallsStats, ArcadePixelPartyStats } from "./stats"
import { ArcadeMiniWallsStats, ArcadePixelPartyStats, ArcadeZombieStats } from "./stats"
export default function ArcadeStats({ stats }: { stats: NonNullStats["Arcade"] }) {
if (!stats) return null
@@ -29,6 +29,8 @@ export default function ArcadeStats({ stats }: { stats: NonNullStats["Arcade"] }
<Separator className="my-4" />
<ArcadePixelPartyStats stats={stats} />
<Separator className="my-4" />
<ArcadeZombieStats stats={stats} />
<Separator className="my-4" />
</GeneralStats>
)
}

View File

@@ -5,6 +5,43 @@ import { capitalizeFirstLetter } from "@/lib/utils"
import { BasicStat } from "../../_components/Stats"
import { PixelPartyStatsTable } from "./table"
export function ArcadeZombieStats({ stats }: { stats: NonNullable<NonNullStats["Arcade"]> }) {
const bha = devide(stats.bullets_hit_zombies, stats.bullets_shot_zombies) * 100
const zha = devide(stats.headshots_zombies, stats.bullets_hit_zombies) * 100
return (
<>
<h2 className="pb-5 text-xl font-bold">Zombies</h2>
<div className="flex pb-5">
<div className="flex-1">
<BasicStat title="Wins: " value={formatNumber(stats.wins_zombies)} />
<p>
<br />
</p>
<BasicStat title="Rounds Survived: " value={formatNumber(stats.total_rounds_survived_zombies)} />
<BasicStat title="Best Round: " value={formatNumber(stats.best_round_zombies)} />
<BasicStat title="Zombies Killed: " value={formatNumber(stats.zombie_kills_zombies)} />
</div>
<div className="flex-1">
<BasicStat title="Bullets Hit: " value={formatNumber(stats.bullets_hit_zombies)} />
<BasicStat title="Bullets Shot: " value={formatNumber(stats.bullets_shot_zombies)} />
<BasicStat title="Bullet Hit Accuracy: " value={`${formatNumber(bha)}%`} />
<BasicStat title="Headshots: " value={formatNumber(stats.headshots_zombies)} />
<BasicStat title="Headshot Accuracy: " value={`${formatNumber(zha)}%`} />
</div>
<div className="flex-1">
<BasicStat title="Players Revived: " value={formatNumber(stats.players_revived_zombies)} />
<BasicStat title="Times Knocked Down: " value={formatNumber(stats.times_knocked_down_zombies)} />
<p>
<br />
</p>
<BasicStat title="Doors Opened: " value={formatNumber(stats.doors_opened_zombies)} />
<BasicStat title="Windows Repaired: " value={formatNumber(stats.windows_repaired_zombies)} />
</div>
</div>
</>
)
}
export function ArcadePixelPartyStats({ stats }: { stats: NonNullable<NonNullStats["Arcade"]> }) {
const losses = (stats.pixel_party?.games_played || 0) - (stats.pixel_party?.wins || 0)
const wl = formatNumber(devide(stats.pixel_party?.wins || 0, losses))

View File

@@ -920,6 +920,16 @@ export const arcadeStatsSchema = z.object({
deaths_mini_walls: z.number().default(0),
arrows_hit_mini_walls: z.number().default(0),
arrows_shot_mini_walls: z.number().default(0),
total_rounds_survived_zombies: z.number().default(0),
best_round_zombies: z.number().default(0),
zombie_kills_zombies: z.number().default(0),
bullets_hit_zombies: z.number().default(0),
bullets_shot_zombies: z.number().default(0),
headshots_zombies: z.number().default(0),
players_revived_zombies: z.number().default(0),
times_knocked_down_zombies: z.number().default(0),
doors_opened_zombies: z.number().default(0),
windows_repaired_zombies: z.number().default(0),
coins: z.number().default(0),
pixel_party: z.object({
wins: z.number().default(0),