import { Upgrade } from '../types'; import { formatNumber } from '../utils/formatters'; import '../styles/UpgradeShop.css'; interface UpgradeShopProps { upgrades: Upgrade[]; currency: number; onPurchase: (upgradeId: string) => void; prestigeMultiplier: number; } const UpgradeShop = ({ upgrades, currency, onPurchase, }: UpgradeShopProps) => { const renderUpgradeValue = (upgrade: Upgrade) => { switch (upgrade.type) { case 'clickValue': return `+${formatNumber(upgrade.value)} per click`; case 'passive': return `+${formatNumber(upgrade.value)} per second`; case 'autoClick': return `+${formatNumber(upgrade.value)} clicks per second`; default: return ''; } }; return (

Upgrades

{upgrades.map(upgrade => { const canAfford = currency >= upgrade.cost; const maxedOut = upgrade.maxLevel !== undefined && upgrade.level >= upgrade.maxLevel; return (
canAfford && !maxedOut && onPurchase(upgrade.id)} >
{upgrade.icon}

{upgrade.name} (Level {upgrade.level})

{upgrade.description}

{renderUpgradeValue(upgrade)}

{maxedOut ? (

MAX LEVEL

) : (

Cost: {formatNumber(upgrade.cost)}

)}
); })}
); }; export default UpgradeShop;