コード例 #1
0
        /// <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);
        }
コード例 #2
0
    /// <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;
            }
        }
    }