public void PersonajeDetectado() { Personaje.PuedeMoverse = false; StopAllCoroutines(); ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(this, Personaje.Posicion)); npc.MostrarDialogo(); }
public void EjecutarAccion() { Conversacion ultimaConversacion = null; for (int i = 0; i < secuenciaDeAcciones.Count; i++) { accionActual = secuenciaDeAcciones[i]; if (accionActual.npc != null && !accionActual.npc.gameObject.activeSelf) { accionActual.npc.gameObject.SetActive(true); } switch (accionActual.TipoDeAccion) { case AccionSequencia.NPC_MoverAPosicionEspecifica: ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(accionActual.npc.MoverNPC, accionActual.posicion.position)); break; case AccionSequencia.NPC_MoverASuPosicionInicial: ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(accionActual.npc.MoverNPC, accionActual.npc.PosicionInicial)); break; case AccionSequencia.NPC_MoverHastaElPersonaje: ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(accionActual.npc.MoverNPC, Personaje.Posicion)); break; case AccionSequencia.NPC_MostrarConversacion: NPC npc = accionActual.npc.GetComponent <NPC>(); if (npc != null && npc.TieneDialogoPendiente()) { ultimaConversacion = npc.AniadirDialogoASecuencia(ultimaConversacion); } break; case AccionSequencia.NPC_Ocultar: ControladorDatos.Instancia.AniadirCorrutinaACola(DesactivarNPC(accionActual.npc.gameObject)); break; case AccionSequencia.Personaje_MoverAPosicionEspecífica: ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.MoverHastaPosicion(Personaje.MoverPersonaje, accionActual.posicion.position)); break; case AccionSequencia.Personaje_TeletransportarAPosicionEspecifica: ControladorEventos.Instancia.LanzarEvento(new EventoTeletransportarse(accionActual.posicion.position, accionActual.direccion)); break; case AccionSequencia.Personaje_SeguirNPC: ControladorDatos.Instancia.AniadirCorrutinaACola(CorrutinasComunes.SeguirObjeto(Personaje.MoverPersonaje, accionActual.npc.MoverNPC), false, "Seguir"); break; case AccionSequencia.Personaje_DejarDeSeguirNPC: ControladorDatos.Instancia.AniadirCorrutinaACola(DetenerSeguimiento("Seguir"), false); break; case AccionSequencia.EjecutarMetodos: ControladorDatos.Instancia.AniadirCorrutinaACola(EjecutarEventoUnity(accionActual.eventoUnity)); break; case AccionSequencia.EsperarTiempo: ControladorDatos.Instancia.AniadirCorrutinaACola(DetenerTiempo(accionActual.tiempoDeEspera)); break; case AccionSequencia.ReproducirAnimacion: ControladorDatos.Instancia.AniadirCorrutinaACola(ReproducirAnimacion(accionActual.animator, accionActual.nombreAnimacionODialogo)); break; case AccionSequencia.CurarEquipoPokemon: ControladorDatos.Instancia.AniadirCorrutinaACola(CentroPokemon()); break; case AccionSequencia.MostrarDialogoEspecifico: ControladorDatos.Instancia.AniadirCorrutinaACola(UIControlador.Instancia.Dialogo.componentePrincipal.MostrarTextoCorrutina(accionActual.nombreAnimacionODialogo, true)); break; } } ControladorDatos.Instancia.AniadirCorrutinaACola(Fin(), false); }