'use client'; import { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Separator } from '@/components/ui/separator'; import { Switch } from '@/components/ui/switch'; import { Label } from '@/components/ui/label'; import { RotateCcw, AlertTriangle, Zap, Clock, Settings, Eye, } from 'lucide-react'; import { useDebug } from '@/lib/game/debug-context'; import { useGameStore, useManaStore, useUIStore, useCombatStore } from '@/lib/game/stores'; import { computeMaxMana } from '@/lib/game/stores'; export function GameStateDebug() { const [confirmReset, setConfirmReset] = useState(false); const { showComponentNames, toggleComponentNames } = useDebug(); // Get state from modular stores const rawMana = useManaStore((s) => s.rawMana); const elements = useManaStore((s) => s.elements); const unlockElement = useManaStore((s) => s.unlockElement); const gatherMana = useGameStore((s) => s.gatherMana); const day = useGameStore((s) => s.day); const hour = useGameStore((s) => s.hour); const paused = useUIStore((s) => s.paused); const togglePause = useUIStore((s) => s.togglePause); // Get actions from stores const resetGame = useGameStore((s) => s.resetGame); const setTime = useCombatStore((s) => s.debugSetTime); const setFloor = useCombatStore((s) => s.debugSetFloor); const resetHP = useCombatStore((s) => s.resetFloorHP); const handleReset = () => { if (confirmReset) { resetGame(); setConfirmReset(false); } else { setConfirmReset(true); setTimeout(() => setConfirmReset(false), 3000); } }; const handleAddMana = (amount: number) => { for (let i = 0; i < amount; i++) { gatherMana(); } }; const getMaxMana = () => { return computeMaxMana( { skills: {}, prestigeUpgrades: {}, skillUpgrades: {}, skillTiers: {} }, { maxManaBonus: 0, maxManaMultiplier: 1 } ); }; return (
{/* Warning Banner */}
Debug Mode

These tools are for development and testing. Using them may break game balance or save data.

{/* Display Options */} Display Options

Display component names at the top of each component for debugging

{/* Game Reset */} Game Reset

Reset all game progress and start fresh. This cannot be undone.

{/* Mana Debug */} Mana Debug
Current: {rawMana} / {getMaxMana() || '?'}
Fill to max:
{/* Time Control */} Time Control
Current: Day {day}, Hour {hour}
{/* Skills Debug - Quick Actions */} Quick Actions
); } GameStateDebug.displayName = "GameStateDebug";