Beispiel #1
0
 public static bool InAutoAttackRange(Obj_AI_Base Target)
 {
     if (!Program.IsValid(Target))
     {
         return(false);
     }
     return(Player.Distance3D(Target) <= GetAutoAttackRange(Player, Target));
 }
Beispiel #2
0
        private static int CountEnemyInRange(Obj_AI_Hero target, float range)
        {
            int count = 0;

            foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => myHero.Distance3D(enemy, true) <= range * range && enemy.IsEnemy && enemy.IsVisible && !enemy.IsDead))
            {
                count = count + 1;
            }
            return(count);
        }
Beispiel #3
0
        private static void FlashQCombo()
        {
            ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            var target = TargetSelector.GetTarget(Q.Range + FlashRange - 25, TargetSelector.DamageType.Magical);

            if (Player.Distance3D(target) > Q.Range)
            {
                if (FlashSlot != SpellSlot.Unknown && Player.Spellbook.CanUseSpell(FlashSlot) == SpellState.Ready)
                {
                    if (Q.IsReady())
                    {
                        Player.Spellbook.CastSpell(FlashSlot, target.ServerPosition);
                        Q.Cast(target.ServerPosition);
                    }
                    else
                    {
                        Q.StartCharging();
                    }
                }
            }
        }
Beispiel #4
0
        private static void FlashQCombo()
        {
            Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            var target = TargetSelector.GetTarget(Q2.Range, TargetSelector.DamageType.Magical);

            if (Player.Distance3D(target) > Q.Range)
            {
                if (FlashSlot != SpellSlot.Unknown && Player.Spellbook.CanUseSpell(FlashSlot) == SpellState.Ready && Q.IsReady())
                {
                    Q2.UpdateSourcePosition(V2E(ObjectManager.Player.Position, target.Position, FlashRange).To3D());
                    var predPos = Q2.GetPrediction(target);
                    if (predPos.Hitchance != HitChance.VeryHigh) //What does "Madlife" mean?
                    {
                        return;
                    }
                    Player.Spellbook.CastSpell(FlashSlot, predPos.CastPosition);
                    Q.Cast(predPos.CastPosition);
                }
            }
        }
Beispiel #5
0
        static void Combo()
        {
            bool useW = W.IsReady() && menu.SubMenu("combo").Item("UseW").GetValue <bool>();
            bool useR = R.IsReady() && menu.SubMenu("combo").Item("UseR").GetValue <bool>();
            // >= Config.Item("QmanaC").GetValue<Slider>().Value
            Obj_AI_Hero targetW = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
            Obj_AI_Hero targetR = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

            if (useW && (player.Mana / player.MaxMana * 100) >= menu.Item("WmanaC").GetValue <Slider>().Value)
            {
                if (!menu.SubMenu("combo").Item("UseWE").GetValue <bool>() || targetW.Distance3D(player) > 600)
                {
                    W.CastIfHitchanceEquals(targetW, HitChance.Medium);
                }
            }
            if (useR)
            {
                Console.WriteLine(CorrectCountAlliesInRange(targetR, 250));
                if (CorrectCountAlliesInRange(targetR, 250) >= menu.Item("RSlider").GetValue <Slider>().Value)
                {
                    R.CastIfHitchanceEquals(targetR, HitChance.High);
                }
            }
        }
Beispiel #6
0
        private Obj_AI_Hero GetTarget()
        {
            if (Master.Program.IsValid(newTarget, Range))
            {
                return(newTarget);
            }
            Obj_AI_Hero bestTarget = null;

            if (Config.SubMenu("TS").Item("TS_Mode").GetValue <StringList>().SelectedIndex == 0)
            {
                float bestRatio = 0;
                foreach (var Obj in ObjectManager.Get <Obj_AI_Hero>().Where(i => Master.Program.IsValid(i, Range)))
                {
                    float Prior = 1;
                    switch (Config.SubMenu("TS").Item("TS_Prior" + Obj.ChampionName).GetValue <Slider>().Value)
                    {
                    case 2:
                        Prior = 1.5f;
                        break;

                    case 3:
                        Prior = 1.75f;
                        break;

                    case 4:
                        Prior = 2;
                        break;

                    case 5:
                        Prior = 2.5f;
                        break;
                    }
                    var Ratio = 100 / (1 + Obj.Health) * Prior;
                    if (Ratio > bestRatio)
                    {
                        bestRatio  = Ratio;
                        bestTarget = Obj;
                    }
                }
            }
            else
            {
                foreach (var Obj in ObjectManager.Get <Obj_AI_Hero>().Where(i => Master.Program.IsValid(i, Range)))
                {
                    if (bestTarget == null)
                    {
                        bestTarget = Obj;
                    }
                    else
                    {
                        switch (Config.SubMenu("TS").Item("TS_Mode").GetValue <StringList>().SelectedIndex)
                        {
                        case 1:
                            if (Obj.BaseAttackDamage + Obj.FlatPhysicalDamageMod < bestTarget.BaseAttackDamage + bestTarget.FlatPhysicalDamageMod)
                            {
                                bestTarget = Obj;
                            }
                            break;

                        case 2:
                            if (Obj.FlatMagicDamageMod < bestTarget.FlatMagicDamageMod)
                            {
                                bestTarget = Obj;
                            }
                            break;

                        case 3:
                            if (Obj.Health - Player.CalcDamage(Obj, Damage.DamageType.Physical, Obj.Health) < bestTarget.Health - Player.CalcDamage(bestTarget, Damage.DamageType.Physical, bestTarget.Health))
                            {
                                bestTarget = Obj;
                            }
                            break;

                        case 4:
                            if (Obj.Health - Player.CalcDamage(Obj, Damage.DamageType.Magical, Obj.Health) < bestTarget.Health - Player.CalcDamage(bestTarget, Damage.DamageType.Magical, bestTarget.Health))
                            {
                                bestTarget = Obj;
                            }
                            break;

                        case 5:
                            if (Obj.Health < bestTarget.Health)
                            {
                                bestTarget = Obj;
                            }
                            break;

                        case 6:
                            if (Player.Distance3D(Obj) < Player.Distance3D(bestTarget))
                            {
                                bestTarget = Obj;
                            }
                            break;

                        case 7:
                            if (Obj.Position.Distance(Game.CursorPos) + 50 < bestTarget.Position.Distance(Game.CursorPos))
                            {
                                bestTarget = Obj;
                            }
                            break;
                        }
                    }
                }
            }
            return(bestTarget);
        }