public override void Edit(Monster monster)
		{
			InputElement d = new InputElement();
			if (d.ShowDialog() == DialogResult.OK)
			{
				toElement = d.SelectedElement();
				name = "Element Shift: " + toElement.ToString();
			}
		}
		public override bool Prepare(Monster m)
		{
			if (base.Prepare(m))
			{
				InputElement d = new InputElement();
				if (d.ShowDialog() == DialogResult.OK)
				{
					toElement = d.SelectedElement();
					name = "Element Shift: " + toElement.ToString();
					return true;
				}
				else
				{
					return false;
				}
			}
			else
			{
				return false;
			}
		}
		public override bool Prepare(Monster m)
		{
			if (this.GetParent() == m.BasicAttack)
			{
				Complain(4);
				return false;
			}
			if (base.Prepare(m))
			{
				if (modifiedAbility.AttackType == AttackType.Physical)
				{
					InputElement d = new InputElement();
					if (d.ShowDialog() == DialogResult.OK)
					{
						toElement = d.SelectedElement();
						name = "Type Swap to Magical: " + toElement.ToString();
						toType = AttackType.Magical;
						mpCost = 21;
						mpScale = 3;
						if (modifiedAbility.IsDamagingAbility())
						{
							cosMod = 20;
						}
						return true;
					}
				}
				else
				{
					name = "Type Swap to Physical";
					toType = AttackType.Physical;
					if (modifiedAbility.IsDamagingAbility())
					{
						cosMod = -10;
					}
					mpCost = 0;
					mpScale = 0;
					return true;
				}
			}
			return false;
		}
		public override void Edit(Monster monster)
		{
			if (toType == AttackType.Magical)
			{
				InputElement d = new InputElement();
				d.SetElement(toElement);
				if (d.ShowDialog() == DialogResult.OK)
				{
					toElement = d.SelectedElement();
					name = "Type Swap to Magical: " + toElement.ToString();
				}
			}
		}
 private void keywordsList_ItemCheck(object sender, ItemCheckEventArgs e)
 {
     if (e.NewValue == CheckState.Checked)
     {
         if (keywordsActive)
         {
             keywords.Add(keywordLookup[e.Index]);
             if (keywordLookup[e.Index] == Keyword.Magic)
             {
                 keywords.Add(Keyword.Spell);
             }
             if (keywordLookup[e.Index] == Keyword.Elemental)
             {
                 InputElement d = new InputElement();
                 d.StartPosition = FormStartPosition.CenterParent;
                 if (d.ShowDialog() == DialogResult.OK)
                 {
                     Element = d.SelectedElement();
                 }
                 else
                 {
                     Element = Element.Null;
                     keywords.Remove(Keyword.Elemental);
                     keywordsList.SetItemChecked(e.Index, false);
                 }
             }
         }
     }
     else
     {
         keywords.Remove(keywordLookup[e.Index]);
         if (keywordLookup[e.Index] == Keyword.Magic)
         {
             keywords.Remove(Keyword.Spell);
         }
         if (keywordLookup[e.Index] == Keyword.Elemental)
         {
             Element = Element.Null;
         }
     }
     this.SynchroniseWeaponKeyword();
 }