Ejemplo n.º 1
0
    private IEnumerator DispararFalaDoProfessorAposFeedbackDeTodosOsAlunos()
    {
        // Esperar até que a fala possa aparecer
        yield return(new WaitWhile(() => GameManager.uiSendoUsada));

        // Criar o diálogo que o professor vai falar após os feedbacks
        Dialogo dialogo = new Dialogo();

        dialogo.nodulos          = new DialogoNodulo[1];
        dialogo.nodulos[0]       = new DialogoNodulo();
        dialogo.nodulos[0].falas = new Fala[2];
        // Adicionar fala da Lurdinha (em branco por enquanto, mas o código
        // está pronto aqui caso queiram adicionar uma fala da Lurdinha)
        dialogo.nodulos[0].falas[0] = new Fala
        {
            fala       = "",
            personagem = GameComenius.Dialogo.Personagens.Lurdinha,
            emocao     = GameComenius.Dialogo.Expressao.Sorrindo
        };
        // Adicionar fala do professor
        var npcDialogoProfessor = professor.professor.GetComponent <NpcDialogo>();

        dialogo.nodulos[0].falas[1] = new Fala
        {
            personagem = npcDialogoProfessor.dialogoPrincipal.nodulos[0].falas[1].personagem,
            emocao     = npcDialogoProfessor.dialogoPrincipal.nodulos[0].falas[1].emocao,
            fala       = "O feedback dos alunos foi bastante esclarecedor. Eu espero ver você em uma próxima oportunidade, até mais!"
        };
        SistemaDialogo.sistemaDialogo.ComecarDialogo(dialogo.Clone(), null);
    }
Ejemplo n.º 2
0
        private void Btn_Guardar_Click(object sender, EventArgs e)
        {
            deshabilitarBotones();
            this.reporteMdl       = llenarReporteMdl();
            this.propiedadReporte = llenarPropiedadRpt();
            sentencia s            = new sentencia(usuario);
            Dialogo   dialogo      = new Dialogo();
            bool      confirmacion = dialogo.dialogoSiNo("Confirmacion", "Desea guardar?");

            if (confirmacion)
            {
                if (this.accion == "nuevo")
                {
                    reporteMdlControl.insertarReporteMdl(this.reporteMdl);
                    propiedadReporteControl.insertarPropiedadReporteSinApp(this.propiedadReporte);
                }
                else if (this.accion == "modificar")
                {
                    reporteMdlControl.actualizarReporteMdl(this.reporteMdl);
                }

                iniciazliarTbpConsulta();
                Tbc_RptMdl.SelectedTab = Tbp_Consulta;
                this.reporteMdl        = new ReporteModulo();
                llenarDgv();
                s.insertarBitacora(usuario, "Guardar reporte modulo", "Tbl_Modulo");
            }
        }
Ejemplo n.º 3
0
        void BtnCompararDiretoriosClick(object sender, EventArgs e)
        {
            string sCaminhoDir1 = "", sCaminhoDir2 = "";
            bool   bSelecionado;

            bSelecionado = false;
            if (tvDiretorio1.SelectedNode.IsSelected)
            {
                catalogador.LerArvoreDiretorio(tvDiretorio1.SelectedNode,
                                               barraStatus);
                sCaminhoDir1 = labStatus2.Text;

                if (tvDiretorio2.SelectedNode.IsSelected)
                {
                    catalogador.LerArvoreDiretorio(
                        tvDiretorio2.SelectedNode, barraStatus);
                    sCaminhoDir2 = labStatus2.Text;
                    bSelecionado = true;
                }
            }

            LimparComparacao();

            if (bSelecionado)
            {
                Comparar(sCaminhoDir1, sCaminhoDir2);
            }
            else
            {
                Dialogo.mensagemInfo("Diretórios não selecionados!");
            }
        }
Ejemplo n.º 4
0
        public void ExcluirDiretorioSelecionado(IProgressoLog pLog)
        {
            TreeView  arvore      = getArvoreAtual();
            TreeStore arvoreStore = (TreeStore)arvore.Model;
            TreeIter  iter;

            arvore.Selection.GetSelected(out iter);

            if (arvore.Selection.IterIsSelected(iter))
            {
                NodeView  tabela      = getTabelaAtual();
                ListStore tabelaStore = (ListStore)tabela.Model;
                bool      res         = Dialogo.confirma("Tem Certeza, que você deseja excluir este diretório, isto implicará na destruição de todos os seus items catalogados?");
                if (res)
                {
                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch);

                    string valor = (string)arvoreStore.GetValue(iter, 1);

                    DiretorioBO.Instancia.excluirDiretorio(getAbaAtual(), valor);
                    ExcluirDados(getAbaAtual(), valor);

                    arvoreStore.Remove(ref iter);
                    tabelaStore.Clear();

                    CarregarDados(pLog, false, false);

                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Arrow);
                }
            }
        }
