Beispiel #1
0
        private void OnCombo()
        {
            var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (Q.IsReady() && Utilities.Enabled("q.combo"))
                {
                    if (IsMinigun && target.Distance(ObjectManager.Player.Position) >= MinigunRange)
                    {
                        Q.Cast();
                    }
                    if (IsFishBone && target.Distance(ObjectManager.Player.Position) <= MinigunRange)
                    {
                        Q.Cast();
                    }
                    if (IsFishBone && target.Distance(ObjectManager.Player.Position) > FishBoneRange)
                    {
                        Q.Cast();
                    }
                }

                if (W.IsReady() && Utilities.Enabled("w.combo"))
                {
                    W.Do(target, Utilities.HikiChance("hitchance"));
                }

                if (R.IsReady() && Utilities.Enabled("r.combo") &&
                    target.IsValidTarget(Utilities.Slider("ult.distance")) && target.Health < R.GetDamage(target))
                {
                    R.Do(target, Utilities.HikiChance("hitchance"));
                }
            }
        }
Beispiel #2
0
        public static void SelectedCondemn()
        {
            switch (Initializer.Config.Item("condemn.style", true).GetValue <StringList>().SelectedIndex)
            {
            case 0:
                foreach (var target in HeroManager.Enemies.Where(h => h.IsValidTarget(E.Range)))
                {
                    if (Utilities.Enabled("condemnset." + target.CharData.BaseSkinName))
                    {
                        var   pushDistance   = Utilities.Slider("condemn.distance");
                        var   targetPosition = E.GetPrediction(target).UnitPosition;
                        var   pushDirection  = (targetPosition - ObjectManager.Player.ServerPosition).Normalized();
                        float checkDistance  = pushDistance / 40f;
                        for (int i = 0; i < 40; i++)
                        {
                            Vector3 finalPosition = targetPosition + (pushDirection * checkDistance * i);
                            var     collFlags     = NavMesh.GetCollisionFlags(finalPosition);
                            if (collFlags.HasFlag(CollisionFlags.Wall) || collFlags.HasFlag(CollisionFlags.Building))     //not sure about building, I think its turrets, nexus etc
                            {
                                E.Cast(target);
                            }
                        }
                    }
                }
                break;

            case 1:
                foreach (var En in HeroManager.Enemies.Where(hero => hero.IsValidTarget(E.Range) && !hero.HasBuffOfType(BuffType.SpellShield) && !hero.HasBuffOfType(BuffType.SpellImmunity)))
                {
                    if (Utilities.Enabled("condemnset." + En.CharData.BaseSkinName))
                    {
                        var EPred         = E.GetPrediction(En);
                        int pushDist      = Utilities.Slider("condemn.distance");
                        var FinalPosition = EPred.UnitPosition.To2D().Extend(ObjectManager.Player.ServerPosition.To2D(), -pushDist).To3D();

                        for (int i = 1; i < pushDist; i += (int)En.BoundingRadius)
                        {
                            Vector3 loc3 = EPred.UnitPosition.To2D().Extend(ObjectManager.Player.ServerPosition.To2D(), -i).To3D();

                            if (loc3.IsWall() || AsunasAllyFountain(FinalPosition))
                            {
                                E.Cast(En);
                            }
                        }
                    }
                }
                break;

            case 2:
                foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(E.Range) && !x.HasBuffOfType(BuffType.SpellShield) && !x.HasBuffOfType(BuffType.SpellImmunity) &&
                                                                IsCondemable(x)))
                {
                    if (Utilities.Enabled("condemnset." + enemy.CharData.BaseSkinName))
                    {
                        E.Cast(enemy);
                    }
                }
                break;
            }
        }
