Esempio n. 1
0
    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;
    }
Esempio n. 2
0
    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();
    }
Esempio n. 3
0
    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());
        }
    }