public void addpower(Power p) { Powers.Add(p); p.User = this; if (p is Buff) { (p as Buff).Apply(this); } if (p.EnergySource is EnergyReserve) { (p.EnergySource as EnergyReserve).UsedBy += 1; } if (p is EnergyReserve) { for (int i = 0; i < Powers.Count; i++) { if (Powers[i].EnergySource == p) { (p as EnergyReserve).UsedBy += 1; } } } }
public void removerpower(Power p) { Powers.Remove(p); if (p is EnergyReserve) { if ((p as EnergyReserve).UsedBy > 0) { return; } } p.User = null; if (p is Buff) { (p as Buff).Remove(this); } }
private void PowersListBox_SelectedIndexChanged(object sender, EventArgs e) { CharacterGroupBox.Visible = false; EnergyReserveGroupBox.Visible = false; ArmorGroupBox.Visible = false; if (PowersListBox.SelectedIndex < 0) { SelectedPower = null; return; } SelectedPower = (Power)PowersListBox.Items[PowersListBox.SelectedIndex]; CharNameTextBox.Text = SelectedPower.Name; if (SelectedPower is EnergyReserve) { SelectedType = selectiontype.Energy_Reserve; EnergyReserve EnRes = (EnergyReserve)SelectedPower; EnRes.calculatecost(); EnergyReservePointCostLabel.Text = "Cost: " + EnRes.RealPointCost; EnergyReserveNameTextBox.Text = EnRes.Name; EnergyReserveMaxEnergyUpDown.Value = EnRes.MaxEnergy; EnergyReserveRecoveryUpDown.Value = EnRes.Recovery; EnergyReserveGroupBox.Visible = true; EnergyReserveGroupBox.BringToFront(); } if (SelectedPower is EnergyBlast) { SelectedType = selectiontype.Energy_Blast; } if (SelectedPower is Armor) { SelectedType = selectiontype.Armor; Armor Arm = (Armor)SelectedPower; Arm.calculatecost(); ArmorPointCostLabel.Text = "Cost: " + Arm.RealPointCost; ArmorNameTextBox.Text = Arm.Name; ArmorRPDefUpDown.Value = Arm.RPDEF; ArmorREDefUpDown.Value = Arm.REDEF; ArmorGroupBox.Visible = true; ArmorGroupBox.BringToFront(); } }