'use client'; import { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { Separator } from '@/components/ui/separator'; import { RotateCcw, Bug, Plus, Minus, Lock, Unlock, Zap, Clock, Star, AlertTriangle, Sparkles, Settings } from 'lucide-react'; import type { GameStore } from '@/lib/game/types'; import { ATTUNEMENTS_DEF } from '@/lib/game/data/attunements'; import { ELEMENTS } from '@/lib/game/constants'; import { fmt } from '@/lib/game/store'; interface DebugTabProps { store: GameStore; } export function DebugTab({ store }: DebugTabProps) { const [confirmReset, setConfirmReset] = useState(false); const handleReset = () => { if (confirmReset) { store.resetGame(); setConfirmReset(false); } else { setConfirmReset(true); setTimeout(() => setConfirmReset(false), 3000); } }; const handleAddMana = (amount: number) => { // Use gatherMana multiple times to add mana for (let i = 0; i < amount; i++) { store.gatherMana(); } }; const handleUnlockAttunement = (id: string) => { // Debug action to unlock attunements if (store.debugUnlockAttunement) { store.debugUnlockAttunement(id); } }; const handleUnlockElement = (element: string) => { store.unlockElement(element); }; const handleAddElementalMana = (element: string, amount: number) => { const elem = store.elements[element]; if (elem?.unlocked) { // Add directly to element pool - need to implement in store if (store.debugAddElementalMana) { store.debugAddElementalMana(element, amount); } } }; const handleSetTime = (day: number, hour: number) => { if (store.debugSetTime) { store.debugSetTime(day, hour); } }; const handleAddAttunementXP = (id: string, amount: number) => { if (store.debugAddAttunementXP) { store.debugAddAttunementXP(id, amount); } }; return (
{/* Warning Banner */}
Debug Mode

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

{/* Game Reset */} Game Reset

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

{/* Mana Debug */} Mana Debug
Current: {fmt(store.rawMana)} / {fmt(store.getMaxMana())}
Fill to max:
{/* Time Control */} Time Control
Current: Day {store.day}, Hour {store.hour}
{/* Attunement Unlock */} Attunements {Object.entries(ATTUNEMENTS_DEF).map(([id, def]) => { const isActive = store.attunements?.[id]?.active; const level = store.attunements?.[id]?.level || 1; const xp = store.attunements?.[id]?.experience || 0; return (
{def.icon}
{def.name}
{isActive && (
Lv.{level} • {xp} XP
)}
{!isActive && ( )} {isActive && ( <> )}
); })}
{/* Element Unlock */} Elemental Mana
{Object.entries(ELEMENTS).map(([id, def]) => { const elem = store.elements[id]; const isUnlocked = elem?.unlocked; return (
{def.sym} {!isUnlocked && ( )}
{def.name}
{isUnlocked && (
{elem.current.toFixed(0)}/{elem.max}
)} {isUnlocked && ( )}
); })}
{/* Skills Debug */} Quick Actions
); }