private static void Obj_AI_Hero_OnProcessSpellCast(EloBuddy.Obj_AI_Base sender, EloBuddy.GameObjectProcessSpellCastEventArgs args) { if (sender.IsEnemy) { if (Player != null && spells[Spells.R].IsReady()) { if ((!(sender is EloBuddy.AIHeroClient) || args.SData.IsAutoAttack()) && args.Target != null && args.Target.NetworkId == Player.NetworkId) { incomingDamage.Add( Player.ServerPosition.LSDistance(sender.ServerPosition) / args.SData.MissileSpeed + EloBuddy.Game.Time, (float)sender.LSGetAutoAttackDamage(Player)); } else if (sender is EloBuddy.AIHeroClient) { var attacker = (EloBuddy.AIHeroClient)sender; var slot = attacker.GetSpellSlot(args.SData.Name); if (slot != EloBuddy.SpellSlot.Unknown) { if (slot == attacker.GetSpellSlot("SummonerDot") && args.Target != null && args.Target.NetworkId == Player.NetworkId) { instantDamage.Add( EloBuddy.Game.Time + 2, (float)attacker.GetSummonerSpellDamage(Player, LeagueSharp.Common.Damage.SummonerSpell.Ignite)); } else if (slot.HasFlag(EloBuddy.SpellSlot.Q | EloBuddy.SpellSlot.W | EloBuddy.SpellSlot.E | EloBuddy.SpellSlot.R) && ((args.Target != null && args.Target.NetworkId == Player.NetworkId) || args.End.LSDistance(Player.ServerPosition) < Math.Pow(args.SData.LineWidth, 2))) { instantDamage.Add(EloBuddy.Game.Time + 2, (float)attacker.LSGetSpellDamage(Player, slot)); } } } } } if (sender.IsMe) { if (args.SData.Name.Equals("EkkoE", StringComparison.InvariantCultureIgnoreCase)) { LeagueSharp.Common.Utility.DelayAction.Add(250, EloBuddy.SDK.Orbwalker.ResetAutoAttack); } } }