private void LoadGame(object sender, EventArgs e) { if (loadedGamesListBox.SelectedIndex < 0) { return; } SingleplayerSavedGameInfo savedGameInfo = (SingleplayerSavedGameInfo)loadedGamesListBox.Items[loadedGamesListBox.SelectedIndex]; #if (!DEBUG) try { #endif using (UtilsDbContext db = new UtilsDbContext()) { Game game = Game.Load(db, savedGameInfo); OnSingleplayerGameLoaded?.Invoke(game); } #if (!DEBUG) } catch (Exception) { MessageBox.Show("Selected game save has been damaged.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } #endif }
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); } }