public override int GetHashCode() { unchecked { int hashCode = Name?.GetHashCode() ?? 0; hashCode = (hashCode * 397) ^ (int)Type; hashCode = (hashCode * 397) ^ (int)Handedness; hashCode = (hashCode * 397) ^ (int)Target; hashCode = (hashCode * 397) ^ LevelRequirement; hashCode = (hashCode * 397) ^ FindRequirement; hashCode = (hashCode * 397) ^ FindOptimum; hashCode = (hashCode * 397) ^ UsageOptimum; hashCode = (hashCode * 397) ^ Armor; hashCode = (hashCode * 397) ^ Damage; hashCode = (hashCode * 397) ^ Value; hashCode = (hashCode * 397) ^ HP; hashCode = (hashCode * 397) ^ MP; hashCode = (hashCode * 397) ^ Poo; hashCode = (hashCode * 397) ^ Pee; hashCode = (hashCode * 397) ^ Command.GetHashCode(); hashCode = (hashCode * 397) ^ CommandMessage.GetHashCode(); hashCode = (hashCode * 397) ^ CriticalAdjective.GetHashCode(); hashCode = (hashCode * 397) ^ Countable.GetHashCode(); hashCode = (hashCode * 397) ^ IsFluid.GetHashCode(); return(hashCode); } }