Ejemplo n.º 1
0
 private static void CastR(Obj_AI_Base target)
 {
     if (SpellSlot.R.IsReady() && target.IsValidTarget(SpellManager.R.Range) && Extensions.Distance(Util.myHero, ExpectedEndPosition, true) > Extensions.Distance(target, ExpectedEndPosition, true))
     {
         var extended   = ExpectedEndPosition + (ExpectedEndPosition - target.Position).Normalized() * SpellManager.RKick.Range * 0.5f;
         var realendpos = target.Position + (target.Position - Util.myHero.Position).Normalized() * SpellManager.RKick.Range;
         var info       = realendpos.To2D().ProjectOn(target.Position.To2D(), extended.To2D());
         if (info.IsOnSegment && Extensions.Distance(info.SegmentPoint, ExpectedEndPosition.To2D(), true) <= Math.Pow(SpellManager.RKick.Range * 0.5f, 2))
         {
             SpellManager.CastR(target);
         }
     }
 }
Ejemplo n.º 2
0
 private static void Interrupter_OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs e)
 {
     if (sender.IsValidTarget(TargetSelector.Range) && sender.IsEnemy && sender is AIHeroClient)
     {
         if (MenuManager.MiscMenu.GetCheckBoxValue("Interrupter"))
         {
             if (SpellSlot.R.IsReady())
             {
                 SpellManager.CastQ(sender);
                 SpellManager.CastR(sender);
                 GapCloseWithWard(sender);
             }
         }
     }
 }
Ejemplo n.º 3
0
 private static void RFlash(AIHeroClient target)
 {
     if (SpellManager.FlashIsReady)
     {
         if (target.Distance(Util.MyHero, true) <= SpellManager.R.RangeSquared)
         {
             _allySelected               = null;
             _positionSelected           = EndPosition;
             _lastSetPositionTime        = Game.Time;
             _lastRFlashInsec            = Game.Time;
             TargetSelector.ForcedTarget = target;
             SpellManager.CastR(target);
         }
     }
 }
 public static void Execute()
 {
     foreach (AIHeroClient enemy in EntityManager.Heroes.Enemies.Where(m => m.IsValidTarget(TargetSelector.Range) && m.HealthPercent < 40))
     {
         var result = enemy.GetBestCombo();
         if (result.IsKillable)
         {
             if (Menu.GetCheckBoxValue("Q") && result.CanKillWith(SpellSlot.Q))
             {
                 SpellManager.CastQ(enemy);
             }
             if (Menu.GetCheckBoxValue("E") && result.CanKillWith(SpellSlot.E))
             {
                 SpellManager.CastE(enemy);
             }
             if (Menu.GetCheckBoxValue("R") && SpellSlot.R.GetSpellDamage(enemy) >= enemy.TotalShieldHealth())
             {
                 SpellManager.CastR(enemy);
             }
             var custom = (Menu.GetCheckBoxValue("Q") && result.CanKillWith(SpellSlot.Q)) || (Menu.GetCheckBoxValue("E") && result.CanKillWith(SpellSlot.E)) || (Menu.GetCheckBoxValue("R") && result.CanKillWith(SpellSlot.R));
             if (Menu.GetCheckBoxValue("W") && custom)
             {
                 if (Menu.GetCheckBoxValue("Ward"))
                 {
                     Champion.GapCloseWithWard(enemy);
                 }
                 else
                 {
                     Champion.GapCloseWithoutWard(enemy);
                 }
             }
         }
         if (Menu.GetCheckBoxValue("Ignite") && SpellManager.IgniteIsReady && Util.MyHero.GetSummonerSpellDamage(enemy, DamageLibrary.SummonerSpells.Ignite) >= enemy.Health)
         {
             SpellManager.Ignite.Cast(enemy);
         }
         if (Menu.GetCheckBoxValue("Smite") && SpellManager.CanUseSmiteOnHeroes && enemy.IsInSmiteRange() && Util.MyHero.GetSummonerSpellDamage(enemy, DamageLibrary.SummonerSpells.Smite) >= enemy.Health)
         {
             Util.MyHero.Spellbook.CastSpell(SpellManager.Smite.Slot, enemy);
         }
     }
 }
Ejemplo n.º 5
0
 private static void Game_OnTick(EventArgs args)
 {
     TargetSelector.Range = 1000f;
     if (SpellSlot.Q.IsReady() && SpellSlot.Q.IsFirstSpell())
     {
         TargetSelector.Range = 1300f;
     }
     if (SpellSlot.Q.IsReady() && !SpellSlot.Q.IsFirstSpell() && _Q.Target != null)
     {
         TargetSelector.Range = 1500f;
     }
     if (!Insec.IsActive)
     {
         var t = _R.BestHitR(MenuManager.MiscMenu.GetSliderValue("R.Hit"));
         if (MenuManager.MiscMenu.GetSliderValue("R.Hit") <= t.Item1)
         {
             SpellManager.CastR(t.Item2);
         }
     }
 }
