Exemple #1
0
        private Obj_AI_Minion Get_Nearest_orb()
        {
            var Orb =
                ObjectManager.Get <Obj_AI_Minion>()
                .Where(obj => obj.IsValid && obj.Team == ObjectManager.Player.Team && obj.Name == "Seed")
                .ToList()
                .OrderBy(x => MyHero.Distance(x))
                .FirstOrDefault();

            if (Orb != null)
            {
                return(Orb);
            }

            if (!Menu.Item("W_Only_Orb").GetValue <bool>())
            {
                var minion = ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(x => x.IsValidTarget(W.Range));

                if (minion != null)
                {
                    return(minion);
                }
            }
            return(null);
        }
Exemple #2
0
        public void DoHarass()
        {
            if (MyHero.ManaPercent() < (GeneralMenu.RootM["harass"]["Mana"].As <MenuSliderBool>().Value) || target == null || !target.IsValid)
            {
                return;
            }
            if (GeneralMenu.RootM["harass"]["useW"].As <MenuBool>().Enabled)
            {
                if (MyHero.Distance(target) < SpellManager.W.Range)
                {
                    var Wposition = target.ServerPosition;
                    this.CastW(Wposition);
                }
                else if (MyHero.Distance(target) > SpellManager.W.Range && target.IsValidTarget(SpellManager.W.Range + SpellManager.Q.Range / 2))
                {
                    var Wposition = MyHero.ServerPosition.Extend(target.ServerPosition, 700);
                    this.CastW(Wposition);
                }
            }

            if ((GeneralMenu.RootM["harass"]["useQ"].As <MenuBool>().Enabled))
            {
                CastQ(target);
            }

            if (GeneralMenu.RootM["harass"]["useE"].As <MenuBool>().Enabled)
            {
                this.CastE();
            }
        }
Exemple #3
0
 public void CheckBallStatus(Obj_AI_Base target, Obj_AI_Base sphere)
 {
     if (target != null && E.IsReady)
     {
         var distance = MyHero.Distance(sphere.Position);
         if (distance <= E.Range)
         {
             var startPosition    = sphere.Position.To2D();
             var endPosition      = (MyHero.Position + (sphere.Position - MyHero.Position).Normalized() * QE.Range).To2D();
             var travelTimeToBall = E.CastDelay + (int)(1000 * distance / E.Speed);
             QE.CastDelay = travelTimeToBall;
             var pred = QE.GetPrediction(target, new CustomSettings {
                 SourcePosition = sphere.Position
             });
             QE.CachedPredictions.Clear();
             if (pred.HitChancePercent >= QE.HitChancePercent)
             {
                 if (pred.CastPosition.To2D().Distance(startPosition, endPosition, true, true) <= Math.Pow(QE.Width + target.BoundingRadius, 2))
                 {
                     var castPositionInRange = MyHero.Position + (pred.CastPosition - MyHero.Position).Normalized() * 100;
                     if (!WillHitSpheres.ContainsKey(sphere.NetworkId))
                     {
                         WillHitSpheres.Add(sphere.NetworkId, new Dictionary <int, Vector3>());
                     }
                     WillHitSpheres[sphere.NetworkId].Add(target.NetworkId, castPositionInRange);
                 }
             }
         }
     }
 }
Exemple #4
0
        public override void OnLaneClear()
        {
            if (!ManaManagerAllowCast())
            {
                return;
            }

            var allMinionsQ = MinionManager.GetMinions(MyHero.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly);
            var allMinionsW = MinionManager.GetMinions(MyHero.ServerPosition, W.Range, MinionTypes.All, MinionTeam.NotAlly);

            if (soilderCount() > 0)
            {
                var slaves = (from obj in ObjectManager.Get <Obj_AI_Base>()
                              where obj.Name == "AzirSoldier" && obj.IsAlly && MyHero.Distance(obj.ServerPosition) < 2000
                              select obj).ToList();
                foreach (var slave in slaves)
                {
                    Q.UpdateSourcePosition(slave.ServerPosition, slave.ServerPosition);
                    var qpred = Q.GetCircularFarmLocation(allMinionsQ);

                    if (qpred.MinionsHit > 2 && MyHero.Distance(qpred.Position) < Q.Range && IsSpellActive("Q"))
                    {
                        Q.Cast(qpred.Position, UsePackets());
                    }
                }
            }
            else if (W.IsReady())
            {
                var wpred = W.GetCircularFarmLocation(allMinionsW);
                if (wpred.MinionsHit > 0 && MyHero.Distance(wpred.Position) < W.Range && IsSpellActive("W"))
                {
                    W.Cast(wpred.Position);
                }
            }
        }
