import type { Upgrade } from "@elysium/types"; import { useGame } from "../../context/GameContext.js"; interface UpgradeCardProps { upgrade: Upgrade; currentGold: number; currentEssence: number; } const UpgradeCard = ({ upgrade, currentGold, currentEssence }: UpgradeCardProps): React.JSX.Element => { const { buyUpgrade } = useGame(); const canAfford = currentGold >= upgrade.costGold && currentEssence >= upgrade.costEssence; if (upgrade.purchased) { return (
✅ {upgrade.name} {upgrade.description}
); } return (

{upgrade.name}

{upgrade.description}

×{upgrade.multiplier} multiplier

{upgrade.costGold > 0 && 🪙 {upgrade.costGold.toLocaleString()}} {upgrade.costEssence > 0 && ✨ {upgrade.costEssence.toLocaleString()}}
); }; export const UpgradePanel = (): React.JSX.Element => { const { state } = useGame(); if (!state) return

Loading...

; const availableUpgrades = state.upgrades.filter((u) => u.unlocked); return (

Upgrades

{availableUpgrades.length === 0 ? (

No upgrades available yet — keep adventuring!

) : (
{availableUpgrades.map((upgrade) => ( ))}
)}
); };