public override void Edit(Monster monster)
		{
			InputName nameDialog = new InputName();
			InputEnhancement enhancementDialog = new InputEnhancement();
			enhancementDialog.SelectedType = type;
			nameDialog.SetName(baseName);
			enhancementDialog.StatusString = chosen;
			nameDialog.SetName(baseName);
			baseDelay = 40;
			if (nameDialog.ShowDialog() == DialogResult.OK && enhancementDialog.ShowDialog() == DialogResult.OK)
			{
				slotCost = enhancementDialog.SlotCost();
				chosen = enhancementDialog.StatusString;
				if (enhancementDialog.HasSurcharge())
				{
					baseDelay += 5;
				}
				type = enhancementDialog.SelectedType;
				baseName = nameDialog.ReturnName();
				name = "[" + baseName + "] - Enhancement: " + chosen + " ";
				if (type == AttackType.PhysicalEffect)
				{
					keywords.Add(Keyword.Technique);
					keywords.Remove(Keyword.Magic);
					keywords.Remove(Keyword.Spell);
				}
				else
				{
					keywords.Add(Keyword.Magic);
					keywords.Add(Keyword.Spell);
					keywords.Remove(Keyword.Technique);
				}
			}
		}
		public override bool Prepare(Monster m)
		{
			parent = m;
			InputEnhancement enhancementDialog = new InputEnhancement();
			InputName nameDialog = new InputName();
			if (nameDialog.ShowDialog() == DialogResult.OK && enhancementDialog.ShowDialog() == DialogResult.OK)
			{
				slotCost = enhancementDialog.SlotCost();
				chosen = enhancementDialog.StatusString;
				if (base.Prepare(m))
				{
					if (enhancementDialog.HasSurcharge())
					{
						baseDelay += 5;
					}
					type = enhancementDialog.SelectedType;
					baseName = nameDialog.ReturnName();
					keywords.Add(Keyword.Enhancement);
					if (type == AttackType.PhysicalEffect)
					{
						keywords.Add(Keyword.Technique);
					}
					else
					{
						keywords.Add(Keyword.Magic);
						keywords.Add(Keyword.Spell);
					}
					name = "[" + baseName + "] - Enhancement: " + chosen + " ";
					return true;
				}
				else
				{
					return false;
				}
			}
			else
			{
				return false;
			}
		}