Exemple #1
0
 private static void Killsteal()
 {
     if (Spells._q.IsReady())
     {
         // R range because auto-gapclose! (Yes, i'm smart. Give Contrib pls)
         var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Spells._q.GetDamage(target) && Logic.InQRange(target))
             {
                 Spells._q.Cast(target);
             }
         }
     }
     if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
     {
         var targets =
             HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range + Spells._e.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Spells._r.GetDamage(target) && !target.IsInvulnerable &&
                 (Player.Distance(target.Position) <= 1870) && (Player.Distance(target.Position) >= 1600))
             {
                 Spells._e.Cast(target);
                 Utility.DelayAction.Add(60, () => Spells._r.Cast(target));
             }
         }
     }
     if (Spells._w.IsReady())
     {
         var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Spells._w.GetDamage(target) && Logic.InWRange(target))
             {
                 Spells._w.Cast();
             }
         }
     }
     if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
     {
         var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Dmg.Rdame(target, target.Health) && !target.IsInvulnerable)
             {
                 Spells._r.Cast(target.Position);
             }
         }
     }
     if (Spells.Ignite.IsReady())
     {
         var target = TargetSelector.GetTarget(600f, DamageType.True);
         if (target.IsValidTarget(600f) && Dmg.IgniteDamage(target) >= target.Health)
         {
             Player.Spellbook.CastSpell(Spells.Ignite, target);
         }
     }
 }
Exemple #2
0
        public static void ComboLogic()
        {
            {
                var targetR = TargetSelector.GetTarget(250 + Program.Player.AttackRange + 70, DamageType.Physical);
                if (Spells._r.IsReady() && Spells._r.Instance.Name == Program.IsFirstR && MenuConfig.AlwaysR &&
                    targetR != null)
                {
                    Logic.ForceR();
                }

                if (Spells._w.IsReady() && Logic.InWRange(targetR) && targetR != null)
                {
                    Spells._w.Cast();
                }
                if (Spells._r.IsReady() && Spells._r.Instance.Name == Program.IsFirstR && Spells._w.IsReady() &&
                    targetR != null &&
                    Spells._e.IsReady() &&
                    targetR.IsValidTarget() && !targetR.IsZombie && (Dmg.IsKillableR(targetR) || MenuConfig.AlwaysR))
                {
                    if (!Logic.InWRange(targetR))
                    {
                        Spells._e.Cast(targetR.Position);
                        Logic.ForceR();
                        Utility.DelayAction.Add(200, Logic.ForceW);
                        Utility.DelayAction.Add(30, () => Logic.ForceCastQ(targetR));
                    }
                }

                else if (Spells._w.IsReady() && Spells._e.IsReady())
                {
                    if (targetR.IsValidTarget() && targetR != null && !targetR.IsZombie && !Logic.InWRange(targetR))
                    {
                        Spells._e.Cast(targetR.Position);
                        Utility.DelayAction.Add(10, Logic.ForceItem);
                        if (Logic.InWRange(targetR))
                        {
                            Utility.DelayAction.Add(100, Logic.ForceW);
                        }
                        Utility.DelayAction.Add(30, () => Logic.ForceCastQ(targetR));
                    }
                }
                else if (Spells._e.IsReady())
                {
                    if (targetR != null && targetR.IsValidTarget() && !targetR.IsZombie && !Logic.InWRange(targetR))
                    {
                        Spells._e.Cast(targetR.Position);
                    }
                }
            }
        }
Exemple #3
0
 private static void Drawing_OnEndScene(EventArgs args)
 {
     foreach (
         var enemy in
         ObjectManager.Get <AIHeroClient>()
         .Where(ene => ene.IsValidTarget() && !ene.IsZombie))
     {
         if (MenuConfig.Dind)
         {
             var ezkill = Spells._r.IsReady() && IsLethal(enemy)
                 ? new ColorBGRA(0, 255, 0, 120)
                 : new ColorBGRA(255, 255, 0, 120);
             Indicator.unit = enemy;
             Indicator.drawDmg(Dmg.GetComboDamage(enemy), ezkill);
         }
     }
 }
Exemple #4
0
 public static bool IsLethal(Obj_AI_Base unit)
 {
     return(Dmg.Totaldame(unit) / 1.65 >= unit.Health);
 }
