'use client'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Bug } from 'lucide-react'; import { usePrestigeStore, useManaStore, useUIStore, useGameStore } from '@/lib/game/stores'; import { GUARDIANS, ELEMENTS } from '@/lib/game/constants'; // ─── Guardian Pact Row ─────────────────────────────────────────────────────── function GuardianPactRow({ floor, isSigned, onForceSign, onRemove }: { floor: number; isSigned: boolean; onForceSign: () => void; onRemove: () => void; }) { const guardian = GUARDIANS[floor]; return (
{guardian.name}
Floor {floor} | {guardian.pact}x multiplier
Element: {ELEMENTS[guardian.element]?.name || guardian.element}
{isSigned ? ( ) : ( )}
); } // ─── Main Component ─────────────────────────────────────────────────────────── export function PactDebugSection() { const signedPacts = usePrestigeStore((s) => s.signedPacts); const signedPactDetails = usePrestigeStore((s) => s.signedPactDetails); const elements = useManaStore((s) => s.elements); const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades); const addSignedPact = usePrestigeStore((s) => s.addSignedPact); const removePact = usePrestigeStore((s) => s.removePact); const debugSetSignedPacts = usePrestigeStore((s) => s.debugSetSignedPacts); const debugSetPactDetails = usePrestigeStore((s) => s.debugSetPactDetails); const unlockElement = useManaStore((s) => s.unlockElement); const addLog = useUIStore((s) => s.addLog); const guardianFloors = Object.keys(GUARDIANS || {}).map(Number).sort((a, b) => a - b); const forcePact = (floor: number) => { const guardian = GUARDIANS[floor]; if (!guardian) return; if (signedPacts.includes(floor)) { addLog(`⚠️ Already signed pact with ${guardian.name}!`); return; } const maxPacts = 1 + (prestigeUpgrades?.pactCapacity || 0); if (signedPacts.length >= maxPacts) { addLog(`⚠️ Cannot sign more pacts! Maximum: ${maxPacts}.`); return; } addSignedPact(floor); const newSignedPactDetails = { ...signedPactDetails, [floor]: { floor, guardianId: guardian.element, signedAt: { day: useGameStore.getState().day, hour: useGameStore.getState().hour }, skillLevels: {} as Record, }, }; debugSetPactDetails(newSignedPactDetails); addLog(`📜 DEBUG: Pact with ${guardian.name} force-signed!`); }; const removePactHandler = (floor: number) => { const guardian = GUARDIANS[floor]; removePact(floor); const newSignedPactDetails = { ...signedPactDetails }; delete newSignedPactDetails[floor]; debugSetPactDetails(newSignedPactDetails); addLog(`📜 DEBUG: Removed pact with ${guardian?.name || 'Unknown'}!`); }; const signAllPacts = () => { guardianFloors.forEach((floor) => { if (!signedPacts.includes(floor)) { forcePact(floor); } }); }; const clearAllPacts = () => { addLog(`📜 DEBUG: Cleared all pacts!`); debugSetSignedPacts([]); debugSetPactDetails({}); }; return ( Pact Debug
{guardianFloors.map((floor) => ( forcePact(floor)} onRemove={() => removePactHandler(floor)} /> ))}
Signed Pacts: {signedPacts.length} | Max Pacts: {1 + (prestigeUpgrades?.pactCapacity || 0)}
); } PactDebugSection.displayName = 'PactDebugSection';