Finished murder mystery
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
import { formatNumber, formatSecondsToTime } from "@/lib/formatters"
|
||||||
|
import { devide } from "@/lib/hypixel/general"
|
||||||
|
import { NonNullStats } from "@/lib/schema/player"
|
||||||
|
import { BasicStat } from "../../_components/Stats"
|
||||||
|
|
||||||
|
export default function InfectionStats({ stats }: { stats: NonNullStats["MurderMystery"] }) {
|
||||||
|
if (!stats) return null
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h2 className="text-xl font-bold">Infection</h2>
|
||||||
|
<div className="flex">
|
||||||
|
<div className="flex-1">
|
||||||
|
<BasicStat title="Kills as Infected: " value={formatNumber(stats.kills_as_infected_MURDER_INFECTION)} />
|
||||||
|
<BasicStat title="Kills as Survivor: " value={formatNumber(stats.kills_as_survivor_MURDER_INFECTION)} />
|
||||||
|
<BasicStat title="Final Kills: " value={formatNumber(stats.kills_MURDER_INFECTION)} />
|
||||||
|
</div>
|
||||||
|
<div className="flex-1">
|
||||||
|
<BasicStat title="Wins: " value={formatNumber(stats.wins_MURDER_INFECTION)} />
|
||||||
|
<BasicStat title="Losses: " value={formatNumber(stats.games_MURDER_INFECTION - stats.wins_MURDER_INFECTION)} />
|
||||||
|
<BasicStat
|
||||||
|
title="Win/Loss Ratio: "
|
||||||
|
value={formatNumber(devide(stats.wins_MURDER_INFECTION, stats.games_MURDER_INFECTION - stats.wins_MURDER_INFECTION))}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="flex-1">
|
||||||
|
<BasicStat title="Time Survived: " value={formatSecondsToTime(stats.total_time_survived_seconds_MURDER_INFECTION)} />
|
||||||
|
<BasicStat title="Gold Collected: " value={formatNumber(stats.coins_pickedup_MURDER_INFECTION)} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import { Separator } from "@/components/ui/separator"
|
|||||||
import { formatNumber } from "@/lib/formatters"
|
import { formatNumber } from "@/lib/formatters"
|
||||||
import { NonNullStats } from "@/lib/schema/player"
|
import { NonNullStats } from "@/lib/schema/player"
|
||||||
import CollapsedStats from "../../_components/CollapsedStats"
|
import CollapsedStats from "../../_components/CollapsedStats"
|
||||||
|
import InfectionStats from "./infection"
|
||||||
import MurderMysteryGeneralStats from "./stats"
|
import MurderMysteryGeneralStats from "./stats"
|
||||||
import MurderMysteryStatTable from "./table"
|
import MurderMysteryStatTable from "./table"
|
||||||
|
|
||||||
@@ -35,6 +36,8 @@ export default function MurderMysteryStats({ stats }: { stats: NonNullStats["Mur
|
|||||||
<Separator className="my-4" />
|
<Separator className="my-4" />
|
||||||
<MurderMysteryGeneralStats statsChecked={stats} />
|
<MurderMysteryGeneralStats statsChecked={stats} />
|
||||||
<Separator className="my-4" />
|
<Separator className="my-4" />
|
||||||
|
<InfectionStats stats={stats} />
|
||||||
|
<Separator className="my-4" />
|
||||||
<MurderMysteryStatTable stats={stats} />
|
<MurderMysteryStatTable stats={stats} />
|
||||||
<Separator className="my-4" />
|
<Separator className="my-4" />
|
||||||
</AccordionContent>
|
</AccordionContent>
|
||||||
|
|||||||
@@ -376,5 +376,12 @@ export const murderMysteryStatsSchema = z.looseObject({
|
|||||||
active_knife_skin: z.string().optional(),
|
active_knife_skin: z.string().optional(),
|
||||||
quickest_detective_win_time_seconds: z.number().default(0),
|
quickest_detective_win_time_seconds: z.number().default(0),
|
||||||
quickest_murderer_win_time_seconds: z.number().default(0),
|
quickest_murderer_win_time_seconds: z.number().default(0),
|
||||||
|
kills_as_infected_MURDER_INFECTION: z.number().default(0),
|
||||||
|
kills_as_survivor_MURDER_INFECTION: z.number().default(0),
|
||||||
|
kills_MURDER_INFECTION: z.number().default(0),
|
||||||
|
wins_MURDER_INFECTION: z.number().default(0),
|
||||||
|
games_MURDER_INFECTION: z.number().default(0),
|
||||||
|
total_time_survived_seconds_MURDER_INFECTION: z.number().default(0),
|
||||||
|
coins_pickedup_MURDER_INFECTION: z.number().default(0),
|
||||||
...murderMysteryModeStats()
|
...murderMysteryModeStats()
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user