Exemple #5
0
 public void CastE()
 {
     if (!SpellManager.E.Ready)
     {
         return;
     }
     if (!Rpos.Equals(new Vector3()))
     {
         if (target.Distance(Rpos) < SpellManager.E.Range)
         {
             SpellManager.E.Cast();
         }
     }
     if (!Wpos.Equals(new Vector3()))
     {
         if (target.Distance(Wpos) < SpellManager.E.Range)
         {
             SpellManager.E.Cast();
         }
     }
     if (MyHero.Distance(target) < SpellManager.E.Range)
     {
         SpellManager.E.Cast();
     }
 }
Exemple #6
0
        public override void OnCombo()
        {
            var wTarget  = SimpleTs.GetTarget(1500, SimpleTs.DamageType.Physical);
            var minRange = Menu.Item("W_Min_Range").GetValue <Slider>().Value;

            if (wTarget != null)
            {
                if (MyHero.Distance(wTarget) > minRange)
                {
                    var wPred = W.GetPrediction(wTarget);
                    if (IsSpellActive("W") && W.IsReady() && wPred.Hitchance >= HitChance.High)
                    {
                        W.Cast(wPred.CastPosition, UsePackets());
                    }
                }
            }

            if (IsSpellActive("Q"))
            {
                Q_Check();
            }

            if (IsSpellActive("E"))
            {
                Cast_E(Menu.Item("Auto_W_Immobile").GetValue <bool>(), Menu.Item("Auto_W_Slow").GetValue <bool>(), Menu.Item("E_Behind_Target").GetValue <bool>());
            }
            if (IsSpellActive("R"))
            {
                Cast_R();
            }
        }
Exemple #7
0
        public override void OnHarass()
        {
            if (ManaManagerAllowCast())
            {
                var wTarget  = SimpleTs.GetTarget(1500, SimpleTs.DamageType.Physical);
                var minRange = Menu.Item("W_Min_Range").GetValue <Slider>().Value;

                if (wTarget != null)
                {
                    if (MyHero.Distance(wTarget) > minRange)
                    {
                        var wPred = W.GetPrediction(wTarget);
                        if (IsSpellActive("W") && W.IsReady() && wPred.Hitchance >= HitChance.High)
                        {
                            W.Cast(wPred.CastPosition, UsePackets());
                        }
                    }
                }

                if (IsSpellActive("Q"))
                {
                    Q_Check();
                }
            }
        }
Exemple #8
0
        public override void OnCombo()
        {
            var target = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical);

            if (IsSpellActive("W") && W.IsReady() && MyHero.Distance(target) < 500)
            {
                W.Cast(UsePackets());
            }

            if (IsSpellActive("Q") && Q_Check(target))
            {
                Cast_BasicSkillshot_Enemy(Q, SimpleTs.DamageType.Magical);
            }

            if (IsSpellActive("E") && E.IsReady() && MyHero.Distance(target) < 300 && !Menu.Item("Misc_E_Reset").GetValue <bool>())
            {
                E.Cast();
            }

            if (IsSpellActive("R") && R.IsReady() && !Q.IsReady())
            {
                var rPred = Prediction.GetPrediction(target, .25f);

                if (rPred.Hitchance >= HitChance.High && MyHero.Distance(rPred.UnitPosition) < R.Range)
                {
                    R.Cast(UsePackets());
                }
            }
        }
