Example #1
0
 public void IniciarConversa(Conversation_NodeGraph Conversa)
 {
     setAllConversationTexts(Conversa);
     Conversation        = Conversa;
     conversationStarted = false;
     startNode           = Conversation.GetStartingNode();
     DialogCanvas.SetActive(true);
     DialogCanvas2.SetActive(true);
     GameObject.Find("RostoPlayer").GetComponent <Image>().sprite = startNode.Retrato_Esquerda;
     GameObject.Find("RostoNPC").GetComponent <Image>().sprite    = startNode.Retrato_direita;
     Parametros_globais.speed = 0;
     print(Parametros_globais.speed);
     WaitingAnswer = false;
 }
Example #2
0
    IEnumerator EndConversationDelay(float time, EndNode nodeFinal)
    //Fecha a interface de conversa e reseta a velocidade do player após time
    //opcionalmente, inicia outra conversa da sequencia após time
    {
        yield return(new WaitForSeconds(time));

        if (nodeFinal == null || nodeFinal.conversa_seguinte == null)
        {
            DialogCanvas.SetActive(false);
            DialogCanvas2.SetActive(false);
            Parametros_globais.speed = Parametros_globais.startingSpeed;
            Conversation             = null;
        }
        else
        {
            IniciarConversa(nodeFinal.conversa_seguinte);
        }
    }
Example #3
0
 void setAllConversationTexts(Conversation_NodeGraph cng)
 //metodo que coloca os textos das conversas dentro dos nodes, conforme a lingua preferida
 //os valores sao lidos de um arquivo de texto
 {
     Debug.Log(Path.Combine(Application.dataPath, "falas", cng.name + '_' + preferred_language + ".conversation"));
     string[] falas = File.ReadAllLines(Path.Combine(Application.dataPath, "falas", cng.name + '_' + preferred_language + ".conversation"));
     foreach (Conversation_Node cn in cng.getAllConversationNodes())
     {
         int index_identificador = Array.IndexOf(falas, "@" + cn.identificador) + 1;
         //Debug.Log("index identificador")
         if (index_identificador > -1)
         {
             //texto_npc
             for (int i = index_identificador; i < falas.Length; i++)
             {
                 if (falas[i].StartsWith("npc_text="))
                 {
                     cn.NPCText = falas[i].Split('=')[1];
                     break;
                 }
                 if (falas[i].StartsWith("@"))
                 {
                     break;
                 }
             }
             //para cada uma das operacoes...
             for (int op = 1; op <= 4; op++)
             {
                 for (int j = 0; j < 2; j++)
                 {
                     //buscar em cada uma das linhas do arquivo, a partir do identificador...
                     for (int i = index_identificador; i < falas.Length; i++)
                     {
                         Debug.Log(falas[i]);
                         //para evitar ler sem necessidade, se chegar em @, interromper
                         //isso significa que ja estamos em outro identificador
                         if (falas[i].StartsWith("@"))
                         {
                             break;
                         }
                         //se ele inicia com o valor da fala curta...
                         if (falas[i].StartsWith(string.Format("Op{0}=", op)))
                         {
                             if (op == 1)
                             {
                                 cn.Opcao1 = falas[i].Split('=')[1];
                             }
                             else if (op == 2)
                             {
                                 cn.Opcao2 = falas[i].Split('=')[1];
                             }
                             else if (op == 3)
                             {
                                 cn.Opcao3 = falas[i].Split('=')[1];
                             }
                             else if (op == 4)
                             {
                                 cn.Opcao4 = falas[i].Split('=')[1];
                             }
                             break;
                         }
                         //ou se ele inicia com o valor da fala longa...
                         else if (falas[i].StartsWith(string.Format("Op{0}_full=", op)))
                         {
                             if (op == 1)
                             {
                                 cn.Opcao1FullText = falas[i].Split('=')[1];
                             }
                             else if (op == 2)
                             {
                                 cn.Opcao2FullText = falas[i].Split('=')[1];
                             }
                             else if (op == 3)
                             {
                                 cn.Opcao3FullText = falas[i].Split('=')[1];
                             }
                             else if (op == 4)
                             {
                                 cn.Opcao4FullText = falas[i].Split('=')[1];
                             }
                             break;
                         }
                     }
                 }
             }
         }
     }
 }