Beispiel #1
0
        private static bool CanCast(SpellSlot spell, Orbwalking.OrbwalkingMode orbwalkingMode)
        {
            var orbwalkingModeLower = Program.Orbwalker.ActiveMode.ToString().ToLower();
            var spellLower          = spell.ToString().ToLower();

            if (Program.Orbwalker.ActiveMode != orbwalkingMode || !spell.IsReady())
            {
                return(false);
            }

            if (spellLower.Equals("e") && ObjectManager.Player.HasBuff("LissandraE"))
            {
                return(false);
            }

            if ((orbwalkingModeLower.Equals("laneclear") && spellLower.Equals("e")) ||
                (orbwalkingModeLower.Equals("laneclear") && spellLower.Equals("r")) ||
                (orbwalkingModeLower.Equals("mixed") && spellLower.Equals("r")) ||
                (orbwalkingModeLower.Equals("lasthit") && !spellLower.Equals("q")))
            {
                return(false);
            }

            return(AlqoholicMenu.MainMenu.Item(orbwalkingModeLower + spellLower + "use").GetValue <bool>() &&
                   AlqoholicMenu.MainMenu.Item(orbwalkingModeLower + spellLower + "mana")
                   .GetValue <Slider>()
                   .Value <= ObjectManager.Player.ManaPercent);
        }
Beispiel #2
0
        protected override void OnUpdate(Orbwalking.OrbwalkingMode mode)
        {
            if (AssistedUltMenu != null && AssistedUltMenu.GetValue <KeyBind>().Active)
            {
                CastAssistedUlt();
            }

            if (mode == Orbwalking.OrbwalkingMode.LaneClear && LanepressureMenu.IsActive())
            {
                mode = Orbwalking.OrbwalkingMode.Mixed;
            }

            base.OnUpdate(mode);

            if (mode == Orbwalking.OrbwalkingMode.Combo && IgniteInBurstMode && BurstMode.IsActive() && Target.IsValidTarget(600) && ObjectManager.Player.CalcDamage(Target, Damage.DamageType.True, ObjectManager.Player.GetIgniteDamage()) > Target.Health + Target.HPRegenRate * 5 && (_e.Instance.CooldownExpires > Game.Time + 0.5f || !OnlyIgniteWhenNoE))
            {
                var ignite = ObjectManager.Player.Spellbook.Spells.FirstOrDefault(spell => spell.Name == "summonerdot");
                if (ignite != null && ignite.IsReady())
                {
                    ObjectManager.Player.Spellbook.CastSpell(ignite.Slot, Target);
                }
            }

            if (!_gaveAutoWarning && Game.Time > 30 * 60f)
            {
                _gaveAutoWarning = true;
                Notifications.AddNotification(new Notification("Tipp: Disable AA in combo\nfor better lategame kiting!", 6000)
                {
                    BorderColor = new SharpDX.Color(154, 205, 50)
                });
            }
        }
Beispiel #3
0
        /// <summary>
        ///     The is the spell active method.
        /// </summary>
        /// <param name="spellSlot">
        ///     The spell slot.
        /// </param>
        /// <param name="orbwalkingMode">
        ///     The orbwalking mode.
        /// </param>
        /// <returns>
        ///     <see cref="bool" />
        /// </returns>
        private static bool IsSpellActive(SpellSlot spellSlot, Orbwalking.OrbwalkingMode orbwalkingMode)
        {
            if (Program.Orbwalker.ActiveMode != orbwalkingMode || !spellSlot.IsReady())
            {
                return(false);
            }

            try
            {
                var orbwalkerModeLower = Program.Orbwalker.ActiveMode.ToString().ToLower();
                var spellSlotNameLower = spellSlot.ToString().ToLower();

                if ((orbwalkerModeLower.Equals("lasthit") &&
                     (spellSlotNameLower.Equals("e") || spellSlotNameLower.Equals("w") ||
                      spellSlotNameLower.Equals("r"))) || (orbwalkerModeLower.Equals("laneclear") && (spellSlotNameLower.Equals("e"))))
                {
                    return(false);
                }

                return(MyMenu.RootMenu.Item(orbwalkerModeLower + spellSlotNameLower + "use").GetValue <bool>() &&
                       MyMenu.RootMenu.Item(orbwalkerModeLower + spellSlotNameLower + "mana")
                       .GetValue <Slider>()
                       .Value <= ObjectManager.Player.ManaPercent);
            }
            catch (Exception e)
            {
                Logging.AddEntry(LoggingEntryTrype.Error, "@SpellManager.cs: Can not get spell active state for slot {0} - {1}", spellSlot.ToString(), e);
                throw;
            }
        }
