public virtual void BeforeRemoveFromSpecies(Species species)
 {
     // Remove any mutations that are prerequisites for us
     for (int i = species.MutationCount - 1; i >= 0; i--)
     {
         Mutation mutation = species.GetMutation(i);
         if (mutation.Prerequisites.Contains(this))
         {
             species.RemoveMutation(mutation);
         }
     }
 }
        public virtual void BeforeAddToSpecies(Species species)
        {
            if (Category == null)
            {
                return;
            }

            for (int i = species.MutationCount - 1; i >= 0; i--)
            {
                Mutation mutation = species.GetMutation(i);
                if (mutation.Category == Category)
                {
                    species.RemoveMutation(mutation);
                }
            }
        }