// Resistiré - Sistema de Recursos (texto y display)

function getTextoRecurso(recursoId) {
    if (!gameState) return '0';

    const valor = gameState.playerResources[recursoId];
    const recurso = recursosData[recursoId];

    if (!recurso) return String(valor);

    if (recurso.unidad === '%') {
        return `${Math.round(valor)}%`;
    }
    if (recurso.unidad) {
        return `${Math.round(valor)} ${recurso.unidad}`;
    }
    return String(Math.round(valor));
}

function getClaseRecurso(recursoId) {
    if (!gameState) return '';

    const valor = gameState.playerResources[recursoId];
    if (valor >= 60) return 'high';
    if (valor >= 25) return 'medium';
    return 'low';
}

// Recursos globales — algunos se muestran "al revés" (contagios = 100 - saludPoblacional)
function getTextoRecursoGlobal(recursoId) {
    if (!gameState) return '100%';
    const valor = gameState.recursosGlobales[recursoId];

    if (recursoId === 'saludPoblacional') {
        const contagios = 100 - valor;
        return `${Math.round(contagios)}% pob.`;
    }
    if (recursoId === 'vidasSalvadas') {
        const muertesEstimadas = Math.round((100 - valor) * 800);
        return `~${muertesEstimadas.toLocaleString('es-ES')}`;
    }
    return `${Math.round(valor)}%`;
}

function getClaseRecursoGlobal(recursoId) {
    if (!gameState) return 'good';
    const valor = gameState.recursosGlobales[recursoId];

    if (recursoId === 'saludPoblacional' || recursoId === 'vidasSalvadas') {
        // Inverso: alto valor = bueno (poco daño)
        if (valor >= 70) return 'good';
        if (valor >= 40) return 'warn';
        return 'bad';
    }
    if (valor >= 70) return 'good';
    if (valor >= 40) return 'warn';
    return 'bad';
}

function isMejoraDisponible(mejoraId) {
    if (!gameState) return false;
    if (typeof mejorasData === 'undefined') return false;

    const mejora = mejorasData[mejoraId];
    if (!mejora) return false;

    const ola = getAnoActual();

    if (mejora.disponibleDesde && ola < mejora.disponibleDesde) return false;
    if (mejora.disponibleHasta && ola > mejora.disponibleHasta) return false;

    if (!mejora.repeatable && gameState.mejorasUsadas.includes(mejoraId)) return false;

    if (mejora.requisitos) {
        for (const [recurso, req] of Object.entries(mejora.requisitos)) {
            const valorActual = gameState.playerResources[recurso] || 0;
            if (typeof req === 'number') {
                if (valorActual < req) return false;
            } else if (typeof req === 'object') {
                if (req.min !== undefined && valorActual < req.min) return false;
                if (req.max !== undefined && valorActual > req.max) return false;
            }
        }
    }

    return true;
}

function getResumenRecursos() {
    if (!gameState) return {};

    return {
        player: {
            popularidad: getTextoRecurso('popularidad'),
            relato: getTextoRecurso('relato'),
            enchufes: getTextoRecurso('enchufes'),
            socios: getTextoRecurso('socios'),
            ego: getTextoRecurso('ego')
        },
        global: {
            sanidadDisponible: getTextoRecursoGlobal('sanidadDisponible'),
            economia: getTextoRecursoGlobal('economia'),
            libertades: getTextoRecursoGlobal('libertades'),
            contagios: getTextoRecursoGlobal('saludPoblacional'),
            vidasPerdidas: getTextoRecursoGlobal('vidasSalvadas')
        }
    };
}
