Example #1
0
 private void OnEnemyGapcloser(object sender, GapcloserManagerArgs args)
 {
     try
     {
         if (args.UniqueId.Equals("q-gapcloser") && Q.IsReady() &&
             BestTargetOnlyManager.Check("q-gapcloser", Q, args.Hero))
         {
             if (args.End.Distance(Player.Position) <= Q.Range && !SpellCollision(Q, args.Hero))
             {
                 var delay = (int)(args.EndTime - Game.Time - Q.Delay - 0.1f);
                 if (delay > 0)
                 {
                     Utility.DelayAction.Add(delay * 1000, () => Q.Cast(args.End));
                 }
                 else
                 {
                     Q.Cast(args.End);
                 }
             }
         }
         if (args.UniqueId.Equals("e-gapcloser") && E.IsReady() &&
             BestTargetOnlyManager.Check("e-gapcloser", E, args.Hero))
         {
             E.Cast(args.End.Extend(Player.Position, args.End.Distance(Player.Position) + E.Range));
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #2
0
        protected override void OnPostUpdate()
        {
            if (HeroListManager.Enabled("r-immobile") && R.IsReady())
            {
                var target =
                    GameObjects.EnemyHeroes.FirstOrDefault(
                        t =>
                        t.IsValidTarget(R.Range) && HeroListManager.Check("r-immobile", t) &&
                        BestTargetOnlyManager.Check("r-immobile", R, t) && Utils.IsImmobile(t));
                if (target != null)
                {
                    Casting.SkillShot(target, R, HitChance.VeryHigh);
                }
            }

            if (W.Level > _wLevel)
            {
                _wLevel = W.Level;
                W.Range = Player.AttackRange + Player.BoundingRadius +
                          GameObjects.EnemyHeroes.Select(e => e.BoundingRadius).DefaultIfEmpty(50).Average() +
                          20f * _wLevel;
            }
            if (R.Level > _rLevel)
            {
                _rLevel = R.Level;
                R.Range = 900f + 300f * _rLevel;
            }
        }
Example #3
0
 private void OnEnemyGapcloser(object sender, GapcloserManagerArgs args)
 {
     try
     {
         if (args.UniqueId.Equals("e-gapcloser") && E.IsReady() &&
             BestTargetOnlyManager.Check("e-gapcloser", E, args.Hero))
         {
             if (args.End.Distance(Player.Position) <= E.Range)
             {
                 E.Cast(args.End);
             }
         }
         if (args.UniqueId.Equals("r-gapcloser") && R.IsReady() &&
             BestTargetOnlyManager.Check("r-gapcloser", R, args.Hero) &&
             Menu.Item(Menu.Name + ".miscellaneous.r-max").GetValue <Slider>().Value > GetRBuffCount())
         {
             if (args.End.Distance(Player.Position) <= R.Range)
             {
                 R.Cast(args.End);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #4
0
        /// <summary>
        /// Setups the misc menu.
        /// </summary>
        private void SetupMiscMenu()
        {
            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            var qImmobileMenu = miscMenu.AddSubMenu(new Menu("Q Immobile", $"{miscMenu.Name}.q-immobile"));

            HeroListManager.AddToMenu(
                qImmobileMenu,
                new HeroListManagerArgs("q-immobile")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(qImmobileMenu, "q-immobile", true);

            miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.q-range", "Q Range")
                             .SetValue(new Slider((int)Q.Range, 500, (int)Q.Range))
                             ).ValueChanged += (sender, args) => { Q.Range = args.GetNewValue <Slider>().Value; };

            miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.w-range", "Card Pick Distance")
                             .SetValue(new Slider((int)W.Range, 500, 800))
                             ).ValueChanged += (sender, args) => { W.Range = args.GetNewValue <Slider>().Value; };

            miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.w-delay", "Card Pick Delay")
                             .SetValue(new Slider(150, 0, 400))
                             ).ValueChanged += (sender, args) => { Cards.Delay = args.GetNewValue <Slider>().Value; };

            miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.mode", "W Mode")
                             .SetValue(new StringList(new[] { "Burst", "Team" }))
                             );

            miscMenu.AddItem(new MenuItem($"{miscMenu.Name}.r-card", "Pick Card on R").SetValue(true));
        }
Example #5
0
 private void OnEnemyGapcloser(object sender, GapcloserManagerArgs args)
 {
     try
     {
         if (args.UniqueId.Equals("e-gapcloser") && E.IsReady() &&
             BestTargetOnlyManager.Check("e-gapcloser", E, args.Hero))
         {
             if (args.End.Distance(Player.Position) <= E.Range)
             {
                 E.Cast(args.End);
             }
         }
         if (string.IsNullOrEmpty(args.UniqueId))
         {
             if (Ultimate.IsActive(UltimateModeType.Gapcloser, args.Hero) &&
                 BestTargetOnlyManager.Check("r-gapcloser", R, args.Hero))
             {
                 RLogic(UltimateModeType.Gapcloser, HitChance.High, args.Hero);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #6
0
 /// <summary>
 /// Post update.
 /// </summary>
 public void PostUpdate()
 {
     if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear ||
         Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)
     {
         if (Cards.Has(CardColor.Red))
         {
             var range   = Player.AttackRange + Player.BoundingRadius * 1.5f;
             var minions = MinionManager.GetMinions(range, MinionTypes.All, MinionTeam.NotAlly);
             var pred    = MinionManager.GetBestCircularFarmLocation(
                 minions.Select(m => m.Position.To2D()).ToList(), 500, range);
             var target = minions.OrderBy(m => m.Distance(pred.Position)).FirstOrDefault();
             if (target != null)
             {
                 Orbwalker.ForceTarget(target);
             }
         }
     }
     if (!Cards.ShouldWait && Cards.Status != SelectStatus.Selecting && Cards.Status != SelectStatus.Selected)
     {
         Orbwalker.ForceTarget(null);
     }
     if (Cards.Status != SelectStatus.Selected)
     {
         if (Menu.Item(Menu.Name + ".manual.blue").GetValue <KeyBind>().Active)
         {
             Cards.Select(CardColor.Blue);
         }
         if (Menu.Item(Menu.Name + ".manual.red").GetValue <KeyBind>().Active)
         {
             Cards.Select(CardColor.Red);
         }
         if (Menu.Item(Menu.Name + ".manual.gold").GetValue <KeyBind>().Active)
         {
             Cards.Select(CardColor.Gold);
         }
     }
     if (HeroListManager.Enabled("q-immobile") && Q.IsReady())
     {
         var target =
             GameObjects.EnemyHeroes.FirstOrDefault(
                 t =>
                 t.IsValidTarget(Q.Range) && HeroListManager.Check("q-immobile", t) &&
                 BestTargetOnlyManager.Check("q-immobile", W, t) && IsImmobile(t));
         if (target != null)
         {
             var best = BestQPosition(
                 target, GameObjects.EnemyHeroes.Select(e => e as Obj_AI_Base).ToList(), HitChance.High);
             if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1)
             {
                 Q.Cast(best.Item2);
             }
         }
     }
 }
Example #7
0
 /// <summary>
 /// Gap closer event
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void GapcloserManager_OnGapcloser(object sender, GapcloserManagerArgs args)
 {
     try
     {
         if (args.UniqueId == "e-gapcloser" && E.IsReady() &&
             BestTargetOnlyManager.Check("e-gapcloser", E, args.Hero) &&
             args.End.Distance(Player.Position) <= E.Range)
         {
             E.Cast(args.End);
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #8
0
 private void OnBuffManagerBuff(object sender, BuffManagerArgs args)
 {
     try
     {
         if (W.IsReady())
         {
             if (args.UniqueId.Equals("w-immobile") && BestTargetOnlyManager.Check("w-immobile", W, args.Hero) &&
                 W.IsInRange(args.Position))
             {
                 W.Cast(args.Position);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #9
0
 private void OnEnemyGapcloser(object sender, GapcloserManagerArgs args)
 {
     try
     {
         if (args.UniqueId == "w-gapcloser" && W.IsReady() &&
             BestTargetOnlyManager.Check("w-gapcloser", W, args.Hero))
         {
             if (args.End.Distance(Player.Position) <= W.Range * 0.9f)
             {
                 W.Cast(args.End);
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #10
0
        /// <summary>
        /// Post update
        /// </summary>
        protected override void OnPostUpdate()
        {
            // Assisted Ultimate
            if (_ultimateManager.IsActive(UltimateModeType.Assisted) && R.IsReady())
            {
                if (_ultimateManager.ShouldMove(UltimateModeType.Assisted))
                {
                    Orbwalking.MoveTo(Game.CursorPos, Orbwalker.HoldAreaRadius);
                }

                if (!CastUltimate(UltimateModeType.Assisted, TargetSelector.GetTarget(R)))
                {
                    CastUltimateSingle(UltimateModeType.Assisted);
                }
            }

            // Auto Ultimate
            if (_ultimateManager.IsActive(UltimateModeType.Auto) && R.IsReady())
            {
                if (!CastUltimate(UltimateModeType.Auto, TargetSelector.GetTarget(R)))
                {
                    CastUltimateSingle(UltimateModeType.Auto);
                }
            }

            // E Immobile targets
            if (HeroListManager.Enabled("e-immobile") && E.IsReady())
            {
                var target = GameObjects.EnemyHeroes.FirstOrDefault(t =>
                                                                    t.IsValidTarget(E.Range) &&
                                                                    HeroListManager.Check("e-immobile", t) &&
                                                                    BestTargetOnlyManager.Check("e-immobile", E, t) &&
                                                                    Utils.IsImmobile(t)
                                                                    );

                if (target != null)
                {
                    E.Cast(target);
                }
            }
        }
Example #11
0
 private void WLogic(HitChance hitChance)
 {
     try
     {
         var ts =
             Targets.FirstOrDefault(
                 t =>
                 W.CanCast(t) &&
                 (_lastQPoisonDelay < Game.Time && GetPoisonBuffEndTime(t) < W.Delay * 1.2 ||
                  _lastQPoisonT == null || _lastQPoisonT.NetworkId != t.NetworkId ||
                  (HeroListManager.Check("w-fleeing", t) && BestTargetOnlyManager.Check("w-fleeing", W, t) &&
                   !t.IsFacing(Player) && t.IsMoving && t.Distance(Player) > 150)));
         if (ts != null)
         {
             Casting.SkillShot(ts, W, hitChance);
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #12
0
 private void OnBuffManagerBuff(object sender, BuffManagerArgs args)
 {
     try
     {
         if (Q.IsReady())
         {
             if (args.UniqueId.Equals("q-immobile") && BestTargetOnlyManager.Check("q-immobile", Q, args.Hero) &&
                 Q.IsInRange(args.Hero))
             {
                 var best = BestQPosition(
                     args.Hero, GameObjects.EnemyHeroes.Select(e => e as Obj_AI_Base).ToList(), HitChance.High);
                 if (!best.Item2.Equals(Vector3.Zero) && best.Item1 >= 1)
                 {
                     Q.Cast(best.Item2);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #13
0
 private void QLogic(HitChance hitChance)
 {
     try
     {
         var ts =
             Targets.FirstOrDefault(
                 t =>
                 Q.CanCast(t) &&
                 (GetPoisonBuffEndTime(t) < Q.Delay * 1.2f ||
                  (HeroListManager.Check("q-fleeing", t) && BestTargetOnlyManager.Check("q-fleeing", Q, t) &&
                   !t.IsFacing(Player) && t.IsMoving && t.Distance(Player) > 150)));
         if (ts != null)
         {
             _lastQPoisonDelay = Game.Time + Q.Delay;
             _lastQPoisonT     = ts;
             Casting.SkillShot(ts, Q, hitChance);
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
Example #14
0
        protected override void AddToMenu()
        {
            _ultimate.AddToMenu(Menu);

            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            ResourceManager.AddToMenu(
                comboMenu,
                new ResourceManagerArgs(
                    "combo-e", ResourceType.Health, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "E",
                DefaultValue = 0
            });
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass-e", ResourceType.Health, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "E",
                DefaultValue = 30
            });
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", "Use E").SetValue(true));

            var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneclearMenu,
                new ResourceManagerArgs(
                    "lane-clear-e", ResourceType.Health, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "E",
                DefaultValue = 45
            });
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e", "Use E").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e-min", "E Min.").SetValue(new Slider(3, 1, 5)));

            var lasthitMenu = Menu.AddSubMenu(new Menu("Last Hit", Menu.Name + ".lasthit"));

            lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".q", "Use Q").SetValue(true));
            lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".q-unkillable", "Q Unkillable").SetValue(true));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".q", "Use Q").SetValue(true));

            var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal"));

            killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            var wGapcloserMenu = miscMenu.AddSubMenu(new Menu("W Gapcloser", miscMenu.Name + "w-gapcloser"));

            GapcloserManager.AddToMenu(
                wGapcloserMenu,
                new HeroListManagerArgs("w-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false,
                Enabled      = false
            }, true);
            BestTargetOnlyManager.AddToMenu(wGapcloserMenu, "w-gapcloser");

            ResourceManager.AddToMenu(
                miscMenu,
                new ResourceManagerArgs(
                    "auto-e", ResourceType.Health, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "E",
                DefaultValue = 65
            });

            miscMenu.AddItem(new MenuItem(miscMenu.Name + ".e-auto", "Auto E Stacking").SetValue(false));

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(Q);
            IndicatorManager.Add(E);
            IndicatorManager.Add(R);
            IndicatorManager.Finale();

            _eStacks = DrawingManager.Add("E Stacks", true);
        }
Example #15
0
        /// <summary>
        /// Menu
        /// </summary>
        protected override void AddToMenu()
        {
            _ultimateManager.AddToMenu(Menu);

            #region Combo Menu
            var comboMenu = Menu.AddSubMenu(new Menu("Combo", string.Format("{0}.combo", Menu.Name)));
            comboMenu.AddItem(new MenuItem(string.Format("{0}.q", comboMenu.Name), "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(string.Format("{0}.q-range", comboMenu.Name), "Q Min. Distance").SetValue(new Slider(570, 525, 590)));
            comboMenu.AddItem(new MenuItem(string.Format("{0}.q-aoe", comboMenu.Name), "Q AoE").SetValue(new Slider(2, 1, 5)));
            comboMenu.AddItem(new MenuItem(string.Format("{0}.w", comboMenu.Name), "Use W").SetValue(true));
            comboMenu.AddItem(new MenuItem(string.Format("{0}.e", comboMenu.Name), "Use E").SetValue(true));

            var comboHitChanceMenu       = comboMenu.AddSubMenu(new Menu("Hitchance", string.Format("{0}.hitchance", comboMenu.Name)));
            var comboHitChanceDictionary = new Dictionary <string, HitChance>
            {
                { "W", HitChance.VeryHigh },
                { "E", HitChance.VeryHigh },
                { "R", HitChance.VeryHigh }
            };
            HitchanceManager.AddToMenu(comboHitChanceMenu, "combo", comboHitChanceDictionary);

            ResourceManager.AddToMenu(comboMenu, new ResourceManagerArgs("combo-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "Q",
                DefaultValue = 5
            });

            ResourceManager.AddToMenu(comboMenu, new ResourceManagerArgs("combo-w", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "W",
                DefaultValue = 15
            });
            #endregion

            #region Harass Menu
            var harassMenu = Menu.AddSubMenu(new Menu("Harass", string.Format("{0}.harass", Menu.Name)));
            harassMenu.AddItem(new MenuItem(string.Format("{0}.q", harassMenu.Name), "Use Q").SetValue(true));
            harassMenu.AddItem(new MenuItem(string.Format("{0}.q-range", harassMenu.Name), "Q Min. Distance").SetValue(new Slider(570, 525, 590)));
            harassMenu.AddItem(new MenuItem(string.Format("{0}.q-aoe", harassMenu.Name), "Q AoE").SetValue(new Slider(2, 1, 5)));
            harassMenu.AddItem(new MenuItem(string.Format("{0}.w", harassMenu.Name), "Use W").SetValue(true));

            var harassHitChanceMenu       = harassMenu.AddSubMenu(new Menu("Hitchance", string.Format("{0}.hitchance", harassMenu.Name)));
            var harassHitChanceDictionary = new Dictionary <string, HitChance>
            {
                { "W", HitChance.High }
            };
            HitchanceManager.AddToMenu(harassHitChanceMenu, "harass", harassHitChanceDictionary);

            ResourceManager.AddToMenu(harassMenu, new ResourceManagerArgs("harass-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "Q",
                DefaultValue = 15
            });

            ResourceManager.AddToMenu(harassMenu, new ResourceManagerArgs("harass-w", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "W",
                DefaultValue = 15
            });
            #endregion

            #region Lane Clear Menu
            var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", string.Format("{0}.lane-clear", Menu.Name)));
            laneclearMenu.AddItem(new MenuItem(string.Format("{0}.q", laneclearMenu.Name), "Use Q").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(string.Format("{0}.q-min", laneclearMenu.Name), "Q Min.").SetValue(new Slider(3, 1, 5)));

            ResourceManager.AddToMenu(laneclearMenu, new ResourceManagerArgs("lane-clear-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "Q",
                Advanced    = true,
                MaxValue    = 101,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    30, 30, 30
                }
            });
            #endregion

            #region Flee Menu
            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", string.Format("{0}.flee", Menu.Name)));
            fleeMenu.AddItem(new MenuItem(string.Format("{0}.e", fleeMenu.Name), "Use E").SetValue(true));
            #endregion

            #region Misc Menu
            // Misc menu
            var miscMenu = Menu.AddSubMenu(new Menu("Misc", string.Format("{0}.miscellaneous", Menu.Name)));

            // Gapcloser menu
            var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", string.Format("{0}.e-gapcloser", miscMenu.Name)));
            GapcloserManager.AddToMenu(eGapcloserMenu, new HeroListManagerArgs("e-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false,
                Enabled      = false
            }, true);
            BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser");

            // Immobile menu
            var eImmobileMenu = miscMenu.AddSubMenu(new Menu("E Immobile", string.Format("{0}.e-immobile", miscMenu.Name)));
            HeroListManager.AddToMenu(eImmobileMenu, new HeroListManagerArgs("e-immobile")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(eImmobileMenu, "e-immobile", true);
            #endregion

            // Indicator manager
            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(W);
            IndicatorManager.Add(R);
            IndicatorManager.Finale();
        }
Example #16
0
        protected override void AddToMenu()
        {
            var ultimateMenu = Ultimate.AddToMenu(Menu);

            ultimateMenu.AddItem(
                new MenuItem(ultimateMenu.Name + ".range", "Range").SetValue(new Slider((int)R.Range, 500, 1200)))
            .ValueChanged +=
                delegate(object sender, OnValueChangeEventArgs args) { R.Range = args.GetNewValue <Slider>().Value; };

            R.Range = Menu.Item(ultimateMenu.Name + ".range").GetValue <Slider>().Value;

            ultimateMenu.AddItem(
                new MenuItem(ultimateMenu.Name + ".radius", "Spread Radius").SetValue(new Slider(450, 100, 600)))
            .ValueChanged +=
                delegate(object sender, OnValueChangeEventArgs args)
            {
                _rSpreadRadius = args.GetNewValue <Slider>().Value;
            };

            _rSpreadRadius = Menu.Item(Menu.Name + ".ultimate.radius").GetValue <Slider>().Value;

            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            HitchanceManager.AddToMenu(
                comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo",
                new Dictionary <string, HitChance>
            {
                { "Q", HitChance.VeryHigh },
                { "E", HitChance.High },
                { "R", HitChance.VeryHigh }
            });

            var comboQMenu = comboMenu.AddSubMenu(new Menu("Q Settings", comboMenu.Name + ".q-settings"));

            comboQMenu.AddItem(new MenuItem(comboQMenu.Name + ".always", "Cast Always").SetValue(true));
            comboQMenu.AddItem(
                new MenuItem(comboQMenu.Name + ".fast-cast-min", "Fast Cast Health <= %").SetValue(new Slider(20)));
            comboQMenu.AddItem(new MenuItem(comboQMenu.Name + ".separator", string.Empty));
            comboQMenu.AddItem(new MenuItem(comboQMenu.Name + ".stacks", "Min. Stacks")).SetValue(new Slider(3, 1, 3));
            comboQMenu.AddItem(new MenuItem(comboQMenu.Name + ".or", "OR"));
            comboQMenu.AddItem(new MenuItem(comboQMenu.Name + ".min", "Min. Hits").SetValue(new Slider(2, 1, 5)));

            var comboEMenu = comboMenu.AddSubMenu(new Menu("E Settings", comboMenu.Name + ".e-settings"));

            comboEMenu.AddItem(new MenuItem(comboEMenu.Name + ".always", "Cast Always").SetValue(false));
            comboEMenu.AddItem(new MenuItem(comboEMenu.Name + ".separator", string.Empty));
            comboEMenu.AddItem(new MenuItem(comboEMenu.Name + ".stacks", "Min. Stacks")).SetValue(new Slider(3, 1, 3));
            comboEMenu.AddItem(new MenuItem(comboEMenu.Name + ".or", "OR"));
            comboEMenu.AddItem(new MenuItem(comboEMenu.Name + ".min", "Min. Hits").SetValue(new Slider(3, 1, 5)));

            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            HitchanceManager.AddToMenu(
                harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.High }, { "E", HitChance.High }
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                DefaultValue = 30
            });

            var harassQMenu = harassMenu.AddSubMenu(new Menu("Q Settings", harassMenu.Name + ".q-settings"));

            harassQMenu.AddItem(new MenuItem(harassQMenu.Name + ".always", "Cast Always").SetValue(true));
            harassQMenu.AddItem(
                new MenuItem(harassQMenu.Name + ".fast-cast-min", "Fast Cast Health <= %").SetValue(new Slider(25)));
            harassQMenu.AddItem(new MenuItem(harassQMenu.Name + ".separator", string.Empty));
            harassQMenu.AddItem(new MenuItem(harassQMenu.Name + ".stacks", "Min. Stacks")).SetValue(new Slider(3, 1, 3));
            harassQMenu.AddItem(new MenuItem(harassQMenu.Name + ".or", "OR"));
            harassQMenu.AddItem(new MenuItem(harassQMenu.Name + ".min", "Min. Hits").SetValue(new Slider(2, 1, 5)));

            var harassEMenu = harassMenu.AddSubMenu(new Menu("E Settings", harassMenu.Name + ".e-settings"));

            harassEMenu.AddItem(new MenuItem(harassEMenu.Name + ".always", "Cast Always").SetValue(true));
            harassEMenu.AddItem(new MenuItem(harassEMenu.Name + ".separator", string.Empty));
            harassEMenu.AddItem(new MenuItem(harassEMenu.Name + ".stacks", "Min. Stacks")).SetValue(new Slider(2, 1, 3));
            harassEMenu.AddItem(new MenuItem(harassEMenu.Name + ".or", "OR"));
            harassEMenu.AddItem(new MenuItem(harassEMenu.Name + ".min", "Min. Hits").SetValue(new Slider(3, 1, 5)));

            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", "Use E").SetValue(true));

            var laneClearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneClearMenu,
                new ResourceManagerArgs(
                    "lane-clear-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "Q",
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 30, 30
                }
            });
            ResourceManager.AddToMenu(
                laneClearMenu,
                new ResourceManagerArgs(
                    "lane-clear-e", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "E",
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 30, 30
                }
            });
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".q", "Use Q").SetValue(true));
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".e", "Use E").SetValue(true));
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".min", "Min. Hits").SetValue(new Slider(3, 1, 5)));

            var jungleClearMenu = Menu.AddSubMenu(new Menu("Jungle Clear", Menu.Name + ".jungle-clear"));

            ResourceManager.AddToMenu(
                jungleClearMenu,
                new ResourceManagerArgs(
                    "jungle-clear-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "Q",
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    30, 10, 10
                }
            });
            ResourceManager.AddToMenu(
                jungleClearMenu,
                new ResourceManagerArgs(
                    "jungle-clear-e", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "E",
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    30, 10, 10
                }
            });
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".q", "Use Q").SetValue(true));
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".e", "Use E").SetValue(true));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true));

            var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal"));

            killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser"));

            GapcloserManager.AddToMenu(
                eGapcloserMenu,
                new HeroListManagerArgs("e-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, true);
            BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser");

            TargetSelector.Weights.Register(
                new TargetSelector.Weights.Item(
                    "w-stacks", "W Stacks", 5, false, t => GetWStacks(t), "High amount of W Stacks = Higher Weight"));

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add("Q", hero => Q.IsReady() ? Q.GetDamage(hero, 1) : 0);
            IndicatorManager.Add(E);
            IndicatorManager.Add(R);
            IndicatorManager.Finale();

            _wStacks = DrawingManager.Add("W Stacks", true);
        }
Example #17
0
        protected override void AddToMenu()
        {
            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            HitchanceManager.AddToMenu(
                comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.High }
            });
            comboMenu.AddItem(
                new MenuItem(comboMenu.Name + ".gold-percent", "Pick Gold Health <= %").SetValue(new Slider(20, 5, 75)));
            comboMenu.AddItem(
                new MenuItem(comboMenu.Name + ".red-min", "Pick Red Targets >=").SetValue(new Slider(3, 1, 5)));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            HitchanceManager.AddToMenu(
                harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.High }
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                DefaultValue = 30
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass-blue", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "W Blue",
                DefaultValue = 50
            });
            harassMenu.AddItem(
                new MenuItem(harassMenu.Name + ".w-card", "Pick Card").SetValue(
                    new StringList(new[] { "Auto", "Gold", "Red", "Blue" }, 3)));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true));

            var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneclearMenu,
                new ResourceManagerArgs(
                    "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 50, 50
                },
                IgnoreJungleOption = true
            });
            ResourceManager.AddToMenu(
                laneclearMenu,
                new ResourceManagerArgs(
                    "lane-clear-blue", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "Blue",
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    60, 60, 60
                },
                IgnoreJungleOption = true
            });
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(4, 1, 5)));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", "Use W").SetValue(true));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".w", "Use Gold Card").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            var qImmobileMenu = miscMenu.AddSubMenu(new Menu("Q Immobile", miscMenu.Name + "q-immobile"));

            BuffManager.AddToMenu(
                qImmobileMenu, BuffManager.ImmobileBuffs,
                new HeroListManagerArgs("q-immobile")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, false);
            BestTargetOnlyManager.AddToMenu(qImmobileMenu, "q-immobile");

            miscMenu.AddItem(
                new MenuItem(miscMenu.Name + ".q-range", "Q Range").SetValue(
                    new Slider((int)Q.Range, 500, (int)Q.Range))).ValueChanged +=
                delegate(object sender, OnValueChangeEventArgs args) { Q.Range = args.GetNewValue <Slider>().Value; };
            miscMenu.AddItem(
                new MenuItem(miscMenu.Name + ".w-range", "Card Pick Distance").SetValue(
                    new Slider((int)W.Range, 500, 800))).ValueChanged +=
                delegate(object sender, OnValueChangeEventArgs args) { W.Range = args.GetNewValue <Slider>().Value; };
            miscMenu.AddItem(
                new MenuItem(miscMenu.Name + ".w-delay", "Card Pick Delay").SetValue(new Slider(150, 0, 400)))
            .ValueChanged +=
                delegate(object sender, OnValueChangeEventArgs args) { Cards.Delay = args.GetNewValue <Slider>().Value; };
            miscMenu.AddItem(
                new MenuItem(miscMenu.Name + ".mode", "W Mode").SetValue(new StringList(new[] { "Burst", "Team" })));
            miscMenu.AddItem(new MenuItem(miscMenu.Name + ".r-card", "Pick Card on R").SetValue(true));

            var manualMenu = Menu.AddSubMenu(new Menu("Manual", Menu.Name + ".manual"));

            manualMenu.AddItem(
                new MenuItem(manualMenu.Name + ".blue", "Hotkey Blue").SetValue(new KeyBind('T', KeyBindType.Press)));
            manualMenu.AddItem(
                new MenuItem(manualMenu.Name + ".red", "Hotkey Red").SetValue(new KeyBind('Y', KeyBindType.Press)));
            manualMenu.AddItem(
                new MenuItem(manualMenu.Name + ".gold", "Hotkey Gold").SetValue(new KeyBind('U', KeyBindType.Press)));

            Q.Range     = Menu.Item(Menu.Name + ".miscellaneous.q-range").GetValue <Slider>().Value;
            W.Range     = Menu.Item(Menu.Name + ".miscellaneous.w-range").GetValue <Slider>().Value;
            Cards.Delay = Menu.Item(Menu.Name + ".miscellaneous.w-delay").GetValue <Slider>().Value;

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(Q);
            IndicatorManager.Add(
                "W",
                hero =>
                (W.IsReady() || Cards.Status == SelectStatus.Selecting || Cards.Status == SelectStatus.Ready) &&
                Cards.Status != SelectStatus.Selected
                        ? W.GetDamage(hero)
                        : (Cards.Status == SelectStatus.Selected
                            ? (Cards.Has(CardColor.Blue)
                                ? W.GetDamage(hero)
                                : (Cards.Has(CardColor.Red) ? W.GetDamage(hero, 1) : W.GetDamage(hero, 2)))
                            : 0));
            IndicatorManager.Add("E", hero => E.Level > 0 && GetEStacks() >= 2 ? E.GetDamage(hero) : 0);
            IndicatorManager.Finale();

            _eStacks  = DrawingManager.Add("E Stacks", true);
            _rMinimap = DrawingManager.Add("R Minimap", true);
        }