Ejemplo n.º 5
0
 public void Hide()
 {
     if (Dialogo != null)
     {
         Dialogo.Hide();
     }
 }
        private void Comparar(string sCaminhoDir1, string sCaminhoDir2)
        {
            string sSQL;
            Aba    aba1, aba2;
            int    tamLista;

            aba1 = AbaBO.Instancia.pegaAbaPorOrdem(catalogador.listaAbas,
                                                   cmbAba1.Active + 1);
            aba2 = AbaBO.Instancia.pegaAbaPorOrdem(catalogador.listaAbas,
                                                   cmbAba2.Active + 1);

            sSQL         = SQLCompara(aba1, aba2, sCaminhoDir1, sCaminhoDir2);
            listaCompara = DiretorioBO.Instancia.carregarDiretorio(sSQL,
                                                                   "consultaarquivo", frmCompararDiretorioProgresso);

            if (listaCompara.Count > 0)
            {
                Tabela.Instancia.Carregar(true, tabelaCompara, listaCompara, catalogador.listaExtensoes, pb);

                tamLista               = listaCompara.Count;
                LabStatus2.Text        = tamLista.ToString();
                btnSalvarLog.Sensitive = true;
            }
            else
            {
                Dialogo.mensagemInfo("Nenhuma diferença encontrada!");
            }
        }
Ejemplo n.º 7
0
        public void ExcluirDiretorioSelecionado(IProgressoLog pLog)
        {
            TreeView arvore = getArvoreAtual();
            TreeNode path   = arvore.SelectedNode;

            if (path.Text.Length > 0)
            {
                ListView tabela = getTabelaAtual();
                bool     res    = Dialogo.confirma("Tem Certeza, que você deseja excluir este diretório, isto implicará na destruição de todos os seus items catalogados?");
                if (res)
                {
                    form.Cursor = Cursors.WaitCursor;

                    DiretorioBO.Instancia.excluirDiretorio(getAbaAtual(), path.Text);
                    ExcluirDados(getAbaAtual(), path.Text);

                    path.Remove();
                    tabela.Clear();

                    CarregarDados(pLog, false, false);

                    form.Cursor = Cursors.Default;
                }
            }
        }
Ejemplo n.º 8
0
        public void ImportarArquivo(StringList log, IProgressoLog pLog)
        {
            int nResultado;

            form.odImportar.Filter = "Arquivo XML (*.xml)|*.xml";
            DialogResult retval = form.odImportar.ShowDialog();

            if (retval == DialogResult.OK)
            {
                FileInfo arquivo = new FileInfo(form.odImportar.FileName);
                if (arquivo.Exists)
                {
                    form.Cursor = Cursors.WaitCursor;
                    nResultado  = DiretorioBO.Instancia.importarDiretorioViaXML(
                        getAbaAtual(), arquivo.FullName, listaDiretorioPai, pLog);
                    if (nResultado == -1)
                    {
                        Dialogo.mensagemErro("Importação não realizada!");
                    }
                    else if (nResultado == -2)
                    {
                        Dialogo.mensagemErro("Este diretório já existe no catálogo!");
                    }
                    else
                    {
                        FinalizaImportacao(pLog);
                    }
                    form.Cursor = Cursors.Default;
                }
            }
        }
Ejemplo n.º 9
0
        public void ExcluirAbaAtiva(IProgressoLog pLog)
        {
            Aba aba;
            int indiceSel = form.tabControl1.SelectedIndex;

            if (indiceSel > 0)
            {
                bool res = Dialogo.confirma("Tem Certeza, que você deseja excluir esta aba, \n" +
                                            "isto implicará na destruição de todos os seus itens catalogados?");
                if (res)
                {
                    form.Cursor = Cursors.WaitCursor;

                    aba = getAbaAtual();
                    ExcluirDados(aba, "");
                    AbaBO.Instancia.excluirAba(aba);
                    form.tabControl1.Controls.RemoveAt(indiceSel);

                    CarregarDados(pLog, false, false);

                    form.barraStatus.Items[1].Text = "";

                    form.Cursor = Cursors.Default;
                }
            }
            else
            {
                Dialogo.mensagemErro("A primeira Aba não pode ser excluída!");
            }
        }
Ejemplo n.º 10
0
        void MenuIncluirExtensaoClick(object sender, EventArgs e)
        {
            StringList   log;
            DialogResult retval = odEscolhaArquivo.ShowDialog();

            if (retval == DialogResult.OK)
            {
                FileInfo arquivo = new FileInfo(odEscolhaArquivo.FileName);
                if (arquivo.Exists)
                {
                    log = new StringList();

                    if (ExtensaoBO.Instancia.SalvarExtensao(
                            catalogador.listaExtensoes, arquivo.Name,
                            arquivo.FullName, log))
                    {
                        CarregarExtensoesNaGrid();

                        Dialogo.mensagemInfo("Extensão salva com sucesso!");
                    }
                    else
                    {
                        Dialogo.mensagemInfo("Extensão já existe cadastrada!");
                    }
                }
            }
        }
