private void Start(object sender, EventArgs e) { Map map = mapSettingsControl.GetMap(); IList <AiPlayer> aiPlayers = aiPlayerSettingsControl.GetPlayers(); IList <Player> players = new List <Player>(); foreach (AiPlayer aiPlayer in aiPlayers) { players.Add(aiPlayer); } players.Add(myHumanPlayerControl.GetPlayer()); foreach (Player player in humanPlayerSettingsControl.GetPlayers()) { players.Add(player); } Game game = null; using (UtilsDbContext db = new UtilsDbContext()) { IEnumerable <HotseatSavedGameInfo> savedGamesEnum = db.HotseatSavedGameInfos.ToList(); HotseatSavedGameInfo lastGame = savedGamesEnum.LastOrDefault(); int gameId = 1; if (lastGame != null) { gameId = lastGame.Id + 1; } var factory = new GameFactory(); game = factory.CreateGame(gameId, GameType.MultiplayerHotseat, map, players, fogOfWar: fogOfWarCheckBox.Checked); // TEST /*NetworkObjectWrapper wrapper = new NetworkObjectWrapper<Game>() {TypedValue = game}; * using (var ms = new MemoryStream()) * { * wrapper.Serialize(ms); * * ms.Position = 0; * * var obj = NetworkObjectWrapper.Deserialize(ms).Value; * }*/ // END TEST } OnGameStarted?.Invoke(game); }
private async void Create(object sender, EventArgs e) { if (OnGameCreated == null) { return; } IList <AiPlayer> aiPlayers = aiPlayerSettingsControl.GetPlayers(); await OnGameCreated.Invoke(myPlayerControl.GetPlayer(), aiPlayers, mapSettingsControl.MapName, aiPlayerSettingsControl.PlayersLimit - 1 - aiPlayers.Count); }
private void Start(object sender, EventArgs e) { try { Map map = mapSettingsControl.GetMap(); IList <AiPlayer> aiPlayers = aiPlayerSettingsControl.GetPlayers(); IList <Player> players = new List <Player>(); foreach (AiPlayer aiPlayer in aiPlayers) { players.Add(aiPlayer); } players.Add(myHumanPlayerControl.GetPlayer()); Game game = null; // generate id for the game using (UtilsDbContext db = new UtilsDbContext()) { IEnumerable <SingleplayerSavedGameInfo> savedGamesEnum = db.SingleplayerSavedGameInfos.AsEnumerable(); SingleplayerSavedGameInfo lastGame = savedGamesEnum.LastOrDefault(); int gameId = 1; if (lastGame != null) { gameId = lastGame.Id + 1; } var factory = new GameFactory(); game = factory.CreateGame(gameId, GameType.SinglePlayer, map, players, fogOfWar: fogOfWarCheckBox.Checked); } OnGameStarted?.Invoke(game); } catch (UnauthorizedAccessException) { MessageBox.Show( "One or more components required to start the game are missing! Please, reinstall the game!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }