public bool Overlaps(WeaponTraitDef other)
 {
     if (other == this)
     {
         return(true);
     }
     if (exclusionTags.NullOrEmpty() || other.exclusionTags.NullOrEmpty())
     {
         return(false);
     }
     return(exclusionTags.Any((string x) => other.exclusionTags.Contains(x)));
 }
 private bool CanAddTrait(WeaponTraitDef trait)
 {
     if (!traits.NullOrEmpty())
     {
         for (int i = 0; i < traits.Count; i++)
         {
             if (trait.Overlaps(traits[i]))
             {
                 return(false);
             }
         }
     }
     return(true);
 }