Inheritance: System.Windows.Forms.Form
        private void AddSavedAbility(AddSavedTrait trait, string creatureName)
        {
            Ability newAbility = trait.ability;
            if (!newAbility.isSpell)
            {
                newAbility.Description = trait.ability.Description.Replace("{CREATURENAME}", creatureName).Replace("</br>", Environment.NewLine);
                Monster._Abilities.Add(newAbility);

                string mod = "";
                if (TraitsList.Items.Contains(newAbility.Title))
                {
                    int modInt = 0;
                    foreach (string item in TraitsList.Items)
                    {
                        if (item.Contains(newAbility.Title))
                        {
                            modInt++;
                        }
                    }
                    if (modInt > 0) { mod = " " + modInt.ToString(); }
                }
                TraitsList.Items.Add("Ability: " + newAbility.Title + mod);
            }
            else
            {
                Monster._Abilities.Add(newAbility);

                string mod = "";
                if (TraitsList.Items.Contains("Ability: " + newAbility.Title))
                {
                    int modInt = 0;
                    foreach (string item in TraitsList.Items)
                    {
                        if (item.Contains(newAbility.Title))
                        {
                            modInt++;
                        }
                    }
                    if (modInt > 0) { mod = " " + modInt.ToString(); }
                }
                TraitsList.Items.Add("Ability: " + newAbility.Title + mod);
            }
        }
        private void AddSavedLegendary(AddSavedTrait trait, string creatureName)
        {
            Legendary newLegendary = trait.legendary;
            foreach (LegendaryTrait _trait in newLegendary.Traits)
            {
                _trait.Ability = _trait.Ability.Replace("{CREATURENAME}", creatureName).Replace("</br>", Environment.NewLine);
            }
            Monster._Legendaries.Add(newLegendary);

            string mod = "";
            if (TraitsList.Items.Contains("Legendary: " + newLegendary.Title))
            {
                int modInt = 0;
                foreach (string item in TraitsList.Items)
                {
                    if (item.Contains(newLegendary.Title))
                    {
                        modInt++;
                    }
                }
                if (modInt > 0) { mod = " " + modInt.ToString(); }
            }
            TraitsList.Items.Add("Legendary: " + newLegendary.Title + mod);
        }
        private void AddSavedReaction(AddSavedTrait trait, string creatureName)
        {
            Ability newReaction = trait.reaction;
            newReaction.Description = trait.reaction.Description.Replace("{CREATURENAME}", creatureName).Replace("</br>", Environment.NewLine);            

            Monster._Reactions.Add(newReaction);
            string mod = "";

            if (TraitsList.Items.Contains("Reaction: " + newReaction.Title))
            {
                int modInt = 0;
                foreach (string item in TraitsList.Items)
                {
                    if (item.Contains(newReaction.Title))
                    {
                        modInt++;
                    }
                }
                if (modInt > 0) { mod = " " + modInt.ToString(); }
            }
            TraitsList.Items.Add("Reaction: " + newReaction.Title + mod);
        }
        private void AddSaved_Click(object sender, EventArgs e)
        {
            AddSavedTrait trait = new AddSavedTrait();
            string creatureName = Monster.CreatureName;
            if (String.IsNullOrEmpty(creatureName)) { creatureName = "creature"; }

            trait.FormClosing += (xsender, xe) =>
            {
                if (trait.OGLCreatureAdd == "")
                {
                    if (trait.ability != null)
                    {
                        AddSavedAbility(trait, creatureName);
                    }
                    else if (trait.action != null)
                    {
                        AddSavedAction(trait, creatureName);
                    }
                    else if (trait.reaction != null)
                    {
                        AddSavedReaction(trait, creatureName);
                    }
                    else if (trait.legendary != null)
                    {
                        AddSavedLegendary(trait, creatureName);
                    }
                } else
                {
                    foreach (OGL_Ability _ability in OGLContent.OGL_Abilities)
                    {
                        if (_ability.OGL_Creature == trait.OGLCreatureAdd)
                        {
                            trait.ability = null;
                            trait.action = null;
                            trait.reaction = null;
                            trait.legendary = null;

                            trait.ability = _ability;
                            AddSavedAbility(trait, creatureName);                            
                        }
                    }

                    foreach (OGL_Ability _action in OGLContent.OGL_Actions)
                    {
                        if (_action.OGL_Creature == trait.OGLCreatureAdd)
                        {
                            trait.ability = null;
                            trait.action = null;
                            trait.reaction = null;
                            trait.legendary = null;

                            trait.action = _action;
                            AddSavedAction(trait, creatureName);
                        }
                    }

                    foreach (OGL_Ability _reaction in OGLContent.OGL_Reactions)
                    {
                        if (_reaction.OGL_Creature == trait.OGLCreatureAdd)
                        {
                            trait.ability = null;
                            trait.action = null;
                            trait.reaction = null;
                            trait.legendary = null;

                            trait.reaction = _reaction;
                            AddSavedReaction(trait, creatureName);
                        }
                    }

                    foreach (OGL_Legendary _legendary in OGLContent.OGL_Legendary)
                    {
                        if (_legendary.OGL_Creature == trait.OGLCreatureAdd)
                        {
                            trait.ability = null;
                            trait.action = null;
                            trait.reaction = null;
                            trait.legendary = null;

                            trait.legendary = _legendary;
                            AddSavedLegendary(trait, creatureName);
                        }
                    }
                }
            };
            trait.Show();
        }