public DeckLeaderAbility Clone() { DeckLeaderAbilityFactory deckLeaderAbilityFactory = new DeckLeaderAbilityFactory(); DeckLeaderAbility clonedDeckLeaderAbility = deckLeaderAbilityFactory.GetDeckLeaderAbility(this.Index, this.Bytes); return(clonedDeckLeaderAbility); }
private void createAbilityLabelAndButton(int abilityIndex, DeckLeaderAbility ability, int xstartpos, int ypos) { int labelLength = 280; int labelButtonSpacing = 20; int labelStart = xstartpos; int labelEnd = labelStart + labelLength; int buttonStart = labelEnd + labelButtonSpacing; Label abilityLabel = new Label(); abilityLabel.Location = new System.Drawing.Point(labelStart, ypos); abilityLabel.Name = $"abilityLabel{abilityIndex}"; abilityLabel.Size = new System.Drawing.Size(labelLength, 23); abilityLabel.Padding = new Padding(4); abilityLabel.Text = ability.ToString(); if (ability.Enabled) { abilityLabel.BackColor = Color.LightGreen; } Button abilityEditButton = new Button(); abilityEditButton.Name = abilityIndex.ToString(); abilityEditButton.Text = "Edit"; abilityEditButton.Location = new System.Drawing.Point(buttonStart, ypos); abilityEditButton.Click += this.handleEditButtonClick; this.Controls.Add(abilityLabel); this.Controls.Add(abilityEditButton); }
private void handleEditButtonClick(object sender, EventArgs e) { Button abilityEditButton = (Button)sender; int abilityIndex = Int32.Parse(abilityEditButton.Name); DeckLeaderAbility ability = (DeckLeaderAbility)this.deckLeaderAbilities[abilityIndex][0]; EditDeckLeaderAbilityForm editForm; Type abilityType = ability.GetType(); if (abilityType == typeof(FlagDeckLeaderAbility)) { editForm = new EditFlagDeckLeaderAbilityForm(ability); } else if (DeckLeaderAbility.RankRequirementNoAdditionalInformationList.Contains(ability.AbilityType)) { editForm = new EditRankRequirementDeckLeaderAbilityForm(ability); } else if (abilityType == typeof(StrengthModifierDeckLeaderAbility)) { editForm = new EditStrengthModifierDeckLeaderAbilityForm(ability); } else { editForm = new EditRankRequirementDeckLeaderAbilityForm(ability); } editForm.StartPosition = FormStartPosition.CenterParent; DialogResult dialogResult = editForm.ShowDialog(); if (dialogResult.Equals(DialogResult.OK)) { this.deckLeaderAbilities[abilityIndex][0] = editForm.DeckLeaderAbility; this.deckLeaderAbilities[abilityIndex][1] = true; this.Controls.Find($"abilityLabel{abilityIndex}", false)[0].BackColor = Color.Yellow; } }
private void populateDeckLeaderAbilities() { DeckLeaderAbility[] deckLeaderAbilityList = this.selectedCardDeckLeaderAbilityList[0].deckLeaderAbilityList; this.deckLeaderAbilities = new Object[deckLeaderAbilityList.Length][]; for (int i = 0; i < deckLeaderAbilityList.Length; i++) { DeckLeaderAbility firstCardDeckLeaderAbility = deckLeaderAbilityList[i].Clone(); bool allCardsHaveSameAbilityValue = true; for (int scai = 0; scai < selectedCardDeckLeaderAbilityList.Count; scai++) { DeckLeaderAbility selectedCardAbility = this.selectedCardDeckLeaderAbilityList[scai].deckLeaderAbilityList[i]; if (!selectedCardAbility.Bytes.SequenceEqual(firstCardDeckLeaderAbility.Bytes)) { allCardsHaveSameAbilityValue = false; break; } } if (allCardsHaveSameAbilityValue) { this.deckLeaderAbilities[i] = new Object[] { firstCardDeckLeaderAbility, false }; } else { firstCardDeckLeaderAbility.Enabled = false; this.deckLeaderAbilities[i] = new Object[] { firstCardDeckLeaderAbility, false }; } } }
private void applyAbilityChangesToCards() { for (int abilityIndex = 0; abilityIndex < this.deckLeaderAbilities.Length; abilityIndex++) { bool deckLeaderAbilityHasChanged = (bool)this.deckLeaderAbilities[abilityIndex][1]; if (!deckLeaderAbilityHasChanged) { continue; } DeckLeaderAbility deckLeaderAbility = (DeckLeaderAbility)this.deckLeaderAbilities[abilityIndex][0]; for (int cardIndex = 0; cardIndex < this.selectedCardDeckLeaderAbilityList.Count; cardIndex++) { CardDeckLeaderAbility cardDeckLeaderAbility = this.selectedCardDeckLeaderAbilityList[cardIndex]; this.allCardDeckLeaderAbilities.List[cardDeckLeaderAbility.Index].deckLeaderAbilityList[abilityIndex] = deckLeaderAbility; } } }
private void createAbilityInputs() { int startX = 220; int startY = 30; int rowSpacing = 40; int numberOfRowsGenerated = 0; for (int i = 0; i < this.deckLeaderAbilities.Length; i++) { DeckLeaderAbility deckLeaderAbility = (DeckLeaderAbility)this.deckLeaderAbilities[i][0]; if (deckLeaderAbility.IsUnusedAbility) { continue; } int xpos = startX; int ypos = startY + (numberOfRowsGenerated * rowSpacing); this.createAbilityLabelAndButton(i, deckLeaderAbility, xpos, ypos); numberOfRowsGenerated++; } }
public EditFlagDeckLeaderAbilityForm(DeckLeaderAbility deckLeaderAbility) : base(deckLeaderAbility) { }
public EditRankRequirementDeckLeaderAbilityForm(DeckLeaderAbility deckLeaderAbility) : base(deckLeaderAbility) { InitializeComponent(); setupForm(); }
public EditStrengthModifierDeckLeaderAbilityForm(DeckLeaderAbility deckLeaderAbility) : base(deckLeaderAbility) { InitializeComponent(); setupForm(); }
public EditDeckLeaderAbilityForm(DeckLeaderAbility deckLeaderAbility) { this.DeckLeaderAbility = deckLeaderAbility; InitializeComponent(); this.loadForm(); }