public void ApplyEffects(IObjAiBase owner, IAttackableUnit target, ISpell spell, IProjectile projectile)
        {
            var time   = 1.1f + 0.1f * spell.Level;
            var ap     = owner.Stats.AbilityPower.Total;
            var damage = 10 + spell.Level * 30 + ap * 0.2f;

            if (owner.GetDistanceTo(target) <= 460)
            {
                damage = 15 + spell.Level * 45 + ap * 0.3f;
            }
            if (owner.GetDistanceTo(target) <= 295)
            {
                damage = 20 + spell.Level * 60 + ap * 0.4f;
            }

            target.TakeDamage(owner, damage, DamageType.DAMAGE_TYPE_MAGICAL, DamageSource.DAMAGE_SOURCE_SPELL, false);

            AddBuff("TaricEHud", time, 1, spell, (IObjAiBase)target, owner);
            AddBuff("Stun", time, 1, spell, (IObjAiBase)target, owner);
            AddParticleTarget(owner, "Dazzle_tar.troy", target);
            var p102 = AddParticleTarget(owner, "Global_Stun.troy", target, 1.25f, "head");
            var p103 = AddParticleTarget(owner, "Taric_HammerFlare.troy", target, 1);

            CreateTimer(time, () =>
            {
                RemoveParticle(p102);
                RemoveParticle(p103);
            });

            projectile.SetToRemove();
        }
 public void OnFinishCasting(IObjAiBase owner, ISpell spell, IAttackableUnit target)
 {
     if (owner.GetDistanceTo(target) > 625)
     {
         return;
     }
     else
     {
         spell.AddProjectileTarget("Dazzle", target, true);
     }
 }