Пример #1
0
 private void ServerGame_MoveFinished(object sender, MoveMadeEventArgs e)
 {
     if (Game.GameId == e.Game.GameId)
     {
         Game = e.Game;
         if (Game.Winner == Game.Black || Game.Winner == Game.White)
         {
             _gameOver = true;
             MessageBox.Show($"{Game.Winner} Won!!!");
             _serverGame.CloseGame(Game.GameId);
         }
         RaisePropertyChanged("Game");
         UpdateCommands();
     }
 }
            private void OnMoveMade(object o,
						 MoveMadeEventArgs args)
            {
                MoveDetails details = args.Details;

                if (details.relation != Relation.IamObserving
                    && details.relation !=
                    Relation.IamObservingGameBeingObserved
                    && details.relation !=
                    Relation.IamPlayingAndMyMove
                    && details.relation !=
                    Relation.IamPlayingAndMyOppsMove)
                    return;

                if (win != null)
                  {
                      win.Update (details);
                      return;
                  }
                win = new ICSGameObserverWidget (client);
                win.GamePageRemovedEvent += OnGamePageRemoved;
                win.GamePageAddedEvent += OnGamePageAdded;
                gamesPageLabel = new Label ();
                appwidget.Book.AppendPage (win,
                               gamesPageLabel);
                win.ShowAll ();
                win.Update (details);

                if (gameInfos.
                    ContainsKey (details.gameNumber))
                  {
                      GameInfo info =
                          (GameInfo)
                          gameInfos[details.
                                gameNumber];
                      gameInfos.Remove (details.
                                gameNumber);
                      win.Update (info);
                  }

                /*
                   win.Resize (App.Session.ICSGamesWinWidth,
                   App.Session.ICSGamesWinHeight);
                 */
                win.SplitPane.Position =
                    App.Session.
                    ICSGamesWinSplitPanePosition;

                appwidget.MakeVisible ();
            }