Beispiel #3
0
 public static void CondemnJungleMobs()
 {
     foreach (var jungleMobs in ObjectManager.Get <Obj_AI_Minion>().Where(o => o.IsValidTarget(E.Range) && o.Team == GameObjectTeam.Neutral && o.IsVisible && !o.IsDead))
     {
         if (jungleMobs.CharData.BaseSkinName == "SRU_Razorbeak" || jungleMobs.CharData.BaseSkinName == "SRU_Red" ||
             jungleMobs.CharData.BaseSkinName == "SRU_Blue" || jungleMobs.CharData.BaseSkinName == "SRU_Dragon" ||
             jungleMobs.CharData.BaseSkinName == "SRU_Krug" || jungleMobs.CharData.BaseSkinName == "SRU_Gromp" ||
             jungleMobs.CharData.BaseSkinName == "Sru_Crab")
         {
             var   pushDistance   = Utilities.Slider("condemn.distance");
             var   targetPosition = E.GetPrediction(jungleMobs).UnitPosition;
             var   pushDirection  = (targetPosition - ObjectManager.Player.ServerPosition).Normalized();
             float checkDistance  = pushDistance / 40f;
             for (int i = 0; i < 40; i++)
             {
                 Vector3 finalPosition = targetPosition + (pushDirection * checkDistance * i);
                 var     collFlags     = NavMesh.GetCollisionFlags(finalPosition);
                 if (collFlags.HasFlag(CollisionFlags.Wall) || collFlags.HasFlag(CollisionFlags.Building)) //not sure about building, I think its turrets, nexus etc
                 {
                     E.Cast(jungleMobs);
                 }
             }
         }
     }
 }
Beispiel #4
0
        private void OnHarass()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("harass.mana"))
            {
                return;
            }

            var target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (Q.IsReady() && Utilities.Enabled("q.harass"))
                {
                    if (IsMinigun && target.Distance(ObjectManager.Player.Position) >= MinigunRange)
                    {
                        Q.Cast();
                    }
                    if (IsFishBone && target.Distance(ObjectManager.Player.Position) <= MinigunRange)
                    {
                        Q.Cast();
                    }
                    if (IsFishBone && target.Distance(ObjectManager.Player.Position) > FishBoneRange)
                    {
                        Q.Cast();
                    }
                }

                if (W.IsReady() && target.IsValidTarget(W.Range) && Utilities.Enabled("w.harass"))
                {
                    W.Do(target, Utilities.HikiChance("hitchance"));
                }
            }
        }
Beispiel #5
0
 public static void ComboUltimateLogic()
 {
     if (ObjectManager.Player.CountEnemiesInRange(1000) >= Utilities.Slider("combo.r.count"))
     {
         R.Cast();
     }
 }
Beispiel #6
0
        private static void OnJungle()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("jungle.mana"))
            {
                return;
            }
            if (Q.IsReady() && Utilities.Enabled("q.jungle"))
            {
                var target = MinionManager.GetMinions(ObjectManager.Player.AttackRange, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth)
                             .FirstOrDefault(x => x.IsValidTarget(Q.Range));

                if (target != null)
                {
                    Q.Do(target, HitChance.High);
                }
            }

            if (W.IsReady() && Utilities.Enabled("w.jungle"))
            {
                var target = MinionManager.GetMinions(ObjectManager.Player.AttackRange, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth)
                             .FirstOrDefault(x => x.IsValidTarget(W.Range));

                if (target != null)
                {
                    W.Do(target, HitChance.High);
                }
            }
        }
Beispiel #7
0
        private static void OnCombo()
        {
            var target = TargetSelector.GetTarget(2000, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (W.IsReady() && Utilities.Enabled("w.combo") && target.IsValidTarget(W.Range))
                {
                    W.Do(target, Utilities.HikiChance("hitchance"));
                }

                if (R.IsReady() && Utilities.Enabled("r.combo"))
                {
                    if (target.IsValidTarget(R.Range) && R.GetDamage(target) > target.Health)
                    {
                        R.Do(target, Utilities.HikiChance("hitchance"));
                    }

                    if (target.IsValidTarget(R.Range / 6))
                    {
                        R.Do(target, Utilities.HikiChance("hitchance"));
                    }

                    if (target.IsValidTarget(ObjectManager.Player.AttackRange) &&
                        target.HasBuffOfType(BuffType.Slow))
                    {
                        R.Do(target, Utilities.HikiChance("hitchance"));
                    }
                }
            }
        }
