Beispiel #1
0
        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();
        }
Beispiel #2
0
        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();
        }