public override void Edit(Monster monster)
		{
			InputRanks d = new InputRanks();
			d.SetRanks(slotCost);
			if (d.ShowDialog() == DialogResult.OK)
			{
				AbstractAbility p = (AbstractAbility)this.GetParent();
				slotCost = d.NumberOfRanks();
				chargeTime = 20 + 5 * d.NumberOfRanks();
				powerMult = 1.5 + 0.5 * (d.NumberOfRanks() - 1);
				name = "Countdown - " + d.NumberOfRanks().ToString() + " ranks";
				if (p.TargetType == TargetType.All || p.TargetType == TargetType.Group)
				{
					chargeTime += 10;
				}
			}
		}
		public override void Edit(Monster monster)
		{
			if (monster.Rank.IsMinibossOrBoss())
			{
				InputRanks d = new InputRanks();
				d.SetRanks(ranks);
				if (d.ShowDialog() == DialogResult.OK)
				{
					ranks = d.NumberOfRanks();
					slotCost = d.NumberOfRanks();
					name = "Longer Status - Status Durations: +" + d.NumberOfRanks() + ", apply manually.";
				}
			}
			else
			{
				Complain(6);
			}
		}
		public override void Edit(Monster monster)
		{
			int slotSurcharge;
			if (monster.Tier == 1)
			{
				slotSurcharge = 2;
			}
			else
			{
				slotSurcharge = 0;
			}
			InputRanks d = new InputRanks();
			d.SlotSurcharge = slotSurcharge;
			d.SetRanks(ranks);
			if (d.ShowDialog() == DialogResult.OK)
			{
				ranks = d.NumberOfRanks();
				slotCost = ranks + slotSurcharge;
				critRange = 5 * ranks;
				name = "Critical : " + ranks.ToString() + " Ranks";
			}
		}
		public override void Edit(Monster monster)
		{
			if (monster.Rank.IsMinibossOrBoss())
			{
				//figure out how many ranks are being taken
				InputRanks d = new InputRanks();
				d.SetRanks(ranks);
				if (d.ShowDialog() == DialogResult.OK)
				{
					slotCost = d.NumberOfRanks();
					cosMod = 5 * d.NumberOfRanks();
					ranks = d.NumberOfRanks();
					name = "High CoS: +" + cosMod.ToString() + "%";
				}
			}
			else
			{
				Complain(6);
			}
		}
		public override void Edit(Monster monster)
		{
			if (monster.Rank.IsMinibossOrBoss())
			{
				//figure out how many ranks are being taken
				InputRanks d = new InputRanks();
				InputAdditionalCost d1 = new InputAdditionalCost(5, 20);
				d.SetRanks(ranks);
				if (d.ShowDialog() == DialogResult.OK && d1.ShowDialog() == DialogResult.OK)
				{
					slotCost = d.NumberOfRanks();
					powerMod = 2 * d.NumberOfRanks();
					ranks = d.NumberOfRanks();
					string additionalCostString;
					if (d1.Result() == AdditionalCost.Delay)
					{
						additionalCostString = " (Cost: +5D)";
						delayMod = 5;
						mpScale = 0;
					}
					else
					{
						additionalCostString = " (Cost: +20 MP/Tier)";
						mpScale = 20;
						delayMod = 0;
					}
					name = "Power Strike: " + ranks.ToString() + " Ranks" + additionalCostString;
				}
			}
			else
			{
				Complain(6);
			}
		}