Exemple #9
0
 public void CastE(Obj_AI_Base target, Vector3 position)
 {
     if (target != null && E.IsReady)
     {
         var distance = MyHero.Distance(position);
         if (distance <= E.Range)
         {
             var startPosition    = position.To2D();
             var endPosition      = (MyHero.Position + (position - MyHero.Position).Normalized() * QE.Range).To2D();
             var travelTimeToBall = E.CastDelay + (int)(1000 * distance / E.Speed);
             QE.CastDelay = travelTimeToBall;
             var pred = QE.GetPrediction(target, new CustomSettings {
                 SourcePosition = position
             });
             QE.CachedPredictions.Clear();
             if (pred.HitChancePercent >= QE.HitChancePercent)
             {
                 if (pred.CastPosition.To2D().Distance(startPosition, endPosition, true, true) <= Math.Pow(QE.Width + target.BoundingRadius, 2))
                 {
                     var castPositionInRange = MyHero.Position + (pred.CastPosition - MyHero.Position).Normalized() * 100;
                     QE.Cast(castPositionInRange);
                 }
             }
         }
     }
 }
Exemple #10
0
        public override void OnCombo()
        {
            var target        = SimpleTs.GetTarget(_qExtend.Range, SimpleTs.DamageType.Magical);
            var soilderTarget = SimpleTs.GetTarget(1000, SimpleTs.DamageType.Magical);

            if (IsSpellActive("R") && Should_R(target) && MyHero.Distance(target) < R.Range)
            {
                Cast_BasicSkillshot_Enemy(R);
            }

            //WQ
            if (IsSpellActive("W") && IsSpellActive("Q") && soilderCount() == 0 && Menu.Item("Use_W_Q_Poke").GetValue <bool>())
            {
                Cast_WQ(target);
            }

            //W
            if (IsSpellActive("W") && W.IsReady())
            {
                Cast_W(target);
            }

            //Q
            if (IsSpellActive("Q") && Q.IsReady())
            {
                Cast_Q(target);
                return;
            }

            //E
            if (IsSpellActive("E"))
            {
                Cast_E(soilderTarget);
            }
        }
Exemple #11
0
        private void Cast_E()
        {
            var target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Magical);

            if (target != null && E.IsReady())
            {
                if (Menu.Item("E_Only_Stun").GetValue <bool>())
                {
                    var Target_Health_Percent = target.Health / target.MaxHealth * 100;

                    if (GetHealthPercent() < Target_Health_Percent)
                    {
                        E.Cast(target, UsePackets());
                        return;
                    }
                }

                if (Menu.Item("E_Running").GetValue <bool>())
                {
                    var pred = Prediction.GetPrediction(target, 1f);

                    if (MyHero.Distance(target) < MyHero.Distance(pred.UnitPosition) && MyHero.Distance(target) > 200)
                    {
                        E.Cast(target, UsePackets());
                    }
                }
            }
        }
        private void Cast_W(bool mode)
        {
            if (mode)
            {
                var W_Target = SimpleTs.GetTarget(W.Range + 100, SimpleTs.DamageType.Magical);

                var Grabbable_Obj  = Get_Nearest_orb();
                var W_Toggle_State = MyHero.Spellbook.GetSpell(SpellSlot.W).ToggleState;

                if (W_Target != null)
                {
                    if (W_Toggle_State == 1 && Environment.TickCount - W.LastCastAttemptT > Game.Ping && W.IsReady() &&
                        Grabbable_Obj != null)
                    {
                        W.Cast(Grabbable_Obj.ServerPosition);
                        W.LastCastAttemptT = Environment.TickCount + 500;
                        return;
                    }

                    W.UpdateSourcePosition(Get_Current_Orb().ServerPosition, Get_Current_Orb().ServerPosition);
                    if (MyHero.Distance(W_Target) < E.Range)
                    {
                        if (W_Toggle_State != 1 && W.IsReady() && W.GetPrediction(W_Target).Hitchance >= HitChance.High &&
                            Environment.TickCount - W.LastCastAttemptT > Game.Ping + 100)
                        {
                            W.Cast(W_Target);
                        }
                    }

                    if (W_Toggle_State != 1 && W.IsReady() && W.GetPrediction(W_Target).Hitchance >= HitChance.High)
                    {
                        W.Cast(W_Target);
                    }
                }
            }
            else
            {
                var allMinionsW = MinionManager.GetMinions(MyHero.ServerPosition, W.Range + W.Width + 20, MinionTypes.All, MinionTeam.NotAlly);

                var Grabbable_Obj  = Get_Nearest_orb();
                var W_Toggle_State = MyHero.Spellbook.GetSpell(SpellSlot.W).ToggleState;

                if (W_Toggle_State == 1 && Environment.TickCount - W.LastCastAttemptT > Game.Ping && W.IsReady() &&
                    Grabbable_Obj != null)
                {
                    W.Cast(Grabbable_Obj.ServerPosition);
                    W.LastCastAttemptT = Environment.TickCount + 1000;
                    return;
                }

                W.UpdateSourcePosition(Get_Current_Orb().ServerPosition, Get_Current_Orb().ServerPosition);

                var farmLocation = W.GetCircularFarmLocation(allMinionsW);

                if (farmLocation.MinionsHit > 2)
                {
                    W.Cast(farmLocation.Position);
                }
            }
        }
