// Boomermania - Definición de Logros

const logrosData = {
    // ===== LOGROS DE VIVIENDA =====
    primerPiso: {
        id: 'primerPiso',
        nombre: 'Propietario',
        descripcion: 'Compra tu primer piso',
        icono: '🏠',
        condicion: (gs) => gs.playerResources.vivienda >= 1,
        bonus: { tipo: 'descuento', categoria: 'vivienda', valor: 5 },
        bonusTexto: '-5% coste vivienda'
    },
    casero: {
        id: 'casero',
        nombre: 'Casero',
        descripcion: 'Acumula 3 o más pisos',
        icono: '🏘️',
        condicion: (gs) => gs.playerResources.vivienda >= 3,
        bonus: { tipo: 'ingresos', categoria: 'alquiler', valor: 10 },
        bonusTexto: '+10% ingresos alquiler'
    },
    magnate: {
        id: 'magnate',
        nombre: 'Magnate Inmobiliario',
        descripcion: 'Acumula 5 o más propiedades',
        icono: '🏙️',
        condicion: (gs) => gs.playerResources.vivienda >= 5,
        desbloquea: 'donDinero'
    },

    // ===== LOGROS DE EMPLEO =====
    currante: {
        id: 'currante',
        nombre: 'Currante',
        descripcion: 'Consigue tu primer trabajo',
        icono: '💼',
        condicion: (gs) => gs.playerResources.empleo >= 1,
        bonus: { tipo: 'sueldo', valor: 5 },
        bonusTexto: '+5% sueldo'
    },
    funcionario: {
        id: 'funcionario',
        nombre: 'Enchufado',
        descripcion: 'Consigue plaza de funcionario',
        icono: '🏛️',
        condicion: (gs) => gs.playerResources.empleo >= 3,
        bonus: { tipo: 'sueldo', valor: 10 },
        bonusTexto: '+10% sueldo',
        desbloquea: 'pacoFuncionario'
    },
    altoCargo: {
        id: 'altoCargo',
        nombre: 'Directivo',
        descripcion: 'Alcanza el nivel de alto cargo',
        icono: '👔',
        condicion: (gs) => gs.playerResources.empleo >= 4,
        bonus: { tipo: 'pension', valor: 10 },
        bonusTexto: '+10% pensión inicial'
    },

    // ===== LOGROS DE PENSIÓN =====
    cotizante: {
        id: 'cotizante',
        nombre: 'Cotizante Ejemplar',
        descripcion: 'Alcanza 50% de pensión acumulada',
        icono: '🏦',
        condicion: (gs) => gs.playerResources.pension >= 50,
        bonus: { tipo: 'pension', valor: 5 },
        bonusTexto: '+5% pensión'
    },
    pensionista: {
        id: 'pensionista',
        nombre: 'Pensión Máxima',
        descripcion: 'Alcanza 100% de pensión',
        icono: '💰',
        condicion: (gs) => gs.playerResources.pension >= 100,
        desbloquea: 'mariCarmen'
    },

    // ===== LOGROS DE MEDIO AMBIENTE =====
    contaminador: {
        id: 'contaminador',
        nombre: 'Huella de Carbono',
        descripcion: 'Reduce la salud del planeta por debajo del 50%',
        icono: '🏭',
        condicion: (gs) => gs.recursosGlobales.saludPlaneta < 50,
        bonus: { tipo: 'puntos', valor: 100 },
        bonusTexto: '+100 puntos bonus'
    },
    ecologista: {
        id: 'ecologista',
        nombre: 'Ecologista de Postal',
        descripcion: 'Termina con el planeta por encima del 80%',
        icono: '🌿',
        condicion: (gs) => gs.juegoTerminado && gs.recursosGlobales.saludPlaneta >= 80,
        desbloquea: 'elHippie'
    },

    // ===== LOGROS DE PUNTUACIÓN =====
    primerMillon: {
        id: 'primerMillon',
        nombre: 'Primer Millón',
        descripcion: 'Acumula 1 millón en patrimonio',
        icono: '💵',
        condicion: (gs) => calcularPatrimonio() >= 1000000,
        bonus: { tipo: 'dineroInicial', valor: 100000 },
        bonusTexto: '+100.000 pts iniciales'
    },
    boomerCompetente: {
        id: 'boomerCompetente',
        nombre: 'Boomer Competente',
        descripcion: 'Puntuación > 1000',
        icono: '⭐',
        condicion: (gs) => gs.juegoTerminado && gs.puntuacionTotal >= 1000
    },
    boomerProfesional: {
        id: 'boomerProfesional',
        nombre: 'Boomer Profesional',
        descripcion: 'Puntuación > 2000',
        icono: '⭐⭐',
        condicion: (gs) => gs.juegoTerminado && gs.puntuacionTotal >= 2000
    },
    boomerLegendario: {
        id: 'boomerLegendario',
        nombre: 'Boomer Legendario',
        descripcion: 'Puntuación > 3500',
        icono: '⭐⭐⭐',
        condicion: (gs) => gs.juegoTerminado && gs.puntuacionTotal >= 3500,
        desbloquea: 'modoDificil'
    },
    boomerDefinitivo: {
        id: 'boomerDefinitivo',
        nombre: 'El Boomer Definitivo',
        descripcion: 'Puntuación > 5000',
        icono: '👑',
        condicion: (gs) => gs.juegoTerminado && gs.puntuacionTotal >= 5000,
        desbloquea: 'modoBoomerPuro'
    },

    // ===== LOGROS DE PROGRESO =====
    primeraPartida: {
        id: 'primeraPartida',
        nombre: 'Bienvenido al Club',
        descripcion: 'Termina tu primera partida',
        icono: '🎮',
        condicion: (gs) => gs.juegoTerminado,
        desbloquea: 'mariCarmen'
    },
    accionista: {
        id: 'accionista',
        nombre: 'Muy Activo',
        descripcion: 'Realiza 30 o más acciones en una partida',
        icono: '🎯',
        condicion: (gs) => gs.stats.accionesTotales >= 30
    },

    // ===== LOGROS DE DESTRUCCIÓN =====
    destructor: {
        id: 'destructor',
        nombre: 'Destructor Generacional',
        descripcion: 'Índice de destrucción > 80%',
        icono: '💀',
        condicion: (gs) => gs.juegoTerminado && getIndiceDestruccion() >= 80,
        bonus: { tipo: 'puntos', valor: 200 },
        bonusTexto: '+200 puntos bonus'
    },
    millennial: {
        id: 'millennial',
        nombre: 'Pesadilla Millennial',
        descripcion: 'Vivienda accesible < 20%',
        icono: '😱',
        condicion: (gs) => gs.recursosGlobales.viviendaDisponible < 20
    },

    // ===== LOGROS SECRETOS =====
    sinDeuda: {
        id: 'sinDeuda',
        nombre: 'Libre de Deudas',
        descripcion: 'Termina sin deudas',
        icono: '✨',
        condicion: (gs) => gs.juegoTerminado && gs.playerResources.deuda === 0,
        secreto: true
    },
    mantenido: {
        id: 'mantenido',
        nombre: 'Todo Mantenido',
        descripcion: 'Paga todo el mantenimiento',
        icono: '🔧',
        condicion: (gs) => gs.juegoTerminado && gs.stats.mantenimientoIgnorado === 0,
        secreto: true
    }
};

// Obtener lista de IDs de logros
function getLogrosIds() {
    return Object.keys(logrosData);
}

// Obtener logro por ID
function getLogro(id) {
    return logrosData[id] || null;
}

// Obtener todos los logros como array
function getLogrosArray() {
    return Object.values(logrosData);
}
