示例#1
0
 public void PushMoveToGame(Models.Move move, int gameID)
 {
     //while (mutexLocks[gameID]) ;
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame wantedFrame = findGameFrame(gameID);
         if (move is Models.BetMove)
         {
             wantedFrame.GameWindow.PushBetMove((Models.BetMove)move);
         }
         else if (move is Models.FoldMove)
         {
             wantedFrame.GameWindow.PushFoldMove((Models.FoldMove)move);
         }
         else if (move is Models.GameStartMove)
         {
             wantedFrame.GameWindow.PushGameStartMove((Models.GameStartMove)move);
         }
         else if (move is Models.NewCardMove)
         {
             wantedFrame.GameWindow.NewCardMove((Models.NewCardMove)move);
         }
         else if (move is Models.EndGameMove)
         {
             wantedFrame.GameWindow.PushEndGameMove((Models.EndGameMove)move);
         }
     });
 }
示例#2
0
 public void RemoveGameFrame(GameFrame gf)
 {
     if (gameList.Contains(gf))
     {
         gameList.Remove(gf);
         status.AddGameToList(gf.gameID);
     }
 }
示例#3
0
 public void PushWinners(List <string> winners, int gameID)
 {
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame gameFrame = findGameFrame(gameID);
         gameFrame.GameWindow.PushWinners(winners);
     });
 }
示例#4
0
 public void PushHand(Models.PlayerHand hand, int gameID)
 {
     // while (mutexLocks[gameID]) ;
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame wantedFrame = findGameFrame(gameID);
         wantedFrame.GameWindow.DealCards(hand);
     });
 }
示例#5
0
 public void PushChatMessage(int gameId, string sender, string message)
 {
     //while (mutexLocks[gameId]) ;
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame gameFrame = findGameFrame(gameId);
         gameFrame.GameChat.PushMessage(sender, message);
     });
 }
示例#6
0
 public void NotifyTurn(int minimumBet, int gameID)
 {
     // while (mutexLocks[gameID]) ;
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame wantedFrame = findGameFrame(gameID);
         wantedFrame.GameWindow.MyTurn(minimumBet);
     });
 }
示例#7
0
 public void PushPMMessage(int gameId, string sender, string message)
 {
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         ClientGame game = findGame(gameId);
         game.AddMessage(sender, message);
         GameFrame gameFrame = findGameFrame(gameId);
         gameFrame.GamePM.PushMessage(sender);
     });
 }
示例#8
0
        internal async void GetReplay(int gameID)
        {
            List <Move> moves = await Communication.GameCenterFunctions.Instance.getReplayByGameId(gameID);

            GameFrame gf = new GameFrame(this, gameID, moves);

            AddGameFrame(gf);
            gf.InitReplay();
            NavigateToGameFrame(gf);
        }
示例#9
0
 public void PlayerQuitGame(string player, int gameId)
 {
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame gameFrame = findGameFrame(gameId);
         ClientGame cg       = findGame(gameId);
         gameFrame.RemovePlayer(player);
         cg.RemovePlayer(player);
     });
 }
示例#10
0
 public void PlayerJoinedGame(int gameID, Models.ClientUserProfile prof)
 {
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame gameFrame = findGameFrame(gameID);
         if (gameFrame != null)
         {
             gameFrame.getGame().AddPlayerToWaitingList(prof);
         }
     });
 }
示例#11
0
        private GameFrame findGameFrame(int gameID)
        {
            GameFrame gameFrame = null;

            //while (gameList.Count == 0) ;
            foreach (GameFrame g in gameList)
            {
                if (g.getGameID() == gameID)
                {
                    gameFrame = g;
                }
            }
            return(gameFrame);
        }
示例#12
0
 public void RemovePlayer(int gameID, string username)
 {
     Dispatcher.CurrentDispatcher.InvokeAsync(() =>
     {
         GameFrame gameFrame = findGameFrame(gameID);
         gameFrame.RemovePlayer(username);
         ClientGame game = findGame(gameID);
         foreach (ClientUserProfile prof in game.players)
         {
             if (prof.username.Equals(username))
             {
                 game.players.Remove(prof);
             }
         }
     });
 }
示例#13
0
        public void NavigateToGameFrame(int selectedIndex)
        {
            GameFrame wantedFrame = null;

            foreach (GameFrame frame in gameList)
            {
                if (frame.gameID == selectedIndex)
                {
                    wantedFrame = frame;
                    break;
                }
            }
            if (wantedFrame != null)
            {
                NavigateToGameFrame(wantedFrame);
            }
        }
示例#14
0
        internal async void JoinGame(int gameID, int credit)
        {
            Models.ClientGame game = await Communication.GameCenterFunctions.Instance.joinGame(gameID, credit);

            if (game != null)
            {
                game.InitMessageList(profile.username);
                AddGame(game);
                await RefreshProfile();

                GameFrame gameFrame = new GameFrame(this, game);
                AddGameFrame(gameFrame);
                gameFrame.Init(false);
                NavigateToGameFrame(gameFrame);
            }
            else
            {
                MessageBox.Show("something went wrong:(");
            }
        }
示例#15
0
 public GameReplayCont(GameFrame gf)
 {
     InitializeComponent();
     this.gameFrame = gf;
 }
示例#16
0
 private void NavigateToGameFrame(GameFrame gameFrame)
 {
     mainWindow.mainFrame.NavigationService.Navigate(gameFrame);
 }
示例#17
0
 public void AddGameFrame(GameFrame gameFrame)
 {
     gameList.Add(gameFrame);
     status.AddGameToList(gameFrame.gameID);
 }