Exemple #13
0
        private void Cast_R()
        {
            var target = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical);

            if (R.IsReady() && target != null)
            {
                if (Menu.Item("Dont_R" + target.BaseSkinName) != null)
                {
                    if (!Menu.Item("Dont_R" + target.BaseSkinName).GetValue <bool>())
                    {
                        var minRange = Menu.Item("R_Min_Range").GetValue <Slider>().Value;
                        var minHit   = Menu.Item("R_Mec").GetValue <Slider>().Value;

                        if (Get_R_Dmg(target) > target.Health && MyHero.Distance(target) > minRange)
                        {
                            R.Cast(target, UsePackets());
                            return;
                        }

                        foreach (var unit in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(R.Range) && x.IsVisible).OrderBy(x => x.Health))
                        {
                            var pred = R.GetPrediction(unit, true);
                            if (MyHero.Distance(unit) > minRange && pred.AoeTargetsHitCount >= minHit)
                            {
                                R.Cast(unit, UsePackets());
                                //Game.PrintChat("casting");
                                return;
                            }
                        }
                    }
                }
            }
        }
Exemple #14
0
        private void Cast_E()
        {
            if (getOrbCount() <= 0)
            {
                return;
            }
            var target = SimpleTs.GetTarget(_qe.Range + 100, SimpleTs.DamageType.Magical);

            foreach (var orb in getOrb().Where(x => MyHero.Distance(x) < E.Range))
            {
                var startPos = orb.ServerPosition;
                var endPos   = MyHero.ServerPosition + (startPos - MyHero.ServerPosition) * _qe.Range;

                E.UpdateSourcePosition();
                var targetPos = _qe.GetPrediction(target);

                var projection = targetPos.UnitPosition.To2D().ProjectOn(startPos.To2D(), endPos.To2D());

                if (!projection.IsOnSegment || !E.IsReady() ||
                    !(projection.LinePoint.Distance(targetPos.UnitPosition.To2D()) < _qe.Width + target.BoundingRadius))
                {
                    return;
                }
                E.Cast(orb.ServerPosition, UsePackets());
                W.LastCastAttemptT = Environment.TickCount + 500;
                return;
            }
        }
        private void Cast_SecondQ()
        {
            if (!HasSecondQBuff())
            {
                return;
            }

            var target = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);

            if (target == null)
            {
                return;
            }

            if (Environment.TickCount - _qCastedtime > 3600)
            {
                Game.PrintChat("2Q EndTime");
                Q.CastOnUnit(target, UsePackets());
            }

            if (MyHero.GetSpellDamage(target, SpellSlot.Q) * 0.95 > target.Health)
            {
                Game.PrintChat("2Q KS");
                Q.CastOnUnit(target, UsePackets());
            }

            if (MyHero.Distance(target.ServerPosition) > Q.Range * 0.7)
            {
                Game.PrintChat("2Q Range");
                Q.CastOnUnit(target, UsePackets());
            }
        }
        private void Cast_R()
        {
            var target = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical);

            if (R.IsReady() && target != null)
            {
                if (Menu.Item("Dont_R" + target.BaseSkinName) != null)
                {
                    if (!Menu.Item("Dont_R" + target.BaseSkinName).GetValue <bool>())
                    {
                        var minRange = Menu.Item("R_Min_Range").GetValue <Slider>().Value;
                        var minHit   = Menu.Item("R_Mec").GetValue <Slider>().Value;

                        if (Get_R_Dmg(target) > target.Health && MyHero.Distance(target) > minRange)
                        {
                            R.Cast(target, UsePackets());
                            return;
                        }

                        if (MyHero.Distance(target) > minRange)
                        {
                            R.CastIfWillHit(target, minHit, UsePackets());
                        }
                    }
                }
            }
        }
