// Boomermania - Sistema de Generaciones Futuras

// Obtener estado de todas las generaciones
function getEstadoGeneraciones() {
    if (!gameState) return {};

    const anoActual = getAnoActual();
    const decadaActual = Math.floor(anoActual / 10) * 10 + 5;
    const miseria = calcularMiseriaGeneracional(gameState.recursosGlobales);

    const estados = {};

    for (const [genId, genData] of Object.entries(GENERACIONES)) {
        estados[genId] = getEstadoGeneracion(genId, miseria, decadaActual);
    }

    return estados;
}

// Obtener emoji de estado para una generación
function getEmojiGeneracion(genId) {
    if (!gameState) return GENERACIONES[genId]?.emoji || '😐';

    const anoActual = getAnoActual();
    const decadaActual = Math.floor(anoActual / 10) * 10 + 5;
    const genData = GENERACIONES[genId];

    if (!genData) return '😐';

    // Si aún no son adultos, mostrar emoji neutral
    if (decadaActual < genData.activeDecade) {
        return genData.emoji;
    }

    // Si ya son adultos, el emoji depende de la miseria
    const miseria = calcularMiseriaGeneracional(gameState.recursosGlobales);

    if (miseria < 20) return '😊';
    if (miseria < 40) return '😰';
    if (miseria < 60) return '😱';
    if (miseria < 80) return '😭';
    return '💀';
}

// Calcular herencia que deja el boomer a cada generación
function calcularHerencia() {
    if (!gameState) return {};

    const rg = gameState.recursosGlobales;

    return {
        millennials: {
            vivienda: Math.round(rg.viviendaDisponible * 0.8), // Les toca menos
            empleo: Math.round(rg.empleoEstable * 0.7),
            pensiones: Math.round(rg.huchaPensiones * 0.5), // La hucha ya está vacía
            planeta: Math.round(rg.saludPlaneta),
            educacion: Math.round(rg.educacionAccesible * 0.6)
        },
        genz: {
            vivienda: Math.round(rg.viviendaDisponible * 0.5),
            empleo: Math.round(rg.empleoEstable * 0.4),
            pensiones: Math.round(rg.huchaPensiones * 0.2),
            planeta: Math.round(rg.saludPlaneta * 0.8),
            educacion: Math.round(rg.educacionAccesible * 0.4)
        },
        alpha: {
            vivienda: Math.round(rg.viviendaDisponible * 0.3),
            empleo: Math.round(rg.empleoEstable * 0.2),
            pensiones: 0, // Ya no hay
            planeta: Math.round(rg.saludPlaneta * 0.6),
            educacion: Math.round(rg.educacionAccesible * 0.3)
        }
    };
}

// Obtener descripción de la herencia para una generación
function getDescripcionHerencia(genId) {
    const herencia = calcularHerencia()[genId];
    if (!herencia) return 'Desconocido';

    const partes = [];

    if (herencia.vivienda < 30) partes.push('Sin acceso a vivienda');
    else if (herencia.vivienda < 60) partes.push('Vivienda muy cara');

    if (herencia.empleo < 30) partes.push('Precariedad laboral');
    else if (herencia.empleo < 60) partes.push('Empleos inestables');

    if (herencia.pensiones < 20) partes.push('Sin pensiones');
    else if (herencia.pensiones < 50) partes.push('Pensiones mínimas');

    if (herencia.planeta < 40) partes.push('Crisis climática');
    else if (herencia.planeta < 70) partes.push('Medio ambiente degradado');

    if (partes.length === 0) return 'Situación aceptable';
    return partes.join(', ');
}

// Obtener resumen para pantalla final
function getResumenGeneraciones() {
    const herencias = calcularHerencia();

    return {
        millennials: {
            nombre: 'Millennials (1981-1996)',
            herencia: herencias.millennials,
            descripcion: getDescripcionHerencia('millennials'),
            emoji: getEmojiGeneracion('millennials')
        },
        genz: {
            nombre: 'Gen Z (1997-2012)',
            herencia: herencias.genz,
            descripcion: getDescripcionHerencia('genz'),
            emoji: getEmojiGeneracion('genz')
        },
        alpha: {
            nombre: 'Gen Alpha (2013+)',
            herencia: herencias.alpha,
            descripcion: getDescripcionHerencia('alpha'),
            emoji: getEmojiGeneracion('alpha')
        }
    };
}

// Calcular índice de "destrucción generacional" (0-100)
function getIndiceDestruccion() {
    const herencias = calcularHerencia();

    // Media de lo que le queda a la Gen Alpha
    const alpha = herencias.alpha;
    const promedio = (alpha.vivienda + alpha.empleo + alpha.pensiones + alpha.planeta + alpha.educacion) / 5;

    // Invertir: más alto = más destrucción
    return Math.round(100 - promedio);
}