Ejemplo n.º 11
0
        protected void OnIncluirExtensaoActionActivated(object sender, EventArgs e)
        {
            StringList log;

            if (EscolhaArquivo.abrirArquivo(EscolhaArquivo.FILTRO_IMAGEM))
            {
                FileInfo arquivo = new FileInfo(EscolhaArquivo.NomeArquivo);
                if (arquivo.Exists)
                {
                    log = new StringList();

                    if (ExtensaoBO.Instancia.SalvarExtensao(
                            catalogador.listaExtensoes, arquivo.Name,
                            arquivo.FullName, log))
                    {
                        CarregarExtensoesNaGrid();

                        Dialogo.mensagemInfo("Extensão salva com sucesso!");
                    }
                    else
                    {
                        Dialogo.mensagemInfo("Extensão já existe cadastrada!");
                    }
                }
            }
        }
Ejemplo n.º 12
0
    public IEnumerator PrepararDialogoCoroutine(Interactuable interactuableActual, Dialogo dialogo, int IDEvento)
    {
        if (TPController.instance.CurrentState != TPController.State.Normal)
        {
            dialogosEnCola++;

            while (TPController.instance.CurrentState != TPController.State.Normal)
            {
                yield return(null);
            }

            yield return(StartCoroutine(EmpezarDialogo(interactuableActual, dialogo)));

            dialogosEnCola--;
        }
        else if (dialogosEnCola != 0)
        {
            while (dialogosEnCola != 0)
            {
                yield return(null);
            }

            yield return(StartCoroutine(EmpezarDialogo(interactuableActual, dialogo)));
        }
        else
        {
            yield return(StartCoroutine(EmpezarDialogo(interactuableActual, dialogo)));
        }

        //El evento se guarda cuando acaba el dialogo
        if (IDEvento != -1)
        {
            ManagerRutina.instance.GuardaEvento(IDEvento);
        }
    }
Ejemplo n.º 13
0
    public void ComecaDialogo(Dialogo dialogo)
    {
        //Debug.Log("Iniciando Dialogo");
        emDialogo = true;
        Cronometro.current.Tempo   = Time.timeSinceLevelLoad / 2f;
        Cronometro.current.enabled = false;
        if (humano != null)
        {
            humano.enabled = false;
        }
        animator.SetBool("EstaAberto", true);
        imagemRosto.sprite = dialogo.rosto;
        nome.text          = dialogo.nome;
        frases.Clear();
        if (dialogo.trocaDeAlvo)
        {
            ControleDaCamera.current.TrocaAlvo(dialogo.novoAlvo);
            ControleDaCamera.current.velocidadeDaCamera = dialogo.velocidadeCamera;
        }
        foreach (string frase in dialogo.frases)
        {
            frases.Enqueue(frase);
        }

        ProximaFrase();
    }
Ejemplo n.º 14
0
        public void Pesquisar()
        {
            TreeView  arvoreLocal = getArvoreAtual();
            TreeStore arvoreStore = (TreeStore)arvoreLocal.Model;
            ListStore tabelaStore = (ListStore)form.TabelaPesquisa.Model;
            TreeIter  iter        = new TreeIter();

            if (arvoreStore.IterNChildren() > 0)
            {
                if (form.EdtPesquisa.Text.Length >= 2)
                {
                    form.SPPesquisa.Child2.Visible = true;
                    CarregarArquivosLista(false, form.TabelaPesquisa,
                                          form.EdtPesquisa.Text);
                    if (tabelaStore.GetIterFirst(out iter))
                    {
                        form.TabelaPesquisa.Selection.SelectIter(iter);
                    }
                }
                else
                {
                    form.SPPesquisa.Child2.Visible = false;
                    tabelaStore.Clear();
                    Dialogo.mensagemInfo("A pesquisa só é feita com pelo menos 2 caracteres!");
                }
            }
        }