Beispiel #8
0
        private static void Clear()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("lucian.clear.mana"))
            {
                return;
            }
            if (Q.IsReady() && Utilities.Enabled("lucian.q.clear") && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
            {
                foreach (var minion in MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All,
                                                                MinionTeam.NotAlly))
                {
                    var prediction = Prediction.GetPrediction(minion, Q.Delay,
                                                              ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).SData.CastRadius);

                    var collision = Q.GetCollision(ObjectManager.Player.Position.To2D(),
                                                   new List <Vector2> {
                        prediction.UnitPosition.To2D()
                    });

                    foreach (var cs in collision)
                    {
                        if (collision.Count >= Utilities.Slider("lucian.q.minion.hit.count"))
                        {
                            if (collision.Last().Distance(ObjectManager.Player) -
                                collision[0].Distance(ObjectManager.Player) <= 600 &&
                                collision[0].Distance(ObjectManager.Player) <= 500)
                            {
                                Q.Cast(cs);
                            }
                        }
                    }
                }
            }

            if (W.IsReady() && Utilities.Enabled("lucian.w.clear") && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
            {
                if (W.GetCircularFarmLocation(MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range, MinionTypes.All, MinionTeam.NotAlly)).MinionsHit >= Utilities.Slider("lucian.w.minion.hit.count"))
                {
                    W.Cast(W.GetCircularFarmLocation(MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range, MinionTypes.All, MinionTeam.NotAlly)).Position);
                }
            }

            if (Q.IsReady() && Utilities.Enabled("lucian.q.harass.in.laneclear") &&
                ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
            {
                var minions = ObjectManager.Get <Obj_AI_Minion>().Where(o => o.IsValidTarget(Q.Range));
                var target  = ObjectManager.Get <AIHeroClient>().Where(x => x.IsValidTarget(Q2.Range)).FirstOrDefault(x => Initializer.Config.Item("lucian.white" + x.ChampionName, true).GetValue <bool>());
                if (target.Distance(ObjectManager.Player.Position) > Q.Range && target.CountEnemiesInRange(Q2.Range) > 0)
                {
                    foreach (var minion in minions)
                    {
                        if (Q2.WillHit(target, ObjectManager.Player.ServerPosition.Extend(minion.ServerPosition, Q2.Range), 0, HitChance.VeryHigh))
                        {
                            Q2.CastOnUnit(minion);
                        }
                    }
                }
            }
        }
Beispiel #9
0
        public static void QCast(Obj_AI_Hero enemy)
        {
            switch (Initializer.Config.Item("q.type", true).GetValue <StringList>().SelectedIndex)
            {
            case 0:
                Q.Cast(Game.CursorPos);
                break;

            case 1:
                Utilities.ECast(enemy, Q);
                break;
            }
        }
Beispiel #10
0
 private void OnProcess(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (sender.IsEnemy && sender is AIHeroClient &&
         args.End.Distance(ObjectManager.Player.Position) < 100 &&
         args.SData.Name == "JarvanIVCataclysm" && args.Slot == SpellSlot.R &&
         Utilities.Enabled("dodge.jarvan.ult") &&
         (!ObjectManager.Player.Position.Extend(args.End, -E.Range).IsWall() ||
          !ObjectManager.Player.Position.Extend(args.End, -E.Range).UnderTurret(true)))
     {
         var extpos = ObjectManager.Player.Position.Extend(args.End, -E.Range);
         E.Cast(extpos);
     }
 }
