"use client" import type React from "react" import Link from "next/link" import { Shield, Zap, Eye, Brain, Heart, ChevronLeft, Plus, Minus, HelpCircle } from "lucide-react" import { Button } from "@/components/ui/button" import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip" import { useUser } from "@/context/user-context" import type { UserStats } from "@/utils/storage" export default function StatsPage() { const { userStats, allocateStatPoint, deallocateStatPoint } = useUser() return (
{/* Header */}

Stat Allocation

{/* Stats Overview */}

Available Points

{userStats.statPoints}
} name="str" displayName="STR" value={userStats.stats.str} description="Enhances physical power and attack damage. Ideal for physical tasks and strength training." onIncrease={() => allocateStatPoint("str")} onDecrease={() => deallocateStatPoint("str")} canIncrease={userStats.statPoints > 0} canDecrease={userStats.stats.str > 10} /> } name="agi" displayName="AGI" value={userStats.stats.agi} description="Boosts speed, reflexes, and critical hit rate. Represents quickness and dexterity." onIncrease={() => allocateStatPoint("agi")} onDecrease={() => deallocateStatPoint("agi")} canIncrease={userStats.statPoints > 0} canDecrease={userStats.stats.agi > 10} /> } name="per" displayName="PER" value={userStats.stats.per} description="Increases precision and awareness. Reflects focus, attention to detail, and consistency." onIncrease={() => allocateStatPoint("per")} onDecrease={() => deallocateStatPoint("per")} canIncrease={userStats.statPoints > 0} canDecrease={userStats.stats.per > 10} /> } name="int" displayName="INT" value={userStats.stats.int} description="Enhances cognitive abilities and reduces skill cooldowns. Suitable for learning and problem-solving." onIncrease={() => allocateStatPoint("int")} onDecrease={() => deallocateStatPoint("int")} canIncrease={userStats.statPoints > 0} canDecrease={userStats.stats.int > 10} /> } name="vit" displayName="VIT" value={userStats.stats.vit} description="Increases health and defense. Represents endurance, resilience, and overall wellbeing." onIncrease={() => allocateStatPoint("vit")} onDecrease={() => deallocateStatPoint("vit")} canIncrease={userStats.statPoints > 0} canDecrease={userStats.stats.vit > 10} />
{/* Stat Effects */}

Stat Effects

Strength Effects
  • Base Attack Power {userStats.stats.str * 2}
  • Physical Task Efficiency +{userStats.stats.str}%
  • Carry Capacity {userStats.stats.str * 3} units
Agility Effects
  • Critical Hit Rate {(userStats.stats.agi * 0.5).toFixed(1)}%
  • Reaction Time -{(userStats.stats.agi * 0.4).toFixed(1)}%
  • Movement Speed +{userStats.stats.agi}%
Perception Effects
  • Accuracy +{userStats.stats.per}%
  • Detection Range {userStats.stats.per * 2} meters
  • Minimum Damage {userStats.stats.per} points
Intelligence Effects
  • Mana Points (MP) {userStats.maxMp}
  • Skill Cooldown Reduction -{(userStats.stats.int * 0.5).toFixed(1)}%
  • Learning Efficiency +{userStats.stats.int}%
Vitality Effects
  • Health Points (HP) {userStats.maxHp}
  • Defense {userStats.stats.vit * 2}
  • Stamina Recovery +{(userStats.stats.vit * 0.5).toFixed(1)}%
) } // Update the StatAllocationRow component to make it more responsive function StatAllocationRow({ icon, name, displayName, value, description, onIncrease, onDecrease, canIncrease, canDecrease, }: { icon: React.ReactNode name: keyof UserStats["stats"] displayName: string value: number description: string onIncrease: () => void onDecrease: () => void canIncrease: boolean canDecrease: boolean }) { return (
{icon}
{displayName}

{description}

{value}
) }