Example #18
0
        protected override void AddToMenu()
        {
            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            HitchanceManager.AddToMenu(
                comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.VeryHigh }
            });
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            HitchanceManager.AddToMenu(
                harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.High }
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                DefaultValue = 30
            });
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true));

            var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneclearMenu,
                new ResourceManagerArgs(
                    "lane-clear-q", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "Q",
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    60, 50, 50
                },
                IgnoreJungleOption = true
            });
            ResourceManager.AddToMenu(
                laneclearMenu,
                new ResourceManagerArgs(
                    "lane-clear-w", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix      = "W",
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 40, 40
                },
                IgnoreJungleOption = true
            });
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q", "Use Q").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(4, 1, 5)));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", "Use W").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w-min", "W Min.").SetValue(new Slider(3, 1, 5)));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".r", "Use R").SetValue(false));

            var shieldMenu = Menu.AddSubMenu(new Menu("Shield", Menu.Name + ".shield"));

            SpellBlockManager.AddToMenu(
                shieldMenu.AddSubMenu(new Menu("Whitelist", shieldMenu.Name + ".whitelist")), false, true, false);
            shieldMenu.AddItem(new MenuItem(shieldMenu.Name + ".enabled", "Enabled").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            var qImmobileMenu = miscMenu.AddSubMenu(new Menu("Q Immobile", miscMenu.Name + "q-immobile"));

            BuffManager.AddToMenu(
                qImmobileMenu, BuffManager.ImmobileBuffs,
                new HeroListManagerArgs("q-immobile")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, true);
            BestTargetOnlyManager.AddToMenu(qImmobileMenu, "q-immobile");

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(Q);
            IndicatorManager.Add(W);
            IndicatorManager.Finale();
        }
        protected override void AddToMenu()
        {
            Ultimate.AddToMenu(Menu);

            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            HitchanceManager.AddToMenu(
                comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo",
                new Dictionary <string, HitChance>
            {
                { "Q", HitChance.VeryHigh },
                { "W", HitChance.VeryHigh },
                { "R", HitChance.High }
            });
            comboMenu.AddItem(
                new MenuItem(comboMenu.Name + ".e-mode", "E Mode").SetValue(new StringList(new[] { "Auto", "Cursor" })));
            comboMenu.AddItem(
                new MenuItem(comboMenu.Name + ".e-safety", "E Safety Distance").SetValue(new Slider(320, 0, 500)));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            HitchanceManager.AddToMenu(
                harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.High }
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                DefaultValue = 30
            });
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true));

            var laneClearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneClearMenu,
                new ResourceManagerArgs(
                    "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 30, 30
                }
            });
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".q", "Use Q").SetValue(true));
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".q-min", "Q Min.").SetValue(new Slider(3, 1, 5)));

            var jungleClearMenu = Menu.AddSubMenu(new Menu("Jungle Clear", Menu.Name + ".jungle-clear"));

            ResourceManager.AddToMenu(
                jungleClearMenu,
                new ResourceManagerArgs(
                    "jungle-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    30, 10, 10
                }
            });
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".q", "Use Q").SetValue(true));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true));

            var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal"));

            killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            var wGapcloserMenu = miscMenu.AddSubMenu(new Menu("W Gapcloser", miscMenu.Name + "w-gapcloser"));

            GapcloserManager.AddToMenu(
                wGapcloserMenu,
                new HeroListManagerArgs("w-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false,
                Enabled      = false
            }, true);
            BestTargetOnlyManager.AddToMenu(wGapcloserMenu, "w-gapcloser");

            var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser"));

            GapcloserManager.AddToMenu(
                eGapcloserMenu,
                new HeroListManagerArgs("e-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, true);
            BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser");

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(Q);
            IndicatorManager.Add(W);
            IndicatorManager.Add(R);
            IndicatorManager.Finale();
        }
Example #20
0
        protected override void AddToMenu()
        {
            var ultimateMenu = Ultimate.AddToMenu(Menu);

            ultimateMenu.AddItem(
                new MenuItem(ultimateMenu.Name + ".range", "Range").SetValue(new Slider((int)R.Range, 1000, 3000)))
            .ValueChanged +=
                delegate(object sender, OnValueChangeEventArgs args) { R.Range = args.GetNewValue <Slider>().Value; };

            R.Range = Menu.Item(ultimateMenu.Name + ".range").GetValue <Slider>().Value;

            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            HitchanceManager.AddToMenu(
                comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo",
                new Dictionary <string, HitChance>
            {
                { "Q", HitChance.High },
                { "W", HitChance.VeryHigh },
                { "R", HitChance.High }
            });
            comboMenu.AddItem(
                new MenuItem(comboMenu.Name + ".e-mode", "E Mode").SetValue(new StringList(new[] { "Auto", "Cursor" })));
            comboMenu.AddItem(
                new MenuItem(comboMenu.Name + ".e-safety", "E Safety Distance").SetValue(new Slider(300, 0, 500)));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            HitchanceManager.AddToMenu(
                harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.High }, { "W", HitChance.VeryHigh }
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                DefaultValue = 30
            });
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(false));

            var laneClearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneClearMenu,
                new ResourceManagerArgs(
                    "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 30, 30
                }
            });
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".q", "Use Q").SetValue(true));

            var jungleClearMenu = Menu.AddSubMenu(new Menu("Jungle Clear", Menu.Name + ".jungle-clear"));

            ResourceManager.AddToMenu(
                jungleClearMenu,
                new ResourceManagerArgs(
                    "jungle-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 30, 30
                }
            });
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".q", "Use Q").SetValue(true));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true));

            var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal"));

            killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".q", "Use Q").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            miscMenu.AddItem(new MenuItem(miscMenu.Name + ".w-push", "W Pushing").SetValue(true));

            var qGapcloserMenu = miscMenu.AddSubMenu(new Menu("Q Gapcloser", miscMenu.Name + "q-gapcloser"));

            GapcloserManager.AddToMenu(
                qGapcloserMenu,
                new HeroListManagerArgs("q-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(qGapcloserMenu, "q-gapcloser", true);

            var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser"));

            GapcloserManager.AddToMenu(
                eGapcloserMenu,
                new HeroListManagerArgs("e-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, true);
            BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser");

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(Q);
            IndicatorManager.Add(W);
            IndicatorManager.Add("R", hero => R.IsReady() ? R.GetDamage(hero) * 0.8f : 0);
            IndicatorManager.Finale();
        }
Example #21
0
        protected override void AddToMenu()
        {
            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            HitchanceManager.AddToMenu(
                comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo",
                new Dictionary <string, HitChance>
            {
                { "Q", HitChance.VeryHigh },
                { "E", HitChance.VeryHigh },
                { "R", HitChance.VeryHigh }
            });
            ResourceManager.AddToMenu(
                comboMenu,
                new ResourceManagerArgs(
                    "combo-r", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "R",
                DefaultValue = 30
            });
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".r", "Use R").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            HitchanceManager.AddToMenu(
                harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.High }, { "R", HitChance.VeryHigh }
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                DefaultValue = 30
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass-r", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Prefix       = "R",
                DefaultValue = 30
            });
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(false));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".r", "Use R").SetValue(true));

            var laneclearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneclearMenu,
                new ResourceManagerArgs(
                    "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                MaxValue    = 101,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 30, 30
                },
                IgnoreJungleOption = true
            });
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".w", "Use W").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e", "Use E").SetValue(true));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".e-min", "E Min.").SetValue(new Slider(3, 1, 5)));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".r", "Use R").SetValue(false));
            laneclearMenu.AddItem(new MenuItem(laneclearMenu.Name + ".r-min", "R Min.").SetValue(new Slider(3, 1, 5)));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".e", "Use E").SetValue(true));

            var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal"));

            killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".r", "Use R").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            var eGapcloserMenu = miscMenu.AddSubMenu(new Menu("E Gapcloser", miscMenu.Name + "e-gapcloser"));

            GapcloserManager.AddToMenu(
                eGapcloserMenu,
                new HeroListManagerArgs("e-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, true);
            BestTargetOnlyManager.AddToMenu(eGapcloserMenu, "e-gapcloser");

            var rImmobileMenu = miscMenu.AddSubMenu(new Menu("R Immobile", miscMenu.Name + "r-immobile"));

            HeroListManager.AddToMenu(
                rImmobileMenu,
                new HeroListManagerArgs("r-immobile")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(rImmobileMenu, "r-immobile", true);

            var rGapcloserMenu = miscMenu.AddSubMenu(new Menu("R Gapcloser", miscMenu.Name + "r-gapcloser"));

            GapcloserManager.AddToMenu(
                rGapcloserMenu,
                new HeroListManagerArgs("r-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(rGapcloserMenu, "r-gapcloser", true);

            miscMenu.AddItem(new MenuItem(miscMenu.Name + ".r-max", "R Max. Stacks").SetValue(new Slider(5, 1, 10)));

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(Q);
            IndicatorManager.Add(W);
            IndicatorManager.Add(E);
            IndicatorManager.Add(R);
            IndicatorManager.Finale();
        }
Example #22
0
        protected override void AddToMenu()
        {
            DrawingManager.Add("R Flash", R.Range + SummonerManager.Flash.Range);

            var ultimateMenu = Ultimate.AddToMenu(Menu);

            ultimateMenu.AddItem(
                new MenuItem(ultimateMenu.Name + ".range", "Range").SetValue(new Slider(700, 400, 825))).ValueChanged +=
                delegate(object sender, OnValueChangeEventArgs args)
            {
                R.Range = args.GetNewValue <Slider>().Value;
                DrawingManager.Update("R Flash", args.GetNewValue <Slider>().Value + SummonerManager.Flash.Range);
            };
            ultimateMenu.AddItem(new MenuItem(ultimateMenu.Name + ".backwards", "Backwards Flash").SetValue(true));

            var comboMenu = Menu.AddSubMenu(new Menu("Combo", Menu.Name + ".combo"));

            HitchanceManager.AddToMenu(
                comboMenu.AddSubMenu(new Menu("Hitchance", comboMenu.Name + ".hitchance")), "combo",
                new Dictionary <string, HitChance>
            {
                { "Q", HitChance.High },
                { "W", HitChance.High },
                { "R", HitChance.High }
            });
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".aa", "Use AutoAttacks").SetValue(false));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".q", "Use Q").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".w", "Use W").SetValue(true));
            comboMenu.AddItem(new MenuItem(comboMenu.Name + ".e", "Use E").SetValue(true));

            var harassMenu = Menu.AddSubMenu(new Menu("Harass", Menu.Name + ".harass"));

            HitchanceManager.AddToMenu(
                harassMenu.AddSubMenu(new Menu("Hitchance", harassMenu.Name + ".hitchance")), "harass",
                new Dictionary <string, HitChance> {
                { "Q", HitChance.VeryHigh }, { "W", HitChance.High }
            });
            ResourceManager.AddToMenu(
                harassMenu,
                new ResourceManagerArgs(
                    "harass", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                DefaultValue = 30
            });
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".aa", "Use AutoAttacks").SetValue(false));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".q", "Use Q").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".w", "Use W").SetValue(true));
            harassMenu.AddItem(new MenuItem(harassMenu.Name + ".e", "Use E").SetValue(true));

            var laneClearMenu = Menu.AddSubMenu(new Menu("Lane Clear", Menu.Name + ".lane-clear"));

            ResourceManager.AddToMenu(
                laneClearMenu,
                new ResourceManagerArgs(
                    "lane-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    50, 30, 30
                }
            });
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".aa", "Use AutoAttacks").SetValue(true));
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".q", "Use Q").SetValue(true));
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".w", "Use W").SetValue(true));
            laneClearMenu.AddItem(new MenuItem(laneClearMenu.Name + ".e", "Use E").SetValue(true));

            var jungleClearMenu = Menu.AddSubMenu(new Menu("Jungle Clear", Menu.Name + ".jungle-clear"));

            ResourceManager.AddToMenu(
                jungleClearMenu,
                new ResourceManagerArgs(
                    "jungle-clear", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Minimum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    30, 10, 10
                }
            });
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".aa", "Use AutoAttacks").SetValue(true));
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".q", "Use Q").SetValue(true));
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".w", "Use W").SetValue(true));
            jungleClearMenu.AddItem(new MenuItem(jungleClearMenu.Name + ".e", "Use E").SetValue(true));

            var lasthitMenu = Menu.AddSubMenu(new Menu("Last Hit", Menu.Name + ".lasthit"));

            ResourceManager.AddToMenu(
                lasthitMenu,
                new ResourceManagerArgs(
                    "lasthit", ResourceType.Mana, ResourceValueType.Percent, ResourceCheckType.Maximum)
            {
                Advanced    = true,
                LevelRanges = new SortedList <int, int> {
                    { 1, 6 }, { 6, 12 }, { 12, 18 }
                },
                DefaultValues = new List <int> {
                    90, 70, 70
                }
            });
            lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e", "Use E").SetValue(true));
            lasthitMenu.AddItem(new MenuItem(lasthitMenu.Name + ".e-poison", "Use E Poison").SetValue(true));

            var fleeMenu = Menu.AddSubMenu(new Menu("Flee", Menu.Name + ".flee"));

            fleeMenu.AddItem(new MenuItem(fleeMenu.Name + ".w", "Use W").SetValue(true));

            var killstealMenu = Menu.AddSubMenu(new Menu("Killsteal", Menu.Name + ".killsteal"));

            killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".e", "Use E").SetValue(true));
            killstealMenu.AddItem(new MenuItem(killstealMenu.Name + ".e-poison", "Use E Poison Only").SetValue(true));

            var miscMenu = Menu.AddSubMenu(new Menu("Misc", Menu.Name + ".miscellaneous"));

            DelayManager.AddToMenu(miscMenu, "e-delay", "E", 420, 0, 1000);

            var qGapcloserMenu = miscMenu.AddSubMenu(new Menu("Q Gapcloser", miscMenu.Name + "q-gapcloser"));

            GapcloserManager.AddToMenu(
                qGapcloserMenu,
                new HeroListManagerArgs("q-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(qGapcloserMenu, "q-gapcloser", true);

            var qFleeingMenu = miscMenu.AddSubMenu(new Menu("Q Fleeing", miscMenu.Name + "q-fleeing"));

            HeroListManager.AddToMenu(
                qFleeingMenu,
                new HeroListManagerArgs("q-fleeing")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(qFleeingMenu, "q-fleeing", true);

            var wGapcloserMenu = miscMenu.AddSubMenu(new Menu("W Gapcloser", miscMenu.Name + "w-gapcloser"));

            GapcloserManager.AddToMenu(
                wGapcloserMenu,
                new HeroListManagerArgs("w-gapcloser")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, true);
            BestTargetOnlyManager.AddToMenu(wGapcloserMenu, "w-gapcloser");

            var wImmobileMenu = miscMenu.AddSubMenu(new Menu("W Immobile", miscMenu.Name + "w-immobile"));

            BuffManager.AddToMenu(
                wImmobileMenu, BuffManager.ImmobileBuffs,
                new HeroListManagerArgs("w-immobile")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            }, true);
            BestTargetOnlyManager.AddToMenu(wImmobileMenu, "w-immobile");

            var wFleeingMenu = miscMenu.AddSubMenu(new Menu("W Fleeing", miscMenu.Name + "w-fleeing"));

            HeroListManager.AddToMenu(
                wFleeingMenu,
                new HeroListManagerArgs("w-fleeing")
            {
                IsWhitelist  = false,
                Allies       = false,
                Enemies      = true,
                DefaultValue = false
            });
            BestTargetOnlyManager.AddToMenu(wFleeingMenu, "w-fleeing", true);

            R.Range = Menu.Item(Menu.Name + ".ultimate.range").GetValue <Slider>().Value;
            DrawingManager.Update(
                "R Flash",
                Menu.Item(Menu.Name + ".ultimate.range").GetValue <Slider>().Value + SummonerManager.Flash.Range);

            IndicatorManager.AddToMenu(DrawingManager.Menu, true);
            IndicatorManager.Add(Q);
            IndicatorManager.Add(W);
            IndicatorManager.Add("E", hero => E.GetDamage(hero) * 3);
            IndicatorManager.Add(R);
            IndicatorManager.Finale();

            TargetSelector.Weights.Register(
                new TargetSelector.Weights.Item(
                    "poison-time", "Poison Time", 5, false, GetPoisonBuffEndTime,
                    "Long time until poison ends = Higher Weight"));
        }
Example #23
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);
                }
            }
        }
