Example #1
0
 private bool RLogic(UltimateModeType mode, HitChance hitChance, Obj_AI_Hero target)
 {
     try
     {
         if (target == null || !Ultimate.IsActive(mode))
         {
             return(false);
         }
         var pred = CPrediction.Circle(R, target, hitChance);
         if (pred.TotalHits > 0)
         {
             if (Ultimate.Check(mode, pred.Hits))
             {
                 _lastRCast     = Game.Time;
                 _lastRPosition = pred.CastPosition;
                 R.Cast(pred.CastPosition);
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return(false);
 }
Example #2
0
 private bool RLogic(UltimateModeType mode, HitChance hitChance, Obj_AI_Hero target)
 {
     try
     {
         if (Q.IsCharging || target == null || !Ultimate.IsActive(mode))
         {
             return(false);
         }
         var pred = R.GetPrediction(target);
         if (pred.Hitchance >= hitChance)
         {
             var hits = GameObjects.EnemyHeroes.Where(x => x.Distance(target) <= _rSpreadRadius).ToList();
             if (Ultimate.Check(mode, hits))
             {
                 R.Cast(pred.CastPosition);
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return(false);
 }
Example #3
0
 private bool RLogic(UltimateModeType mode, Obj_AI_Hero target)
 {
     try
     {
         if (Ultimate.IsActive(mode))
         {
             var pred = CPrediction.Line(R, target, R.GetHitChance("combo"));
             if (pred.TotalHits > 0 && Ultimate.Check(mode, pred.Hits))
             {
                 R.Cast(pred.CastPosition);
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return(false);
 }
Example #4
0
 private bool RLogic(UltimateModeType mode, AIHeroClient target)
 {
     try
     {
         if (Ultimate.IsActive(mode))
         {
             var pred = CPrediction.Circle(R, target, HitChance.High, false);
             if (pred.TotalHits > 0 && Ultimate.Check(mode, pred.Hits))
             {
                 R.Cast(pred.CastPosition);
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return(false);
 }
 private bool RLogic(UltimateModeType mode, Obj_AI_Hero target)
 {
     try
     {
         if (Ultimate.IsActive(mode))
         {
             var hits = GetRHits(target);
             if (Ultimate.Check(mode, hits.Item2) &&
                 (hits.Item2.Any(h => R.GetDamage(h) * 0.95f > h.Health) ||
                  hits.Item2.Any(h => h.Distance(Player) + 300 < Orbwalking.GetRealAutoAttackRange(h) * 0.9f)))
             {
                 R.Cast(hits.Item3);
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return(false);
 }
Example #6
0
 private bool RLogic(UltimateModeType mode, HitChance hitChance)
 {
     try
     {
         if (Ultimate.IsActive(mode))
         {
             var maxHits = GetMaxRHits(hitChance);
             if (maxHits.Item1.Count > 0 && !maxHits.Item2.Equals(Vector3.Zero))
             {
                 if (Ultimate.Check(mode, maxHits.Item1))
                 {
                     R.Cast(maxHits.Item2);
                     return(true);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
     return(false);
 }
Example #7
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);
                }
            }
        }