private void OpenJoinMessageDialog()
        {
            MessageBoxResult result = MessageBox.Show("Do you want to Join Game now?",
            "Game Successfully Created", MessageBoxButton.OKCancel);

            if (result == MessageBoxResult.OK)
            {
                //Enter Lobby
                App.Current.SignalRHub.JoinGame(App.Current.AppUser, App.Current.CurrentGame);
                ChangeListener();

                NavigationService.Navigate(new Uri("/LobbyPage.xaml", UriKind.Relative));
            }
            if (result == MessageBoxResult.Cancel)
            {
                //Go back
                ChangeListener();
                ServerMessage sm = new ServerMessage(0, "update", "created a game"); 
                App.Current.SignalRHub.UserUpdate(App.Current.AppUser, sm);
                Debug.WriteLine("SettingsPage: Hit Cancel");
                NavigationService.Navigate(new Uri("/HubPage1.xaml", UriKind.Relative));

                
            }
            Debug.WriteLine("GameSettingsPage: Done with OpenJoinMessageDialog");

        }
Beispiel #2
0
        private async void EndGame(Game g)
        {
            string wm;
            ServerMessage sm = new ServerMessage(0, "update", "game ended");
            if (g.Winner.UserId == App.Current.AppUser.UserId)
            {
                wm = "Congrats, you WON!";
            }
            else
            {
                wm = "Sorry, you lost.";
            }

            MessageBoxResult result = MessageBox.Show(wm,
            "GAME OVER", MessageBoxButton.OK);

            if (result == MessageBoxResult.OK)
            {
                App.Current.SignalRHub.UserUpdate(App.Current.AppUser, sm);

                App.Current.SignalRHub.SignalRServerNotification -= new SignalRServerHandler(SignalRHub_SignalRServerNotification);
                NavigationService.Navigate(new Uri("/HubPage1.xaml", UriKind.Relative));

            }
        }
 /*       private void CreateGameButton_Clicked(object sender, RoutedEventArgs e)
        {
            //send call to create
            //wait till server resonds
            //flag do you wnat to join now?
            //if no update user on this page then transfer to HUB
            //if yes go to Lobby send lobby shit

            string s;

            if (_maxTime < 0 || _maxHits < 0 || App.Current.OppUserTest == null)
            {
                if (_maxHits < 0)
                {
                    s = "Error: You need to choose how many lives Sphero Player will have.";
                    GameError(s);
                }
                else
                {
                    if (opponent.UserName == null || App.Current.OppUserTest == null)
                    {
                        s = "Error: You need to select an opponent";
                        GameError(s);
                    }
                    else
                    {
                        if (_maxTime <0)
                        {
                            s = "Error: You need to choose how long the game will last.";
                            GameError(s);
                        }
                    }
                }
            }
            else
            {
                Game ugame = new Game();
                ugame.DateCreated = DateTime.Now;
                ugame.OpponentName = App.Current.OppUserTest.UserName;
                //your good
                ugame.MaxTime = _maxTime;
                ugame.MaxHits = _maxHits;
                ugame.GameStatus = 0;
                ugame.GameId = App.Current.AppUser.UserId + "game";

                App.Current.CurrentGame = ugame;
                //Frame.Navigate(typeof(HubPage));
            }

        }*/

        protected void SignalRHub_SignalRServerNotification(object sender, SignalREventArgs e)
        {
            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
            //Debug.WriteLine("SEND, - SIMPLE CHAT WORKS- "+e.ChatMessageFromServer);
            if (e.CustomServerMessage != null)
            {
                switch (e.CustomServerMessage.Command)
                {
                    //Login
                    case 0:
                        //Update Game List
                        if (e.CustomServerMessage.Action == "login")
                        {
                            if (e.UserUpdate.UserName != App.Current.AppUser.UserName)
                            {
                                e.CustomAvailableOpponents.Add(e.UserUpdate);
                            }
                            else
                            {
                                UpdateWithServerData(e);

                            }
                        }

                        break;
                    case 1:
                        if (e.CustomServerMessage.Action == "update")
                        {
                            if (e.UserUpdate.UserName == App.Current.AppUser.UserName)
                            {
                                App.Current.AppUser = e.UserUpdate;
                                App.Current.AllGames = e.CustomGameList;
                                App.Current.OppUsers = e.CustomAvailableOpponents;
                                if (!iscreatingagame)
                                {
                                    Debug.WriteLine("Game Settings: Update " + e.CustomServerMessage.Message);

                                    NavigationService.Navigate(new Uri("/HubPage1.xaml", UriKind.RelativeOrAbsolute));

                                }
                            }
                            

                        }
                        break;
                    case 2:
                        if (e.CustomServerMessage.Action == "created")
                        {
                            if (App.Current.AppUser.UserName == e.CustomGameObject.CreatorName)
                            {
                                Debug.WriteLine("SettingsPage created game listener called.");
                                //Add game to users game list
                                App.Current.AllGames.Add(e.CustomGameObject);
                                App.Current.CurrentGame = e.CustomGameObject;
                                Debug.WriteLine("Created A Game " + e.CustomServerMessage.Message);
                                //Frame.Navigate(typeof(LobbyPage));
                                //Update User information
                                //Ask if they want to join
                                ServerMessage sm = new ServerMessage(0, "update", "created a game");
                                App.Current.SignalRHub.UserUpdate(App.Current.AppUser, sm);
                                Debug.WriteLine("SettingsPage: Starting OpenJoinMessageDIalog");

                                //OpenJoinMessageDialog();
                                Debug.WriteLine("SettingsPage: COmpleted Dialog");
                            }

                        }
                        break;
                    default:
                        break;
                }
            }
          });
        }