// Boomermania - Definición de Recursos

const recursosData = {
    vivienda: {
        id: 'vivienda',
        nombre: 'Vivienda',
        emoji: '🏠',
        unidad: 'pisos',
        descripcion: 'Propiedades inmobiliarias acumuladas',
        // Impacto en recursos globales por cada unidad
        impactoGlobal: {
            viviendaDisponible: -3 // Cada piso comprado reduce 3% la vivienda disponible
        }
    },
    empleo: {
        id: 'empleo',
        nombre: 'Empleo',
        emoji: '💼',
        unidad: '',
        descripcion: 'Tu situación laboral',
        niveles: [
            { valor: 0, texto: 'Desempleado', puntos: 0 },
            { valor: 1, texto: 'Temporal', puntos: 10 },
            { valor: 2, texto: 'Indefinido', puntos: 30 },
            { valor: 3, texto: 'Funcionario', puntos: 50 },
            { valor: 4, texto: 'Alto cargo', puntos: 100 }
        ],
        impactoGlobal: {
            empleoEstable: -5 // Cada nivel reduce empleos estables
        }
    },
    pension: {
        id: 'pension',
        nombre: 'Pensión',
        emoji: '🏦',
        unidad: '% hucha',
        descripcion: 'Cotizaciones acumuladas',
        impactoGlobal: {
            huchaPensiones: -2 // Cada 10% cotizado reduce 2% la hucha global
        }
    },
    ambiente: {
        id: 'ambiente',
        nombre: 'Planeta',
        emoji: '🌍',
        unidad: '% vivo',
        descripcion: 'Salud del medio ambiente',
        inverso: true, // Más bajo = más acaparado
        impactoGlobal: {
            saludPlaneta: -1 // Directo
        }
    },
    educacion: {
        id: 'educacion',
        nombre: 'Educación',
        emoji: '🎓',
        unidad: '',
        descripcion: 'Accesibilidad educativa',
        niveles: [
            { valor: 0, texto: 'Gratis', puntos: 0 },
            { valor: 1, texto: 'Barata', puntos: 20 },
            { valor: 2, texto: 'Cara', puntos: 50 },
            { valor: 3, texto: 'Muy cara', puntos: 80 },
            { valor: 4, texto: 'Prohibitiva', puntos: 120 }
        ],
        inverso: true, // Aquí más alto = peor para los jóvenes
        impactoGlobal: {
            educacionAccesible: -10
        }
    }
};

// Cálculo de bienestar personal (suma de todos los recursos del jugador)
function calcularBienestar(playerResources) {
    let bienestar = 0;

    // Vivienda: cada piso suma puntos
    bienestar += playerResources.vivienda * 50;

    // Empleo: según nivel
    const empleoData = recursosData.empleo.niveles.find(n => n.valor === playerResources.empleo);
    if (empleoData) bienestar += empleoData.puntos;

    // Pensión: cada 10% suma puntos
    bienestar += Math.floor(playerResources.pension / 10) * 15;

    // Ambiente: cuanto más hayas contaminado, más "disfrutaste"
    bienestar += (100 - playerResources.ambiente) * 2;

    // Educación: cuanto más cara la hayas puesto, más te beneficiaste (antes era gratis para ti)
    const eduData = recursosData.educacion.niveles.find(n => n.valor === playerResources.educacion);
    if (eduData) bienestar += eduData.puntos;

    return bienestar;
}

// Cálculo de miseria generacional (cuánto sufren las generaciones futuras)
function calcularMiseriaGeneracional(recursosGlobales) {
    const viviendaPerdida = 100 - recursosGlobales.viviendaDisponible;
    const empleoPerdido = 100 - recursosGlobales.empleoEstable;
    const pensionPerdida = 100 - recursosGlobales.huchaPensiones;
    const planetaPerdido = 100 - recursosGlobales.saludPlaneta;
    const educacionPerdida = 100 - recursosGlobales.educacionAccesible;

    // Media ponderada de recursos perdidos
    const miseria = (
        viviendaPerdida * 1.5 +  // Vivienda pesa más
        empleoPerdido * 1.2 +
        pensionPerdida * 1.0 +
        planetaPerdido * 1.3 +
        educacionPerdida * 0.8
    ) / 5.8;

    return Math.min(100, Math.max(0, miseria));
}

// Texto de estado para cada generación según la miseria
function getEstadoGeneracion(generacion, miseria, decadaActual) {
    const genData = GENERACIONES[generacion];

    // Si aún no han nacido/son adultos
    if (decadaActual < genData.activeDecade) {
        if (decadaActual < genData.birthDecade) {
            return { texto: 'Aún no nacidos', clase: '' };
        }
        return { texto: 'Son niños', clase: '' };
    }

    // Ya son adultos, mostrar su situación
    if (miseria < 20) return { texto: 'Tienen esperanza', clase: 'good' };
    if (miseria < 40) return { texto: 'Lo tienen difícil', clase: 'warn' };
    if (miseria < 60) return { texto: 'Precarios', clase: 'warn' };
    if (miseria < 80) return { texto: 'Sin esperanza', clase: 'bad' };
    return { texto: 'Generación perdida', clase: 'bad' };
}