Beispiel #4
0
        public static void DongerSkill(this Menu menu, Skills skill, Orbwalking.OrbwalkingMode mode)
        {
            var vhrname   = string.Format("dz191.vhr.{0}.use{1}", mode.ToString().ToLower(), skill.ToString().ToLower());
            var pradaname = string.Format("useprada{0}", skill.ToString().ToLower());

            menu.Item(vhrname).SetValue(!HijackedMenu.Item(pradaname).GetValue <bool>());
        }
Beispiel #5
0
        private static void UpdateStates()
        {
            CurrentPad = Control.GetState().Gamepad;
            var b = CurrentPad.Buttons.ToString();

            if (b == "None")
            {
                return;
            }

            if (b.Contains("DPadUp"))
            {
                CurrentMode = Orbwalking.OrbwalkingMode.Combo;
            }
            else if (b.Contains("DPadLeft"))
            {
                CurrentMode = Orbwalking.OrbwalkingMode.LaneClear;
            }
            else if (b.Contains("DPadRight"))
            {
                CurrentMode = Orbwalking.OrbwalkingMode.Mixed;
            }
            else if (b.Contains("DPadDown"))
            {
                CurrentMode = Orbwalking.OrbwalkingMode.LastHit;
            }
            else if (!b.Contains("LeftThumb")) //Push any button to cancel mode
            {
                CurrentMode = Orbwalking.OrbwalkingMode.None;
            }

            OrbWalker.ActiveMode = CurrentMode;
        }
        public static MenuItem AddSkill(this Menu menu, Enumerations.Skills skill, Orbwalking.OrbwalkingMode mode, bool defValue = true)
        {
            var name        = string.Format("dz191.vhr.{0}.use{1}", mode.ToString().ToLower(), skill.ToString().ToLower());
            var displayName = string.Format("Use {0}", skill);

            return(menu.AddItem(new MenuItem(name, displayName).SetValue(defValue)));
        }
Beispiel #7
0
 public void SetEnabled <T>(Orbwalking.OrbwalkingMode mode, bool enabled) where T : Skill
 {
     foreach (var skill in Skills.Where(skill => skill.GetType() == typeof(T)))
     {
         skill.SetEnabled(mode, enabled);
     }
 }
Beispiel #8
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            var wp = ObjectManager.Player.GetWaypoints();

            //in case you manually click to move
            if (wp.Count > 0 && ObjectManager.Player.Distance(wp[wp.Count - 1]) > 540)
            {
                CurrentMode          = Orbwalking.OrbwalkingMode.None;
                OrbWalker.ActiveMode = CurrentMode;
                return;
            }

            if (Controller == null || !Controller.Connected)
            {
                Game.PrintChat("Controller disconnected!");
                Game.OnGameUpdate -= Game_OnGameUpdate;
                return;
            }

            Controller.Update();
            UpdateStates();

            var p   = ObjectManager.Player.ServerPosition.To2D() + (Controller.LeftStick.Position / 75);
            var pos = new Vector3(p.X, p.Y, ObjectManager.Player.Position.Z);

            if (ObjectManager.Player.Distance(pos) < 75)
            {
                return;
            }


            CurrentPosition.Position = pos;
            OrbWalker.SetOrbwalkingPoint(pos);
        }
        private static void WCast(Orbwalking.OrbwalkingMode mode)
        {
            if (mode != Orbwalking.OrbwalkingMode.Combo && mode != Orbwalking.OrbwalkingMode.Mixed || !W.IsReady())
            {
                return;
            }

            if (Player.CountEnemiesInRange((int)Player.AttackRange) != 0)
            {
                return;
            }

            //If the mode is combo then we use the WManaC, if the mode is Harrass we use the WManaH
            var str = (mode == Orbwalking.OrbwalkingMode.Combo) ? "C" : "H";
            //Get a target in W range
            var wTarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (!wTarget.IsValidTarget(W.Range))
            {
                return;
            }

            var wMana = GetSliderValue("WMana" + str);

            if (GetPerValue(true) >= wMana && IsMenuEnabled("UseW" + str))
            {
                W.CastIfHitchanceEquals(wTarget, CustomHitChance, Packets());
            }
        }