Beispiel #11
0
 private void VayneOnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (sender.IsMe && Orbwalking.IsAutoAttack(args.SData.Name) && sender.Target is Obj_AI_Hero &&
         sender.Type == GameObjectType.obj_AI_Hero)
     {
         if (Utilities.Enabled("combo.q") && Q.IsReady() && !args.Target.IsDead &&
             ((Obj_AI_Hero)args.Target).IsValidTarget(ObjectManager.Player.AttackRange) &&
             Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
         {
             QCast(((Obj_AI_Hero)args.Target));
         }
     }
 }
Beispiel #12
0
 private static void OnCombo()
 {
     if (Utilities.Enabled("q.combo") && Q.IsReady())
     {
         QComboMethod();
     }
     if (Utilities.Enabled("e.combo") && E.IsReady())
     {
         SelectedCondemn();
     }
     if (Utilities.Enabled("r.combo") && R.IsReady())
     {
         ComboUltimateLogic();
     }
 }
Beispiel #13
0
        private static void OnJungle()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("jungle.mana"))
            {
                return;
            }

            if (Utilities.Enabled("q.jungle") && Q.IsReady())
            {
                JungleMobsQ();
            }
            if (Utilities.Enabled("e.jungle") && E.IsReady())
            {
                CondemnJungleMobs();
            }
        }
Beispiel #14
0
 private void VayneBeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (args.Unit.IsMe && args.Target.IsEnemy && args.Unit.HasBuff("vaynetumblefade"))
     {
         var stealthtime = Utilities.Slider("q.stealth");
         var stealthbuff = args.Unit.GetBuff("vaynetumblefade");
         if (stealthbuff.EndTime - Game.Time > stealthbuff.EndTime - stealthbuff.StartTime - stealthtime / 1000)
         {
             args.Process = false;
         }
     }
     else
     {
         args.Process = true;
     }
 }
Beispiel #15
0
        private static void ImmobileTarget()
        {
            var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (E.IsReady() && Utilities.Enabled("e.combo") && (target.HasBuffOfType(BuffType.Slow) ||
                                                                    target.HasBuffOfType(BuffType.Charm) ||
                                                                    target.HasBuffOfType(BuffType.Fear) ||
                                                                    target.HasBuffOfType(BuffType.Stun) ||
                                                                    target.HasBuffOfType(BuffType.Taunt) ||
                                                                    target.HasBuffOfType(BuffType.Snare)))
                {
                    E.Cast(target.Position);
                }
            }
        }
Beispiel #16
0
        private static void OnClear()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("clear.mana"))
            {
                return;
            }

            if (W.IsReady() && Utilities.Enabled("w.laneclear"))
            {
                var minionlist = MinionManager.GetMinions(ObjectManager.Player.Position, W.Range);
                var whitlist   = W.GetCircularFarmLocation(minionlist);
                if (whitlist.MinionsHit >= Utilities.Slider("w.minion.count"))
                {
                    W.Cast(whitlist.Position);
                }
            }
        }
Beispiel #17
0
        private static void OnMixed()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("harass.mana"))
            {
                return;
            }

            var target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (W.IsReady() && Utilities.Enabled("w.harass") && target.IsValidTarget(W.Range))
                {
                    W.Do(target, Utilities.HikiChance("hitchance"));
                }
            }
        }
Beispiel #18
0
        private void AsheOnSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe && args.Target is AIHeroClient && args.SData.IsAutoAttack())
            {
                if (Q.IsReady() && Utilities.Enabled("q.combo") && ((AIHeroClient)args.Target).IsValidTarget(ObjectManager.Player.AttackRange) &&
                    sender.HasBuff("asheqcastready") && Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    Q.Cast();
                }

                if (Q.IsReady() && Utilities.Enabled("q.harass") && ((AIHeroClient)args.Target).IsValidTarget(ObjectManager.Player.AttackRange) &&
                    sender.HasBuff("asheqcastready") && Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
                {
                    Q.Cast();
                }
            }
        }
