private void RLogicSingle(UltimateModeType mode)
 {
     try
     {
         if (Ultimate.ShouldSingle(mode))
         {
             foreach (var target in
                      GameObjects.EnemyHeroes.Where(
                          t =>
                          Ultimate.CheckSingle(mode, t) &&
                          (R.GetDamage(t) * 0.95f > t.Health ||
                           t.Distance(Player) + 300 < Orbwalking.GetRealAutoAttackRange(t) * 0.8f)))
             {
                 var hits = GetRHits(target);
                 if (hits.Item1 > 0)
                 {
                     R.Cast(hits.Item3);
                     break;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #2
0
 private void RLogicSingle(UltimateModeType mode, HitChance hitChance)
 {
     try
     {
         if (Ultimate.ShouldSingle(mode))
         {
             return;
         }
         foreach (var t in GameObjects.EnemyHeroes.Where(t => Ultimate.CheckSingle(mode, t)))
         {
             var pred = CPrediction.Circle(R, t, hitChance);
             if (pred.TotalHits > 0)
             {
                 _lastRCast     = Game.Time;
                 _lastRPosition = pred.CastPosition;
                 R.Cast(pred.CastPosition);
                 break;
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #3
0
 private void RLogicSingle(UltimateModeType mode)
 {
     try
     {
         if (Ultimate.ShouldSingle(mode))
         {
             foreach (var target in GameObjects.EnemyHeroes.Where(t => Ultimate.CheckSingle(mode, t)))
             {
                 var pred = CPrediction.Line(R, target, R.GetHitChance("combo"));
                 if (pred.TotalHits > 0)
                 {
                     R.Cast(pred.CastPosition);
                     break;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #4
0
 private void RLogicSingle(UltimateModeType mode, HitChance hitChance)
 {
     try
     {
         if (Q.IsCharging || !Ultimate.ShouldSingle(mode))
         {
             return;
         }
         foreach (var t in GameObjects.EnemyHeroes.Where(t => Ultimate.CheckSingle(mode, t)))
         {
             var pred = R.GetPrediction(t);
             if (pred.Hitchance >= hitChance)
             {
                 R.Cast(pred.CastPosition);
                 break;
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #5
0
 private void RLogicSingle(UltimateModeType mode, HitChance hitChance, bool face = true)
 {
     try
     {
         if (Ultimate.ShouldSingle(mode))
         {
             foreach (var target in
                      Targets.Where(
                          t => (!face || t.IsFacing(Player)) && R.CanCast(t) && Ultimate.CheckSingle(mode, t)))
             {
                 var pred = R.GetPrediction(target, true);
                 if (pred.Hitchance >= hitChance)
                 {
                     R.Cast(pred.CastPosition);
                     break;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #6
0
        protected override void OnPostUpdate()
        {
            if (Ultimate.IsActive(UltimateModeType.Flash) && R.IsReady() && SummonerManager.Flash.IsReady())
            {
                if (Ultimate.ShouldMove(UltimateModeType.Flash))
                {
                    Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius);
                }
                var targets =
                    Targets.Where(
                        t =>
                        t.Distance(Player) < (R.Range + R.Width + SummonerManager.Flash.Range) * 1.5f &&
                        !t.IsDashing() &&
                        (t.IsFacing(Player)
                                ? t.Distance(Player)
                                : R.GetPrediction(t).UnitPosition.Distance(Player.Position)) > R.Range);
                var backwards = Menu.Item(Menu.Name + ".ultimate.backwards").GetValue <bool>();
                foreach (var target in targets)
                {
                    var flashPos = Player.Position.Extend(target.Position, SummonerManager.Flash.Range);
                    var maxHits  = GetMaxRHits(HitChance.High, flashPos);
                    if (maxHits.Item1.Count > 0)
                    {
                        var castPos = backwards
                            ? Player.Position.Extend(maxHits.Item2, -(Player.Position.Distance(maxHits.Item2) * 2))
                            : Player.Position.Extend(maxHits.Item2, Player.Position.Distance(maxHits.Item2));
                        if (Ultimate.Check(UltimateModeType.Flash, maxHits.Item1))
                        {
                            if (R.Cast(castPos))
                            {
                                Utility.DelayAction.Add(300 + Game.Ping / 2, () => SummonerManager.Flash.Cast(flashPos));
                            }
                        }
                        else if (Ultimate.ShouldSingle(UltimateModeType.Flash))
                        {
                            if (
                                maxHits.Item1.Where(hit => Ultimate.CheckSingle(UltimateModeType.Flash, hit))
                                .Any(hit => R.Cast(castPos)))
                            {
                                Utility.DelayAction.Add(300 + Game.Ping / 2, () => SummonerManager.Flash.Cast(flashPos));
                            }
                        }
                    }
                }
            }

            if (Ultimate.IsActive(UltimateModeType.Assisted) && R.IsReady())
            {
                if (Ultimate.ShouldMove(UltimateModeType.Assisted))
                {
                    Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius);
                }

                if (!RLogic(UltimateModeType.Assisted, R.GetHitChance("combo")))
                {
                    RLogicSingle(UltimateModeType.Assisted, R.GetHitChance("combo"), false);
                }
            }

            if (Ultimate.IsActive(UltimateModeType.Auto) && R.IsReady())
            {
                if (!RLogic(UltimateModeType.Auto, R.GetHitChance("combo")))
                {
                    RLogicSingle(UltimateModeType.Auto, R.GetHitChance("combo"));
                }
            }

            if (HeroListManager.Enabled("w-immobile") && W.IsReady())
            {
                var target =
                    Targets.FirstOrDefault(
                        t =>
                        HeroListManager.Check("w-immobile", t) && BestTargetOnlyManager.Check("w-immobile", W, t) &&
                        Utils.IsImmobile(t));
                if (target != null)
                {
                    Casting.SkillShot(target, W, HitChance.High);
                }
            }
        }