Beispiel #10
0
        public static void MovePet(Menu options, Orbwalking.OrbwalkingMode orbwalkingMode)
        {
            var isCombo   = Orbwalking.OrbwalkingMode.Combo == orbwalkingMode;
            var isFarm    = Orbwalking.OrbwalkingMode.LaneClear == orbwalkingMode;
            var isLastHit = Orbwalking.OrbwalkingMode.LastHit == orbwalkingMode ||
                            Orbwalking.OrbwalkingMode.Freeze == orbwalkingMode;

            if (PetDelay || Pet == null)
            {
                return;
            }
            if (options.Item("petMovement", true).GetValue <StringList>().SelectedIndex == 0 &&
                (isCombo || isFarm || isLastHit))
            {
                AttackableUnit gtarget = GetTarget(
                    isCombo, isFarm, isLastHit, options.Item("petTarget", true).GetValue <StringList>().SelectedIndex);
                if (gtarget == null)
                {
                    if (debug)
                    {
                        Console.WriteLine("follow");
                    }
                    if (player.IsMoving && options.Item("petFollow", true).GetValue <bool>() &&
                        player.ChampionName != "Ivern")
                    {
                        var movePos = player.Position.Extend(Prediction.GetPrediction(player, 0.5f).UnitPosition, -250);
                        MoveTo(movePos);
                        SetPetDelay();
                    }
                }
                else if (gtarget.IsValid && !Pet.IsWindingUp)
                {
                    if ((CanPetAttack() ||
                         options.Item("petMovementType", true).GetValue <StringList>().SelectedIndex == 1 ||
                         player.HealthPercent < 25) && player.ChampionName != "Ivern")
                    {
                        if (Pet.Distance(gtarget) < Pet.AttackRange + gtarget.BoundingRadius + Pet.BoundingRadius)
                        {
                            Attack(gtarget);
                        }
                        else
                        {
                            MoveTo(gtarget.Position);
                        }
                    }
                    else
                    {
                        var pos = GetMovementPos(
                            gtarget, options.Item("petOrbPos", true).GetValue <StringList>().SelectedIndex == 1);
                        if (isLastHit || isFarm)
                        {
                            pos = gtarget.Position.Extend(Pet.Position, Pet.AttackRange);
                        }
                        MoveTo(pos);
                    }
                    SetPetDelay();
                }
            }
        }
Beispiel #11
0
        public virtual void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target)
        {
            if (mode == Orbwalking.OrbwalkingMode.None)
            {
                return;
            }
            if (mode == Orbwalking.OrbwalkingMode.LaneClear && SwitchClearToHarassOnTarget && target != null)
            {
                mode = Orbwalking.OrbwalkingMode.Mixed;
            }
            if (UseManaManager && !ManaManager.CanUseMana(mode))
            {
                return;
            }

            var targetIsValid = target.IsValidTarget();

            if (OnlyUpdateIfTargetValid && mode == Orbwalking.OrbwalkingMode.Combo && !targetIsValid)
            {
                return;
            }
            if (OnlyUpdateIfCastable && !CanBeCast())
            {
                return;                                       //Todo: check if nessecary with new comboSystem
            }
            MinHitChance = mode == Orbwalking.OrbwalkingMode.Combo ? MinComboHitchance : MinHarassHitchance;

            switch (mode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                if (ComboEnabled)
                {
                    Combo(target);
                }
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                if (LaneclearEnabled)
                {
                    LaneClear();
                }
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                if (HarassEnabled)
                {
                    if (targetIsValid || !OnlyUpdateIfTargetValid)
                    {
                        Harass(target);
                    }
                    Lasthit();
                }
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                Lasthit();
                break;
            }
        }
Beispiel #12
0
        protected virtual void OnUpdate(Orbwalking.OrbwalkingMode mode)
        {
            //Console.WriteLine(mode);
            try
            {
                Target = SelectTarget();
            }
            catch
            {
                if (Game.Time % 1f < 0.05f)
                {
                    Console.WriteLine("[TheNinow.ComboSystem] Error during custom target selection");
                }
                Target = TargetSelector.GetTarget(TargetRange, DamageType);
            }


            for (int i = 0; i < _queuedCasts.Count; i++)
            {
                if (_queuedCasts[i].Item1.HasBeenCast())
                {
                    _queuedCasts.RemoveAt(i);
                }
                else
                {
                    try
                    {
                        _queuedCasts[i].Item2();
                    }
                    catch
                    {
                        _queuedCasts.RemoveAt(i);
                    }
                    break;
                }
            }


            if (!ObjectManager.Player.Spellbook.IsCastingSpell) //todo: removeable?
            {
                Skills.Sort();                                  //Checked: this is not expensive
                foreach (var item in Skills)
                {
                    if (item.UseManaManager && ManaManager[mode] > ObjectManager.Player.ManaPercent)
                    {
                        continue;
                    }

                    item.Update(mode, this, Target);
                    //Console.WriteLine(forthe.ElapsedTicks +" / "+item.GetType().Name);
                    if (_cancelSpellUpdates)
                    {
                        _cancelSpellUpdates = false;
                        break;
                    }
                }
            }
            IsAfterAttack = false;
        }
