using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class TextoEnEscena : MonoBehaviour
{
    public Text txt;
    string[] stories;
    public System.Action callback;

    private void Awake()
    {
        txt = GetComponent<Text>();
    
        stories = new string[19];
        stories[0] = "Sistema Syclon, año 2139.";
        stories[1] = "Errante Sigma: \nErrante Sigma a Base Ishtar. Errante Sigma a Base Ishtar. Misión 139-Tango-Bravo a los planetas Fourier, Tesla y Clausius. Despegue exitoso. Nos dirigimos a Fourier. Iniciando velocidad crucero.";
        stories[2] = "Base Ishtar: \nBase Ishtar a Errante Sigma. Hay una tormenta electromagnética en la ruta. Tome acción evasiva. Repito. Tome acción evasiva.";
        stories[3] = "Errante Sigma: \nErrante Sigma a Base Ishtar. La tormenta apareció de la nada. Perdemos el control de la nave.";
        stories[4] = "Errante Sigma: \nErrante Sigma a Ba...shtar. Est … odos vivos. Hay daños críti... ... temas de navegaci… … … poner en march… colo San Andr...";
        stories[5] = "Base Ishtar: \nBase Ishtar a Errante Sigma. Por favor, repitan. Hay interferencia en la señal. Repito: hay interferencia en la señal.";
        stories[6] = "Errante Sigma: \n.....tocolo …  rés.";
        stories[7] = "Base Ishtar: \nBase Ishtar a Errante Sigma. Repita. Hay interferencia.";
        stories[8] = "Técnico: \nAlmirante, acaban de invocar el Protocolo San Andrés. Esto significa que no sólo se dañaron sus sistemas de navegación, sino que nuestras instrucciones no les llegan con claridad. Necesitan que los guiemos remotamente.";
        stories[9] = "Errante Sigma: \nErr… gma a… tar. Errante Si… … r. Solic … os ayud … ompletar la misi… y volve… a base.";
        stories[10] = "Almirante, acabo de activar en su consola el mando remoto del Errante Ishtar. La misión está en sus manos.";
        stories[11] = "Almirante, hay más problemas en la transmisión. Sólo podemos usar mensajes binarios para que les lleguen nuestras instrucciones.";
        stories[12] = "Almirante, iniciamos un sistema rudimentario de señales binarias. Mantenga apretado para los unos, suéltelo para los ceros. Dejé una copia de los comandos en su pantalla.";
        stories[13] = "Aquí el almirante.Damas y caballeros, buen trabajo. Errante Sigma, bienvenidos a casa.";
        stories[14] = "Errante Sigma: \nErrante Sigma a Base Ishtar. Llegamos con éxito al planeta Fourier.";
        stories[15] = "Errante Sigma: \nErrante Sigma a Base Ishtar. Llegamos con éxito al planeta Tesla.";
        stories[16] = "Errante Sigma: \nErrante Sigma a Base Ishtar. Llegamos con éxito al planeta Clausius.";
        stories[17] = "Errante Sigma: \nListos para seguir la misión.";
        stories[18] = "Errante Sigma: \nListos para volver a la base.";
    }

    public void CambiaTexto(int indice, System.Action cb = null)
    {
        txt.text = "";
        callback = cb;
        StartCoroutine(PlayText(indice));
    }

    private IEnumerator PlayText(int indice)
    {
        var mensaje = stories[indice];
        foreach (char c in stories[indice])
        {
            txt.text += c;
            yield return new WaitForSeconds(0.01f);
        }
        yield return new WaitForSeconds(4);

        txt.text = "";
        if (callback != null)
            callback();
    }
}