protected EvadableAbility(Ability ability) { AbilityOwner = (Unit)ability.Owner; OwnerHandle = AbilityOwner.Handle; Handle = ability.Handle; Ability = ability; CastPoint = (float)ability.FindCastPoint(); Name = ability.Name; OwnerClassID = AbilityOwner.ClassID; IsDisable = ability.IsDisable() || ability.IsSilence(); PiercesMagicImmunity = ability.PiercesMagicImmunity(); if (IsDisable) { DisableAbilities.AddRange(AbilityNames.DisableAbilityNames); BlinkAbilities.AddRange(AbilityNames.BlinkAbilityNames); } Debugger.WriteLine("///////// Evadable ability // " + GetType().Name + " (" + Name + ")"); Debugger.WriteLine("// Cast point: " + CastPoint); Debugger.WriteLine("// Owner: " + AbilityOwner.GetName()); Debugger.WriteLine("// Is disable: " + IsDisable); Debugger.WriteLine("// Pierces Magic Immunity: " + PiercesMagicImmunity); }