Exemple #17
0
 private void Cast_E(bool mode)
 {
     if (!E.IsReady())
     {
         return;
     }
     if (mode)
     {
         var target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Magical);
         if (target.HasBuff("Chilled"))
         {
             E.CastOnUnit(target, UsePackets());
             return;
         }
         if (MyHero.GetSpellDamage(target, SpellSlot.E) > target.Health)
         {
             E.CastOnUnit(target, UsePackets());
             return;
         }
         if (R.IsReady() && MyHero.Distance(target) <= R.Range - 25)
         {
             E.CastOnUnit(target, UsePackets());
         }
     }
     else
     {
         var minions      = MinionManager.GetMinions(MyHero.Position, E.Range, MinionTypes.All, MinionTeam.Neutral);
         var miniontarget = minions.FirstOrDefault(minion => minion.HasBuff("Chilled") && minion.MaxHealth > 800);
         if (miniontarget != null)
         {
             E.CastOnUnit(miniontarget, UsePackets());
         }
     }
 }
Exemple #18
0
        public void DoKillSteal()
        {
            if (!RootM["killsteal"]["ks"].As <MenuBool>().Enabled)
            {
                return;
            }

            foreach (var hptarget in GameObjects.EnemyHeroes.Where(a => a.IsValidTarget(1200) && !a.IsDead))
            {
                if (!hptarget.IsValid || hptarget.IsDead || hptarget == null)
                {
                    return;
                }

                var Health = hptarget.Health;
                var dmgE   = MyHero.GetSpellDamage(hptarget, SpellSlot.E);
                if (MyHero.Distance(hptarget) < E.Range && Health < dmgE &&
                    RootM["killsteal"]["useE"].As <MenuBool>().Enabled)
                {
                    E.Cast(hptarget);
                }

                var dmgQ = MyHero.GetSpellDamage(hptarget, SpellSlot.Q);
                if (MyHero.Distance(hptarget) < Q.Range && Health < dmgQ &&
                    RootM["killsteal"]["useQ"].As <MenuBool>().Enabled)
                {
                    Q.Cast(hptarget);
                }

                var dmgW = MyHero.GetSpellDamage(hptarget, SpellSlot.W);
                if (MyHero.Distance(hptarget) < W.Range && Health < dmgW &&
                    RootM["killsteal"]["useW"].As <MenuBool>().Enabled)
                {
                    W.Cast(hptarget);
                }

                var dmgR = MyHero.GetSpellDamage(hptarget, SpellSlot.Q);
                if (MyHero.Distance(hptarget) < Q.Range && Health < dmgR &&
                    RootM["killsteal"]["useR"].As <MenuBool>().Enabled)
                {
                    CastR("RQ", hptarget);
                }

                if (!IsIgnite)
                {
                    continue;
                }
                var dmgI = (50 + ((MyHero.Level) * 20));
                if (MyHero.Distance(hptarget) < Q.Range && Health < dmgI &&
                    RootM["killsteal"]["useI"].As <MenuBool>().Enabled)
                {
                    Ignite.CastOnUnit(hptarget);
                }

                // this.DoOneShotCombo(hptarget);
            }
        }
