Beispiel #1
0
        private static void Harass()
        {
            var t = AssassinManager.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            var useQ = Config.Item("UseQHarass").GetValue <bool>();
            var useE = Config.Item("UseEHarass").GetValue <bool>();

            var useQDontUnderTurret = Config.Item("UseQHarassDontUnderTurret").GetValue <bool>();

            if (Q.IsReady() && useQ)
            {
                if (useQDontUnderTurret)
                {
                    if (!t.UnderTurret())
                    {
                        Q.Cast(t);
                    }
                }
                else
                {
                    Q.Cast(t);
                }
            }

            if (E.IsReady() && useE)
            {
                E.Cast();
            }
        }
Beispiel #2
0
        private static void ComboFlashQ()
        {
            ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            var t = AssassinManager.GetTarget(Q.Range + FlashRange - 20, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (Player.Distance(t) > Q.Range)
            {
                if (FlashSlot != SpellSlot.Unknown && Player.Spellbook.CanUseSpell(FlashSlot) == SpellState.Ready)
                {
                    if (Q.IsCharging && Q.Range >= Q.ChargedMaxRange)
                    {
                        Player.Spellbook.CastSpell(FlashSlot, t.ServerPosition);
                        Q.Cast(t.ServerPosition);
                    }
                    else
                    {
                        Q.StartCharging();
                    }
                }
            }
        }
Beispiel #3
0
        public static void Game_OnProcessSpell(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs spell)
        {
            if (!unit.IsMe)
            {
                return;
            }

            var t = AssassinManager.GetTarget(Orbwalking.GetRealAutoAttackRange(Player) + 65, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            foreach (var xbuff in t.Buffs)
            {
                canUseE = !xbuff.Name.Contains("viq") && !xbuff.Name.Contains("knock");
            }

            var useE = canUseE && E.IsReady();

            if (useE)
            {
                E.Cast(true);
            }
        }
Beispiel #4
0
        private static void UseSpells()
        {
            var t = AssassinManager.GetTarget(Program.Q.Range, TargetSelector.DamageType.Magical);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (SmiteSlot != SpellSlot.Unknown &&
                Program.Player.Spellbook.CanUseSpell(SmiteSlot) == SpellState.Ready)
            {
                SmiteOnTarget(t);
            }

            if (IgniteSlot != SpellSlot.Unknown &&
                Program.Player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                IgniteOnTarget(t);
            }
        }
Beispiel #5
0
        private static void Combo()
        {
            var t = AssassinManager.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) && shennBuffActive)
            {
                return;
            }

            var comboDamage = GetComboDamage(t);

            if (Q.IsReady() && t.IsValidTarget(Q.Range))
            {
                if (Q.IsCharging)
                {
                    Q.Cast(t);
                }
                else
                {
                    Q.StartCharging();
                }
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                UseItems(t);
            }


            if (R.IsReady())
            {
                var useR = (Config.Item("DontUlt" + t.CharData.BaseSkinName) != null &&
                            Config.Item("DontUlt" + t.CharData.BaseSkinName).GetValue <bool>() == false);

                var qDamage = Player.GetSpellDamage(t, SpellSlot.Q);
                var eDamage = Player.GetSpellDamage(t, SpellSlot.E) * E.Instance.Ammo;
                var rDamage = Player.GetSpellDamage(t, SpellSlot.R);

                if (Q.IsReady() && t.Health < qDamage)
                {
                    return;
                }

                if (E.IsReady() && Orbwalking.InAutoAttackRange(t) && t.Health < eDamage)
                {
                    return;
                }

                if (Q.IsReady() && E.IsReady() && t.Health < qDamage + eDamage)
                {
                    return;
                }

                if (useR)
                {
                    if (t.Health > rDamage)
                    {
                        if (Q.IsReady() && E.IsReady() && t.Health < rDamage + qDamage + eDamage)
                        {
                            R.CastOnUnit(t);
                        }
                        else if (E.IsReady() && t.Health < rDamage + eDamage)
                        {
                            R.CastOnUnit(t);
                        }
                        else if (Q.IsReady() && t.Health < rDamage + qDamage)
                        {
                            R.CastOnUnit(t);
                        }
                    }
                    else
                    {
                        if (!Orbwalking.InAutoAttackRange(t))
                        {
                            R.CastOnUnit(t);
                        }
                    }
                }
            }
        }