// La Paguita - Logros / Achievements

const LOGROS = [
    // === Progresión ===
    {
        id: 'primera_paguita',
        nombre: 'Primera Paguita',
        emoji: '💶',
        descripcion: 'Consigue tu primera ayuda social.',
        condicion: (gs) => gs.paguitas >= 10
    },
    {
        id: 'empadronado',
        nombre: 'Empadronado',
        emoji: '📋',
        descripcion: 'Consigue el padrón municipal.',
        condicion: (gs) => gs.faseActual >= 2
    },
    {
        id: 'arraigado',
        nombre: 'Arraigado',
        emoji: '🏠',
        descripcion: 'Consigue el arraigo social.',
        condicion: (gs) => gs.faseActual >= 3
    },
    {
        id: 'regularizado',
        nombre: '¡Papeles!',
        emoji: '📄',
        descripcion: 'Consigue la regularización completa.',
        condicion: (gs) => gs.faseActual >= 4
    },
    {
        id: 'fase_final',
        nombre: 'El Gran Reemplazo',
        emoji: '👑',
        descripcion: 'Alcanza la fase final.',
        condicion: (gs) => gs.faseActual >= 5
    },

    // === Economía ===
    {
        id: 'cien_paguitas',
        nombre: 'Centenario',
        emoji: '💰',
        descripcion: 'Acumula 100 paguitas.',
        condicion: (gs) => gs.paguitas >= 100
    },
    {
        id: 'mil_paguitas',
        nombre: 'Millonario del IMV',
        emoji: '🤑',
        descripcion: 'Acumula 1.000 paguitas.',
        condicion: (gs) => gs.paguitas >= 1000
    },
    {
        id: 'cinco_mil_paguitas',
        nombre: 'Chiringuito VIP',
        emoji: '💎',
        descripcion: 'Acumula 5.000 paguitas.',
        condicion: (gs) => gs.paguitas >= 5000
    },
    {
        id: 'dragon_paguitas',
        nombre: 'Dragón de las Paguitas',
        emoji: '🐉',
        descripcion: 'Acumula 20.000 paguitas.',
        condicion: (gs) => gs.paguitas >= 20000
    },

    // === Presupuesto ===
    {
        id: 'sangria_10',
        nombre: 'Primera Sangría',
        emoji: '🩸',
        descripcion: 'Drena el presupuesto español un 10%.',
        condicion: (gs) => gs.presupuestoEspanol <= 90
    },
    {
        id: 'sangria_50',
        nombre: 'Medio Presupuesto',
        emoji: '💸',
        descripcion: 'Drena el presupuesto español al 50%.',
        condicion: (gs) => gs.presupuestoEspanol <= 50
    },
    {
        id: 'bancarrota',
        nombre: 'Bancarrota Nacional',
        emoji: '🏴',
        descripcion: 'Drena el presupuesto español a 0%.',
        condicion: (gs) => gs.presupuestoEspanol <= 0
    },

    // === Población ===
    {
        id: 'primer_millon',
        nombre: 'Primer Millón',
        emoji: '👥',
        descripcion: 'Alcanza 1 millón de inmigrantes.',
        condicion: (gs) => gs.poblacionInmigrante >= 1000000
    },
    {
        id: 'diez_millones',
        nombre: 'Legion Extranjera',
        emoji: '🌍',
        descripcion: 'Alcanza 10 millones de inmigrantes.',
        condicion: (gs) => gs.poblacionInmigrante >= 10000000
    },
    {
        id: 'mayoria',
        nombre: 'Mayoría Demográfica',
        emoji: '📊',
        descripcion: 'Supera la población nativa.',
        condicion: (gs) => gs.poblacionInmigrante >= gs.poblacionNativa
    },

    // === Ayudas ===
    {
        id: 'primera_ayuda',
        nombre: 'Subvencionado',
        emoji: '🤝',
        descripcion: 'Activa tu primera ayuda social.',
        condicion: (gs) => Object.keys(gs.ayudasActivas).length >= 1
    },
    {
        id: 'cinco_ayudas',
        nombre: 'Acaparador',
        emoji: '🏪',
        descripcion: 'Ten 5 ayudas activas simultáneamente.',
        condicion: (gs) => Object.keys(gs.ayudasActivas).length >= 5
    },
    {
        id: 'diez_ayudas',
        nombre: 'Profesional del Chiringuito',
        emoji: '🎪',
        descripcion: 'Ten 10 ayudas activas simultáneamente.',
        condicion: (gs) => Object.keys(gs.ayudasActivas).length >= 10
    },

    // === Especiales ===
    {
        id: 'okupar',
        nombre: 'Okupa Legal',
        emoji: '🔑',
        descripcion: 'Okupa un piso.',
        condicion: (gs) => gs.accionesRealizadas && gs.accionesRealizadas.includes('okupar')
    },
    {
        id: 'sobrevivir_alerta',
        nombre: 'Teflon',
        emoji: '🛡️',
        descripcion: 'Sobrevive a una alerta mediática superior al 80%.',
        condicion: (gs) => gs.maxAlertaAlcanzada >= 80
    },
    {
        id: 'escapista',
        nombre: 'Escapista',
        emoji: '🪄',
        descripcion: 'Escapa de la deportación 3 veces. Esto es España.',
        condicion: (gs) => gs.stats.vecesDeportadoCasi >= 3
    },
    {
        id: 'blindado',
        nombre: 'Blindado',
        emoji: '🏰',
        descripcion: 'Escapa de la deportación 5 veces. Ni Bárcenas lo hacía mejor.',
        condicion: (gs) => gs.stats.vecesDeportadoCasi >= 5
    },
    {
        id: 'victoria',
        nombre: 'Victoria Total',
        emoji: '🏆',
        descripcion: 'Gana la partida.',
        condicion: (gs) => gs.victoria === true
    },

    // === Minijuegos ===
    {
        id: 'usain_bolt',
        nombre: 'Usain Bolt',
        emoji: '🏃',
        descripcion: 'Escapa de la policía 5 veces en Huye de la Policía.',
        condicion: (gs) => gs.stats.minijuegos.huye_policia && gs.stats.minijuegos.huye_policia.jugados >= 5
    },
    {
        id: 'rey_top_manta',
        nombre: 'Rey del Top Manta',
        emoji: '👟',
        descripcion: 'Gana 100+ paguitas en una ronda de Top Manta Sprint.',
        condicion: (gs) => gs.stats.minijuegos._topMantaMaxEarnings >= 100
    },
    {
        id: 'funcionario_puntual',
        nombre: 'Funcionario Puntual',
        emoji: '🎯',
        descripcion: 'Timing perfecto 3 veces en Cola de Extranjería.',
        condicion: (gs) => gs.stats.minijuegos.cola_extranjeria && gs.stats.minijuegos.cola_extranjeria.perfectos >= 3
    },
    {
        id: 'minijueguista',
        nombre: 'Minijueguista',
        emoji: '🎮',
        descripcion: 'Completa 10 minijuegos en total.',
        condicion: (gs) => gs.stats.minijuegos.total >= 10
    },
    {
        id: 'intocable',
        nombre: 'Intocable',
        emoji: '🛡️',
        descripcion: '100% de acierto en Huye de la Policía 3 veces.',
        condicion: (gs) => gs.stats.minijuegos.huye_policia && gs.stats.minijuegos.huye_policia.perfectos >= 3
    },

    // === Minijuegos por personaje ===
    {
        id: 'manos_rapidas',
        nombre: 'Manos Rápidas',
        emoji: '🤏',
        descripcion: 'Ronda perfecta en Carterista Express.',
        condicion: (gs) => gs.stats.minijuegos.carterista_metro && gs.stats.minijuegos.carterista_metro.perfectos >= 1
    },
    {
        id: 'oscar_llanto',
        nombre: 'Óscar al Llanto',
        emoji: '🏆',
        descripcion: 'Llena el medidor al 100% en Drama en el Juzgado.',
        condicion: (gs) => gs.stats.minijuegos.drama_juzgado && gs.stats.minijuegos.drama_juzgado.perfectos >= 1
    },
    {
        id: 'hipocondriaco',
        nombre: 'Hipocondríaco',
        emoji: '🤒',
        descripcion: 'Engaña al médico 5 veces en Baja Médica.',
        condicion: (gs) => gs.stats.minijuegos.baja_medica && gs.stats.minijuegos.baja_medica.jugados >= 5
    },
    {
        id: 'principe_mercadillo',
        nombre: 'Príncipe del Mercadillo',
        emoji: '🏪',
        descripcion: 'Gana 200+ paguitas en una ronda de Trapicheo.',
        condicion: (gs) => gs.stats.minijuegos._mercadilloMaxEarnings >= 200
    },
    {
        id: 'influencer',
        nombre: 'Influencer',
        emoji: '📱',
        descripcion: 'Consigue 80+ seguidores en TikTok Viral.',
        condicion: (gs) => gs.stats.minijuegos._tiktokMaxFollowers >= 80
    },

    // === Arco "La Pancha" ===
    {
        id: 'seductora_pro',
        nombre: 'Seductora Profesional',
        emoji: '💍',
        descripcion: 'Casarte con un shur español por los papeles. El amor es un constructo capitalista.',
        condicion: (gs) => gs.accionesRealizadas && gs.accionesRealizadas.includes('boda_conveniencia')
    },
    {
        id: 'sin_papeles_pero_con_piso',
        nombre: 'Sin Papeles pero con Piso',
        emoji: '🏠',
        descripcion: 'Quedarte con el piso del shur tras la denuncia VioGen. Game over para él.',
        condicion: (gs) => gs.accionesRealizadas && gs.accionesRealizadas.includes('quedarse_el_piso')
    }
];

function getLogros() {
    return LOGROS;
}

function checkLogros(gameState, logrosObtenidos) {
    const nuevos = [];
    for (const logro of LOGROS) {
        if (!logrosObtenidos.includes(logro.id)) {
            try {
                if (logro.condicion(gameState)) {
                    nuevos.push(logro);
                }
            } catch (e) {
                // Condición no evaluable aún
            }
        }
    }
    return nuevos;
}