Exemple #19
0
        private Obj_AI_Base Get_Nearest_Soilder_To_Mouse()
        {
            // xSalice this need a remaake couse your funktions in it are "not used"
            var soilder = (from obj in ObjectManager.Get <Obj_AI_Base>()
                           where obj.Name == "AzirSoldier" && obj.IsAlly && MyHero.Distance(obj.ServerPosition) < 2000
                           select obj).ToList();

            return(soilder.FirstOrDefault());
        }
Exemple #20
0
 public void CastQ(Obj_AI_Base unit)
 {
     if (!Q.Ready)
     {
         return;
     }
     if (MyHero.Distance(unit) < Q.Range)
     {
         Q.CastOnUnit(unit);
     }
 }
Exemple #21
0
 public void CastW(Vector3 pos)
 {
     if (!W.Ready || MyHero.SpellBook.GetSpell(SpellSlot.W).Name.ToLower() != "leblancw")
     {
         return;
     }
     if (MyHero.Distance(pos) < W.Range)
     {
         W.Cast(pos);
     }
 }
Exemple #22
0
 private void AutoQ()
 {
     if (target == null || !target.IsValid)
     {
         return;
     }
     if (MyHero.Distance(target) < SpellManager.Q.Range && GeneralMenu.RootM["harass"]["useQ"].As <MenuBool>().Enabled)
     {
         this.CastQ(target);
     }
 }
Exemple #23
0
 public void CastE(Obj_AI_Base unit)
 {
     if (!E.Ready)
     {
         return;
     }
     if (MyHero.Distance(unit) < E.Range)
     {
         E.Cast(unit);
     }
 }
Exemple #24
0
        private GameObject GetClosestEnemyTurret(Vector3 pos)
        {
            var c = (float)10000;

            foreach (var turret in GameObjects.AllGameObjects.Where(a => a.IsTurret && a.Team != MyHero.Team))
            {
                if (MyHero.Distance(turret) <= c)
                {
                    c = MyHero.Distance(turret);
                    t = turret;
                }
            }
            return(t);
        }
Exemple #25
0
        public override void OnGapClose(ActiveGapcloser gapcloser)
        {
            if (!Menu.Item("E_Gap_Closer").GetValue <bool>())
            {
                return;
            }

            if (MyHero.Distance(gapcloser.End) < MyHero.Distance(gapcloser.Start))
            {
                if (E.IsReady() && gapcloser.Sender.IsValidTarget(E.Range))
                {
                    E.Cast(gapcloser.Sender, UsePackets());
                }
            }
        }
Exemple #26
0
        private void Cast_QE(Obj_AI_Hero target)
        {
            if (soilderCount() > 0)
            {
                if ((Q.IsReady() || QSpell.State == SpellState.Surpressed) && E.IsReady())
                {
                    var slaves = (from obj in ObjectManager.Get <Obj_AI_Base>()
                                  where obj.Name == "AzirSoldier" && obj.IsAlly && target.Distance(obj.ServerPosition) < 2000
                                  select obj).ToList();

                    foreach (var slave in slaves)
                    {
                        if (target != null && MyHero.Distance(target) < 800)
                        {
                            Q.UpdateSourcePosition(slave.ServerPosition, slave.ServerPosition);
                            var qPred = Q.GetPrediction(target);

                            if (Q.IsReady() && MyHero.Distance(target) < 800 && qPred.Hitchance >= Get_Q_Hitchance())
                            {
                                var vec        = target.ServerPosition - MyHero.ServerPosition;
                                var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75;

                                Q.Cast(castBehind, UsePackets());
                                E.Cast(slave.ServerPosition, UsePackets());
                                return;
                            }
                        }
                    }
                }
            }
            else if (W.IsReady())
            {
                var wVec = MyHero.ServerPosition + Vector3.Normalize(target.ServerPosition - MyHero.ServerPosition) * 450;

                Q.UpdateSourcePosition(wVec, wVec);
                var qPred = Q.GetPrediction(target);

                if ((Q.IsReady() || QSpell.State == SpellState.Surpressed) && (E.IsReady() || ESpell.State == SpellState.Surpressed) && MyHero.Distance(target) < 800 && qPred.Hitchance >= HitChance.High)
                {
                    var vec        = target.ServerPosition - MyHero.ServerPosition;
                    var castBehind = qPred.CastPosition + Vector3.Normalize(vec) * 75;

                    W.Cast(wVec);
                    _qExtend.Cast(castBehind, UsePackets());
                    Utility.DelayAction.Add(1, () => E.Cast(getNearestSoilderToEnemy(target).ServerPosition, UsePackets()));
                }
            }
        }
