void Update() { float timer = 0.0f; while (eventQueue.Count > 0) { if (maxQueueProcessingTime > 0.0f) { if (timer > maxQueueProcessingTime) { return; } } EventoBase eventMessage = eventQueue.Dequeue(); if (!LanzarEvento(eventMessage)) { Debug.Log("EVENTCONTROLLER --> " + eventMessage.nombreEvento); } if (maxQueueProcessingTime > 0.0f) { timer += Time.deltaTime; } } }
private void AbrirMenuPrincipal(EventoBase e) { if (Personaje.PuedeMoverse) { ControladorEventos.Instancia.LanzarEvento(new EventoAbrirMenuPrincipal()); } }
private void NPCDetectaJugador(EventoBase mensaje) { EventoPersonajeMirarDireccion e = (EventoPersonajeMirarDireccion)mensaje; siguienteDireccion = Herramientas.ObtenerDireccion(contenedorTransform.position, e.PosicionObjetivo); AsignarAnimacion(); DetenerAnimacion(); }
public bool QueueMessage(EventoBase eventMessage) { if (!eventListenerList.ContainsKey(eventMessage.nombreEvento)) { return(false); } eventQueue.Enqueue(eventMessage); return(true); }
private void IniciarCombateContraEntrenador(EventoBase mensaje) { if (DatosCombate == null) { entrenador = (EventoIniciarCombateContraEntrenador)mensaje; DatosCombate = new DatosCombate(); botonEscapar.interactable = false; ControladorDatos.Instancia.AniadirCorrutinaACola(CombateCorrutina(TipoDeCombate.Entrenador)); } }
private void ComprobarFases(EventoBase mensaje) { for (int i = 0; i < fase.Count; i++) { if (fase[i].CumpleLasCondiciones()) { fase[i].ActivarFase(); } } }
private void IniciarCombateContraPokemonSalvaje(EventoBase mensaje) { if (DatosCombate == null) { DatosCombate = new DatosCombate(); botonEscapar.interactable = true; pokemonSalvaje = (EventoIniciarCombatePokemonSalvaje)mensaje; ControladorDatos.Instancia.AniadirCorrutinaACola(CombateCorrutina(TipoDeCombate.PokemonSalvaje)); } }
private void Transportar(EventoBase mensaje) { EventoTeletransportarse e = (EventoTeletransportarse)mensaje; if (!estaTeletransportandose) { ControladorDatos.Instancia.ReproducirSonido(SonidoID.SonidoEntrarPuerta); ControladorDatos.Instancia.AniadirCorrutinaACola(MostrarPantallaDeCarga(e)); } }
private void MostrarConversacion(EventoBase e) { EventoMostrarMensajeConversacion evento = ((EventoMostrarMensajeConversacion)e); if (!string.IsNullOrEmpty(evento.Conversacion.texto)) { ControladorDatos.Instancia.ReproducirSonido(SonidoID.SonidoHablarNPC); ControladorDatos.Instancia.AniadirCorrutinaACola(MostrarMensajeConversacion(evento)); } }
private void NuevoEventoDeZona(EventoBase mensaje) { EventoNuevoLogroConseguido e = (EventoNuevoLogroConseguido)mensaje; for (int i = 0; i < eventoDeZona.Count; i++) { if (eventoDeZona[i] != null && eventoDeZona[i].logroDisparadorDelAcontecimiento == e.Logro) { eventoDeZona[i].EjecutarAccion(); break; } } }
private void MostrarVentanaConfirmacion(EventoBase mensaje) { EventoMostrarVentanaConfirmacion e = (EventoMostrarVentanaConfirmacion)mensaje; if (e.EncolarCorrutina) { ControladorDatos.Instancia.AniadirCorrutinaACola(MostrarVentanaConfirmacion(e)); } else { StartCoroutine(MostrarVentanaConfirmacion(e)); } }
private void TeletranportarCentroPokemon(EventoBase mensaje) { if (ultimaZonaVisitada == 0) { ultimaZonaVisitada = gameObject.GetInstanceID(); } if (ultimaZonaVisitada == gameObject.GetInstanceID()) { Vector2 direccion = Herramientas.ObtenerDireccion(centroPokemon.transform.position, centroPokemon.npc.transform.position); Personaje.TeletransportarPersonaje.CambiarPosicion(centroPokemon.transform.position, direccion); centroPokemon.npc.MostrarDialogo(); ControladorDatos.Instancia.Datos.CentroPokemon(); } }
private void AniadirNPC(EventoBase mensaje) { EventoAniadirNPCAlControlador e = (EventoAniadirNPCAlControlador)mensaje; bool yaExisteElNPC = false; for (int i = 0; i < npcs.Count; i++) { if (npcs[i].gameObject.GetInstanceID() == e.NPC.gameObject.GetInstanceID()) { yaExisteElNPC = true; break; } } if (!yaExisteElNPC) { npcs.Add(e.NPC); } }
public bool LanzarEvento(EventoBase eventMessage) { string eventMessageName = eventMessage.nombreEvento; if (!eventListenerList.ContainsKey(eventMessageName)) { Debug.Log("EVENTCONTROLLER: Message \"" + eventMessageName + "\" has no listeners!"); return(false); // no listeners for messae so ignore it } List <FuncionDelegado> listenerList = eventListenerList[eventMessageName]; for (int i = 0; i < listenerList.Count; ++i) { listenerList[i](eventMessage); } return(true); }
private void ProximaAccionSeleccionada(EventoBase mensaje) { gameObject.SetActive(false); }
private void AbrirMenuPrincipal(EventoBase mensaje) { Personaje.UIAbierta = true; Personaje.PuedeMoverse = false; menuPrincipal.gameObject.SetActive(true); }
private void MostrarMensaje(EventoBase mensaje) { EventoMostrarMensaje evento = (EventoMostrarMensaje)mensaje; ControladorDatos.Instancia.AniadirCorrutinaACola(MostrarTextoCorrutina(evento.Mensaje, true)); }
private void Interactuar(EventoBase e) { personaje.Interactuar(); }
private void ProximaAccionSeleccionada(EventoBase mensaje) { proximaAccion = (EventoProximaAccionCombate)mensaje; }