public void register(IGameApp game, String GameName) { GameAppWrapper newGameWrapper = new GameAppWrapper(game, registeredGames, GameName); newGameWrapper.LaunchGameCommand = new DelegateCommand( param => { LaunchGame(this, (Int32)param); }); ++registeredGames; Games.Add(newGameWrapper); }
private void onGameLaunch(object sender, Int32 param) { Int32 Id = param; GameAppWrapper current = GameList[(int)Id]; current.P1 = model.P1; current.P2 = model.P2; LaunchGame(this, current); }
private void LaunchNewGame(object sender, IGameApp e) { GameAppWrapper wrap = (GameAppWrapper)e; if (this._currentGame == null) { _window.Hide(); this._currentGame = wrap; this._currentGame.GameExit += GameExit; wrap.Initialize(); wrap.OpenWindow(); } else { throw new InvalidOperationException("A game is still running!"); } }
private void GameExit(object sender, EventArgs e) { this._currentGame.GameExit -= GameExit; InputDialog dia = new InputDialog(); InputDialogViewModel diavm = new InputDialogViewModel(dia); dia.DataContext = diavm; diavm.CloseDialog += CloseDialog; dia.ShowDialog(); if (diavm.result == true) { String name = dia.Input.Text; if ((int)this._currentGame.P1.Score > (int)this._currentGame.P2.Score) { LeaderboardEntry board = new LeaderboardEntry(); board.UserName = name; board.GameType = GameTypes.TicTacToe; board.Date = DateTime.Now; board.GameSessionId = "session1"; board.Score = (int)this._currentGame.P1.Score; _store.AddLeaderboardEntryAsync(board); } else { LeaderboardEntry board = new LeaderboardEntry(); board.UserName = name; board.GameType = GameTypes.TicTacToe; board.Date = DateTime.Now; board.GameSessionId = "session1"; board.Score = (int)this._currentGame.P2.Score; _store.AddLeaderboardEntryAsync(board); } } this._currentGame.CloseWindow(); this._currentGame = null; _window.Show(); }