Exemplo n.º 1
0
 void app_OnStartGameNow(GeniusTetrisPlayer obj)
 {
     ModalService.CloseModal();
     this.board.GameOver = Visibility.Collapsed;
     app.CurrentGame.Start();
     this.board.Focus();
 }
Exemplo n.º 2
0
 void app_OnGameOver(GeniusTetrisPlayer player, string arg2)
 {
     if (_PlayersBoard.ContainsKey(player.ID))
     {
         _PlayersBoard[player.ID].GameOver = Visibility.Visible;
     }
 }
Exemplo n.º 3
0
        void app_OnEndGameEnd(GeniusTetrisPlayer arg1, string arg2)
        {
            //Sorted player by their score
            CollectionViewSource sortedCollection         = new CollectionViewSource();
            ObservableCollection <ScorePlayer> allplayers = new ObservableCollection <ScorePlayer>(app.GameMembersList.Select(x => ScorePlayer.FromPlayer(x)));

            app.CurrentPlayer.Score = app.CurrentGame.Score;
            var Me = ScorePlayer.FromPlayer(app.CurrentPlayer);

            Me.IsYou = true;
            allplayers.Add(Me);
            foreach (var teamGrp in allplayers.GroupBy(x => x.TeamName))
            {
                var teamScore = teamGrp.Sum(x => x.Score);
                foreach (var player in teamGrp)
                {
                    player.TeamScore = teamScore;
                }
            }
            sortedCollection.Source = allplayers;
            var grp = new PropertyGroupDescription("TeamName");

            sortedCollection.GroupDescriptions.Add(grp);
            sortedCollection.SortDescriptions.Add(new SortDescription("Score", ListSortDirection.Descending));

            ScoresDlgUC dlg = new ScoresDlgUC();

            dlg.DataContext = sortedCollection;
            ModalService.ShowModal(dlg);
        }
Exemplo n.º 4
0
 void app_OnHideBoard(GeniusTetrisPlayer player, bool hide)
 {
     if (_PlayersBoard.ContainsKey(player.ID))
     {
         GeniusTetris.BoardUC b = _PlayersBoard[player.ID];
         b.Invisibility = hide ? Visibility.Visible : Visibility.Collapsed;
     }
 }
Exemplo n.º 5
0
 void app_OnOptionArrived(GeniusTetrisPlayer from, GeniusTetrisPlayer to, byte option)
 {
     if (_PlayersBoard.ContainsKey(from.ID))
     {
         GeniusTetris.BoardUC b = _PlayersBoard[from.ID];
         app.CurrentGame.ExecuteOption(option, new ProxyGame(app, from.ID, b.Board));
     }
 }
Exemplo n.º 6
0
 internal static ScorePlayer FromPlayer(GeniusTetrisPlayer x)
 {
     return(new ScorePlayer
     {
         Score = x.Score,
         NickName = x.NickName,
         TeamName = GameOptions.Instance.Value.TeamName
     });
 }
Exemplo n.º 7
0
 void app_OnSendBoard(GeniusTetrisPlayer player, byte[,] data)
 {
     //throw new NotImplementedException();
     if (_PlayersBoard.ContainsKey(player.ID))
     {
         GeniusTetris.BoardUC b = _PlayersBoard[player.ID];
         if (b.Board == null)
         {
             b.Board = new Board(12, 22, null);
         }
         b.Board.SetData(data);
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// Retreie a receiver for option, only "1" is authorized when a player plays alone
        /// </summary>
        /// <param name="key"></param>
        /// <returns>a local playe on "1" key, and a proxy player on others</returns>
        private IGame GetReceiver(string key)
        {
            if (key == "1")
            {
                return(app.CurrentGame);
            }
            if (!app.InMultiplayer)
            {
                return(null);
            }
            GeniusTetrisPlayer player = FindPlayerKey(key);

            if (player != null && !player.IsGameOver)
            {
                GeniusTetris.BoardUC b = _PlayersBoard[player.ID];
                return(new ProxyGame(this.app, player.ID, b.Board));
            }
            return(null);
        }
Exemplo n.º 9
0
        void app_OnGameRequestReceived(GeniusTetrisPlayer player, string message)
        {
            _PlayersBoard.Clear();
            _PlayersKey.Clear();
            ClearAllPlayersBoard();
            MessageDlgUC dlg = new MessageDlgUC(delegate
            {
                app.AcceptGameRequest();
            },
                                                delegate
            {
                app.RejectGameRequest();
            },
                                                true,
                                                true);

            dlg.Message = message;
            ModalService.ShowModal(dlg);
        }
 public override void SendOption(GeniusTetrisPlayer toplayer, byte option)
 {
     Debug.WriteLine("[Client]SendOption {0} to player {1}", option, toplayer.ID);
     _hubProxy.Invoke("SendOption", _gamingRoom, toplayer.ID, option);
 }