internal void Update() { if (!Unit.IsValid) { Auras.Clear(); return; } foreach (var oldAura in Auras) { oldAura.Value.Invalidate(); } for (int i = 0; i < Unit.GetAuraCount; i++) { IntPtr ptr = Unit.GetAuraPointer(i); if (Auras.ContainsKey(ptr)) { Auras[ptr].Validate(ptr); } else { Auras.Add(ptr, new WoWAura(ptr)); } } Auras.Where(a => !a.Value.IsValid).ToList().ForEach(a => Auras.Remove(a.Key)); }