Beispiel #13
0
        private static void UpdateStates()
        {
            if (Controller.DPad.IsAnyPressed() || Controller.IsABXYPressed()) // Change mode command
            {
                uint key = 0;

                if (Controller.DPad.Up || Controller.X)
                {
                    CurrentMode = Orbwalking.OrbwalkingMode.Combo;
                    key         = Menu.Item("Orbwalk").GetValue <KeyBind>().Key;
                }
                else if (Controller.DPad.Left || Controller.A)
                {
                    CurrentMode = Orbwalking.OrbwalkingMode.LaneClear;
                    key         = Menu.Item("LaneClear").GetValue <KeyBind>().Key;
                }
                else if (Controller.DPad.Right || Controller.Y)
                {
                    CurrentMode = Orbwalking.OrbwalkingMode.Mixed;
                    key         = Menu.Item("Farm").GetValue <KeyBind>().Key;
                }
                else if (Controller.DPad.Down || Controller.B)
                {
                    CurrentMode = Orbwalking.OrbwalkingMode.LastHit;
                    key         = Menu.Item("LastHit").GetValue <KeyBind>().Key;
                }

                if (LastKey == key)
                {
                    return;
                }

                LastKey.Release();
                key.Press();
            }

            //Push any button to cancel mode
            if (Controller.LeftShoulder || Controller.RightShoulder || Controller.Back || Controller.Start || Controller.RightStick.Clicked)
            {
                CurrentMode = Orbwalking.OrbwalkingMode.None;
                LastKey.Release();
            }

            var s1 = ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Summoner1);
            var s2 = ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Summoner2);

            if (Controller.LeftTrigger > 0 && s1.State == SpellState.Ready)
            {
                SummonerCastLogic(s1);
            }

            if (Controller.RightTrigger > 0 && s2.State == SpellState.Ready)
            {
                SummonerCastLogic(s2);
            }

            Text.text = "MODE: " + CurrentMode;
            //OrbWalker.ActiveMode = CurrentMode;
        }
Beispiel #14
0
 public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target)
 {
     if (Killsteal && HeroManager.Enemies.Any(enemy => enemy.IsValidTarget(1100) && CanKill(enemy)))
     {
         Cast();
     }
     base.Update(mode, combo, target);
 }
Beispiel #15
0
 public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, AIHeroClient target)
 {
     base.Update(mode, combo, target);
     if (_afterAttack)
     {
         _afterAttack = false;
     }
 }
Beispiel #16
0
        public override void OnFarm(Orbwalking.OrbwalkingMode mode)
        {
            if (!Menu.Item("FarmEnabled").IsActive())
            {
                return;
            }

            var minions = MinionManager.GetMinions(E.Range);

            if (Menu.Item("WFarm").IsActive() && W.IsReady())
            {
                var wKillableMinions = minions.Count(m => m.IsValidTarget(W.Range) && W.IsKillable(m));
                if (wKillableMinions < Menu.Item("WMinionsHit").GetValue <Slider>().Value)
                {
                    if (Menu.Item("EFarm").IsActive() && E.IsReady()) // e->w
                    {
                        foreach (var target in from target in Utility.GetETargets()
                                 let killableMinions =
                                     MinionManager.GetMinions(target.ServerPosition, W.Range + E.Range)
                                     .Count(m => W.IsKillable(m))
                                     where killableMinions >= Menu.Item("EMinionsHit").GetValue <Slider>().Value
                                     select target)
                        {
                            CastWAfterE = true;
                            if (E.CastOnUnit(target))
                            {
                                return;
                            }
                        }
                    }
                }
                else if (W.Cast())
                {
                    return;
                }
            }

            if (!Menu.Item("QFarm").IsActive() || !Q.IsReady())
            {
                return;
            }

            var qKillableMinion = minions.FirstOrDefault(m => m.IsValidTarget(Q.Range) && Q.IsKillable(m));
            var qMinion         = minions.Where(m => m.IsValidTarget(Q.Range)).MinOrDefault(m => m.Health);

            if (qKillableMinion == null)
            {
                if (Menu.Item("QLastHit").IsActive() || qMinion == null)
                {
                    return;
                }

                Q.CastOnUnit(qMinion);
                return;
            }

            Q.CastOnUnit(qKillableMinion);
        }
