/// <summary> /// Funcion que para el movimiento de los jugadores, el temporizador de turno y lanza el mensaje de fin de batalla /// </summary> public void MuerteJugador(JugadorPartida jugador) { PararControlJugadores(); Button salirPartida = GameObject.FindGameObjectWithTag("SalirPartida").GetComponent <Button> (); salirPartida.interactable = false; GameObject.FindGameObjectWithTag("BotonFinTurno").GetComponent <Button> ().interactable = false; Controlador.Instance.StopTheTimer(); new MuerteJugadorCommand(jugador).AñadirAlaCola(); IDFactory.RecoverCountMenu(); int exp = AñadirExperienciaJugador(jugador); if (jugador.GetType() == typeof(JugadorHumano)) { new GameOverCommand(jugador, exp).AñadirAlaCola(); BaseDatos.Instance.ActualizarNivelYExperienciaBaseDatos(); } else { JugadorPartida ganador = OtroJugador(jugador); Carta carta = ObtenerCartaPremio(); List <Item> items = ObtenerItemsPremio(); AñadirPremioJugador(ganador, carta, items); IDFactory.SaveCountMenu(); new PremioPartidaCommand(jugador, carta, items, exp).AñadirAlaCola(); BaseDatos.Instance.ActualizarJugadorBaseDatos(carta != null); } }
/// <summary> /// Resetea los valores y vuelve a la escena inventario mediante una escena de carga. /// </summary> public void ReloadScene() { // Command has some static members, so let`s make sure that there are no commands in the Queue Debug.Log("Scene reloaded"); // reset all card and creature IDs //TODO mirar si esto no afecta a las cartas e items del inventario IDFactory.ResetIDsBattle(); IDFactory.RecoverCountMenu(); IDHolder.ClearIDHoldersList(); Comandas.Instance.Clear(); Comandas.Instance.CompletarEjecucionComanda(); Controlador.Instance.Clear(); SceneManager.LoadSceneAsync("Loading"); }