diff --git a/Gear/EquipmentStats.cs b/Gear/EquipmentStats.cs index b13f3b3..3b2aad9 100644 --- a/Gear/EquipmentStats.cs +++ b/Gear/EquipmentStats.cs @@ -36,11 +36,24 @@ public sealed record EquipmentStats(Dictionary Stats, byte { return other != null && MateriaCount == other.MateriaCount && - Stats.SequenceEqual(other.Stats); + Stats.SequenceEqual(other.Stats, new KeyValuePairComparer()); } public override int GetHashCode() { return HashCode.Combine(MateriaCount, Stats); } + + private sealed class KeyValuePairComparer : IEqualityComparer> + { + public bool Equals(KeyValuePair x, KeyValuePair y) + { + return x.Key == y.Key && Equals(x.Value, y.Value); + } + + public int GetHashCode(KeyValuePair obj) + { + return HashCode.Combine((int)obj.Key, obj.Value); + } + } }