Exemple #5
0
        private static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            var spellName = args.SData.Name;

            if (!sender.IsMe || !Orbwalking.IsAutoAttack(spellName))
            {
                return;
            }

            if (args.Target is Obj_AI_Minion)
            {
                Lane.LaneLogic();
            }

            var @base = args.Target as Obj_AI_Turret;

            if (@base != null)
            {
                if (@base.IsValid && args.Target != null && Spells._q.IsReady() && MenuConfig.LaneQ &&
                    Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear))
                {
                    Spells._q.Cast(@base);
                }
            }

            var hero = args.Target as AIHeroClient;

            if (hero == null)
            {
                return;
            }
            var target = hero;

            if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
            {
                if (target.Health < Dmg.Rdame(target, target.Health) + Player.GetAutoAttackDamage(target) &&
                    target.Health > Player.GetAutoAttackDamage(target))
                {
                    Spells._r.Cast(target.Position);
                }
            }
            if (Spells._w.IsReady())
            {
                if (target.Health < Spells._w.GetDamage(target) + Player.GetAutoAttackDamage(target) &&
                    target.Health > Player.GetAutoAttackDamage(target))
                {
                    Spells._w.Cast();
                }
            }
            if (Spells._q.IsReady())
            {
                if (target.Health < Spells._q.GetDamage(target) + Player.GetAutoAttackDamage(target) &&
                    target.Health > Player.GetAutoAttackDamage(target))
                {
                    Spells._q.Cast(target);
                }
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                if (Spells._e.IsReady())
                {
                    Spells._e.Cast(target.Position);
                }

                if (Spells._w.IsReady() && Logic.InWRange(target))
                {
                    Spells._w.Cast();
                }

                if (Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(0, () => Logic.ForceCastQ(target));
                }
            }


            if (MenuConfig.fastHKey)
            {
                if (HasTitan())
                {
                    CastTitan();
                    return;
                }
                if (Spells._w.IsReady() && Logic.InWRange(target))
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, Logic.ForceW);
                    Utility.DelayAction.Add(2, () => Logic.ForceCastQ(target));
                }
                else if (Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target));
                }
                else if (Spells._e.IsReady() && !Orbwalking.InAutoAttackRange(target) && !Logic.InWRange(target))
                {
                    Spells._e.Cast(target.Position);
                }
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                if (HasTitan())
                {
                    CastTitan();
                    return;
                }
                if (_qstack == 2 && Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target));
                }
            }

            if (!MenuConfig.burstKey)
            {
                if (HasTitan())
                {
                    CastTitan();
                    return;
                }
                if (Spells._w.IsReady())
                {
                    Spells._w.Cast(target.Position);
                }
                if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, Logic.ForceR2);
                }
                else if (Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target));
                }
            }
        }
Exemple #6
0
        public static void BurstLogic()
        {
            var target = TargetSelector.SelectedTarget;

            if (target != null && target.IsValidTarget() && !target.IsZombie)
            {
                // Flash
                if (target.Health < Dmg.Totaldame(target) || MenuConfig.AlwaysF)
                {
                    if ((Program.Player.Distance(target.Position) <= 700) && (Program.Player.Distance(target.Position) >= 600) && Program.Player.Spellbook.GetSpell(Spells.Flash).IsReady() && Spells._r.IsReady() && Spells._e.IsReady() && Spells._w.IsReady())
                    {
                        Logic.CastYoumoo();
                        if (Spells._e.IsReady() && Spells._r.IsReady() && Spells._r.Instance.Name == Program.IsFirstR)
                        {
                            Spells._e.Cast(target.Position);
                            Spells._r.Cast();
                        }
                        if (Program.Player.Spellbook.GetSpell(Spells.Flash).IsReady())
                        {
                            Utility.DelayAction.Add(10, () => Program.Player.Spellbook.CastSpell(Spells.Flash, target.Position));
                        }
                        if (Spells._w.IsReady())
                        {
                            Spells._w.Cast(target);
                            Utility.DelayAction.Add(35, Logic.CastHydra);
                        }
                        if (Spells._r.IsReady() && Spells._r.Instance.Name == Program.IsSecondR)
                        {
                            Spells._r.Cast(target.ServerPosition);
                        }
                        if (Spells._q.IsReady())
                        {
                            Utility.DelayAction.Add(150, () => Logic.ForceCastQ(target));
                        }
                    }
                }
                // Burst
                if ((Program.Player.Distance(target.Position) <= Spells._e.Range + Program.Player.AttackRange + Program.Player.BoundingRadius - 20))
                {
                    if (Spells._e.IsReady())
                    {
                        Spells._e.Cast(target.Position);
                    }
                    Logic.CastYoumoo();
                    if (Spells._r.IsReady())
                    {
                        Logic.ForceR();
                    }
                    Utility.DelayAction.Add(160, Logic.ForceW);
                    Utility.DelayAction.Add(70, Logic.ForceItem);
                    Utility.DelayAction.Add(70, Logic.CastHydra);
                    if (Spells._r.IsReady() && Spells._r.Instance.Name == Program.IsSecondR)
                    {
                        Spells._r.Cast(target.ServerPosition);
                    }
                    if (Spells._q.IsReady())
                    {
                        Utility.DelayAction.Add(150, () => Logic.ForceCastQ(target));
                    }
                }
            }
        }