'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'; export function PactDebug() { // Get state from modular stores const signedPacts = usePrestigeStore((s) => s.signedPacts); const signedPactDetails = usePrestigeStore((s) => s.signedPactDetails); const elements = useManaStore((s) => s.elements); const prestigeUpgrades = usePrestigeStore((s) => s.prestigeUpgrades); // Get actions 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); // Get log function from uiStore const addLog = useUIStore((s) => s.addLog); // Get all guardian floors const guardianFloors = Object.keys(GUARDIANS).map(Number).sort((a, b) => a - b); // Force sign a pact with a guardian (bypass costs and time) const forcePact = (floor: number) => { const guardian = GUARDIANS[floor]; if (!guardian) return; // Check if already signed if (signedPacts.includes(floor)) { addLog(`⚠️ Already signed pact with ${guardian.name}!`); return; } // Check max pacts const maxPacts = 1 + (prestigeUpgrades?.pactCapacity || 0); if (signedPacts.length >= maxPacts) { addLog(`⚠️ Cannot sign more pacts! Maximum: ${maxPacts}.`); return; } // Force sign the pact addSignedPact(floor); // Add pact details 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!`); }; // Remove a pact const removePactHandler = (floor: number) => { const guardian = GUARDIANS[floor]; removePact(floor); // Remove pact details const newSignedPactDetails = { ...signedPactDetails }; delete newSignedPactDetails[floor]; debugSetPactDetails(newSignedPactDetails); addLog(`📜 DEBUG: Removed pact with ${guardian?.name || 'Unknown'}!`); }; // Clear all pacts const clearAllPacts = () => { addLog(`📜 DEBUG: Cleared all pacts!`); debugSetSignedPacts([]); debugSetPactDetails({}); }; return ( Pact Debug

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

{guardianFloors.map((floor) => { const guardian = GUARDIANS[floor]; const isSigned = signedPacts.includes(floor); return (
{guardian.name}
Floor {floor} | {guardian.pact}x multiplier
Unlocks: {guardian.unlocksMana.map(e => ELEMENTS[e]?.name || e).join(', ')}
{isSigned ? ( ) : ( )}
); })}
{/* Clear All Button */} {signedPacts.length > 0 && (
)} {/* Status */}
Signed Pacts: {signedPacts.length} | Max Pacts: {1 + (prestigeUpgrades?.pactCapacity || 0)}
); } PactDebug.displayName = "PactDebug";