private void ConfirmarEscolha() { // Se precisar fazer algo de acordo com a resposta escolhida pelo // jogador, invocar as funções cadastradas no evento // QuandoEscolherRespostaEvent se ele possuir funções dentro dele if (npcDialogo != null) { npcDialogo.QuandoEscolherResposta(dropdownIndex); } falaAtual.personagem = dialogo.nodulos[nodulo].respostas[dropdownIndex].personagem; falaAtual.emocao = dialogo.nodulos[nodulo].respostas[dropdownIndex].emocao; falaAtual.fala = dialogo.nodulos[nodulo].respostas[dropdownIndex].fala; if (dialogo.nodulos[nodulo].respostas[dropdownIndex].questIndex != 0) { questsIndex.Add(dialogo.nodulos[nodulo].respostas[dropdownIndex].questIndex); } faladorAtual = Falador.BuscarPolaroideNosAssets(falaAtual.personagem, falaAtual.emocao); npcNome.text = faladorAtual.nome; nodulo = dialogo.nodulos[nodulo].respostas[dropdownIndex].conexao; proximaFala = -1; dropdown.options.Clear(); dropdown.gameObject.SetActive(false); corrotina = StartCoroutine(Escrever()); personagemRosto[0].color = opacidade.Ligar(); personagemRosto[1].color = opacidade.Desligar(); personagemRosto[0].sprite = faladorAtual.personagem; }
private void InicializarDialogo() { sistemaDialogoUI.SetActive(true); proximaFala = 0; nodulo = 0; escrevendo = false; for (int i = 0; i < dialogo.nodulos[nodulo].falas.Length; i++) { Personagens _personagem = dialogo.nodulos[nodulo].falas[i].personagem; if (_personagem == Personagens.Lurdinha) { personagemRosto[0].sprite = Falador.BuscarPolaroideNosAssets(_personagem, Expressao.Serio).personagem; i = dialogo.nodulos[nodulo].falas.Length; } else if (i + 1 == dialogo.nodulos[nodulo].falas.Length) { personagemRosto[0].sprite = null; personagemRosto[0].color = new Color(0f, 0f, 0f, 0f); //personagemRosto[0].transform.GetChild(0).GetComponent<Image>().color = new Color(0f, 0f, 0f, 0f); } } for (int i = 0; i < dialogo.nodulos[nodulo].falas.Length; i++) { Personagens _personagem = dialogo.nodulos[nodulo].falas[i].personagem; if (_personagem != Personagens.Lurdinha) { personagemRosto[1].sprite = Falador.BuscarPolaroideNosAssets(_personagem, Expressao.Serio).personagem; i = dialogo.nodulos[nodulo].falas.Length; } else if (i + 1 == dialogo.nodulos[nodulo].falas.Length) { personagemRosto[1].sprite = null; personagemRosto[1].color = new Color(0f, 0f, 0f, 0f); //personagemRosto[1].transform.GetChild(0).GetComponent<Image>().color = new Color(0f, 0f, 0f, 0f); } } ProximaFala(); }
public void ProximaFala() { foreach (Image image in personagemRosto) { if (image.sprite != null) { image.color = opacidade.Desligar(); } } if (dialogo.nodulos[nodulo].falas.Length > proximaFala) { falaAtual = dialogo.nodulos[nodulo].falas[proximaFala]; for (int i = 0; i < falaAtual.fala.ToCharArray().Length; i++) { if ((int)falaAtual.fala.ToCharArray()[i] == 13) { char[] m = new char[falaAtual.fala.ToCharArray().Length - 1]; for (int j = 0; j < m.Length; j++) { if (j < i) { m[j] = falaAtual.fala.ToCharArray()[j]; } else { m[j] = falaAtual.fala.ToCharArray()[j + 1]; } } falaAtual.fala = m.ArrayToString(); } } } faladorAtual = Falador.BuscarPolaroideNosAssets(falaAtual.personagem, falaAtual.emocao); npcNome.text = faladorAtual.nome; var balaoDeFala = painel.transform.GetChild(0).GetComponent <Image>(); if (falaAtual.personagem == Personagens.Lurdinha) { // Trocar a cor do balão de fala para a cor que a Lurdinha usa balaoDeFala.color = corDialogoLurdinha; personagemRosto[0].color = opacidade.Ligar(); personagemRosto[0].sprite = faladorAtual.personagem; painel.transform.rotation = Quaternion.identity; } else { // Trocar a cor do balão de fala para a original novamente balaoDeFala.color = new Color(1, 1, 1); personagemRosto[1].color = opacidade.Ligar(); personagemRosto[1].sprite = faladorAtual.personagem; painel.transform.rotation = Quaternion.Euler(0, 180, 0); } // Apresentar o botão de retornar para a fala anterior var indiceFalaAtual = proximaFala; if (indiceFalaAtual > 0 && dialogo.nodulos[nodulo].falas[indiceFalaAtual - 1].fala != "") { botaoRetornar.gameObject.SetActive(true); } else { botaoRetornar.gameObject.SetActive(false); } if (falaAtual.fala == "") { proximaFala++; Analise(); botao.onClick.Invoke(); } else { corrotina = StartCoroutine(Escrever()); } }