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 && (
Играй
)}
);
})}
);
}