'use client'; import { useManaStore, fmt, fmtDec } from '@/lib/game/stores'; import { Card, CardContent } from '@/components/ui/card'; import { Progress } from '@/components/ui/progress'; import { ELEMENTS } from '@/lib/game/constants'; import { DebugName } from '@/components/game/debug/debug-context'; interface SpireManaDisplayProps { maxMana: number; effectiveRegen: number; } export function SpireManaDisplay({ maxMana, effectiveRegen }: SpireManaDisplayProps) { const rawMana = useManaStore((s) => s.rawMana); const elements = useManaStore((s) => s.elements); const unlockedElements = Object.entries(elements) .filter(([, state]) => state.unlocked && state.current > 0) .sort((a, b) => b[1].current - a[1].current) .slice(0, 6); // Show max 6 in compact view const manaPercent = maxMana > 0 ? (rawMana / maxMana) * 100 : 0; return ( {/* Raw Mana */}
{fmt(rawMana)} / {fmt(maxMana)}
+{fmtDec(effectiveRegen)}/hr
{/* Elemental pools (compact) */} {unlockedElements.length > 0 && (
{unlockedElements.map(([id, state]) => { const elem = ELEMENTS[id]; if (!elem) return null; const pct = state.max > 0 ? (state.current / state.max) * 100 : 0; return (
{elem.sym} {fmt(state.current)}
); })}
)} ); }