Example #24
0
 private void OnEnemyGapcloser(object sender, GapcloserManagerArgs args)
 {
     try
     {
         if (args.UniqueId.Equals("q-gapcloser") && Q.IsReady() &&
             BestTargetOnlyManager.Check("q-gapcloser", Q, args.Hero))
         {
             if (args.End.Distance(Player.Position) <= Q.Range)
             {
                 var delay = (int)(args.EndTime - Game.Time - Q.Delay - 0.1f);
                 if (delay > 0)
                 {
                     Utility.DelayAction.Add(delay * 1000, () => Q.Cast(args.End));
                 }
                 else
                 {
                     Q.Cast(args.End);
                 }
             }
         }
         if (args.UniqueId.Equals("w-gapcloser") && W.IsReady() &&
             BestTargetOnlyManager.Check("w-gapcloser", W, args.Hero))
         {
             if (args.End.Distance(Player.Position) <= W.Range)
             {
                 var delay = (int)(args.EndTime - Game.Time - W.Delay - 0.1f);
                 if (delay > 0)
                 {
                     Utility.DelayAction.Add(delay * 1000, () => W.Cast(args.End));
                 }
                 else
                 {
                     W.Cast(args.End);
                 }
             }
         }
         if (string.IsNullOrEmpty(args.UniqueId))
         {
             if (Ultimate.IsActive(UltimateModeType.Gapcloser, args.Hero) &&
                 BestTargetOnlyManager.Check("r-gapcloser", R, args.Hero))
             {
                 if (args.End.Distance(Player.Position) <= R.Range)
                 {
                     if (args.EndTime - Game.Time > R.Delay)
                     {
                         Utility.DelayAction.Add(
                             (int)((args.EndTime - Game.Time - R.Delay) * 1000), () => R.Cast(args.End));
                     }
                     else
                     {
                         R.Cast(args.End);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }