public static AIHeroClient GetBestKSHero(SpellSlot slot)
        {
            var spell = SpellList.FirstOrDefault(s => s.Slot == slot);

            if (spell == null)
            {
                return(null);
            }

            var hero =
                EntityManager.Heroes.Enemies.OrderBy(x => x.Health).ThenBy(TargetSelector.GetPriority)
                .FirstOrDefault(
                    e =>
                    e.IsValidTarget(spell.Range) &&
                    Prediction.Health.GetPrediction(e, spell.CastDelay) + e.TotalShield() <= GetRKSDamage(e) &&
                    Prediction.Health.GetPrediction(e, spell.CastDelay) > 20);

            return(hero);
        }
        public static Obj_AI_Base GetJungleMinionToKS(SpellSlot slot)
        {
            var spell = SpellList.FirstOrDefault(s => s.Slot == slot);

            if (spell == null)
            {
                return(null);
            }

            var minion =
                EntityManager.MinionsAndMonsters.GetJungleMonsters()
                .OrderBy(m => m.Health)
                .FirstOrDefault(
                    mi =>
                    mi.IsValidTarget(spell.Range) &&
                    Prediction.Health.GetPrediction(mi, spell.CastDelay) <= GetDamage(slot, mi) &&
                    Prediction.Health.GetPrediction(mi, spell.CastDelay) > 20);

            return(minion);
        }