"use client" import { useState } from "react" import { Search, Shield, Zap, Eye, Brain, Heart } from "lucide-react" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Badge } from "@/components/ui/badge" import type { Enemy } from "@/data/enemies" interface EnemySelectionProps { enemies: Enemy[] onSelectEnemy: (enemy: Enemy) => void } export function EnemySelection({ enemies, onSelectEnemy }: EnemySelectionProps) { const [searchTerm, setSearchTerm] = useState("") const [selectedDifficulty, setSelectedDifficulty] = useState(null) // Filter enemies based on search term and difficulty const filteredEnemies = enemies.filter( (enemy) => (enemy.name.toLowerCase().includes(searchTerm.toLowerCase()) || (enemy.description && enemy.description.toLowerCase().includes(searchTerm.toLowerCase()))) && (selectedDifficulty === null || enemy.level.toString().includes(selectedDifficulty)), ) // Group enemies by difficulty level const difficultyLevels = ["Beginner (1-20)", "Intermediate (21-40)", "Advanced (41-60)"] const getDifficultyFilter = (difficulty: string) => { switch (difficulty) { case "Beginner (1-20)": return "1-20" case "Intermediate (21-40)": return "21-40" case "Advanced (41-60)": return "41-60" default: return null } } return (
Select an Enemy Choose an enemy to fight in the arena
setSearchTerm(e.target.value)} />
{difficultyLevels.map((difficulty) => ( { if (selectedDifficulty === getDifficultyFilter(difficulty)) { setSelectedDifficulty(null) } else { setSelectedDifficulty(getDifficultyFilter(difficulty)) } }} > {difficulty} ))} {selectedDifficulty && ( setSelectedDifficulty(null)}> Clear Filter )}
{filteredEnemies.map((enemy) => ( onSelectEnemy(enemy)} >
{enemy.name} Level {enemy.level}
{enemy.description}
STR {enemy.stats.str}
VIT {enemy.stats.vit}
AGI {enemy.stats.agi}
INT {enemy.stats.int}
PER {enemy.stats.per}
EXP Reward: {enemy.rewards.exp}
Gold Reward: {enemy.rewards.gold}
))} {filteredEnemies.length === 0 && (
No enemies match your search criteria.
)}
) }