public override bool Prepare(Monster m)
		{
			parent = m;
			slotCost = 1;

			InputName d = new InputName();
			if (d.ShowDialog() == DialogResult.OK)
			{
				String tmpName = d.ReturnName();
				if (tmpName.Length > 0)
				{
					baseName = tmpName;
					if (baseAttack)
					{
						name = "Basic Attack: [" + tmpName + "]";
					}
					else
					{
						name = "[" + tmpName + "]";
					}
					BasicAttackForm b = new BasicAttackForm();
					if (b.ShowDialog() == DialogResult.OK)
					{
						switch (b.ChosenString())
						{
							case "Light":
								//Light Attack
								baseDelay = 40;
								basePower = 3;
								powerPerTier = 3;
								dieType = DieType.d8;
								break;

							case "Medium":
								//Medium Attack
								baseDelay = 50;
								basePower = 4;
								powerPerTier = 4;
								dieType = DieType.d10;
								break;

							case "Heavy":
								//Heavy Attack
								baseDelay = 60;
								basePower = 5;
								powerPerTier = 5;
								dieType = DieType.d12;
								break;
						}
						return base.Prepare(m);
					}
					else
					{
						return false;
					}
				}
				else
				{
					return false;
				}
			}
			else
			{
				return false;
			}
		}
		public override void Edit(Monster monster)
		{
			InputName d = new InputName();
			d.SetName(baseName);
			if (d.ShowDialog() == DialogResult.OK)
			{
				String tmpName = d.ReturnName();
				if (tmpName.Length > 0)
				{
					BasicAttackForm b = new BasicAttackForm();
					b.SetTypeByDie(dieType);
					if (b.ShowDialog() == DialogResult.OK)
					{
						baseName = tmpName;
						if (baseAttack)
						{
							name = "Basic Attack: [" + tmpName + "]";
						}
						else
						{
							name = "[" + tmpName + "]";
						}
						switch (b.ChosenString())
						{
							case "Light":
								//Light Attack
								baseDelay = 40;
								basePower = 3;
								powerPerTier = 3;
								dieType = DieType.d8;
								break;

							case "Medium":
								//Medium Attack
								baseDelay = 50;
								basePower = 4;
								powerPerTier = 4;
								dieType = DieType.d10;
								break;

							case "Heavy":
								//Heavy Attack
								baseDelay = 60;
								basePower = 5;
								powerPerTier = 5;
								dieType = DieType.d12;
								break;
						}
					}
				}
			}
		}
		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;
			}
		}
		public override void Edit(Monster monster)
		{
			InputName d = new InputName();
			d.SetName(savedName);
			InputEffectType typeDialog = new InputEffectType();
			if (d.ShowDialog() == DialogResult.OK && typeDialog.ShowDialog() == DialogResult.OK)
			{
				savedName = d.ReturnName();
				if (savedName.Length > 0)
				{
					name = "[" + savedName + "]";
					type = typeDialog.SelectedType();
					if (type == AttackType.PhysicalEffect)
					{
						baseDelay = 45;
						keywords.Add(Keyword.Technique);
						keywords.Remove(Keyword.Magic);
						keywords.Remove(Keyword.Spell);
					}
					else
					{
						MPCost = 21;
						mpPerTierAfterOne = 3;
						keywords.Add(Keyword.Magic);
						keywords.Add(Keyword.Spell);
						keywords.Remove(Keyword.Technique);
					}
				}
			}
		}
		public override bool Prepare(Monster m)
		{
			parent = m;
			InputName d = new InputName();
			InputEffectType typeDialog = new InputEffectType();
			if (d.ShowDialog() == DialogResult.OK && typeDialog.ShowDialog() == DialogResult.OK)
			{
				savedName = d.ReturnName();
				if (savedName.Length > 0)
				{
					name = "[" + savedName + "]";
					type = typeDialog.SelectedType();
					if (type == AttackType.PhysicalEffect)
					{
						baseDelay = 45;
						keywords.Add(Keyword.Technique);
					}
					else
					{
						MPCost = 21;
						mpPerTierAfterOne = 3;
						keywords.Add(Keyword.Magic);
						keywords.Add(Keyword.Spell);
					}
					return true;
				}
				else
				{
					return false;
				}
			}
			else
			{
				return false;
			}
		}