private void ClearLabels() { // Bad Cards foreach (Label label in BadCardLabels) { Controls.Remove(label); } BadCardLabels.Clear(); // Standard Heroes foreach (Label label in StandardHeroLabels) { Controls.Remove(label); } StandardHeroLabels.Clear(); // Player Decks foreach (Label label in PlayerDeckLabels) { Controls.Remove(label); } PlayerDeckLabels.Clear(); // Hero Deck Controls.Remove(HeroDeckTopCard); // Villain Deck Controls.Remove(VillainDeckTopCard); labelSchemeCard.Text = ""; labelBystanderStack.Text = ""; }
private void UpdateLabels() { ClearLabels(); // Scheme // labelSchemeCard.Text = Game.Board.Scheme.Title; string cards; // Bystanders // cards = ""; foreach (Card card in Game.Board.BystanderStack) { if (card.ID == "BystanderX") { cards += "X"; } else if (card.ID == "Bystander") { cards += "B"; } } labelBystanderStack.Font = new Font(FontFamily.GenericMonospace, STACK_LABEL_FONT_POINT); labelBystanderStack.Text = cards; // Bad Cards // int offsetY = 0; foreach (string type in Game.Board.BadCardStacks.Keys) { cards = ""; BadCardLabels.Add(new Label { AutoSize = true, Location = new Point(COLUMN1_X, BAD_CARD_LABELS_START_Y + offsetY), Name = $"labelBadCards{type}", TabIndex = 100 + offsetY / LABELS_SPACING_Y, Text = type }); foreach (Card card in Game.Board.BadCardStacks[type]) { if (card.ID == "Wound") { cards += "W"; } else if (card.ID == "Bindings") { cards += "B"; } else if (card.ID == "BadCardX") { cards += "X"; } } BadCardLabels.Add(new Label { AutoSize = true, Font = new Font(FontFamily.GenericMonospace, STACK_LABEL_FONT_POINT), Location = new Point(COLUMN1_X + LABELS_SPACING_X, BAD_CARD_LABELS_START_Y + offsetY), Name = $"labelBadCards{type}Stack", TabIndex = 200 + offsetY / LABELS_SPACING_Y, Text = cards }); offsetY += LABELS_SPACING_Y; } foreach (Label label in BadCardLabels) { Controls.Add(label); } // Standard Heroes // int standardHeroLabelsStartX = COLUMN1_X; int standardHeroLabelsStartY = BAD_CARD_LABELS_START_Y + LABELS_SPACING_Y * (Game.Board.BadCardStacks.Keys.Count); labelStandardHeroes.Location = new Point(standardHeroLabelsStartX, standardHeroLabelsStartY); offsetY = LABELS_SPACING_Y; foreach (string type in Game.Board.StandardHeroStacks.Keys) { cards = ""; StandardHeroLabels.Add(new Label { AutoSize = true, Location = new Point(standardHeroLabelsStartX, standardHeroLabelsStartY + offsetY), Name = $"labelStandardHeroes{type}", TabIndex = 300 + offsetY / LABELS_SPACING_Y, Text = type }); foreach (Card card in Game.Board.StandardHeroStacks[type]) { if (card.ID == "ShieldOfficer") { cards += "O"; } else if (card.ID == "MadameHydra") { cards += "M"; } else if (card.ID == "NewRecruits") { cards += "R"; } else if (card.ID == "HeroX") { cards += "X"; } } StandardHeroLabels.Add(new Label { AutoSize = true, Font = new Font(FontFamily.GenericMonospace, STACK_LABEL_FONT_POINT), Location = new Point(standardHeroLabelsStartX + LABELS_SPACING_X, standardHeroLabelsStartY + offsetY), Name = $"labelStandardHeroes{type}Stack", TabIndex = 400 + offsetY / LABELS_SPACING_Y, Text = cards }); offsetY += LABELS_SPACING_Y; } foreach (Label label in StandardHeroLabels) { Controls.Add(label); } // Player Decks // int playerDeckLabelsStartX = COLUMN1_X; int playerDeckLabelsStartY = standardHeroLabelsStartY + LABELS_SPACING_Y * (Game.Board.StandardHeroStacks.Keys.Count + 1); labelPlayerDecks.Location = new Point(playerDeckLabelsStartX, playerDeckLabelsStartY); offsetY = LABELS_SPACING_Y; foreach (Player player in Game.Players) { cards = ""; PlayerDeckLabels.Add(new Label { AutoSize = true, Location = new Point(playerDeckLabelsStartX, playerDeckLabelsStartY + offsetY), Name = $"labelPlayerDecks{player.Name.Replace(" ", "")}", TabIndex = 500 + offsetY / LABELS_SPACING_Y, Text = player.Name }); foreach (Card card in player.Deck) { if (card.ID == "ShieldAgent") { cards += "A"; } else if (card.ID == "ShieldTrooper") { cards += "T"; } else if (card.ID == "HydraOperative") { cards += "O"; } else if (card.ID == "HydraSoldier") { cards += "S"; } } PlayerDeckLabels.Add(new Label { AutoSize = true, Font = new Font(FontFamily.GenericMonospace, STACK_LABEL_FONT_POINT), Location = new Point(playerDeckLabelsStartX + LABELS_SPACING_X, playerDeckLabelsStartY + offsetY), Name = $"label{player.Name.Replace(" ", "")}Deck", TabIndex = 600 + offsetY / LABELS_SPACING_Y, Text = cards }); offsetY += LABELS_SPACING_Y; } foreach (Label label in PlayerDeckLabels) { Controls.Add(label); } // Hero Deck // int heroDeckLabelsStartX = COLUMN1_X; int heroDeckLabelsStartY = playerDeckLabelsStartY + LABELS_SPACING_Y * (Game.Players.Count + 2); labelHeroDeck.Location = new Point(heroDeckLabelsStartX, heroDeckLabelsStartY); Card heroCard = Game.Board.HeroDeck[0]; Controls.Remove(HeroDeckTopCard); if (heroCard is Hero hero) { HeroDeckTopCard = new HeroCard(hero) { AutoSize = true, Location = new Point(heroDeckLabelsStartX, heroDeckLabelsStartY + LABELS_SPACING_Y), Name = $"heroDeckTopCard", TabIndex = 700 + offsetY / LABELS_SPACING_Y }; } HeroDeckTopCard.Click += new EventHandler(HeroDeckTopCard_Click); Controls.Add(HeroDeckTopCard); // Villain Deck // int villainDeckLabelsStartX = COLUMN2_X; int villainDeckLabelsStartY = heroDeckLabelsStartY; labelVillainDeck.Location = new Point(villainDeckLabelsStartX, villainDeckLabelsStartY); Card villainCard = Game.Board.VillainDeck[0]; Controls.Remove(VillainDeckTopCard); if (villainCard is Villain villain) { VillainDeckTopCard = new VillainCard(villain) { AutoSize = true, Location = new Point(villainDeckLabelsStartX, villainDeckLabelsStartY + LABELS_SPACING_Y), Name = $"villainDeckTopCard", TabIndex = 700 + offsetY / LABELS_SPACING_Y }; } else if (villainCard is Bystander bystander) { VillainDeckTopCard = new BystanderCard(bystander) { AutoSize = true, Location = new Point(villainDeckLabelsStartX, villainDeckLabelsStartY + LABELS_SPACING_Y), Name = $"villainDeckTopCard", TabIndex = 700 + offsetY / LABELS_SPACING_Y }; } else if (villainCard is Twist twist) { VillainDeckTopCard = new TwistCard(twist) { AutoSize = true, Location = new Point(villainDeckLabelsStartX, villainDeckLabelsStartY + LABELS_SPACING_Y), Name = $"villainDeckTopCard", TabIndex = 700 + offsetY / LABELS_SPACING_Y }; } VillainDeckTopCard.Click += new EventHandler(VillainDeckTopCard_Click); Controls.Add(VillainDeckTopCard); }