import React, { useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; import { motion } from 'framer-motion'; import { ArrowLeft } from 'lucide-react'; import { STORY } from '@/lib/pirateStory'; const MAP_BG = "https://media.base44.com/images/public/69e777f2f456e7739a573a6c/48ef84684_generated_image.png"; const SEA_BG = "https://media.base44.com/images/public/69e777f2f456e7739a573a6c/91fe5c57f_generated_image.png"; export default function AdventureMap() { const [progress, setProgress] = useState({}); useEffect(() => { const saved = localStorage.getItem('pirate_progress'); if (saved) setProgress(JSON.parse(saved)); }, []); const playSound = (src) => { const audio = new Audio(src); audio.volume = 0.4; audio.play(); }; const completedCount = STORY.islands.filter(i => progress[i.id]?.completed).length; const progressPercent = (completedCount / STORY.islands.length) * 100; return (
{/* 🌊 Animated sea overlay */}
{/* Header */}

🗺️ Карта на приключението

{/* 🧭 Story intro */} Капитане... всяко островче крие тайна. Само най-смелите ще открият съкровището. {/* 📊 Progress bar */}

Прогрес: {completedCount}/{STORY.islands.length}

{/* 🗺️ Map */} Карта {STORY.islands.map((island, i) => { const isCompleted = progress[island.id]?.completed; const isUnlocked = i === 0 || progress[STORY.islands[i - 1]?.id]?.completed; return ( isUnlocked && playSound('/sounds/hover.mp3')} onClick={() => isUnlocked && playSound('/sounds/click.mp3')} whileHover={isUnlocked ? { scale: 1.3 } : {}} animate={ isUnlocked && !isCompleted ? { scale: [1, 1.2, 1], rotate: [0, 2, -2, 0] } : isCompleted ? { rotate: [0, 360] } : { opacity: [0.5, 0.7, 0.5] } } transition={{ duration: 2, repeat: Infinity }} className="relative cursor-pointer" style={{ filter: isUnlocked ? 'none' : 'blur(1px) grayscale(80%)' }} > {/* ✨ completion glow */} {isCompleted && ( )}
{isCompleted ? '⭐' : isUnlocked ? island.emoji : '🔒'}
{island.name.split(' ').slice(-1)[0]}
); })}
{/* 📜 Island list */}
{STORY.islands.map((island, i) => { const isCompleted = progress[island.id]?.completed; const isUnlocked = i === 0 || progress[STORY.islands[i - 1]?.id]?.completed; return (
{island.emoji}

{island.name}

{isCompleted && } {!isUnlocked && 🔒}

{isCompleted ? '✅ Завършен!' : isUnlocked ? '👉 Влез в приключението' : 'Завърши предишния остров'}

{isUnlocked && !isCompleted && (
Играй
)}
); })}
); }