Ejemplo n.º 15
0
        public void ExcluirAbaAtiva(IProgressoLog pLog)
        {
            Aba aba;
            int indiceSel = form.tabControl1.Page;

            if (indiceSel > 0)
            {
                bool res = Dialogo.confirma("Tem Certeza, que você deseja excluir esta aba, \n" +
                                            "isto implicará na destruição de todos os seus itens catalogados?");
                if (res)
                {
                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch);

                    aba = getAbaAtual();
                    ExcluirDados(aba, "");
                    AbaBO.Instancia.excluirAba(aba);
                    form.tabControl1.RemovePage(indiceSel);

                    CarregarDados(pLog, false, false);

                    form.LabStatus2.Text = "";

                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Arrow);
                }
            }
            else
            {
                Dialogo.mensagemErro("A primeira Aba não pode ser excluída!");
            }
        }
        public IHttpActionResult GetDialogos(int idUsuario, int idCliente)
        {
            if (idCliente == 0 || idUsuario == 0)
            {
                return(BadRequest());
            }

            try
            {
                Dialogo dialogo = db.Dialogos.Where(d => d.Cliente.ID == idCliente && !d.Resuelta)
                                  .FirstOrDefault();

                Usuario a_asignar = db.Usuarios.Find(idUsuario);

                if (a_asignar != null && dialogo != null)
                {
                    //dialogo.Mensajes.ForEach(m => m.Usuario = a_asignar);

                    dialogo.Usuario = a_asignar;
                    db.SaveChanges();
                    return(Ok(dialogo));
                }

                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Ejemplo n.º 17
0
        public void ImportarArquivo(StringList log, IProgressoLog pLog)
        {
            int nResultado;

            if (EscolhaArquivo.abrirArquivo(EscolhaArquivo.FILTRO_XML))
            {
                FileInfo arquivo = new FileInfo(EscolhaArquivo.NomeArquivo);
                if (arquivo.Exists)
                {
                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch);
                    nResultado            = DiretorioBO.Instancia.importarDiretorioViaXML(
                        getAbaAtual(), arquivo.FullName, listaDiretorioPai, pLog);
                    if (nResultado == -1)
                    {
                        Dialogo.mensagemErro("Importação não realizada!");
                    }
                    else if (nResultado == -2)
                    {
                        Dialogo.mensagemErro("Este diretório já existe no catálogo!");
                    }
                    else
                    {
                        FinalizaImportacao(pLog);
                    }
                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Arrow);
                }
            }
        }
Ejemplo n.º 18
0
 public void MostrarAviso(Dialogo dialogo)
 {
     dialogoAtual   = dialogo;
     index          = 0;
     mostrandoAviso = true;
     Avancar();
 }