Beispiel #19
0
 private static void Harass()
 {
     if (ObjectManager.Player.ManaPercent < Utilities.Slider("lucian.harass.mana"))
     {
         return;
     }
     if (Q.IsReady() || Q2.IsReady() && Utilities.Enabled("lucian.q.harass") && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
     {
         HarassQCast();
     }
     if (W.IsReady() && Utilities.Enabled("lucian.w.harass") && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
     {
         foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(W.Range) && W.GetPrediction(x).Hitchance >= HitChance.Medium))
         {
             W.Cast(enemy);
         }
     }
 }
Beispiel #20
0
        public static bool IsCondemable(Obj_AI_Hero unit, Vector2 pos = new Vector2())
        {
            if (unit.HasBuffOfType(BuffType.SpellImmunity) || unit.HasBuffOfType(BuffType.SpellShield) || LastCheck + 50 > Environment.TickCount || ObjectManager.Player.IsDashing())
            {
                return(false);
            }
            var prediction      = E.GetPrediction(unit);
            var predictionsList = pos.IsValid() ? new List <Vector3>()
            {
                pos.To3D()
            } : new List <Vector3>
            {
                unit.ServerPosition,
                unit.Position,
                prediction.CastPosition,
                prediction.UnitPosition
            };

            var wallsFound = 0;

            Points = new List <Vector2>();
            foreach (var position in predictionsList)
            {
                for (var i = 0; i < Utilities.Slider("condemn.distance"); i += (int)unit.BoundingRadius) // 420 = push distance
                {
                    var cPos = ObjectManager.Player.Position.Extend(position, ObjectManager.Player.Distance(position) + i).To2D();
                    Points.Add(cPos);
                    if (NavMesh.GetCollisionFlags(cPos.To3D()).HasFlag(CollisionFlags.Wall) || NavMesh.GetCollisionFlags(cPos.To3D()).HasFlag(CollisionFlags.Building))
                    {
                        wallsFound++;
                        break;
                    }
                }
            }
            if ((wallsFound / predictionsList.Count) >= 33 / 100f)
            {
                return(true);
            }

            return(false);
        }
Beispiel #21
0
        private static void OnCombo()
        {
            var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (Q.IsReady() && Utilities.Enabled("q.combo") && target.IsValidTarget(Q.Range))
                {
                    Q.Do(target, Utilities.HikiChance("hitchance"));
                }

                if (E.IsReady() && Utilities.Enabled("e.combo") && target.IsValidTarget(E.Range))
                {
                    E.Do(target, Utilities.HikiChance("hitchance"));
                }

                if (R.IsReady() && Utilities.Enabled("r.combo") && target.IsValidTarget(R.Range) && R.GetDamage(target) > target.Health)
                {
                    R.CastOnUnit(target);
                }
            }
        }
Beispiel #22
0
        private void OnClear()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("clear.mana"))
            {
                return;
            }

            if (Q.IsReady() && Utilities.Enabled("q.laneclear"))
            {
                var minion = MinionManager.GetMinions(Q.Range);
                if (minion != null && minion.Count() >= Utilities.Slider("q.minion.count"))
                {
                    if (IsMinigun && minion[0].Distance(ObjectManager.Player.Position) >= MinigunRange)
                    {
                        Q.Cast();
                    }
                    if (IsFishBone && minion[0].Distance(ObjectManager.Player.Position) <= MinigunRange)
                    {
                        Q.Cast();
                    }
                }
            }
        }
