Esempio n. 1
0
        public static bool IsRendKillable(this Obj_AI_Base target)
        {
            if (target == null ||
                !target.IsValidTarget(Spells.E.Range + 200) ||
                !target.HasRendBuff() ||
                target.Health <= 0 ||
                !Spells.E.IsReady())
            {
                return(false);
            }

            var hero = target as AIHeroClient;

            if (hero != null)
            {
                if (hero.HasUndyingBuff() || hero.HasSpellShield())
                {
                    return(false);
                }

                if (hero.ChampionName == "Blitzcrank")
                {
                    if (!hero.HasBuff("BlitzcrankManaBarrierCD") && !hero.HasBuff("ManaBarrier"))
                    {
                        return(Damages.GetActualDamage(target) > (target.GetTotalHealth() + (hero.Mana / 2)));
                    }

                    if (hero.HasBuff("ManaBarrier") && !(hero.AllShield > 0))
                    {
                        return(false);
                    }
                }
            }

            return(Damages.GetActualDamage(target) > target.GetTotalHealth());
        }
Esempio n. 2
0
        private static void OnDraw(EventArgs args)
        {
            if (Config.DrawMenu.IsChecked("draw.Q"))
            {
                Circle.Draw(Color.DarkRed, Spells.Q.Range, Player.Instance.Position);
            }

            if (Config.DrawMenu.IsChecked("draw.W"))
            {
                Circle.Draw(Color.DarkRed, Spells.W.Range, Player.Instance.Position);
            }

            if (Config.DrawMenu.IsChecked("draw.E"))
            {
                Circle.Draw(Color.DarkRed, Spells.E.Range, Player.Instance.Position);
            }

            if (Config.DrawMenu.IsChecked("draw.R"))
            {
                Circle.Draw(Color.DarkRed, Spells.R.Range, Player.Instance.Position);
            }

            if (Config.DrawMenu.IsChecked("draw.killableMinions"))
            {
                foreach (var killableMinion in
                         EntityManager.MinionsAndMonsters.GetLaneMinions(
                             EntityManager.UnitTeam.Enemy, Player.Instance.Position, Spells.E.Range)
                         .Where(x => x.IsRendKillable()))
                {
                    Circle.Draw(Color.GreenYellow, 25f, 2f, killableMinion.Position);
                }
            }

            if (Config.DrawMenu.IsChecked("draw.percentage"))
            {
                foreach (var enemy in
                         EntityManager.Heroes.Enemies
                         .Where(x => Player.Instance.Distance(x) <= 2000f && !x.IsDead && x.IsVisible && x.HasRendBuff()))
                {
                    var percent = Math.Floor((Damages.GetActualDamage(enemy) / enemy.GetTotalHealth()) * 100);

                    if (percent >= 100 && !enemy.IsRendKillable())
                    {
                        Drawing.DrawText(enemy.HPBarPosition.X + 140, enemy.HPBarPosition.Y + 5, System.Drawing.Color.Red, "Can't kill!", 20);
                    }
                    else
                    {
                        Drawing.DrawText(enemy.HPBarPosition.X + 140, enemy.HPBarPosition.Y + 5, System.Drawing.Color.White,
                                         enemy.IsRendKillable() ? "Killable!" : percent + "%", 20);
                    }
                }
            }

            if (Config.DrawMenu.IsChecked("draw.stacks"))
            {
                foreach (var enemy in
                         EntityManager.Heroes.Enemies
                         .Where(x => Player.Instance.Distance(x) <= 2000f && !x.IsDead && x.IsVisible && x.HasRendBuff()))
                {
                    var stacks = enemy.GetRendBuff().Count;
                    Drawing.DrawText(enemy.Position.X, enemy.Position.Y, System.Drawing.Color.White, "Stacks: " + stacks);
                }
            }

            if (Config.DrawMenu.IsChecked("draw.jumpSpots"))
            {
                foreach (var spot in WallJump.JumpSpots.Where(s => Player.Instance.Distance(s[0]) <= 2000))
                {
                    Circle.Draw(Color.DarkGray, 30f, spot[0]);
                }
            }

            if (BalistaPossible && Config.DrawMenu.IsChecked("draw.balista") && Config.BalistaMenu.IsChecked("balista.use"))
            {
                Circle.Draw(Color.Aqua, Config.BalistaMenu.GetValue("balista.distance"), Player.Instance.Position);
            }
        }