private void ManagePlayerMenuItemClick(object sender, EventArgs e) { var itemClicked = (ToolStripMenuItem)sender; var selectedPlayer = Program.GManager.CurrentGameState.Players.FirstOrDefault(x => x.PlayerName == itemClicked.Text); if (selectedPlayer == default(Player)) { MessageBox.Show(Resources.ManagePlayer_ClickedPlayerNotFound); return; } var locations = new List <string>(); foreach (var board in Program.GManager.CurrentGameState.Boards) { locations.Add(string.Format("---{0}---", board.Name)); locations.AddRange(board.Locations.Select(x => x.Name)); } var playerLocation = Program.GManager.GetPlayerLocation(selectedPlayer); var playerLocationString = playerLocation == null ? string.Empty : playerLocation.Name; var availableViper = Program.GManager.CurrentGameState.Vipers.FindIndex(x => x.Status == ComponentStatus.InReserve); var applicableDradisNode = Program.GManager.CurrentGameState.Dradis.Nodes.FirstOrDefault(x => x.Name == playerLocationString); if (availableViper != -1 || applicableDradisNode != default(DeckManager.Boards.BaseNode)) { locations.Add(string.Format("---{0}---", "Dradis")); locations.AddRange(Program.GManager.CurrentGameState.Dradis.Nodes.Select(x => x.Name)); } var form = new PlayerManagementForm(selectedPlayer, locations, playerLocationString); form.ShowDialog(); if (form.DialogResult != DialogResult.OK) { return; } Program.GManager.SetPlayerLocation(form.RequestedLocation, selectedPlayer.PlayerName); Program.GManager.DiscardCards(form.CardsToDiscard, selectedPlayer); selectedPlayer.OncePerGamePower = form.OpgStatus; if (form.RequestedSkillCards.Item2 > 0) // Skill cards requested { Program.GManager.DrawSkillCards(form.RequestedSkillCards.Item1, form.RequestedSkillCards.Item2, selectedPlayer); } if (form.RequestedSpecialCards.Item2 > 0) // Special cards requested { Program.GManager.DrawCards(form.RequestedSpecialCards.Item1, form.RequestedSpecialCards.Item2, selectedPlayer); } RefreshGameDataBoxes(); }
private void ManagePlayerMenuItemClick(object sender, EventArgs e) { var itemClicked = (ToolStripMenuItem) sender; var selectedPlayer = Program.GManager.CurrentGameState.Players.FirstOrDefault(x => x.PlayerName == itemClicked.Text); if (selectedPlayer == default(Player)) { MessageBox.Show(Resources.ManagePlayer_ClickedPlayerNotFound); return; } var locations = new List<string>(); foreach (var board in Program.GManager.CurrentGameState.Boards) { locations.Add(string.Format("---{0}---", board.Name)); locations.AddRange(board.Locations.Select(x => x.Name)); } var playerLocation = Program.GManager.GetPlayerLocation(selectedPlayer); var playerLocationString = playerLocation == null ? string.Empty : playerLocation.Name; var availableViper = Program.GManager.CurrentGameState.Vipers.FindIndex(x => x.Status == ComponentStatus.InReserve); var applicableDradisNode = Program.GManager.CurrentGameState.Dradis.Nodes.FirstOrDefault(x => x.Name == playerLocationString); if (availableViper != -1 || applicableDradisNode != default(DeckManager.Boards.BaseNode)) { locations.Add(string.Format("---{0}---", "Dradis")); locations.AddRange(Program.GManager.CurrentGameState.Dradis.Nodes.Select(x => x.Name)); } var form = new PlayerManagementForm(selectedPlayer, locations, playerLocationString); form.ShowDialog(); if (form.DialogResult != DialogResult.OK) return; Program.GManager.SetPlayerLocation(form.RequestedLocation, selectedPlayer.PlayerName); Program.GManager.DiscardCards(form.CardsToDiscard, selectedPlayer); selectedPlayer.OncePerGamePower = form.OpgStatus; if (form.RequestedSkillCards.Item2 > 0) // Skill cards requested Program.GManager.DrawSkillCards(form.RequestedSkillCards.Item1, form.RequestedSkillCards.Item2, selectedPlayer); if (form.RequestedSpecialCards.Item2 > 0) // Special cards requested Program.GManager.DrawCards(form.RequestedSpecialCards.Item1, form.RequestedSpecialCards.Item2, selectedPlayer); RefreshGameDataBoxes(); }