Ejemplo n.º 6
0
        public static void Execute()
        {
            if (IsReady || _R.IsRecentKick)
            {
                var target = TargetSelector.Target;
                if (target.IsValidTarget(WardManager.WardRange))
                {
                    if (Util.MyHero.IsInAutoAttackRange(target) && Champion.PassiveStack > 2 - Menu.GetSliderValue("Star.Stack"))
                    {
                        return;
                    }
                    if (Mode == 0 && Menu.GetCheckBoxValue("W") && Menu.GetCheckBoxValue("Star.Ward") && WardManager.CanWardJump && Insec.IsReady)
                    {
                        Insec.Execute();
                    }
                    if (WardManager.IsTryingToJump)
                    {
                        return;
                    }
                    if (Menu.GetCheckBoxValue("Q") && SpellSlot.Q.IsReady())
                    {
                        if (SpellSlot.Q.IsFirstSpell())
                        {
                            switch (Mode)
                            {
                            case 0:
                                SpellManager.CastQ1(target);
                                break;

                            case 1:
                                if (target.HaveR())
                                {
                                    var pred = SpellManager.Q1.GetPrediction(target);
                                    if (!pred.CollisionObjects.Any())
                                    {
                                        SpellManager.Q1.Cast(pred.CastPosition);
                                    }
                                }
                                break;
                            }
                        }
                        else
                        {
                            if (!_R.IsRecentKick && !SpellSlot.R.IsReady())
                            {
                                SpellManager.CastQ2(target);
                            }
                        }
                    }
                    if (Menu.GetCheckBoxValue("E") && SpellSlot.E.IsReady())
                    {
                        if (!SpellSlot.R.IsReady())
                        {
                            SpellManager.CastE(target);
                        }
                    }
                    if (SpellSlot.R.IsReady())
                    {
                        switch (Mode)
                        {
                        case 0:
                            if (target.HaveQ() || _Q.WillHit(target))
                            {
                                SpellManager.CastR(target);
                            }
                            break;

                        case 1:
                            if (SpellManager.CanCastQ1)
                            {
                                var endpos = target.Position + (target.Position - Util.MyHero.Position).Normalized() * SpellManager.RKick.Range;
                                SpellManager.Q1.SourcePosition   = endpos;
                                SpellManager.Q1.RangeCheckSource = endpos;
                                var pred = SpellManager.Q1.GetPrediction(target);
                                if (pred.HitChancePercent >= 5)
                                {
                                    SpellManager.CastR(target);
                                }
                            }
                            break;
                        }
                    }
                }
            }
            else
            {
                NormalCombo.Execute();
            }
        }
Ejemplo n.º 7
0
        public static void Execute()
        {
            var target = TargetSelector.Target;

            if (target.IsValidTarget())
            {
                if (Util.MyHero.HealthPercent <= Menu.GetSliderValue("Normal.W") && SpellSlot.W.IsReady())
                {
                    if (SpellSlot.W.IsFirstSpell())
                    {
                        if (target.IsInAutoAttackRange(Util.MyHero) || Util.MyHero.IsInAutoAttackRange(target))
                        {
                            SpellManager.CastW1(Util.MyHero);
                        }
                    }
                    else
                    {
                        if (Util.MyHero.IsInAutoAttackRange(target))
                        {
                            SpellManager.CastW2();
                        }
                    }
                }
                if (Util.MyHero.IsInAutoAttackRange(target) && Champion.PassiveStack > 2 - Menu.GetSliderValue("Normal.Stack"))
                {
                    return;
                }
                if (Menu.GetCheckBoxValue("Normal.R"))
                {
                    SpellManager.CastR(target);
                }
                var t = _R.BestHitR(Menu.GetSliderValue("Normal.R.Hit"));
                if (Menu.GetSliderValue("Normal.R.Hit") <= t.Item1)
                {
                    SpellManager.CastR(t.Item2);
                }
                if (Menu.GetCheckBoxValue("E"))
                {
                    SpellManager.CastE(target);
                }
                if (Menu.GetCheckBoxValue("Q") && SpellSlot.Q.IsReady())
                {
                    if (SpellSlot.Q.IsFirstSpell())
                    {
                        SpellManager.CastQ1(target);
                    }
                    else if (!target.HaveR())
                    {
                        SpellManager.CastQ2(target);
                    }
                }
                if (Menu.GetCheckBoxValue("W") && SpellSlot.W.IsReady() && !SpellSlot.W.IsFirstSpell() && Util.MyHero.IsInAutoAttackRange(target))
                {
                    SpellManager.CastW2();
                }
                if (_Q.IsDashing || _Q.IsWaitingMissile || _Q.HasQ2Buff)
                {
                    return;
                }
                if (Util.MyHero.Distance(target, true) > Math.Pow(500, 2) && Menu.GetCheckBoxValue("W") && SpellManager.CanCastW1)
                {
                    if (Menu.GetCheckBoxValue("Normal.Ward"))
                    {
                        Champion.GapCloseWithWard(target);
                    }
                    else
                    {
                        Champion.GapCloseWithoutWard(target);
                    }
                }
            }
        }