Beispiel #17
0
        public override void OnCombo(Orbwalking.OrbwalkingMode mode)
        {
            if (AdditionalComboActive)
            {
                return;
            }

            Combo();
        }
Beispiel #18
0
        public static void CastFlayPush(Obj_AI_Hero target, Orbwalking.OrbwalkingMode Mode)
        {
            var targetPrediction = Prediction.GetPrediction(target, 0.25f);
            var finalPosition    = target.ServerPosition.Extend(
                ObjectManager.Player.ServerPosition,
                ObjectManager.Player.ServerPosition.Distance(targetPrediction.UnitPosition) / 2f);

            Thresh.spells[SpellSlot.E].Cast(finalPosition);
        }
Beispiel #19
0
        /// <summary>
        /// Adds the mana manager menu.
        /// </summary>
        /// <param name="mainMenu">The main menu.</param>
        /// <param name="Mode">The mode.</param>
        /// <returns></returns>
        private static Menu AddManaManagerMenu(this Menu mainMenu, Orbwalking.OrbwalkingMode Mode)
        {
            var manaManager = new Menu("Mana Manager", $"solo.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}.mm");

            {
                mainMenu.AddSubMenu(manaManager);
            }
            return(manaManager);
        }
Beispiel #20
0
        /// <summary>
        /// Adds a skill.
        /// </summary>
        /// <param name="mainMenu">The main menu.</param>
        /// <param name="slot">The slot.</param>
        /// <param name="Mode">The mode.</param>
        /// <param name="defaultValue">if set to <c>true</c> [default value].</param>
        /// <param name="defMana">The definition mana.</param>
        /// <param name="addMM">if set to <c>true</c> [add mm].</param>
        /// <returns></returns>
        public static MenuItem AddSkill(this Menu mainMenu, SpellSlot slot, Orbwalking.OrbwalkingMode Mode, bool defaultValue = true, int defMana = 20, bool addMM = true)
        {
            if (addMM)
            {
                mainMenu.AddManaManager(slot, Mode, defMana);
            }

            return(mainMenu.AddBool($"solo.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}.{slot.ToString().ToLower()}", $"Use {slot}", defaultValue));
        }
Beispiel #21
0
        public static bool IsEnabledAndReady(this Spell spell, Orbwalking.OrbwalkingMode mode)
        {
            var modeString    = mode.ToString().ToLowerInvariant();
            var EnabledInMenu =
                GetItemValue <bool>(string.Format("dz191.thresh.{0}.use{1}", modeString, spell.Slot.GetStringFromSlot()));
            var Ready = spell.IsReady();

            return(EnabledInMenu && Ready);
        }
Beispiel #22
0
        protected override void OnUpdate(Orbwalking.OrbwalkingMode mode)
        {
            base.OnUpdate(mode);

            if (AutoBuyBlueTrinket && ObjectManager.Player.Level >= BlueTrinketLevel && ObjectManager.Player.InFountain() && ObjectManager.Player.InventoryItems.Any(item => item.Id == ItemId.Warding_Totem_Trinket))
            {
                Shop.BuyItem(ItemId.Farsight_Alteration);
            }
        }
Beispiel #23
0
        public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target)
        {
            if (mode != Orbwalking.OrbwalkingMode.None && StealJungle && MinionManager.GetMinions(Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.None).Any(min => min.HasBuff("Kalistaexpungemarker") && IsKillable(min) && !min.Name.Contains("Mini") && !min.Name.Contains("Dragon") && !min.Name.Contains("Baron")))
            {
                Cast();
            }

            base.Update(mode, combo, target);
        }
Beispiel #24
0
        /// <summary>
        /// Adds the mode menu.
        /// </summary>
        /// <param name="mainMenu">The main menu.</param>
        /// <param name="Mode">The mode.</param>
        /// <returns></returns>
        public static Menu AddModeMenu(this Menu mainMenu, Orbwalking.OrbwalkingMode Mode)
        {
            var modeMenu = new Menu($"[SOLO] {Mode}", $"solo.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}");

            {
                mainMenu.AddSubMenu(modeMenu);
            }
            return(modeMenu);
        }