Exemple #27
0
 protected override void Combo()
 {
     if (Target != null)
     {
         if (Core.GameTickCount - W.LastSentTime < 100)
         {
             return;
         }
         if (Core.GameTickCount - E.LastSentTime < 100)
         {
             return;
         }
         if (Core.GameTickCount - W.LastCastTime < W.CastDelay + 50)
         {
             return;
         }
         if (Core.GameTickCount - E.LastCastTime < E.CastDelay + 50)
         {
             return;
         }
         if (Spells.E.Missile != null && Spells.E.Missile.IsValidMissile() && MyHero.Distance(Spells.E.Missile, true) <= MyHero.Distance(Target, true))
         {
             return;
         }
         if (Orbwalker.CanAutoAttack && HasPassive && MyHero.IsInAutoAttackRange(Target))
         {
             return;
         }
         if (ComboMenu.CheckBox("E"))
         {
             CastE(Target);
         }
         if (ComboMenu.CheckBox("W"))
         {
             CastW(Target);
         }
         if (StartWithCc && W.IsReady && E.IsReady)
         {
             return;
         }
         if (ComboMenu.CheckBox("Q"))
         {
             CastQ(Target);
         }
     }
     base.Combo();
 }
Exemple #28
0
        public override void OnCombo()
        {
            if (IsSpellActive("Q"))
            {
                Cast_Q(true);
            }
            if (IsSpellActive("W"))
            {
                Cast_W();
            }
            if (IsSpellActive("E"))
            {
                Cast_E();
            }

            var Q_Target = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical);

            if (Q_Target != null)
            {
                if (GetComboDamage(Q_Target) >= Q_Target.Health && IsSpellActive("Ignite") &&
                    Ignite != SpellSlot.Unknown && MyHero.Distance(Q_Target) < 650 &&
                    MyHero.SummonerSpellbook.CanUseSpell(Ignite) == SpellState.Ready)
                {
                    Use_Ignite(Q_Target);
                }

                if (IsSpellActive("Botrk"))
                {
                    if (Bilge.IsReady() && getComboDmgPercent(Q_Target) < 5 &&
                        !Q_Target.HasBuffOfType(BuffType.Slow))
                    {
                        Use_Bilge(Q_Target);
                    }

                    if (Botrk.IsReady() && getComboDmgPercent(Q_Target) < 5 &&
                        !Q_Target.HasBuffOfType(BuffType.Slow))
                    {
                        Use_Botrk(Q_Target);
                    }
                }
            }

            if (IsSpellActive("R"))
            {
                Cast_R();
            }
        }
Exemple #29
0
        private void Cast_E_Escape()
        {
            foreach (
                var unit in
                ObjectManager.Get <Obj_AI_Hero>()
                .Where(x => x.IsValidTarget(E.Range) && !x.IsDead && x.IsEnemy)
                .OrderBy(x => MyHero.Distance(x)))
            {
                var ePred      = E.GetPrediction(unit);
                var eBehindVec = ePred.CastPosition - Vector3.Normalize(unit.ServerPosition - MyHero.ServerPosition) * 150;

                if (E.IsReady())
                {
                    E.Cast(eBehindVec, UsePackets());
                }
            }
        }
Exemple #30
0
        private void AttackTarget(Obj_AI_Base target)
        {
            if (soilderCount() < 1)
            {
                return;
            }

            var tar = getNearestSoilderToEnemy(target);

            if (tar != null && MyHero.Distance(tar) < 800)
            {
                if (target != null && tar.Distance(target) <= 390 && CanAttack())
                {
                    xSLxOrbwalker.Orbwalk(Game.CursorPos, target);
                }
            }
        }