public bool Equals(DestinyTalentNode input) { if (input == null) { return(false); } return (( NodeIndex == input.NodeIndex || (NodeIndex.Equals(input.NodeIndex)) ) && ( NodeHash == input.NodeHash || (NodeHash.Equals(input.NodeHash)) ) && ( State == input.State || (State != null && State.Equals(input.State)) ) && ( IsActivated == input.IsActivated || (IsActivated != null && IsActivated.Equals(input.IsActivated)) ) && ( StepIndex == input.StepIndex || (StepIndex.Equals(input.StepIndex)) ) && ( MaterialsToUpgrade == input.MaterialsToUpgrade || (MaterialsToUpgrade != null && MaterialsToUpgrade.SequenceEqual(input.MaterialsToUpgrade)) ) && ( ActivationGridLevel == input.ActivationGridLevel || (ActivationGridLevel.Equals(input.ActivationGridLevel)) ) && ( ProgressPercent == input.ProgressPercent || (ProgressPercent.Equals(input.ProgressPercent)) ) && ( Hidden == input.Hidden || (Hidden != null && Hidden.Equals(input.Hidden)) ) && ( NodeStatsBlock == input.NodeStatsBlock || (NodeStatsBlock != null && NodeStatsBlock.Equals(input.NodeStatsBlock)) )); }