public JoinGamePage(Player player)
        {
            InitializeComponent();
            NavigationPage.SetHasNavigationBar(this, false);
            socket = new ServerConnection().Socket();

            _player = player;
            ChargeAllRooms();

            socket.On("joinRoomEcho", data_result =>
            {
                if (!data_result.ToString().StartsWith("Error: "))
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        socket.Off("joinRoomEcho");
                        socket.Off("newRoomEcho");
                        Room room = JsonConvert.DeserializeObject <Room>(data_result.ToString());
                        CreateGamePage createGamePage = new CreateGamePage(room, _player);
                        Application.Current.MainPage.Navigation.PushAsync(createGamePage);
                    });
                }
                else
                {
                    Chargement(false);
                    lbl_info.Text = (string)data_result;
                }
            });
        }
Exemple #2
0
        private void CreateGame()
        {
            int num_player = Int32.Parse(RoomNbrPlayer.SelectedItem.ToString());

            _room = new Room
            {
                Name     = GameName.Text,
                Password = RoomPassword.Text,
                Players  = new Player[num_player]
            };
            _room.Players[0] = _player;

            JObject jout = JObject.Parse(JsonConvert.SerializeObject(_room));

            socket.Emit("createRoom", jout);

            socket.On("createRoomEcho", data_result =>
            {
                if ((bool)data_result)
                {
                    socket.Off("createRoomEcho");
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        CreateGamePage createGamePage = new CreateGamePage(_room, _player);
                        Application.Current.MainPage.Navigation.PopToRootAsync();
                        Application.Current.MainPage.Navigation.PushAsync(createGamePage);
                    });
                }
                else
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        lbl_info.Text           = "une room porte déja ce nom";
                        GameName.IsEnabled      = true;
                        RoomPassword.IsEnabled  = true;
                        RoomNbrPlayer.IsEnabled = true;
                        btnCreateGame.IsEnabled = true;
                    });
                }
            });
        }