'use client'; import { DebugName } from '@/components/game/debug/debug-context'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Bug } from 'lucide-react'; import { usePrestigeStore, useUIStore, useGameStore } from '@/lib/game/stores'; import { ELEMENTS } from '@/lib/game/constants'; import { getGuardianForFloor, getAllGuardianFloors } from '@/lib/game/data/guardian-encounters'; // ─── Guardian Pact Row ─────────────────────────────────────────────────────── function GuardianPactRow({ floor, isSigned, onForceSign, onRemove }: { floor: number; isSigned: boolean; onForceSign: () => void; onRemove: () => void; }) { const guardian = getGuardianForFloor(floor); if (!guardian) return null; return (
{guardian.name}
Floor {floor} | {guardian.pact}x multiplier
Element: {guardian.element.map(el => ELEMENTS[el]?.name || el).join(' + ')}
{isSigned ? ( ) : ( )}
); } // ─── Guardian Pact List ────────────────────────────────────────────────────── function GuardianPactList({ signedPacts, onForceSign, onRemove }: { signedPacts: number[]; onForceSign: (floor: number) => void; onRemove: (floor: number) => void; }) { const guardianFloors = getAllGuardianFloors(); return (
{guardianFloors.map((floor) => ( onForceSign(floor)} onRemove={() => onRemove(floor)} /> ))}
); } // ─── Main Component ─────────────────────────────────────────────────────────── export function PactDebug() { const signedPacts = usePrestigeStore((s) => s.signedPacts); const signedPactDetails = usePrestigeStore((s) => s.signedPactDetails); 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 addLog = useUIStore((s) => s.addLog); const forcePact = (floor: number) => { const guardian = getGuardianForFloor(floor); if (!guardian) return; if (signedPacts.includes(floor)) { addLog(`\u26a0\ufe0f 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.join('+'), 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 = getGuardianForFloor(floor); removePact(floor); const newSignedPactDetails = { ...signedPactDetails }; delete newSignedPactDetails[floor]; debugSetPactDetails(newSignedPactDetails); addLog(`\ud83d\udcdc DEBUG: Removed pact with ${guardian ? guardian.name : 'Unknown'}!`); }; const clearAllPacts = () => { addLog(`📜 DEBUG: Cleared all pacts!`); debugSetSignedPacts([]); debugSetPactDetails({}); }; return ( Pact Debug

Force sign pacts with guardians (bypasses mana costs and signing time)

{signedPacts.length > 0 && (
)}
Signed Pacts: {signedPacts.length} | Max Pacts: {1 + (prestigeUpgrades?.pactCapacity || 0)}
); } PactDebug.displayName = 'PactDebug';