import type { Boss } from "@elysium/types";
import { useGame } from "../../context/GameContext.js";
interface BossCardProps {
boss: Boss;
prestigeCount: number;
}
const BossCard = ({ boss, prestigeCount }: BossCardProps): React.JSX.Element => {
const { attackBoss } = useGame();
const hpPercent = (boss.currentHp / boss.maxHp) * 100;
const isLocked = boss.prestigeRequirement > prestigeCount;
return (
{boss.name}
{boss.description}
{isLocked && boss.status === "locked" && (
🔒 Requires Prestige {boss.prestigeRequirement}
)}
{boss.status !== "locked" && boss.status !== "defeated" && (
{boss.currentHp.toLocaleString()} / {boss.maxHp.toLocaleString()} HP
)}
🪙 {boss.goldReward.toLocaleString()}
{boss.essenceReward > 0 && ✨ {boss.essenceReward.toLocaleString()}}
{boss.crystalReward > 0 && 💎 {boss.crystalReward.toLocaleString()}}
{boss.status === "available" || boss.status === "in_progress" ? (
) : null}
{boss.status === "defeated" && (
☠️ Defeated
)}
);
};
export const BossPanel = (): React.JSX.Element => {
const { state } = useGame();
if (!state) return