예제 #1
0
        /// <summary>
        /// Does KillSteal
        /// </summary>
        public static void KillSteal()
        {
            var useQ         = Essentials.KillStealMenu["useQ"].Cast <CheckBox>().CurrentValue;
            var qPred        = Essentials.KillStealMenu["qPred"].Cast <Slider>().CurrentValue;
            var manaManagerQ = Essentials.KillStealMenu["manaManagerQ"].Cast <Slider>().CurrentValue;

            if (useQ)
            {
                var target =
                    EntityManager.Heroes.Enemies.Where(
                        t =>
                        Program.Q.IsInRange(t) && t.IsValidTarget() &&
                        t.Health <= DamageLibrary.CalculateDamage(t, true, false, false, false))
                    .OrderByDescending(t => t.Health)
                    .FirstOrDefault();

                if (target != null && Program.Q.IsReady() && Player.Instance.ManaPercent >= manaManagerQ)
                {
                    var pred = Program.Q.GetPrediction(target);

                    if (pred != null && pred.HitChancePercent >= qPred)
                    {
                        Program.Q.Cast(pred.CastPosition);
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Returns the card that should be picked in that scenario
        /// </summary>
        /// <param name="t">The Target</param>
        /// <returns>The Card that should be used.</returns>
        public static Cards MinionCardSelection(Obj_AI_Base t)
        {
            var card = Cards.None;
            var minionsaroundTarget =
                EntityManager.MinionsAndMonsters.EnemyMinions
                .Count(
                    target => target.Distance(t) <= 200 &&
                    target.Health <=
                    DamageLibrary.PredictWDamage(target, Cards.Red));
            var monstersAroundTarget =
                EntityManager.MinionsAndMonsters.Monsters.Count(
                    mob => mob.Distance(t) <= 200 &&
                    mob.Health <= DamageLibrary.PredictWDamage(mob, Cards.Red));
            var enemyW = MiscMenu["enemyW"].Cast <Slider>().CurrentValue;
            var manaW  = MiscMenu["manaW"].Cast <Slider>().CurrentValue;

            if (Player.Instance.ManaPercent < manaW)
            {
                card = Cards.Blue;
                return(card);
            }

            if (Player.Instance.ManaPercent >= manaW && t.IsMonster && monstersAroundTarget < enemyW)
            {
                card = Cards.Yellow;
                return(card);
            }

            if (Player.Instance.ManaPercent >= manaW && (minionsaroundTarget >= enemyW || monstersAroundTarget >= enemyW))
            {
                card = Cards.Red;
                return(card);
            }

            return(card);
        }
예제 #3
0
        /// <summary>
        /// Does LaneClear
        /// </summary>
        public static void LaneClear()
        {
            var useQ = Essentials.LaneClearMenu["useQ"].Cast <CheckBox>().CurrentValue;

            if (useQ)
            {
                var qMinion =
                    EntityManager.MinionsAndMonsters.GetLaneMinions(
                        EntityManager.UnitTeam.Enemy,
                        Player.Instance.ServerPosition,
                        Program.Q.Range).OrderBy(t => t.Health);
                var qPred        = Essentials.LaneClearMenu["qPred"].Cast <Slider>().CurrentValue;
                var manaManagerQ = Essentials.LaneClearMenu["manaManagerQ"].Cast <Slider>().CurrentValue;

                if (Program.Q.IsReady() && Player.Instance.ManaPercent >= manaManagerQ)
                {
                    var minionPrediction = EntityManager.MinionsAndMonsters.GetLineFarmLocation(
                        qMinion,
                        Program.Q.Width,
                        (int)Program.Q.Range);

                    if (minionPrediction.HitNumber >= qPred)
                    {
                        Program.Q.Cast(minionPrediction.CastPosition);
                    }
                }
            }

            var useCard = Essentials.LaneClearMenu["useCard"].Cast <CheckBox>().CurrentValue;

            if (useCard)
            {
                var chooser = Essentials.LaneClearMenu["chooser"].Cast <ComboBox>().SelectedText;
                var minion  =
                    EntityManager.MinionsAndMonsters.GetLaneMinions(
                        EntityManager.UnitTeam.Enemy,
                        Player.Instance.ServerPosition,
                        Player.Instance.AttackRange + 100).ToArray();

                if (!minion.Any())
                {
                    return;
                }

                switch (chooser)
                {
                case "Smart":
                    var redCardKillableMinions = minion.Count(
                        target => target.Distance(minion.FirstOrDefault()) <= 200 &&
                        target.Health <=
                        DamageLibrary.PredictWDamage(target, Cards.Red));
                    var selectedCard = Cards.None;

                    if (selectedCard == Cards.None && Player.Instance.ManaPercent < Essentials.LaneClearMenu["manaW"].Cast <Slider>().CurrentValue)
                    {
                        selectedCard = Cards.Blue;
                    }

                    if (selectedCard == Cards.None && redCardKillableMinions >= Essentials.LaneClearMenu["enemyW"].Cast <Slider>().CurrentValue)
                    {
                        selectedCard = Cards.Red;
                    }

                    if (selectedCard != Cards.None)
                    {
                        SelectCard(minion.FirstOrDefault(), selectedCard);
                    }
                    break;

                case "Yellow":
                    SelectCard(minion.FirstOrDefault(), Cards.Yellow);
                    break;

                case "Red":
                    SelectCard(minion.FirstOrDefault(), Cards.Red);
                    break;

                case "Blue":
                    SelectCard(minion.FirstOrDefault(), Cards.Blue);
                    break;
                }
            }
        }