Example #1
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;
                         }
                     }
                 }
             }
         }
     }
 }