// La Paguita - Minijuego: Estafa al Forocochero (Yolanda, Roxana, Yamila, Yuleidy)

(function () {
    const TOTAL_TURNOS = 6;
    const ENAMORAMIENTO_INICIAL = 30;
    const ENAMORAMIENTO_EXITO = 70;

    const HUMORES = ['romantico', 'pesimista', 'celoso'];

    // Matriz de efectos: cómo reacciona el forocochero según su humor × tu tipo de respuesta
    const EFECTOS_HUMOR = {
        romantico: { seductora: 18, vulnerable: 10, exigente: -8 },
        pesimista: { seductora: 5,  vulnerable: 20, exigente: -15 },
        celoso:    { seductora: -12, vulnerable: 8, exigente: 15 }
    };

    const HUMOR_ICONOS = { romantico: '💘', pesimista: '😢', celoso: '😠' };
    const HUMOR_LABEL  = { romantico: 'Romántico', pesimista: 'Depresivo', celoso: 'Celoso' };

    const MENSAJES_FOROCOCHERO = {
        romantico: [
            'Hola guapa, tu foto es preciosa 💜',
            'Me encantas, nunca había hablado con una chica tan especial',
            '¿Vendrías a ver mi Golf GTI del 2008? Tiene llantas nuevas',
            'Eres diferente a las españolas, tú sí me entiendes',
            'Ojalá pudieras estar aquí, te invitaría a un kebab',
            'Podríamos vernos este finde, tengo el piso de mi madre para mí'
        ],
        pesimista: [
            'Nadie me quiere de verdad... seguro que tú también pasas',
            'Mi madre es la única mujer que me entiende',
            'Las tías españolas son unas estiradas, todas iguales',
            'Llevo 3 años sin pillar cacho, soy un paria',
            'A veces pienso que me voy a morir solo en mi habitación',
            'Mi psicólogo dice que soy incel pero no es culpa mía'
        ],
        celoso: [
            '¿Con quién estás hablando ahora? Tardas mucho en responder',
            'Seguro que tienes más tíos escribiéndote ¿verdad?',
            'Demuéstrame que soy el único, mándame una foto ahora',
            '¿Por qué sales en línea si no me hablas a mí?',
            'Dime la verdad, ¿estás viendo a otro?',
            'Si me quisieras de verdad, no tendrías otros amigos'
        ]
    };

    const RESPUESTAS = {
        seductora: [
            'Mi amor, solo pienso en ti 💕',
            'Papi, nadie me hace sentir como tú',
            'Te extraño mucho bebé, sueño contigo',
            'Eres mi rey, nadie como tú en España',
            'Me muero por verte, mándame tu ubicación',
            'Tengo ganas de abrazarte fuerte, mi vida'
        ],
        vulnerable: [
            'Estoy sola aquí... me siento muy mal',
            'Me echaron del trabajo, no sé qué hacer',
            'Mi ex me dejó sin nada 😢',
            'No tengo para pagar el alquiler este mes',
            'Mi hija está enferma y no tengo para la medicina',
            'Solo tú me entiendes, de verdad'
        ],
        exigente: [
            'Necesito 50€ para el alquiler, mándame ya',
            'Si de verdad me quieres, demuéstralo con Bizum',
            'La nevera está vacía, ayúdame o me voy',
            'Tengo que pagar una deuda urgente, 100€',
            'O me envías algo hoy o te bloqueo',
            'Suelta el dinero si quieres hablar conmigo'
        ]
    };

    function init(area, contexto, onComplete) {
        let turno = 0;
        let enamoramiento = ENAMORAMIENTO_INICIAL;
        let humor = 'romantico';
        let gameOver = false;
        const chatLog = [];

        area.innerHTML = `
            <div class="forocochero-header">
                <div class="forocochero-profile">
                    <span class="forocochero-avatar">🤓</span>
                    <div>
                        <div class="forocochero-name">ForoShur1985</div>
                        <div class="forocochero-status" id="forocochero-status">💘 Romántico</div>
                    </div>
                </div>
                <div class="forocochero-love">
                    <span>💘 Enamoramiento</span>
                    <div class="forocochero-love-bar"><div class="forocochero-love-fill" id="forocochero-love-fill" style="width:${ENAMORAMIENTO_INICIAL}%"></div></div>
                    <span id="forocochero-love-pct">${ENAMORAMIENTO_INICIAL}%</span>
                </div>
            </div>
            <div class="forocochero-chat" id="forocochero-chat"></div>
            <div class="forocochero-options" id="forocochero-options"></div>
        `;

        const chatEl = document.getElementById('forocochero-chat');
        const optionsEl = document.getElementById('forocochero-options');
        const loveFill = document.getElementById('forocochero-love-fill');
        const lovePct = document.getElementById('forocochero-love-pct');
        const statusEl = document.getElementById('forocochero-status');

        function pickMensaje(lista) {
            return lista[Math.floor(Math.random() * lista.length)];
        }

        function addBubble(who, text) {
            const bubble = document.createElement('div');
            bubble.className = who === 'him' ? 'forocochero-bubble him' : 'forocochero-bubble me';
            bubble.textContent = text;
            chatEl.appendChild(bubble);
            chatEl.scrollTop = chatEl.scrollHeight;
            chatLog.push({ who, text });
        }

        function renderTurno() {
            if (gameOver) return;
            if (turno >= TOTAL_TURNOS) return endGame('final');

            // Elegir humor al azar (excepto el primer turno, que siempre es romántico)
            if (turno === 0) {
                humor = 'romantico';
            } else {
                humor = HUMORES[Math.floor(Math.random() * HUMORES.length)];
            }

            statusEl.textContent = `${HUMOR_ICONOS[humor]} ${HUMOR_LABEL[humor]}`;

            const mensaje = pickMensaje(MENSAJES_FOROCOCHERO[humor]);
            addBubble('him', mensaje);

            // Render 3 options
            optionsEl.innerHTML = '';
            const tipos = ['seductora', 'vulnerable', 'exigente'];
            const emojis = { seductora: '💋', vulnerable: '🥺', exigente: '💸' };
            const etiquetas = { seductora: 'Seductora', vulnerable: 'Vulnerable', exigente: 'Exigente' };
            for (const tipo of tipos) {
                const respuesta = pickMensaje(RESPUESTAS[tipo]);
                const btn = document.createElement('button');
                btn.className = 'forocochero-option';
                btn.innerHTML = `<span class="forocochero-option-label">${emojis[tipo]} ${etiquetas[tipo]}</span><span class="forocochero-option-text">"${respuesta}"</span>`;
                btn.onclick = () => handleRespuesta(tipo, respuesta);
                optionsEl.appendChild(btn);
            }

            updateMinigameScore(`💘 ${Math.floor(enamoramiento)}% | Turno ${turno + 1}/${TOTAL_TURNOS}`);
        }

        function updateLove() {
            enamoramiento = Math.max(0, Math.min(100, enamoramiento));
            if (loveFill) loveFill.style.width = enamoramiento + '%';
            if (lovePct) lovePct.textContent = Math.floor(enamoramiento) + '%';
            if (loveFill) {
                loveFill.classList.toggle('low', enamoramiento < 30);
                loveFill.classList.toggle('high', enamoramiento >= 70);
            }
        }

        function handleRespuesta(tipo, textoRespuesta) {
            if (gameOver) return;

            addBubble('me', textoRespuesta);

            const baseDelta = EFECTOS_HUMOR[humor][tipo] || 0;
            const noise = (Math.random() * 6) - 3; // ±3
            enamoramiento += baseDelta + noise;
            updateLove();

            if (enamoramiento <= 0) {
                setTimeout(() => endGame('reportado'), 600);
                return;
            }

            turno++;
            optionsEl.innerHTML = '<div class="forocochero-typing">escribiendo...</div>';
            setTimeout(renderTurno, 900);
        }

        function endGame(motivo) {
            if (gameOver) return;
            gameOver = true;

            let paguitas = 0;
            let alerta = 0;
            let exito = false;
            let perfecto = false;
            let mensaje = '';

            if (motivo === 'reportado') {
                alerta = 15;
                mensaje = '🚨 Te ha reportado. El forocochero ha puesto denuncia por "extorsión emocional".';
                addBubble('him', 'Eres una mentirosa, te voy a denunciar. Estáis tomando el pelo a los españoles.');
            } else {
                if (enamoramiento >= ENAMORAMIENTO_EXITO) {
                    paguitas = 50 + Math.floor((enamoramiento - ENAMORAMIENTO_EXITO) * 5);
                    paguitas = Math.min(paguitas, 220);
                    perfecto = enamoramiento >= 90;
                    exito = true;
                    mensaje = perfecto
                        ? `💘 ¡Bizum express! Te ha mandado ${paguitas}💶 "porque eres la mujer de mi vida".`
                        : `📱 Estafa exitosa: +${paguitas}💶. El forocochero no sabe que hay 3 más como él.`;
                    addBubble('him', `Acabo de mandarte el Bizum. No se lo cuentes a nadie... ¿nos vemos este finde?`);
                } else {
                    alerta = 5;
                    mensaje = '💔 No ha picado. Te bloquea sin transferir.';
                    addBubble('him', 'Paso, esto me huele a estafa. Voy a poner en forocoches que avisen.');
                }
            }

            optionsEl.innerHTML = `<div class="forocochero-end-msg">${mensaje}</div>`;

            setTimeout(() => {
                onComplete({
                    tipo: 'estafa_forocochero',
                    exito,
                    reportado: motivo === 'reportado',
                    paguitas,
                    alerta,
                    perfecto,
                    enamoramientoFinal: Math.floor(enamoramiento),
                    contexto
                });
            }, 1800);
        }

        updateLove();
        renderTurno();
    }

    if (typeof registrarMinijuego === 'function') {
        registrarMinijuego('estafa_forocochero', init);
    }
})();