Beispiel #25
0
        public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target)
        {
            if (AutoHarass && ObjectManager.Player.ManaPercent > AutoHarassMana && target.IsValidTarget(Range))
            {
                Cast(target);
            }

            base.Update(mode, combo, target);
        }
Beispiel #26
0
        public virtual void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, AIHeroClient target)
        {
            if (mode == Orbwalking.OrbwalkingMode.None)
            {
                return;
            }

            var targetIsValid = target.IsValidTarget();

            if (OnlyUpdateIfTargetValid && mode == Orbwalking.OrbwalkingMode.Combo && !targetIsValid)
            {
                return;
            }
            if (OnlyUpdateIfCastable && !CanBeCast())
            {
                return;                                       //Todo: check if nessecary with new comboSystem
            }
            MinHitChance = mode == Orbwalking.OrbwalkingMode.Combo ? MinComboHitchance : MinHarassHitchance;

            switch (mode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                if (ComboEnabled)
                {
                    Combo(target);
                }
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                if (LaneclearEnabled)
                {
                    LaneClear();
                }
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                if (HarassEnabled)
                {
                    if (targetIsValid || !OnlyUpdateIfTargetValid)
                    {
                        Harass(target);
                    }
                    if (LasthitEnabled)
                    {
                        Lasthit();
                    }
                }
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                if (LasthitEnabled)
                {
                    Lasthit();
                }
                break;
            }
        }
Beispiel #27
0
        public static void CastFlayPull(Obj_AI_Hero target, Orbwalking.OrbwalkingMode Mode)
        {
            var finalPosition =
                target.ServerPosition.Extend(
                    ObjectManager.Player.ServerPosition,
                    ObjectManager.Player.Distance(target.ServerPosition) + 100f
                    );

            Thresh.spells[SpellSlot.E].Cast(finalPosition);
        }
Beispiel #28
0
 public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target)
 {
     if (StealthRecall.GetValue <KeyBind>().Active&& _stealthRecallTime + 5 < Game.Time && !ObjectManager.Player.InFountain())
     {
         _stealthRecallTime = Game.Time;
         Cast();
         ObjectManager.Player.Spellbook.CastSpell(ObjectManager.Player.Spellbook.Spells.First(spell => spell.Name == "recall").Slot);
     }
     base.Update(mode, combo, target);
 }
Beispiel #29
0
 public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, AIHeroClient target)
 {
     base.Update(mode, combo, target);
     _recentAutoattack = false;
     if (_resetOrbwalker && !ObjectManager.Player.HasBuff("GarenE"))
     {
         _resetOrbwalker = false;
         Provider.Orbwalker.SetAttack(true);
     }
 }
Beispiel #30
0
        public virtual void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target)
        {
            if (IsSafeCasting()) //Todo: check if it will instant double-toggle toggleable spells like garenE
            {
                _castAction();
            }

            if (OnlyUpdateIfTargetValid && !target.IsValidTarget())
            {
                return;
            }
            if (OnlyUpdateIfCastable && (!CanBeCast() || IsSafeCasting()))
            {
                return;
            }

            if (mode == Orbwalking.OrbwalkingMode.None)
            {
                return;
            }
            if (mode == Orbwalking.OrbwalkingMode.LaneClear && SwitchClearToHarassOnTarget && target != null && HarassEnabled)
            {
                mode = Orbwalking.OrbwalkingMode.Mixed;
            }
            if (UseManaManager && !ManaManager.CanUseMana(mode))
            {
                return;
            }

            Spell.MinHitChance = mode == Orbwalking.OrbwalkingMode.Combo ? MinComboHitchance : MinHarassHitchance;

            switch (mode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                if (ComboEnabled)
                {
                    Combo(combo, target);
                }
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                if (LaneclearEnabled)
                {
                    LaneClear(combo, target);
                }
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                if (HarassEnabled)
                {
                    Harass(combo, target);
                }
                break;
            }
        }
        private static void SetOrbwalkingMode(Orbwalking.OrbwalkingMode mode)
        {
            CurrentMode = mode;
            Text.text = "MODE: " + CurrentMode;

            foreach (var orbwalkMode in KeyDictionary.Keys)
            {
                var value = KeyDictionary[orbwalkMode];
                var key = Menu.Item(value).GetValue<KeyBind>().Key;
                var currentMode = orbwalkMode == mode;
                Menu.SendMessage(key, currentMode ? WindowsMessages.WM_KEYDOWN : WindowsMessages.WM_KEYUP);
            }
        }