// --- SISTEMA DE PARTIDOS ---
// Configuración base de todos los partidos (sin isPlayer, se asigna dinámicamente)
const partidosConfigBase = {
    psoe: {
        name: 'PSOE',
        color: '#e60000',
        emoji: '🌹',
        votosInicial: 1000,
        vpsInicial: 0,
        growthRate: 0.75, // Growth rate cuando es rival
        regionBonus: { andalucia: 1.3, extremadura: 1.2, cataluna: 0.8, madrid: 0.7 }
    },
    pp: {
        name: 'PP',
        color: '#0055a7',
        emoji: '🕊️',
        votosInicial: 1000,
        vpsInicial: 0,
        growthRate: 0.8,
        regionBonus: { madrid: 1.4, galicia: 1.3, cyl: 1.2, andalucia: 0.9 }
    },
    vox: {
        name: 'VOX',
        color: '#63be21',
        emoji: '🦅',
        votosInicial: 800,
        vpsInicial: 0,
        growthRate: 0.6,
        regionBonus: { murcia: 1.4, clm: 1.3, madrid: 1.1, euskadi: 0.5, cataluna: 0.6 }
    },
    podemos: {
        name: 'Podemos',
        color: '#7b297b',
        emoji: '✊',
        votosInicial: 400,
        vpsInicial: 0,
        growthRate: 0.65,
        regionBonus: { euskadi: 1.4, cataluna: 1.3, navarra: 1.2, andalucia: 0.8 }
    }
};

// Variable global que contendrá los partidos con isPlayer asignado
let partidos = null;

// Inicializar partidos según el partido elegido
function initPartidos(partyKey) {
    partyKey = partyKey || partidoElegido || 'psoe';

    partidos = {};
    for (let key in partidosConfigBase) {
        const base = partidosConfigBase[key];
        partidos[key] = {
            name: base.name,
            color: base.color,
            emoji: base.emoji,
            isPlayer: (key === partyKey),
            votos: (key === partyKey) ? 0 : base.votosInicial,
            vps: base.vpsInicial,
            regionBonus: { ...base.regionBonus }
        };

        // Solo añadir growthRate a rivales
        if (key !== partyKey) {
            partidos[key].growthRate = base.growthRate;
        }
    }

    return partidos;
}

// Reiniciar partidos (para nueva partida o ascensión)
function resetPartidos(partyKey) {
    partyKey = partyKey || partidoElegido || 'psoe';

    // Obtener escalado de dificultad
    const dificultad = typeof calcularEscaladoDificultad === 'function'
        ? calcularEscaladoDificultad()
        : { aiGrowthBonus: 0, rivalStartBonus: 0, costMultiplier: 1 };

    // Obtener votos iniciales del jugador por privilegios
    const privBonuses = typeof calcularBonusesPrivilegios === 'function'
        ? calcularBonusesPrivilegios()
        : { startingVotes: 0 };
    const playerStartVotes = Math.max(1000, privBonuses.startingVotes || 0);

    // Capear bonus de rivales a máximo 20x los votos iniciales del jugador
    const maxRivalBonus = playerStartVotes * 20;
    const cappedRivalBonus = Math.min(dificultad.rivalStartBonus, maxRivalBonus);

    for (let key in partidosConfigBase) {
        const base = partidosConfigBase[key];
        const isPlayer = (key === partyKey);

        partidos[key].isPlayer = isPlayer;
        partidos[key].votos = isPlayer ? 0 : (base.votosInicial + cappedRivalBonus);
        partidos[key].vps = base.vpsInicial;
        // Reiniciar bonus regionales a valores de fábrica
        partidos[key].regionBonus = { ...base.regionBonus };

        if (!isPlayer) {
            partidos[key].growthRate = base.growthRate;
        } else {
            delete partidos[key].growthRate;
        }
    }
}

// Para compatibilidad: inicializar con PSOE por defecto si no se ha llamado initPartidos
// Esto se ejecutará al cargar el script si partidos es null
(function() {
    if (partidos === null) {
        initPartidos('psoe');
    }
})();
