/// <summary> /// Crea una Sala personalizada /// </summary> /// <param name="Id">String</param> /// <param name="EsSalaPublica">Boolean</param> /// <param name="Cuenta">CuentaModel</param> /// <param name="ActualCallback">IGameServiceCallback</param> /// <returns>EnumEstadoCrearSalaConId</returns> public EnumEstadoCrearSalaConId CrearSala(string Id, Boolean EsSalaPublica, CuentaModel Cuenta, IGameServiceCallback ActualCallback, String DireccionIpDelCliente) { EnumEstadoCrearSalaConId EstadoDeCreacionDeSala = EnumEstadoCrearSalaConId.NoSeEncuentraEnSesion; if (ManejadorDeSesiones.VerificarCuentaLogeada(Cuenta)) { Cuenta = ManejadorDeSesiones.ObtenerCuentaCompleta(Cuenta); if (!EstaElIdDeSalaEnUso(Id)) { Sala SalaAAgregar = new Sala(Id, EsSalaPublica, Cuenta, ActualCallback, DireccionIpDelCliente); SalasCreadas.Add(SalaAAgregar); SuscribirseAEventosDeSala(SalaAAgregar); SalaCreada?.Invoke(SalaAAgregar); EstadoDeCreacionDeSala = EnumEstadoCrearSalaConId.CreadaCorrectamente; } else { EstadoDeCreacionDeSala = EnumEstadoCrearSalaConId.IdYaExistente; } } return(EstadoDeCreacionDeSala); }
/// <summary> /// Le dice al cliente del juego que se desea crear una sala con la informacion de los campos /// </summary> public void CrearSala() { InicializarServicio(); if (VerificarIdValido()) { String IdDeLaSala = txtBoxIdSala.text; Boolean SeUniServicioChat = UnirseAlServicioDeChat(); Boolean esSalaPrivada = toggleEsSalaPrivada.isOn; EnumEstadoCrearSalaConId estadoCrearSala = UnirseAlServicioDeJuego(IdDeLaSala, esSalaPrivada); switch (estadoCrearSala) { case EnumEstadoCrearSalaConId.CreadaCorrectamente: if (!SeUniServicioChat) { Debug.LogWarning("Chat no disponible"); PanelException.SetActive(true); PanelException.GetComponentInChildren <Text>().text = "El servicio de chat esta temporalmente inactivo."; } ClienteDelJuego.SolcitarDetallesSala(); SceneManager.LoadScene("Lobby"); break; case EnumEstadoCrearSalaConId.IdYaExistente: Debug.LogWarning("ID Lobby existente"); PanelException.SetActive(true); PanelException.GetComponentInChildren <Text>().text = "El Id ingresado y se encuentra en uso.."; break; case EnumEstadoCrearSalaConId.NoSeEncuentraEnSesion: Debug.LogWarning("Cuenta no en sesión"); PanelException.SetActive(true); PanelException.GetComponentInChildren <Text>().text = "La cuenta no se encuentra en sesion, no se puede crear el lobby."; break; } } }