Пример #1
0
        public async Task RestartGame(string password, GameStartOptions startOptions)
        {
            Stopwatch processingtime = new Stopwatch();

            processingtime.Reset();
            processingtime.Start();
            Log.Information("Restart Game called.");
            if (password == config["StartGameCode"])
            {
                if (game.Players.Count() == 0)
                {
                    Log.Warning("Couldnt restart game, no players connected.");
                    await BroadCastMessageAsync("No players connected.  Unable to restart.");

                    return;
                }

                await BroadCastMessageAsync("Restarting game...");

                game.RestartGame(startOptions);
                await StartDeployPhase();

                await Clients.All.SendStatus(getStatus());

                processingtime.Stop();
                Log.Information("Restart Game successfuly executed in: " + processingtime.Elapsed);
            }
            else
            {
                processingtime.Stop();
                Log.Warning("Couldnt Restart Game, wrong password.");
                await Clients.Client(Context.ConnectionId).SendMessage("Server", "Incorrect password.");
            }
        }
Пример #2
0
 public Game(GameStartOptions startOptions)
 {
     Board            = new Board(createTerritories(startOptions.Height, startOptions.Width));
     StartingArmies   = startOptions.StartingArmiesPerPlayer;
     gameState        = GameState.Initializing;
     playerDictionary = new ConcurrentDictionary <string, IPlayer>();
 }
Пример #3
0
 private void inititializeGame(GameStartOptions startOptions)
 {
     Board             = new Board(createTerritories(startOptions.Height, startOptions.Width));
     StartingArmies    = startOptions.StartingArmiesPerPlayer;
     gameState         = GameState.Initializing;
     this.startOptions = startOptions;
     StartJoining();
 }
Пример #4
0
        public static Game.Game InitializeGame(int height, int width, int numOfArmies)
        {
            GameStartOptions startOptions = new GameStartOptions {
                Height = height,
                Width  = width,
                StartingArmiesPerPlayer = numOfArmies
            };

            Game.Game newGame = new Game.Game(startOptions);

            newGame.StartJoining();
            return(newGame);
        }
Пример #5
0
        public void RestartGame(GameStartOptions startOptions)
        {
            foreach (var p in playerDictionary.Values)
            {
                playerDictionary[p.Token].Strikes = 0;
            }

            while (startOptions.StartingArmiesPerPlayer % startOptions.ArmiesDeployedPerTurn != 0)
            {
                startOptions.StartingArmiesPerPlayer++;//round up to an even number
            }
            inititializeGame(startOptions);
            StartGame();
        }
Пример #6
0
        public async Task RestartGame(string password, GameStartOptions startOptions)
        {
            if (password == config["StartGameCode"])
            {
                if (game.Players.Count() == 0)
                {
                    await BroadCastMessageAsync("No players connected.  Unable to restart.");

                    return;
                }

                await BroadCastMessageAsync("Restarting game...");

                game.RestartGame(startOptions);
                await StartDeployPhase();

                await Clients.All.SendStatus(getStatus());
            }
            else
            {
                await Clients.Client(Context.ConnectionId).SendMessage("Server", "Incorrect password.");
            }
        }
Пример #7
0
        public IActionResult SetupNewGame(GameStartOptions options)
        {
            Game g = new Game();
            //Verify game ID is unique
            Random r = new Random();

            while (_gameService.GameExist(g.GameId))
            {
                g.GameId = r.Next(1000, 9999);
            }
            HumanPlayer hp = new HumanPlayer(options.PlayerName);

            hp = new HumanPlayer(options.PlayerName);
            g.Players.Add(hp);

            if (options.ComputerPlayer)
            {
                g.Players.Add(new ComputerPlayer("Computer"));
            }

            _gameService.SaveGame(g);

            return(RedirectToAction("Index", new { Id = g.GameId, PlayerId = hp.Guid.ToString() }));
        }
Пример #8
0
		private void _quit_Click(object sender, RoutedEventArgs e) {
			SelectedOption = GameStartOptions.quit;
			Close();
		}
Пример #9
0
		private void _newGame_Click(object sender, RoutedEventArgs e) {
			SelectedOption = GameStartOptions.newGame;
			Close();
		}
Пример #10
0
		public GameOverDialog() {
			InitializeComponent();

			SelectedOption = GameStartOptions.cancel;
		}
Пример #11
0
 public Game(GameStartOptions startOptions)
 {
     playerDictionary = new ConcurrentDictionary <string, IPlayer>();
     inititializeGame(startOptions);
 }