public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = AllSkullsOn.GetHashCode();
         hashCode = (hashCode * 397) ^ FastestCompletionTime.GetHashCode();
         hashCode = (hashCode * 397) ^ HighestScore;
         hashCode = (hashCode * 397) ^ (Skulls?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ TotalTimesCompleted;
         return(hashCode);
     }
 }
        public bool Equals(DifficultyStat other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }

            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return(AllSkullsOn == other.AllSkullsOn &&
                   FastestCompletionTime.Equals(other.FastestCompletionTime) &&
                   HighestScore == other.HighestScore &&
                   Skulls.OrderBy(s => s).SequenceEqual(other.Skulls.OrderBy(s => s)) &&
                   TotalTimesCompleted == other.TotalTimesCompleted);
        }