Beispiel #23
0
        private void ObjAiHeroOnOnNewPath(Obj_AI_Base sender, GameObjectNewPathEventArgs args)
        {
            if (sender.IsEnemy && sender is AIHeroClient && args.IsDash && Utilities.Enabled("dash.block") &&
                sender.IsValidTarget(W.Range) && W.IsReady())
            {
                var starttick = Utils.TickCount;
                var speed     = args.Speed;
                var startpos  = sender.ServerPosition.To2D();
                var path      = args.Path;
                var forch     = args.Path.OrderBy(x => starttick + (int)(1000 * (new Vector3(x.X, x.Y, x.Z).
                                                                                 Distance(startpos.To3D()) / speed))).FirstOrDefault();
                {
                    var endpos  = new Vector3(forch.X, forch.Y, forch.Z);
                    var endtick = starttick + (int)(1000 * (endpos.Distance(startpos.To3D())
                                                            / speed));
                    var duration = endtick - starttick;

                    if (duration < starttick)
                    {
                        W.Cast(endpos);
                    }
                }
            }
        }
Beispiel #24
0
        private void LucianOnSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe && Orbwalking.IsAutoAttack(args.SData.Name) && args.Target is AIHeroClient && args.Target.IsValid)
            {
                if (Utilities.Enabled("lucian.combo.start.e"))
                {
                    if (!E.IsReady() && Q.IsReady() && Utilities.Enabled("lucian.q.combo") &&
                        ObjectManager.Player.Distance(args.Target.Position) < Q.Range &&
                        Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                    {
                        Q.CastOnUnit(((AIHeroClient)args.Target));
                    }

                    if (!E.IsReady() && W.IsReady() && Utilities.Enabled("lucian.w.combo") &&
                        ObjectManager.Player.Distance(args.Target.Position) < W.Range &&
                        Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                    {
                        if (Utilities.Enabled("lucian.disable.w.prediction"))
                        {
                            W.Cast(((AIHeroClient)args.Target).Position);
                        }
                        else
                        {
                            if (W.GetPrediction(((AIHeroClient)args.Target)).Hitchance >= HitChance.Medium)
                            {
                                W.Cast(((AIHeroClient)args.Target).Position);
                            }
                        }
                    }
                    if (E.IsReady() && Utilities.Enabled("lucian.e.combo") &&
                        ObjectManager.Player.Distance(args.Target.Position) < Q2.Range &&
                        Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                    {
                        switch (Initializer.Config.Item("lucian.e.mode", true).GetValue <StringList>().SelectedIndex)
                        {
                        case 0:
                            Utilities.ECast(((AIHeroClient)args.Target), E);
                            break;

                        case 1:
                            E.Cast(Game.CursorPos);
                            break;
                        }
                    }
                }
                else
                {
                    if (Q.IsReady() && Utilities.Enabled("lucian.q.combo") &&
                        ObjectManager.Player.Distance(args.Target.Position) < Q.Range &&
                        Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                    {
                        Q.CastOnUnit(((AIHeroClient)args.Target));
                    }
                    if (W.IsReady() && Utilities.Enabled("lucian.w.combo") &&
                        ObjectManager.Player.Distance(args.Target.Position) < W.Range &&
                        Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff") &&
                        W.GetPrediction(((AIHeroClient)args.Target)).Hitchance >= HitChance.Medium)
                    {
                        W.Cast(((AIHeroClient)args.Target).Position);
                    }
                    if (E.IsReady() && Utilities.Enabled("lucian.e.combo") &&
                        ObjectManager.Player.Distance(args.Target.Position) < Q2.Range &&
                        Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                    {
                        switch (Initializer.Config.Item("lucian.e.mode", true).GetValue <StringList>().SelectedIndex)
                        {
                        case 0:
                            Utilities.ECast(((AIHeroClient)args.Target), E);
                            break;

                        case 1:
                            E.Cast(Game.CursorPos);
                            break;
                        }
                    }
                }
            }
            else if (sender.IsMe && Orbwalking.IsAutoAttack(args.SData.Name) && args.Target is Obj_AI_Minion && args.Target.IsValid && ((Obj_AI_Minion)args.Target).Team == GameObjectTeam.Neutral &&
                     ObjectManager.Player.ManaPercent > Utilities.Slider("lucian.clear.mana"))
            {
                if (Q.IsReady() && Utilities.Enabled("lucian.q.jungle") &&
                    ObjectManager.Player.Distance(args.Target.Position) < Q.Range &&
                    Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                {
                    Q.CastOnUnit(((Obj_AI_Minion)args.Target));
                }
                if (W.IsReady() && Utilities.Enabled("lucian.w.jungle") &&
                    ObjectManager.Player.Distance(args.Target.Position) < W.Range &&
                    Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                {
                    W.Cast(((Obj_AI_Minion)args.Target).Position);
                }
                if (E.IsReady() && Utilities.Enabled("lucian.e.jungle") &&
                    ((Obj_AI_Minion)args.Target).IsValidTarget(1000) &&
                    Initializer.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && ObjectManager.Player.Buffs.Any(buff => buff.Name != "lucianpassivebuff"))
                {
                    E.Cast(Game.CursorPos);
                }
            }
        }
Beispiel #25
0
        private void LucianOnUpdate(EventArgs args)
        {
            switch (Initializer.Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                Clear();
                break;
            }

            if (Initializer.Config.Item("lucian.semi.manual.ult").GetValue <KeyBind>().Active)
            {
                SemiManual();
            }

            if (UltActive && Initializer.Config.Item("lucian.semi.manual.ult").GetValue <KeyBind>().Active)
            {
                Initializer.Orbwalker.SetAttack(false);
            }

            if (!UltActive || !Initializer.Config.Item("lucian.semi.manual.ult").GetValue <KeyBind>().Active)
            {
                Initializer.Orbwalker.SetAttack(true);
            }

            if (!UltActive && Utilities.Enabled("use.eq"))
            {
                if (E.IsReady() &&
                    ObjectManager.Player.CountEnemiesInRange(Utilities.Slider("eq.safety.range")) <= Utilities.Slider("eq.min.enemy.count.range"))
                {
                    foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(Q.Range + E.Range - 100)))
                    {
                        var aadamage = ObjectManager.Player.GetAutoAttackDamage(enemy);
                        var dmg      = ObjectManager.Player.CalcDamage(enemy, Damage.DamageType.Physical,
                                                                       Q.GetDamage(enemy));
                        var combodamage = aadamage + dmg;

                        if (enemy.Health < combodamage)
                        {
                            E.Cast(ObjectManager.Player.Position.Extend(enemy.Position, ERange));
                        }
                    }

                    if (Q.IsReady() && ObjectManager.Player.CountEnemiesInRange(Utilities.Slider("eq.safety.range")) <= Utilities.Slider("eq.min.enemy.count.range"))
                    {
                        foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(Q.Range)))
                        {
                            var dmg = ObjectManager.Player.CalcDamage(enemy, Damage.DamageType.Physical,
                                                                      Q.GetDamage(enemy));
                            var aadamage = ObjectManager.Player.GetAutoAttackDamage(enemy);

                            var combodamage = aadamage + dmg;

                            if (enemy.Health < combodamage)
                            {
                                Q.CastOnUnit(enemy);
                            }
                        }
                    }
                }
            }
            if (!UltActive && Utilities.Enabled("lucian.q.ks") && Q.IsReady())
            {
                ExtendedQKillSteal();
            }

            if (!UltActive && Utilities.Enabled("lucian.w.ks") && W.IsReady())
            {
                KillstealW();
            }
        }
Beispiel #26
0
 private void VayneAntiGapcloser(ActiveGapcloser gapcloser)
 {
     if (gapcloser.End.Distance(ObjectManager.Player.ServerPosition) <= 300 && Utilities.Enabled("anti.gap"))
     {
         E.Cast(gapcloser.End.Extend(ObjectManager.Player.ServerPosition, ObjectManager.Player.Distance(gapcloser.End) + E.Range));
     }
 }