void app_OnStartGameNow(GeniusTetrisPlayer obj) { ModalService.CloseModal(); this.board.GameOver = Visibility.Collapsed; app.CurrentGame.Start(); this.board.Focus(); }
void app_OnGameOver(GeniusTetrisPlayer player, string arg2) { if (_PlayersBoard.ContainsKey(player.ID)) { _PlayersBoard[player.ID].GameOver = Visibility.Visible; } }
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); }
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; } }
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)); } }
internal static ScorePlayer FromPlayer(GeniusTetrisPlayer x) { return(new ScorePlayer { Score = x.Score, NickName = x.NickName, TeamName = GameOptions.Instance.Value.TeamName }); }
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); } }
/// <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); }
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); }