public bool DeepEquals(DestinySandboxPerkDefinition other)
 {
     return(other != null &&
            DisplayProperties.DeepEquals(other.DisplayProperties) &&
            DamageTypeEnumValue == other.DamageTypeEnumValue &&
            DamageType.DeepEquals(other.DamageType) &&
            IsDisplayable == other.IsDisplayable &&
            PerkIdentifier == other.PerkIdentifier &&
            PerkGroups.DeepEquals(other.PerkGroups) &&
            Blacklisted == other.Blacklisted &&
            Hash == other.Hash &&
            Index == other.Index &&
            Redacted == other.Redacted);
 }
 public bool DeepEquals(TalentGridNodeStep other)
 {
     return(other != null &&
            DisplayProperties.DeepEquals(other.DisplayProperties) &&
            StepIndex == other.StepIndex &&
            NodeStepHash == other.NodeStepHash &&
            InteractionDescription == other.InteractionDescription &&
            DamageTypeEnumValue == other.DamageTypeEnumValue &&
            DamageType.DeepEquals(other.DamageType) &&
            ActivationRequirement.DeepEquals(other.ActivationRequirement) &&
            CanActivateNextStep == other.CanActivateNextStep &&
            NextStepIndex == other.NextStepIndex &&
            IsNextStepRandom == other.IsNextStepRandom &&
            Perks.DeepEqualsReadOnlyCollections(other.Perks) &&
            StartProgressionBarAtProgress == other.StartProgressionBarAtProgress &&
            Stats.DeepEqualsReadOnlyCollections(other.Stats) &&
            AffectsQuality == other.AffectsQuality &&
            StepGroups.DeepEquals(other.StepGroups) &&
            AffectsLevel == other.AffectsLevel &&
            SocketReplacements.DeepEqualsReadOnlyCollections(other.SocketReplacements) &&
            TruePropertyIndex == other.TruePropertyIndex &&
            TrueStepIndex == other.TrueStepIndex);
 }