public void Update(DestinyItemObjectiveBlockDefinition?other)
 {
     if (other is null)
     {
         return;
     }
     if (!ObjectiveHashes.DeepEqualsListNaive(other.ObjectiveHashes))
     {
         ObjectiveHashes = other.ObjectiveHashes;
         OnPropertyChanged(nameof(ObjectiveHashes));
     }
     if (!DisplayActivityHashes.DeepEqualsListNaive(other.DisplayActivityHashes))
     {
         DisplayActivityHashes = other.DisplayActivityHashes;
         OnPropertyChanged(nameof(DisplayActivityHashes));
     }
     if (RequireFullObjectiveCompletion != other.RequireFullObjectiveCompletion)
     {
         RequireFullObjectiveCompletion = other.RequireFullObjectiveCompletion;
         OnPropertyChanged(nameof(RequireFullObjectiveCompletion));
     }
     if (QuestlineItemHash != other.QuestlineItemHash)
     {
         QuestlineItemHash = other.QuestlineItemHash;
         OnPropertyChanged(nameof(QuestlineItemHash));
     }
     if (Narrative != other.Narrative)
     {
         Narrative = other.Narrative;
         OnPropertyChanged(nameof(Narrative));
     }
     if (ObjectiveVerbName != other.ObjectiveVerbName)
     {
         ObjectiveVerbName = other.ObjectiveVerbName;
         OnPropertyChanged(nameof(ObjectiveVerbName));
     }
     if (QuestTypeIdentifier != other.QuestTypeIdentifier)
     {
         QuestTypeIdentifier = other.QuestTypeIdentifier;
         OnPropertyChanged(nameof(QuestTypeIdentifier));
     }
     if (QuestTypeHash != other.QuestTypeHash)
     {
         QuestTypeHash = other.QuestTypeHash;
         OnPropertyChanged(nameof(QuestTypeHash));
     }
     if (!PerObjectiveDisplayProperties.DeepEqualsList(other.PerObjectiveDisplayProperties))
     {
         PerObjectiveDisplayProperties = other.PerObjectiveDisplayProperties;
         OnPropertyChanged(nameof(PerObjectiveDisplayProperties));
     }
     if (DisplayAsStatTracker != other.DisplayAsStatTracker)
     {
         DisplayAsStatTracker = other.DisplayAsStatTracker;
         OnPropertyChanged(nameof(DisplayAsStatTracker));
     }
 }
 public bool DeepEquals(DestinyItemObjectiveBlockDefinition?other)
 {
     return(other is not null &&
            ObjectiveHashes.DeepEqualsListNaive(other.ObjectiveHashes) &&
            DisplayActivityHashes.DeepEqualsListNaive(other.DisplayActivityHashes) &&
            RequireFullObjectiveCompletion == other.RequireFullObjectiveCompletion &&
            QuestlineItemHash == other.QuestlineItemHash &&
            Narrative == other.Narrative &&
            ObjectiveVerbName == other.ObjectiveVerbName &&
            QuestTypeIdentifier == other.QuestTypeIdentifier &&
            QuestTypeHash == other.QuestTypeHash &&
            PerObjectiveDisplayProperties.DeepEqualsList(other.PerObjectiveDisplayProperties) &&
            DisplayAsStatTracker == other.DisplayAsStatTracker);
 }
        public bool Equals(DestinyItemObjectiveBlockDefinition input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     ObjectiveHashes == input.ObjectiveHashes ||
                     (ObjectiveHashes != null && ObjectiveHashes.SequenceEqual(input.ObjectiveHashes))
                     ) &&
                 (
                     DisplayActivityHashes == input.DisplayActivityHashes ||
                     (DisplayActivityHashes != null && DisplayActivityHashes.SequenceEqual(input.DisplayActivityHashes))
                 ) &&
                 (
                     RequireFullObjectiveCompletion == input.RequireFullObjectiveCompletion ||
                     (RequireFullObjectiveCompletion != null && RequireFullObjectiveCompletion.Equals(input.RequireFullObjectiveCompletion))
                 ) &&
                 (
                     QuestlineItemHash == input.QuestlineItemHash ||
                     (QuestlineItemHash.Equals(input.QuestlineItemHash))
                 ) &&
                 (
                     Narrative == input.Narrative ||
                     (Narrative != null && Narrative.Equals(input.Narrative))
                 ) &&
                 (
                     ObjectiveVerbName == input.ObjectiveVerbName ||
                     (ObjectiveVerbName != null && ObjectiveVerbName.Equals(input.ObjectiveVerbName))
                 ) &&
                 (
                     QuestTypeIdentifier == input.QuestTypeIdentifier ||
                     (QuestTypeIdentifier != null && QuestTypeIdentifier.Equals(input.QuestTypeIdentifier))
                 ) &&
                 (
                     QuestTypeHash == input.QuestTypeHash ||
                     (QuestTypeHash.Equals(input.QuestTypeHash))
                 ) &&
                 (
                     PerObjectiveDisplayProperties == input.PerObjectiveDisplayProperties ||
                     (PerObjectiveDisplayProperties != null && PerObjectiveDisplayProperties.SequenceEqual(input.PerObjectiveDisplayProperties))
                 ) &&
                 (
                     DisplayAsStatTracker == input.DisplayAsStatTracker ||
                     (DisplayAsStatTracker != null && DisplayAsStatTracker.Equals(input.DisplayAsStatTracker))
                 ));
        }