Ejemplo n.º 19
0
    void ActivarConversacionNPC()
    {
        conversacion.SetActive(true);
        this.misionActual = AdministradorDeMisiones.instance.GetMisionParaMi(this.nombreNpc);

        this.dialogoActual = GetDialogoCorrespondienteAMisionActual();
    }
    public void MostrarDialogo(string _nombre)
    {
        Limpiar();
        if (!RecuerdaElecciones)
        {
            lineasElegidas.Clear();
        }

        dialogoActual = dialogos.ObtenerDialogo(_nombre);
        if (dialogoActual != null)
        {
            personajeActual = _nombre;
            ArmoOpciones(dialogoActual.Introduccion, dialogoActual.LineasIniciales);

            Mostrar();

            foreach (var linea in dialogoActual.LineasIniciales)
            {
                if (linea.AudioIntro != "")
                {
                    PlayAudio(linea.AudioIntro, 0);
                }
            }
        }

        if (!dialogoEscuchado.ContainsKey(_nombre))
        {
            dialogoEscuchado.Add(_nombre, 0);
        }
        dialogoEscuchado[_nombre] = dialogoEscuchado[_nombre] + 1;
        lineaActual = null;
    }
        public ActionResult UsuarioHandler(int idUsuario, int idCliente)
        {
            if (Session["admin"] == null)
            {
                return(RedirectToAction("Create", "Login"));
            }


            Dialogo dialogo = null;

            _ = new HttpClient();
            Uri        uri     = new Uri(_url + "/api/dialogos/cambiar-usuario?idUsuario=" + idUsuario + "&idCliente=" + idCliente);
            HttpClient cliente = new HttpClient();
            var        param   = new { idUsuario, idCliente };
            Task <HttpResponseMessage> tarea = cliente.PostAsJsonAsync(uri, param);

            tarea.Wait();

            if (tarea.Result.IsSuccessStatusCode)
            {
                Task <string> tarea2 = tarea.Result.Content.ReadAsStringAsync();
                tarea2.Wait();

                string json = tarea2.Result;
                dialogo = JsonConvert.DeserializeObject <Dialogo>(json);
            }
            else
            {
                ViewBag.Error = tarea.Result.StatusCode;
            }
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 22
0
    public void ComecarDialogo(Dialogo _dialogo, NpcDialogo _npcDialogoQA)
    {
        if (npcDialogo == null && _dialogo != null)
        {
            GameManager.UISendoUsada();

            dialogo = _dialogo;

            for (int i = 0; i < dialogo.nodulos.Length; i++)
            {
                for (int j = 0; j < dialogo.nodulos[i].respostas.Count; j++)
                {
                    if (!ManagerQuest.VerifyQuestIsAvailable(dialogo.nodulos[i].respostas[j].questIndex))
                    {
                        dialogo.nodulos[i].respostas.RemoveAt(j);
                        j--;
                    }
                }
            }

            npcDialogo = _npcDialogoQA;

            if (npcDialogo)
            {
                questsIndex.Add(npcDialogo.questIndex);
            }

            InicializarDialogo();
        }
    }
Ejemplo n.º 23
0
    // Use this for initialization
    void Start()
    {
        dialogo        = FindObjectOfType(typeof(Dialogo)) as Dialogo;
        gameController = FindObjectOfType(typeof(GameController)) as GameController;
        tutorialGeral  = FindObjectOfType(typeof(TutorialGeral)) as TutorialGeral;

        txt_Time.SetText(tempo.ToString());
        StartCoroutine("tempoModoExploracao");
    }
		void FrmImportarDiretorioShown(object sender, EventArgs e)
		{
			string sLog;

			foreach (Importar importar in this.listaImportar) {
				catalogador.diretorioOrdem.Ordem = 1;

				if (!bSubDiretorio) {
					Cursor = Cursors.WaitCursor;

					try {
						ImportarBO.Instancia.ImportacaoCompleta(importar,
							catalogador.diretorioOrdem, catalogador.listaExtensoes,
							frmImportarDiretorioProgresso);
					} catch (Exception ex) {
						Dialogo.mensagemErro(ex.Message);
					}					

					Cursor = Cursors.Default;
				} else {
					if (!DiretorioBO.Instancia.verificaCodDir(importar.Aba,
							importar.RotuloRaiz, catalogador.listaDiretorioPai)) {
						Cursor = Cursors.WaitCursor;

						try {
							ImportarBO.Instancia.ImportacaoCompleta(importar,
									catalogador.diretorioOrdem, catalogador.listaExtensoes,
									frmImportarDiretorioProgresso);							
						} catch (Exception ex) {							
							Dialogo.mensagemErro(ex.Message);
						}
						
						Cursor = Cursors.Default;
					} else {
						Dialogo.mensagemInfo("O diretório já existe no catálogo!");
					}
				}
			}

			if (frmPrincipal.menuGravarLogImportacao.Selected) {
				if (memoImportaDir.Lines.Length > 0) {
					sLog = Rotinas.ExtractFilePath(Application.ExecutablePath)+
						Path.DirectorySeparatorChar +
						Rotinas.formataDate(Rotinas.FORMATO_DHARQUIVO, DateTime.Now) +
						"_Importacao.log";
					
		            StringList log = new StringList();
	            	log.AddRange(memoImportaDir.Lines);
		            log.SaveToFile(sLog);
				}
			} 
			
			this.Close();
			
		}
    public void IniciarDialogo(Dialogo dialogo)
    {
        texto.text = dialogo.titulo;
        informacion.Clear();
        foreach (string info in dialogo.oraciones)
        {
            informacion.Enqueue(info);
        }

        MostrarSiguienteInfo();
    }
Ejemplo n.º 26
0
    //Ejecuta el diálogo con los parámetros indicados
    public override void EjecutarEvento()
    {
        if (!ejecutado)
        {
            Interactuable interactuable = null;

            Dialogo dialogo = Dialogo.BuscarDialogo(IDInteractuable, IDDialogo);
            ManagerDialogo.instance.PrepararDialogo(interactuable, dialogo, ID);
            ejecutado = true;
        }
    }
Ejemplo n.º 27
0
    public Dialogo[] DialogosProfessorPosAula()
    {
        var quantidade = professor.falasGeneralistas.Length;
        var dialogos   = new Dialogo[quantidade];

        for (int i = 0; i < quantidade; i++)
        {
            dialogos[i] = professor.falasGeneralistas[i].dialogos[0];
        }
        return(dialogos);
    }
Ejemplo n.º 28
0
 //Busca el fichero del diálogo en el directorio correspondiente
 public void CargaDialogo()
 {
     //Si existe un fichero guardado, cargamos ese fichero, sino cargamos el fichero por defecto
     if (System.IO.File.Exists(Manager.rutaInterDialogosGuardados + IDInteractuable.ToString() + "-" + IDDialogo.ToString() + ".xml"))
     {
         dialogo = Dialogo.LoadDialogo(Manager.rutaInterDialogosGuardados + IDInteractuable.ToString() + "-" + IDDialogo.ToString() + ".xml");
     }
     else
     {
         dialogo = Dialogo.LoadDialogo(Manager.rutaInterDialogos + IDInteractuable.ToString() + "-" + IDDialogo.ToString() + ".xml");
     }
 }
Ejemplo n.º 29
0
	//Busca el fichero del diálogo en el directorio correspondiente
	public void CargaDialogo()
	{
		//Si existe un fichero guardado, cargamos ese fichero, sino cargamos el fichero por defecto
		if (System.IO.File.Exists(Manager.rutaInterDialogosGuardados + IDInteractuable.ToString() + "-" + IDDialogo.ToString() + ".xml"))
		{
			dialogo = Dialogo.LoadDialogo(Manager.rutaInterDialogosGuardados + IDInteractuable.ToString() + "-" + IDDialogo.ToString() + ".xml");
		}
		else
		{
			dialogo = Dialogo.LoadDialogo(Manager.rutaInterDialogos + IDInteractuable.ToString() + "-" + IDDialogo.ToString() + ".xml");
		}
	}
Ejemplo n.º 30
0
    public void EmpezarDialogo(Dialogo dialogo)
    {
        cajaDialogo.SetActive(true);

        frases.Clear();

        foreach (string frase in dialogo.frases)
        {
            frases.Enqueue(frase);
        }

        DesplegarProximaFrase();
    }
    public void StartDialogo(Dialogo dialogo)
    {
        Debug.Log("Empezar conversación con " + dialogo.nombre);

        nombreTexto.text = dialogo.nombre;

        frases.Clear();
        foreach (string frase in dialogo.frases)
        {
            frases.Enqueue(frase);
        }
        DisplayNextFrase();
    }
Ejemplo n.º 32
0
	public IEnumerator EmpezarDialogo(Interactuable interactuableActual, Dialogo dialogo)
	{
		this.dialogo  = dialogo;
		this.interactuable = interactuableActual;

		TPController.instance.SetState(TPController.State.Dialogo);
		TPCamera.instance.ToDialogMode();
		ManagerTiempo.instance.SetPausa(true);
		Manager.instance.StopNavMeshAgents();

		dialogWindow.SetActive(true);
		Cursor.visible = true; //Muestra el cursor del ratón

		//Iniciamos el dialogo en una couroutine para saber cuando ha acabado
		yield return StartCoroutine(Conversacion());
	}
Ejemplo n.º 33
0
	public DatosAccionDialogo()
	{
		dialogo = new Dialogo();
	}
Ejemplo n.º 34
0
	public void PrepararDialogo(Interactuable interactuableActual, Dialogo dialogo, int IDEvento)
	{
		StartCoroutine(PrepararDialogoCoroutine(interactuableActual, dialogo, IDEvento));
	}
Ejemplo n.º 35
0
	public IEnumerator PrepararDialogoCoroutine(Interactuable interactuableActual, Dialogo dialogo, int IDEvento)
	{
		if(TPController.instance.CurrentState != TPController.State.Normal)
		{
			dialogosEnCola++;

			while(TPController.instance.CurrentState != TPController.State.Normal)
			{
				yield return null;
			}

			yield return StartCoroutine(EmpezarDialogo(interactuableActual, dialogo));

			dialogosEnCola--;
		}
		else if(dialogosEnCola != 0)
		{
			while(dialogosEnCola != 0)
			{
				yield return null;
			}

			yield return StartCoroutine(EmpezarDialogo(interactuableActual, dialogo));
		}
		else
			yield return StartCoroutine(EmpezarDialogo(interactuableActual, dialogo));

		if(IDEvento != -1)
			ManagerRutina.instance.GuardaEvento(IDEvento);
	}
Ejemplo n.º 36
0
	private IEnumerator Conversacion()
	{
		//Inicializamos variables locales
		int numDialog = 0;
		int numtema = -1; //solo usado con mensajes, -1 si no hay tema, x si hay tema
		int nodeID = 0;
		bool conversacionActiva = true;
		Dialogue dialogue = new Dialogue();

		SetState(State.Intro_Texto);//Estado inicial de la conversación

		//Si el diálogo tiene intros activas, asignamos un estado, sino otro
		if(dialogo.DevuelveNumeroIntrosActivas(ref numDialog) != 0)
		{
			dialogue = dialogo.DevuelveDialogoIntro(numDialog);
		}
		else if ((dialogo.DevuelveNumeroMensajesActivos() + dialogo.DevuelveNumeroTemaMensajesActivos()) != 0)
		{
			SetState(State.Mensajes_Menu);
		}
		//El dialogo está vacío, no contiene ningún elemento activo
		//Mostramos un mensaje por defecto
		else
		{
			dialogo  = Dialogo.LoadDialogo(Manager.rutaDialogoVacio);
			dialogue = dialogo.intros[0].DevuelveDialogo();
		}

		//Bucle que controla la conversación
		while(conversacionActiva)
		{
			switch(state)
			{
			case State.Intro_Texto: //Cuando la intro muestra el texto
				DialogueNode dialogueNode = dialogue.DevuelveNodo(nodeID);
				selectedOption = nodeID;
				DisplayNodeText (dialogueNode); //Muestra el texto del nodo

				while (selectedOption == nodeID) {
					yield return null;
				}

				switch(selectedOption)
				{
				case -3: //La conversación acaba
					RecorreDialogo(ref numDialog, numtema, dialogueNode); //Dejar si el dialogo se deja como ahora
					EliminarDialogo(ref numDialog, numtema);
					conversacionActiva = false;
					break;
				case -2: //Se muestran las respuestas
					RecorreDialogo(ref numDialog, numtema, dialogueNode); //Dejar si el dialogo se deja como ahora
					EliminarDialogo(ref numDialog, numtema);
					SetState(State.Mensajes_Menu);
					break;
				case -1: //Acaba el dialogo actual
					RecorreDialogo(ref numDialog, numtema, dialogueNode);
					EliminarDialogo(ref numDialog, numtema);
					//Si hay más dialogos, vamos al siguiente dialogo
					if (dialogo.AvanzaIntro(ref numDialog))
					{
						dialogue = dialogo.DevuelveDialogoIntro(numDialog);
						nodeID = 0;
					}
					//Sino, se muestran las respuestas
					else
					{
						SetState(State.Mensajes_Menu);
					}
					break;
				default: //Si el nodo tiene opciones de dialogo, se muestran, sino, se pasa al siguiente texto
					RecorreDialogo(ref numDialog, numtema, dialogueNode);

					if(dialogueNode.DevuelveNumeroOpciones() > 0)
					{
						SetState(State.Intro_Opciones);
					}
					//Comprobamos si se puede avanzar en el dialogo
					else if(dialogue.AvanzaDialogue(nodeID))
					{
						//es lo mismo que node_id++;
						nodeID = selectedOption;
					}
					//Si hemos llegado al final del dialogo, acabamos el dialogo actual
					else
					{
						EliminarDialogo(ref numDialog, numtema);
						//Si hay más dialogos, vamos al siguiente dialogo
						if (dialogo.AvanzaIntro(ref numDialog))
						{
							dialogue = dialogo.DevuelveDialogoIntro(numDialog);
							nodeID = 0;
						}
						//Sino, se muestran las respuestas
						else
						{
							SetState(State.Mensajes_Menu);
						}
					}
					break;
				}

				//Si la lista de objetos recientes tiene algún objeto, mostramos un popup de los objetos obtenidos
				if(Manager.instance.DevuelveNumeroObjetosRecientes() != 0)
					yield return StartCoroutine(InterfazPopUpObjetos());

				break;
			case State.Intro_Opciones: //Cuando la intro muestra las opciones
				DisplayNodeOptions(dialogue.DevuelveNodo(nodeID));
				selectedOption = nodeID;

				while(selectedOption == nodeID)
				{
					yield return null;
				}

				switch(selectedOption)
				{
				case -3: //La conversación acaba
					EliminarDialogo(ref numDialog, numtema);
					conversacionActiva = false;
					break;
				case -2: //Se muestran las respuestas
					EliminarDialogo(ref numDialog, numtema);
					SetState(State.Mensajes_Menu);
					break;
				case -1: //Acaba el dialogo actual
					EliminarDialogo(ref numDialog, numtema);
					//Si hay más dialogos, vamos al siguiente dialogo
					if (dialogo.AvanzaIntro(ref numDialog))
					{
						dialogue = dialogo.DevuelveDialogoIntro(numDialog);
						nodeID = 0;
						SetState(State.Intro_Texto);
					}
					//Sino, se muestran las respuestas
					else
					{
						SetState(State.Mensajes_Menu);
					}
					break;
				default: //Se sigue con la conversación, donde el nodo indique
					nodeID = selectedOption;
					SetState(State.Intro_Texto);
					break;
				}
				break;
			case State.Mensajes_Menu:  //Cuando se muestran el menu de mensajes
				if ((dialogo.DevuelveNumeroMensajesActivos() + dialogo.DevuelveNumeroTemaMensajesActivos()) != 0)
				{
					DisplayMensajes();
					selectedOption = -4;
					while (selectedOption == -4) {
						yield return null;
					}

					switch(selectedOption)
					{
					//Salimos del dialogo
					case -3:
					case -2:
					case -1:
						conversacionActiva = false;
						break;
					//Cargamos el dialogo escogido
					default:
						//Se ha seleccionado un mensajeTema
						//La selected_option está en el intérvalo [0-numTemaMensajes]
						if (selectedOption < dialogo.DevuelveNumeroTemaMensajes())
						{
							nodeID = selectedOption;
							numtema = selectedOption;
							SetState(State.Mensajes_Tema);
						}
						//Se ha seleccionado un mensaje sin tema
						//La selected_option está en el intérvalo [numTemaMensajes+1-numTemaMensajes+numMensajes(sueltos)]
						else
						{
							numDialog = selectedOption - dialogo.DevuelveNumeroTemaMensajes();

							numtema = -1;
							Mensaje mensaje = dialogo.DevuelveMensaje(numtema, numDialog);

							if(mensaje.GetType() == typeof(MensajeDialogo))
							{
								MensajeDialogo mensajeDialogo = mensaje as MensajeDialogo;
								dialogue = mensajeDialogo.DevuelveDialogo();
								nodeID = 0;

								SetState(State.Mensajes_Texto);
							}
							else if(mensaje.GetType() == typeof(MensajeTienda))
							{
								MensajeTienda mensajeTienda = mensaje as MensajeTienda;
								mensajeTienda.MostrarTienda();
							}
						}
						break;
					}
				}
				else
				{
					conversacionActiva = false;
				}
				break;
			case State.Mensajes_Tema:  //Cuando se muestran los mensajes de un tema
				DisplayTemaMensajes(dialogo.DevuelveTemaMensaje(nodeID));

				selectedOption = -4;
				while (selectedOption == -4) {
					yield return null;
				}

				switch(selectedOption)
				{
				//Salimos del dialogo
				case -3:
				case -1:
					conversacionActiva = false;
					break;
				//Vamos al menú mensajes
				case -2:
					SetState(State.Mensajes_Menu);
					break;
				//Cargamos el mensaje escogido
				default:
					numDialog = selectedOption;

					Mensaje mensaje = dialogo.DevuelveMensaje(numtema, numDialog);

					if(mensaje.GetType() == typeof(MensajeDialogo))
					{
						MensajeDialogo mensajeDialogo = mensaje as MensajeDialogo;
						dialogue = mensajeDialogo.DevuelveDialogo();
						nodeID = 0;

						SetState(State.Mensajes_Texto);
					}
					else if(mensaje.GetType() == typeof(MensajeTienda))
					{
						MensajeTienda mensajeTienda = mensaje as MensajeTienda;
						mensajeTienda.MostrarTienda();
					}
					break;
				}
				break;
			case State.Mensajes_Texto:  //Cuando se muestra el texto del mensaje
				DialogueNode diaNode = dialogue.DevuelveNodo(nodeID);
				selectedOption = nodeID;
				DisplayNodeText(diaNode);

				while(selectedOption == nodeID)
				{
					yield return null;
				}

				//Cambiar sistema de dialogo si sigue con botones
				//salir y cambiar_tema como ahora
				switch(selectedOption)
				{
				case -3: //La conversación acaba
					RecorreDialogo(ref numDialog, numtema, diaNode); //Dejar si el dialogo se deja como ahora
					EliminarDialogo(ref numDialog, numtema);
					conversacionActiva = false;
					break;
				case -2: //Se muestran los mensajes
					RecorreDialogo(ref numDialog, numtema, diaNode); //Dejar si el dialogo se deja como ahora
					EliminarDialogo(ref numDialog, numtema);
					SetState(State.Mensajes_Menu);
					break;
				case -1: //Acaba el dialogo actual
					RecorreDialogo(ref numDialog, numtema, diaNode);
					EliminarDialogo(ref numDialog, numtema);
					SetState(State.Mensajes_Menu);
					break;
				default: //Si el nodo tiene opciones de dialogo, se muestran, sino, se pasa al siguiente texto
					RecorreDialogo(ref numDialog, numtema, diaNode);

					if(diaNode.DevuelveNumeroOpciones() > 0)
					{
						SetState(State.Mensajes_Opciones);
					}
					//Comprobamos si se puede avanzar en el dialogo
					else if(dialogue.AvanzaDialogue(nodeID))
					{
						//es lo mismo que node_id++;
						nodeID = selectedOption;
					}
					//Si hemos llegado al final del dialogo, acabamos el dialogo actual
					else
					{
						EliminarDialogo(ref numDialog, numtema);

						if(numtema != -1)
						{
							nodeID = numtema;
							SetState(State.Mensajes_Tema);
						}
						else
							SetState(State.Mensajes_Menu);
					}
					break;
				}

				//Si la lista de objetos recientes tiene algún objeto, mostramos un popup de los objetos obtenidos
				if(Manager.instance.DevuelveNumeroObjetosRecientes() != 0)
					yield return StartCoroutine(InterfazPopUpObjetos());

				break;
			case State.Mensajes_Opciones: //Cuando se muestran las opciones del mensaje
				DisplayNodeOptions(dialogue.DevuelveNodo(nodeID));
				selectedOption = -4;

				while(selectedOption == -4)
				{
					yield return null;
				}

				switch(selectedOption)
				{
				case -3: //La conversación acaba
					EliminarDialogo(ref numDialog, numtema);
					conversacionActiva = false;
					break;
				case -2: //Se muestran las respuestas
					EliminarDialogo(ref numDialog, numtema);

					if(numtema != -1)
					{
						nodeID = numtema;
						SetState(State.Mensajes_Tema);
					}
					else
						SetState(State.Mensajes_Menu);
					break;
				case -1: //Acaba el dialogo actual
					EliminarDialogo(ref numDialog, numtema);

					if(numtema != -1)
					{
						nodeID = numtema;
						SetState(State.Mensajes_Tema);
					}
					else
						SetState(State.Mensajes_Menu);
					break;
				default: //Si el nodo tiene opciones de dialogo, se muestran, sino, se pasa al siguiente texto
					nodeID = selectedOption;

					if(numtema != -1)
					{
						nodeID = numtema;
						SetState(State.Mensajes_Tema);
					}
					else
						SetState(State.Mensajes_Menu);
					break;
				}
				break;
			}
		}

		FinDialogo();
	}