// Boomermania - Mejoras/Acciones Disponibles (Expandido)

const mejorasData = {
    // ===== VIVIENDA =====
    comprarPiso: {
        id: 'comprarPiso',
        nombre: 'Comprar Piso',
        descripcion: 'Un pisito de nada, 2 millones de pesetas',
        categoria: 'vivienda',
        disponibleDesde: 1975,
        disponibleHasta: 2025,
        coste: { dinero: 2000000 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -5 }
        },
        puntos: 50,
        frase: 'comprarPiso'
    },
    segundaResidencia: {
        id: 'segundaResidencia',
        nombre: 'Segunda Residencia',
        descripcion: 'Un apartamento en la playa para veranear',
        categoria: 'vivienda',
        disponibleDesde: 1985,
        requisitos: { vivienda: 1 },
        coste: { dinero: 1500000 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -8 }
        },
        puntos: 80,
        frase: 'segundaResidencia'
    },
    alquilerTuristico: {
        id: 'alquilerTuristico',
        nombre: 'Alquiler Turístico',
        descripcion: 'Convertir piso en apartamento turístico',
        categoria: 'vivienda',
        disponibleDesde: 2005,
        requisitos: { vivienda: 2 },
        coste: { dinero: 500000 },
        efecto: {
            recursosGlobales: { viviendaDisponible: -12 }
        },
        puntos: 100,
        frase: 'alquilerTuristico'
    },
    votarContraViviendaSocial: {
        id: 'votarContraViviendaSocial',
        nombre: 'Votar Contra VPO',
        descripcion: '"Que no me bajen el precio de mi piso"',
        categoria: 'vivienda',
        disponibleDesde: 1995,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { viviendaDisponible: -5 }
        },
        puntos: 40,
        frase: 'votarContraVPO'
    },
    localComercial: {
        id: 'localComercial',
        nombre: 'Comprar Local',
        descripcion: 'Un local comercial para alquilar',
        categoria: 'vivienda',
        disponibleDesde: 1985,
        requisitos: { vivienda: 1 },
        coste: { dinero: 3000000 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -4 }
        },
        puntos: 70,
        frase: 'localComercial'
    },
    garaje: {
        id: 'garaje',
        nombre: 'Comprar Garaje',
        descripcion: 'Una plaza de garaje siempre se alquila',
        categoria: 'vivienda',
        disponibleDesde: 1985,
        coste: { dinero: 300000 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -2 }
        },
        puntos: 30,
        frase: 'garaje'
    },
    reformarPiso: {
        id: 'reformarPiso',
        nombre: 'Reformar Piso',
        descripcion: 'Reforma integral para subir el alquiler',
        categoria: 'vivienda',
        disponibleDesde: 1995,
        requisitos: { vivienda: 1 },
        coste: { dinero: 400000 },
        efecto: {
            recursosGlobales: { viviendaDisponible: -3 }
        },
        puntos: 40,
        frase: 'reformar'
    },
    herenciaAnticipada: {
        id: 'herenciaAnticipada',
        nombre: 'Herencia Anticipada',
        descripcion: 'Pedir a tus padres el piso antes de tiempo',
        categoria: 'vivienda',
        disponibleDesde: 1985,
        disponibleHasta: 2005,
        coste: { dinero: 0 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -6 }
        },
        puntos: 90,
        frase: 'herenciaAnticipada'
    },

    // ===== EMPLEO =====
    buscarTrabajo: {
        id: 'buscarTrabajo',
        nombre: 'Buscar Trabajo',
        descripcion: 'Buscar un curro decente',
        categoria: 'empleo',
        disponibleDesde: 1975,
        requisitos: { empleo: { max: 0 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { empleo: 1 }
        },
        puntos: 20,
        frase: 'buscarTrabajo'
    },
    conseguirIndefinido: {
        id: 'conseguirIndefinido',
        nombre: 'Contrato Indefinido',
        descripcion: 'Firmar un contrato fijo de por vida',
        categoria: 'empleo',
        disponibleDesde: 1975,
        disponibleHasta: 1995,
        requisitos: { empleo: 1 },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { empleo: 2 },
            recursosGlobales: { empleoEstable: -8 }
        },
        puntos: 40,
        frase: 'contratoIndefinido'
    },
    opositar: {
        id: 'opositar',
        nombre: 'Opositar',
        descripcion: 'Conseguir plaza de funcionario',
        categoria: 'empleo',
        disponibleDesde: 1975,
        requisitos: { empleo: { min: 1 } },
        coste: { dinero: 100000 },
        efecto: {
            playerResources: { empleo: 3 },
            recursosGlobales: { empleoEstable: -10 }
        },
        puntos: 80,
        frase: 'opositar'
    },
    apoyarReformaLaboral: {
        id: 'apoyarReformaLaboral',
        nombre: 'Apoyar Reforma Laboral',
        descripcion: '"La flexibilidad es buena para los jóvenes"',
        categoria: 'empleo',
        disponibleDesde: 1995,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { empleoEstable: -15 }
        },
        puntos: 70,
        frase: 'reformaLaboral'
    },
    prejubilacion: {
        id: 'prejubilacion',
        nombre: 'Prejubilación Dorada',
        descripcion: 'Retiro anticipado con el 100% del sueldo',
        categoria: 'empleo',
        disponibleDesde: 1995,
        disponibleHasta: 2005,
        requisitos: { empleo: { min: 2 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 30 },
            recursosGlobales: { huchaPensiones: -10, empleoEstable: -5 }
        },
        puntos: 120,
        frase: 'prejubilacion'
    },
    ascender: {
        id: 'ascender',
        nombre: 'Ascender',
        descripcion: 'Subir de puesto en la empresa',
        categoria: 'empleo',
        disponibleDesde: 1985,
        requisitos: { empleo: { min: 2, max: 3 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { empleo: 1 },
            recursosGlobales: { empleoEstable: -5 }
        },
        puntos: 50,
        frase: 'ascender'
    },
    pluriempleo: {
        id: 'pluriempleo',
        nombre: 'Pluriempleo',
        descripcion: 'Tener dos trabajos a la vez',
        categoria: 'empleo',
        disponibleDesde: 1975,
        disponibleHasta: 1995,
        requisitos: { empleo: { min: 1 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 10 },
            recursosGlobales: { empleoEstable: -5 }
        },
        puntos: 35,
        frase: 'pluriempleo'
    },
    enchufarHijo: {
        id: 'enchufarHijo',
        nombre: 'Enchufar al Hijo',
        descripcion: 'Meterle en tu empresa por la puerta de atrás',
        categoria: 'empleo',
        disponibleDesde: 2005,
        requisitos: { empleo: { min: 2 } },
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { empleoEstable: -8 }
        },
        puntos: 60,
        frase: 'enchufarHijo'
    },

    // ===== PENSIONES =====
    cotizar: {
        id: 'cotizar',
        nombre: 'Cotizar',
        descripcion: 'Aportar a la Seguridad Social',
        categoria: 'pension',
        disponibleDesde: 1975,
        requisitos: { empleo: { min: 1 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 10 }
        },
        puntos: 15,
        repeatable: true,
        frase: 'cotizar'
    },
    planPensiones: {
        id: 'planPensiones',
        nombre: 'Plan de Pensiones Privado',
        descripcion: 'Asegurar tu jubilación por si acaso',
        categoria: 'pension',
        disponibleDesde: 1985,
        coste: { dinero: 100000 },
        efecto: {
            playerResources: { pension: 20 }
        },
        puntos: 40,
        frase: 'planPensiones'
    },
    votarPensionesGenerosas: {
        id: 'votarPensionesGenerosas',
        nombre: 'Votar Pensiones +',
        descripcion: 'Subir pensiones aunque no haya dinero',
        categoria: 'pension',
        disponibleDesde: 2005,
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 15 },
            recursosGlobales: { huchaPensiones: -12 }
        },
        puntos: 60,
        frase: 'votarPensiones'
    },
    cobrarPensionMaxima: {
        id: 'cobrarPensionMaxima',
        nombre: 'Pensión Máxima',
        descripcion: 'Cobrar la pensión máxima legal',
        categoria: 'pension',
        disponibleDesde: 2015,
        requisitos: { pension: { min: 60 } },
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { huchaPensiones: -8 }
        },
        puntos: 100,
        frase: 'pensionMaxima'
    },
    jubilacionAnticipada: {
        id: 'jubilacionAnticipada',
        nombre: 'Jubilación Anticipada',
        descripcion: 'Retirarse antes de los 65',
        categoria: 'pension',
        disponibleDesde: 2005,
        requisitos: { pension: { min: 40 }, empleo: { min: 2 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 20 },
            recursosGlobales: { huchaPensiones: -6 }
        },
        puntos: 75,
        frase: 'jubilacionAnticipada'
    },
    pensionNoContributiva: {
        id: 'pensionNoContributiva',
        nombre: 'Votar Pensiones No Contributivas',
        descripcion: '"Nos lo merecemos aunque no cotizáramos"',
        categoria: 'pension',
        disponibleDesde: 2015,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { huchaPensiones: -10 }
        },
        puntos: 50,
        frase: 'pensionNoContributiva'
    },

    // ===== MEDIO AMBIENTE =====
    comprarCocheDiesel: {
        id: 'comprarCocheDiesel',
        nombre: 'Comprar Diésel',
        descripcion: 'Un buen coche diésel que dure 20 años',
        categoria: 'ambiente',
        disponibleDesde: 1985,
        coste: { dinero: 500000 },
        efecto: {
            recursosGlobales: { saludPlaneta: -5 }
        },
        puntos: 30,
        frase: 'cocheDiesel'
    },
    negarCambioClimatico: {
        id: 'negarCambioClimatico',
        nombre: 'Negar el Cambio Climático',
        descripcion: '"Siempre ha hecho calor en verano"',
        categoria: 'ambiente',
        disponibleDesde: 1995,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { saludPlaneta: -4 }
        },
        puntos: 50,
        frase: 'negarClima'
    },
    votarContraRenovables: {
        id: 'votarContraRenovables',
        nombre: 'Votar Contra Renovables',
        descripcion: '"Los molinos son feos y matan pájaros"',
        categoria: 'ambiente',
        disponibleDesde: 2005,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { saludPlaneta: -10 }
        },
        puntos: 60,
        frase: 'contraRenovables'
    },
    crucero: {
        id: 'crucero',
        nombre: 'Hacer Cruceros',
        descripcion: 'Viajar por el mundo contaminando',
        categoria: 'ambiente',
        disponibleDesde: 2005,
        requisitos: { pension: { min: 30 } },
        coste: { dinero: 300000 },
        efecto: {
            recursosGlobales: { saludPlaneta: -7 }
        },
        puntos: 70,
        frase: 'crucero'
    },
    suv: {
        id: 'suv',
        nombre: 'Comprar SUV',
        descripcion: 'Un tanque urbano para ir a por el pan',
        categoria: 'ambiente',
        disponibleDesde: 2005,
        coste: { dinero: 800000 },
        efecto: {
            recursosGlobales: { saludPlaneta: -8 }
        },
        puntos: 45,
        frase: 'suv'
    },
    vuelosBaratos: {
        id: 'vuelosBaratos',
        nombre: 'Vuelos Low Cost',
        descripcion: 'Fin de semana en Europa por 50€',
        categoria: 'ambiente',
        disponibleDesde: 2005,
        coste: { dinero: 50000 },
        efecto: {
            recursosGlobales: { saludPlaneta: -4 }
        },
        puntos: 25,
        repeatable: true,
        frase: 'vuelosBaratos'
    },

    // ===== EDUCACIÓN =====
    disfrutarUniGratis: {
        id: 'disfrutarUniGratis',
        nombre: 'Universidad Gratis',
        descripcion: 'Estudiar sin pagar prácticamente nada',
        categoria: 'educacion',
        disponibleDesde: 1975,
        disponibleHasta: 1985,
        coste: { dinero: 10000 },
        efecto: {
            playerResources: { educacion: 0 }
        },
        puntos: 10,
        frase: 'uniGratis'
    },
    votarSubirTasas: {
        id: 'votarSubirTasas',
        nombre: 'Votar Subir Tasas',
        descripcion: '"Los estudiantes deben esforzarse más"',
        categoria: 'educacion',
        disponibleDesde: 1995,
        coste: { dinero: 0 },
        efecto: {
            playerResources: { educacion: 1 },
            recursosGlobales: { educacionAccesible: -15 }
        },
        puntos: 80,
        frase: 'subirTasas'
    },
    criticarJovenes: {
        id: 'criticarJovenes',
        nombre: 'Criticar a los Jóvenes',
        descripcion: '"Es que no quieren trabajar"',
        categoria: 'educacion',
        disponibleDesde: 2005,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { educacionAccesible: -7, empleoEstable: -5 }
        },
        puntos: 40,
        frase: 'criticarJovenes'
    },
    becasParaHijos: {
        id: 'becasParaHijos',
        nombre: 'Becas Para Mis Hijos',
        descripcion: 'Pedir becas aunque no las necesites',
        categoria: 'educacion',
        disponibleDesde: 1995,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { educacionAccesible: -8 }
        },
        puntos: 55,
        frase: 'becasHijos'
    },
    uniPrivada: {
        id: 'uniPrivada',
        nombre: 'Universidad Privada',
        descripcion: 'Meter a los hijos en la privada',
        categoria: 'educacion',
        disponibleDesde: 1995,
        coste: { dinero: 200000 },
        efecto: {
            recursosGlobales: { educacionAccesible: -10 }
        },
        puntos: 65,
        frase: 'uniPrivada'
    },

    // ===== FAMILIA (NUEVA CATEGORÍA) =====
    casarse: {
        id: 'casarse',
        nombre: 'Casarse',
        descripcion: 'Una boda como Dios manda',
        categoria: 'familia',
        disponibleDesde: 1975,
        disponibleHasta: 1995,
        coste: { dinero: 500000 },
        efecto: {
            playerResources: { pension: 5 }
        },
        puntos: 30,
        frase: 'casarse'
    },
    tenerHijos: {
        id: 'tenerHijos',
        nombre: 'Tener Hijos',
        descripcion: 'La familia tradicional',
        categoria: 'familia',
        disponibleDesde: 1975,
        disponibleHasta: 1995,
        coste: { dinero: 100000 },
        efecto: {
            playerResources: { pension: 5 }
        },
        puntos: 25,
        frase: 'tenerHijos'
    },
    divorcioVentajoso: {
        id: 'divorcioVentajoso',
        nombre: 'Divorcio Ventajoso',
        descripcion: 'Quedarte con la casa',
        categoria: 'familia',
        disponibleDesde: 1985,
        requisitos: { vivienda: 1 },
        coste: { dinero: 200000 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -5 }
        },
        puntos: 70,
        frase: 'divorcio'
    },
    heredarPadres: {
        id: 'heredarPadres',
        nombre: 'Heredar de los Padres',
        descripcion: 'El piso de los abuelos es tuyo',
        categoria: 'familia',
        disponibleDesde: 1995,
        coste: { dinero: 0 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -4 }
        },
        puntos: 80,
        frase: 'heredarPadres'
    },
    pagarEstudiosHijos: {
        id: 'pagarEstudiosHijos',
        nombre: 'Pagar Estudios Hijos',
        descripcion: 'Aunque después digan que no les ayudaste',
        categoria: 'familia',
        disponibleDesde: 1995,
        coste: { dinero: 200000 },
        efecto: {},
        puntos: 20,
        frase: 'estudiosHijos'
    },
    darEntradaPiso: {
        id: 'darEntradaPiso',
        nombre: 'Dar Entrada al Hijo',
        descripcion: 'Para que pueda comprarse un piso',
        categoria: 'familia',
        disponibleDesde: 2005,
        requisitos: { vivienda: 1 },
        coste: { dinero: 1000000 },
        efecto: {
            recursosGlobales: { viviendaDisponible: -3 }
        },
        puntos: 40,
        frase: 'entradaPiso'
    },
    cuidarNietos: {
        id: 'cuidarNietos',
        nombre: 'Cuidar Nietos',
        descripcion: 'Trabajo gratis para que tus hijos trabajen',
        categoria: 'familia',
        disponibleDesde: 2015,
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 5 }
        },
        puntos: 30,
        frase: 'cuidarNietos'
    },

    // ===== NUEVAS ACCIONES DE VIVIENDA =====
    desahucioCompra: {
        id: 'desahucioCompra',
        nombre: 'Piso de Subasta',
        descripcion: 'Comprar un piso embargado al 40% de su valor',
        categoria: 'vivienda',
        disponibleDesde: 2005,
        disponibleHasta: 2015,
        coste: { dinero: 800000 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -8 }
        },
        puntos: 90,
        frase: 'desahucioCompra'
    },
    heredarSinImpuestos: {
        id: 'heredarSinImpuestos',
        nombre: 'Herencia Bonificada',
        descripcion: 'Bonificación del 99% en Madrid. Para eso voté lo que voté',
        categoria: 'vivienda',
        disponibleDesde: 2005,
        coste: { dinero: 50000 },
        efecto: {
            playerResources: { vivienda: 1 },
            recursosGlobales: { viviendaDisponible: -4 }
        },
        puntos: 75,
        frase: 'heredarSinImpuestos'
    },
    goldenVisa: {
        id: 'goldenVisa',
        nombre: 'Vender a Inversor Extranjero',
        descripcion: 'Un jeque paga el triple por tu piso en el centro',
        categoria: 'vivienda',
        disponibleDesde: 2015,
        requisitos: { vivienda: 2 },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { vivienda: -1 },
            recursosGlobales: { viviendaDisponible: -15 }
        },
        puntos: 120,
        frase: 'goldenVisa'
    },

    // ===== NUEVAS ACCIONES DE EMPLEO =====
    compatibilidadPension: {
        id: 'compatibilidadPension',
        nombre: 'Compatibilizar Pensión',
        descripcion: 'Cobrar pensión mientras trabajas. Es legal, eh',
        categoria: 'empleo',
        disponibleDesde: 2015,
        requisitos: { pension: { min: 40 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 15 },
            recursosGlobales: { empleoEstable: -10, huchaPensiones: -8 }
        },
        puntos: 85,
        frase: 'compatibilidadPension'
    },
    ere45Dias: {
        id: 'ere45Dias',
        nombre: 'ERE de 45 Días',
        descripcion: '45 días por año trabajado, bien negociado por el sindicato',
        categoria: 'empleo',
        disponibleDesde: 1995,
        disponibleHasta: 2015,
        requisitos: { empleo: { min: 2 } },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { pension: 25 },
            recursosGlobales: { empleoEstable: -5 }
        },
        puntos: 70,
        frase: 'ere45Dias'
    },

    // ===== NUEVAS ACCIONES DE AMBIENTE =====
    piscinaSequia: {
        id: 'piscinaSequia',
        nombre: 'Llenar Piscina en Sequía',
        descripcion: 'Restricciones? A mí no me afectan, es mi agua',
        categoria: 'ambiente',
        disponibleDesde: 2015,
        coste: { dinero: 20000 },
        efecto: {
            recursosGlobales: { saludPlaneta: -6 }
        },
        puntos: 35,
        repeatable: true,
        frase: 'piscinaSequia'
    },
    calefaccion25Grados: {
        id: 'calefaccion25Grados',
        nombre: 'Calefacción a 25 Grados',
        descripcion: 'En manga corta en diciembre, paso frío ni en broma',
        categoria: 'ambiente',
        disponibleDesde: 1985,
        coste: { dinero: 30000 },
        efecto: {
            recursosGlobales: { saludPlaneta: -3 }
        },
        puntos: 20,
        repeatable: true,
        frase: 'calefaccion25Grados'
    },

    // ===== ACCIONES "POSITIVAS" (sátira - puntos negativos) =====
    donarPisoONG: {
        id: 'donarPisoONG',
        nombre: 'Ceder Piso a ONG',
        descripcion: 'Donar un piso a familias necesitadas. Tampoco lo usaba tanto...',
        categoria: 'vivienda',
        disponibleDesde: 2005,
        requisitos: { vivienda: 2 },
        coste: { dinero: 0 },
        efecto: {
            playerResources: { vivienda: -1 },
            recursosGlobales: { viviendaDisponible: 10 }
        },
        puntos: -50,
        frase: 'donarPisoONG'
    },
    apoyarRenovables: {
        id: 'apoyarRenovables',
        nombre: 'Apoyar Renovables',
        descripcion: 'Votar a favor aunque suban los impuestos. Por los nietos, supongo',
        categoria: 'ambiente',
        disponibleDesde: 2005,
        coste: { dinero: 0 },
        efecto: {
            recursosGlobales: { saludPlaneta: 8 }
        },
        puntos: -30,
        frase: 'apoyarRenovables'
    }
};

// Función para obtener mejoras disponibles en una década
function getMejorasDisponibles(decada, playerResources, mejorasUsadas) {
    const disponibles = [];

    for (const [id, mejora] of Object.entries(mejorasData)) {
        // Verificar década
        if (mejora.disponibleDesde && decada < mejora.disponibleDesde) continue;
        if (mejora.disponibleHasta && decada > mejora.disponibleHasta) continue;

        // Verificar si ya se usó (si no es repeatable)
        if (!mejora.repeatable && mejorasUsadas.includes(id)) continue;

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

        disponibles.push({ ...mejora, id });
    }

    return disponibles;
}
