// Boomermania - Personajes Desbloqueables

const personajesData = {
    manolo: {
        id: 'manolo',
        nombre: 'Manolo',
        descripcion: 'El boomer clásico. Nació en el momento justo.',
        icono: '👴',
        dineroInicial: 500000,
        desbloqueado: true,  // Disponible desde el inicio
        bonus: null,
        color: '#f4a460'
    },
    mariCarmen: {
        id: 'mariCarmen',
        nombre: 'Mari Carmen',
        descripcion: 'Experta en pensiones. Siempre supo cotizar.',
        icono: '👵',
        dineroInicial: 400000,
        desbloqueado: false,
        requiereLogro: 'primeraPartida',
        bonus: { pension: 20 },
        bonusTexto: '+20% pensión inicial',
        color: '#e91e63'
    },
    pacoFuncionario: {
        id: 'pacoFuncionario',
        nombre: 'Paco el Funcionario',
        descripcion: 'Nació con plaza. El enchufe es hereditario.',
        icono: '🧑‍💼',
        dineroInicial: 300000,
        desbloqueado: false,
        requiereLogro: 'funcionario',
        bonus: { empleo: 2 },  // Empieza como indefinido
        bonusTexto: 'Empieza con empleo indefinido',
        color: '#3f51b5'
    },
    elHippie: {
        id: 'elHippie',
        nombre: 'El Hippie',
        descripcion: 'Reconvertido. Ecologista de postal.',
        icono: '🧔',
        dineroInicial: 200000,
        desbloqueado: false,
        requiereLogro: 'ecologista',
        bonus: { planetaMinimo: 50 },  // El planeta no baja de 50%
        bonusTexto: 'El planeta no baja del 50%',
        color: '#4caf50'
    },
    donDinero: {
        id: 'donDinero',
        nombre: 'Don Dinero',
        descripcion: 'Heredó bien. El dinero llama al dinero.',
        icono: '🤵',
        dineroInicial: 1000000,
        desbloqueado: false,
        requiereLogro: 'magnate',
        bonus: { dinero: 500000 },  // 50% más de dinero inicial
        bonusTexto: '+500.000 pts iniciales',
        color: '#ffd700'
    }
};

// Modos de dificultad
const modosData = {
    facil: {
        id: 'facil',
        nombre: 'Fácil',
        descripcion: 'Para primeras partidas',
        desbloqueado: true,
        modificadores: {
            sueldoMultiplier: 1.2,
            costeMultiplier: 0.8,
            eventosNegativos: 0.5
        }
    },
    normal: {
        id: 'normal',
        nombre: 'Normal',
        descripcion: 'La experiencia estándar',
        desbloqueado: true,
        modificadores: {}
    },
    dificil: {
        id: 'dificil',
        nombre: 'Difícil',
        descripcion: 'Para boomers experimentados',
        desbloqueado: false,
        requiereLogro: 'boomerLegendario',
        modificadores: {
            sueldoMultiplier: 0.8,
            costeMultiplier: 1.2,
            eventosNegativos: 1.5
        }
    },
    boomerPuro: {
        id: 'boomerPuro',
        nombre: 'Boomer Puro',
        descripcion: 'Sin ayudas. Economía realista.',
        desbloqueado: false,
        requiereLogro: 'boomerDefinitivo',
        modificadores: {
            sueldoMultiplier: 0.7,
            costeMultiplier: 1.5,
            eventosNegativos: 2,
            mantenimientoObligatorio: true
        }
    }
};

// Obtener lista de personajes
function getPersonajes() {
    return Object.values(personajesData);
}

// Obtener personaje por ID
function getPersonaje(id) {
    return personajesData[id] || personajesData.manolo;
}

// Obtener personajes desbloqueados
function getPersonajesDesbloqueados() {
    const desbloqueados = [];
    const logrosObtenidos = getLogrosObtenidos();

    for (const personaje of Object.values(personajesData)) {
        if (personaje.desbloqueado) {
            desbloqueados.push(personaje);
        } else if (personaje.requiereLogro && logrosObtenidos.includes(personaje.requiereLogro)) {
            desbloqueados.push(personaje);
        }
    }

    return desbloqueados;
}

// Obtener modos de dificultad desbloqueados
function getModosDesbloqueados() {
    const desbloqueados = [];
    const logrosObtenidos = getLogrosObtenidos();

    for (const modo of Object.values(modosData)) {
        if (modo.desbloqueado) {
            desbloqueados.push(modo);
        } else if (modo.requiereLogro && logrosObtenidos.includes(modo.requiereLogro)) {
            desbloqueados.push(modo);
        }
    }

    return desbloqueados;
}

// Verificar si un personaje está desbloqueado
function isPersonajeDesbloqueado(id) {
    const personaje = personajesData[id];
    if (!personaje) return false;
    if (personaje.desbloqueado) return true;

    const logrosObtenidos = getLogrosObtenidos();
    return personaje.requiereLogro && logrosObtenidos.includes(personaje.requiereLogro);
}
