Finished warlords stats

This commit is contained in:
2025-09-20 00:33:15 +02:00
parent 6ce2775058
commit b13d6023ff
5 changed files with 104 additions and 7 deletions

View File

@@ -7,6 +7,7 @@ import GeneralStats from "../GeneralStats"
import { WarlordsWeaponsBar } from "./client"
import WarlordsGeneralStats from "./stats"
import { WarlordsClassStatsTable, WarlordsModeStatsTable } from "./table"
import WarlordsWeaponsList from "./weapons"
export default function WarlordsStats({ stats }: { stats: NonNullStats["Warlords"] }) {
if (!stats) return null
@@ -44,6 +45,8 @@ export default function WarlordsStats({ stats }: { stats: NonNullStats["Warlords
<Separator className="my-4" />
<WarlordsWeaponsBar stats={stats} />
<Separator className="my-4" />
<WarlordsWeaponsList weapons={stats.weapon_inventory} />
<Separator className="my-4" />
<WarlordsClassStatsTable stats={stats} />
<Separator className="my-4" />
<WarlordsModeStatsTable stats={stats} />

View File

@@ -0,0 +1,41 @@
import {
getWarlordsPlayerClass,
getWarlordsWeaponMaterial,
getWarlordsWeaponPrefix,
getWarlordsWeaponRarityColor
} from "@/lib/hypixel/warlords/general"
import { NonNullStats } from "@/lib/schema/player"
export default function WarlordsWeaponsList({ weapons }: { weapons: NonNullable<NonNullStats["Warlords"]>["weapon_inventory"] }) {
return (
<div>
<p className="font-bold">Weapon Inventory</p>
{weapons !== undefined ?
(
<div>
{weapons.map((w, i) => {
return <Weapon key={i} data={w} />
})}
</div>
) :
<p>This person has no weapons.</p>}
</div>
)
}
function Weapon({ data }: { data: NonNullable<NonNullable<NonNullStats["Warlords"]>["weapon_inventory"]>[number] }) {
const score = data.damage * (1 + data.upgradeTimes * 0.075)
+ data.chance
+ data.multiplier
+ data.abilityBoost * (1 + data.upgradeTimes * 0.075)
+ data.health * (1 + data.upgradeTimes * 0.25)
+ data.energy * (1 + data.upgradeTimes * 0.1)
+ data.cooldown * (1 + data.upgradeTimes * 0.075)
+ data.movement * (1 + data.upgradeTimes * 0.075)
const prefix = getWarlordsWeaponPrefix(score, data.category) ?? "Unknown"
const material = getWarlordsWeaponMaterial(data.material) ?? "Unknown"
const playerClass = getWarlordsPlayerClass(0, 0) ?? "Unknown"
const rarityColor = getWarlordsWeaponRarityColor(data.category)
return <p className={`text-mc-${rarityColor}`}>{`${prefix} ${material} of the ${playerClass}`}</p>
}