예제 #1
0
        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));
        }