예제 #1
0
        protected override void OnIssueOrder(Obj_AI_Base sender, GameObjectIssueOrderEventArgs args)
        {
            if (HasUltiBuff() && Q.IsReady() && sender.CharData.BaseSkinName.Equals("Kalista") && args.Order == GameObjectOrder.AutoAttack && args.Target.IsMe)
            {
                if (ComboMenu.Item("QChecks").GetValue <bool>() && Game.CursorPos.IsShroom())
                {
                    return;
                }
                Q.Cast(Game.CursorPos);
            }
            if (Player.HealthPercent > 45 && Player.ManaPercent > 60 && Player.CountEnemiesInRange(1000) <= 2 && sender.IsValid <Obj_AI_Hero>() && sender.IsEnemy && args.Target is Obj_AI_Minion &&
                sender.Distance(Player.ServerPosition) < Orbwalking.GetRealAutoAttackRange(null) + 250)
            {
                if (sender.InAArange())
                {
                    Orbwalker.ForceTarget(sender);
                }
                else
                {
                    var tumblePos = Player.ServerPosition.Extend(sender.ServerPosition,
                                                                 Player.Distance(sender.ServerPosition) - Orbwalking.GetRealAutoAttackRange(null));

                    if (!tumblePos.IsShroom() && tumblePos.CountEnemiesInRange(300) == 0 && Q.IsReady())
                    {
                        Q.Cast(tumblePos);
                        Orbwalker.ForceTarget(sender);
                    }
                }
            }
        }
예제 #2
0
        protected override void OnAttack(AttackableUnit sender, AttackableUnit target)
        {
            base.OnAttack(sender, target);

            if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear)
            {
                return;
            }
            _tumbleToKillSecondMinion = MinionManager.GetMinions(Player.Position, Orbwalking.GetRealAutoAttackRange(null)).Any(m => m.Health < Player.GetAutoAttackDamage(m) + 15);
        }
예제 #3
0
        protected override void Combo()
        {
            var minionsInRange = MinionManager.GetMinions(Player.ServerPosition, Orbwalking.GetRealAutoAttackRange(null)).OrderBy(m => m.Armor).ToList();

            if (Player.CountEnemiesInRange(600) == 0 && Items.HasItem((int)ItemId.The_Bloodthirster, Player) && minionsInRange.Count != 0 && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && Player.HealthPercent < 60)
            {
                Orbwalker.ForceTarget(minionsInRange.FirstOrDefault());
            }

            if (Player.CountEnemiesInRange(1000) == 0)
            {
                return;
            }
            base.Combo();
        }
예제 #4
0
        protected override void OnAttack(AttackableUnit sender, AttackableUnit target)
        {
            base.OnAttack(sender, target);

            if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.LaneClear)
            {
                return;
            }

            var t = (Obj_AI_Base)target;
            var possibleHeroTarget = TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null),
                                                              TargetSelector.DamageType.Physical);

            if (target is Obj_AI_Minion && t.Health > Player.GetAutoAttackDamage(t) + 25 && possibleHeroTarget != null)
            {
                Orbwalker.ForceTarget(possibleHeroTarget);
            }
            _tumbleToKillSecondMinion = MinionManager.GetMinions(Player.Position, Orbwalking.GetRealAutoAttackRange(null)).Any(m => m.Health < Player.GetAutoAttackDamage(m) + 15);
        }
예제 #5
0
        protected override void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!args.Unit.IsMe)
            {
                return;
            }

            if (!(args.Target is Obj_AI_Hero))
            {
                return;
            }
            if (args.Target.IsValid <Obj_AI_Hero>())
            {
                var t = (Obj_AI_Hero)args.Target;
                if (t == null)
                {
                    return;
                }
                if (t.IsMelee() && t.IsFacing(Player) && t != null && ComboMenu.Item("QCombo").GetValue <bool>())
                {
                    if (t.Distance(Player.ServerPosition) < Q.Range && Q.IsReady() && t.IsFacing(Player) && !Player.ServerPosition.Extend(t.ServerPosition, -(Q.Range)).IsShroom())
                    {
                        args.Process = false;
                        Q.Cast(Player.ServerPosition.Extend(t.ServerPosition, -(Q.Range)));
                    }
                }

                var minion = MinionManager.GetMinions(Player.ServerPosition, Orbwalking.GetRealAutoAttackRange(null)).OrderBy(m => m.Armor).FirstOrDefault();
                if (minion == null)
                {
                    return;
                }

                if (Items.HasItem((int)ItemId.Thornmail, t) &&
                    !Items.HasItem((int)ItemId.The_Bloodthirster, Player) && Player.HealthPercent < 25 &&
                    t.HealthPercent > 15 && t.VayneWStacks() != 2 && t.IsFacing(Player))
                {
                    Orbwalker.ForceTarget(minion);
                }
            }
        }
예제 #6
0
 protected virtual void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
 }
예제 #7
0
        protected override void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!args.Unit.IsMe) return;

            var realTarget = Utils.TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null), TargetSelector.DamageType.Physical);
            if (args.Target.Type == GameObjectType.obj_AI_Minion && !Orbwalker.ShouldWait() && realTarget.IsValidTarget())
            {
                Orbwalker.ForceTarget(realTarget);
                return;
            }
            if (args.Target.IsValid<Obj_AI_Hero>())
            {
                var t = (Obj_AI_Hero)args.Target;
                if (Q.IsReady() && t.IsValidTarget() && t.IsMelee() && t.IsFacing(Player) && ComboMenu.Item("QCombo").GetValue<bool>())
                {
                    if (t.Distance(Player.ServerPosition) < Q.Range && t.IsFacing(Player) && !Player.ServerPosition.Extend(t.ServerPosition, -(Q.Range)).IsShroom())
                    {
                        args.Process = false;
                        Q.Cast(Player.ServerPosition.Extend(t.ServerPosition, -(Q.Range)));
                    }
                }

                var minion = MinionManager.GetMinions(Player.ServerPosition, Orbwalking.GetRealAutoAttackRange(null)).OrderBy(m => m.Armor).FirstOrDefault();
                if (minion == null) return;

                if (Items.HasItem((int)ItemId.Thornmail, t) &&
                    !Items.HasItem((int)ItemId.The_Bloodthirster, Player) && Player.HealthPercent < 25 &&
                    t.HealthPercent > 15 && t.VayneWStacks() != 2 && t.IsFacing(Player))
                {
                    Orbwalker.ForceTarget(minion);
                }
            }
        }
예제 #8
0
        protected override void AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            if (!unit.IsMe)
            {
                return;
            }
            var myRange    = Orbwalking.GetRealAutoAttackRange(null);
            var AArange    = myRange + 15;
            var tg         = (Obj_AI_Hero)target;
            var realTarget = Utils.TargetSelector.GetTarget(AArange, TargetSelector.DamageType.Physical);

            if (target.Type == GameObjectType.obj_AI_Hero && tg != realTarget && realTarget.IsValidTarget())
            {
                Orbwalker.ForceTarget(realTarget);
            }

            if (tg.IsValidTarget() && E.IsReady() && tg.VayneWStacks() == 2 && tg.Health < Player.GetSpellDamage(tg, SpellSlot.W))
            {
                E.Cast(tg);
            }

            if (!Q.IsReady())
            {
                if (_tumbleToKillSecondMinion)
                {
                    _tumbleToKillSecondMinion = false;
                }
                return;
            }

            if (target.Type == GameObjectType.obj_AI_Minion && !Orbwalker.ShouldWait() && realTarget.IsValidTarget())
            {
                Orbwalker.ForceTarget(realTarget);
                return;
            }

            if (ComboMenu.Item("QChecks").GetValue <bool>() && Game.CursorPos.IsShroom())
            {
                return;
            }

            if (Player.CountEnemiesInRange(1400) == 0 && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && !Orbwalker.ShouldWait() && Player.ManaPercent > 70 && LaneClearMenu.Item("QFarm").GetValue <bool>() && MinionManager.GetMinions(Game.CursorPos, myRange).Any())
            {
                if (Game.CursorPos.UnderTurret(Player.Team == GameObjectTeam.Order
                                  ? GameObjectTeam.Chaos
                                  : GameObjectTeam.Order) && !Player.UnderTurret(true))
                {
                    return;
                }
                Q.Cast(Game.CursorPos);
            }
            if (Player.ManaPercent > 25 && realTarget.IsValidTarget() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                if (Player.CountAlliesInRange(1000) >= Player.CountEnemiesInRange(1000) && realTarget.Distance(Game.CursorPos) < Orbwalking.GetRealAutoAttackRange(null))
                {
                    Q.Cast(Game.CursorPos);
                }
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear ||
                Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                if (ComboMenu.Item("QHarass").GetValue <bool>() && Game.CursorPos.Distance(target.Position) < myRange && Player.CountEnemiesInRange(1000) <= 2 && Player.Level < 11)
                {
                    var pos = Player.Position.Extend(Game.CursorPos,
                                                     Player.Distance(target.Position) - myRange + 15);
                    if (
                        pos.UnderTurret(Player.Team == GameObjectTeam.Order
                            ? GameObjectTeam.Chaos
                            : GameObjectTeam.Order) && !Player.UnderTurret(true))
                    {
                        return;
                    }
                    Q.Cast(pos);
                }
            }

            if (!ComboMenu.Item("QCombo").GetValue <bool>())
            {
                return;
            }
            if (Player.ManaPercent > 25)
            {
                if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    Q.Cast(Game.CursorPos);
                }
            }
        }
예제 #9
0
        protected override void AfterAttack(AttackableUnit unit, AttackableUnit target)
        {
            var myRange = Orbwalking.GetRealAutoAttackRange(null);

            if (unit != Player)
            {
                return;
            }
            var possibleHeroTarget = TargetSelector.GetTarget(myRange,
                                                              TargetSelector.DamageType.Physical);

            if (target is Obj_AI_Minion && target.Health > Player.GetAutoAttackDamage((Obj_AI_Minion)target) && possibleHeroTarget != null)
            {
                Orbwalker.ForceTarget(possibleHeroTarget);
                return;
            }

            if (Q.IsReady() && Player.CountEnemiesInRange(1400) == 0 && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && !Orbwalker.ShouldWait() && Player.ManaPercent > 70 && LaneClearMenu.Item("QFarm").GetValue <bool>() && MinionManager.GetMinions(Game.CursorPos, myRange).Any())
            {
                if (Game.CursorPos.UnderTurret(Player.Team == GameObjectTeam.Order
                                  ? GameObjectTeam.Chaos
                                  : GameObjectTeam.Order) && !Player.UnderTurret(true))
                {
                    return;
                }
                Q.Cast(Game.CursorPos);
            }

            var AArange = myRange + 15;

            if (target == null)
            {
                return;
            }
            var tg         = (Obj_AI_Hero)target;
            var realTarget = Utils.TargetSelector.GetTarget(AArange, TargetSelector.DamageType.Physical);

            if (target is Obj_AI_Hero && tg != realTarget && realTarget.IsValidTarget(AArange))
            {
                Orbwalker.ForceTarget(realTarget);
            }



            if (E.IsReady() && tg.VayneWStacks() == 2 && tg.Health < Player.GetSpellDamage(tg, SpellSlot.W))
            {
                E.Cast(tg);
            }

            if (!Q.IsReady())
            {
                if (_tumbleToKillSecondMinion)
                {
                    _tumbleToKillSecondMinion = false;
                }
                return;
            }

            if (Player.ManaPercent > 70 && target is Obj_AI_Hero && unit.IsMe && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var t = (Obj_AI_Hero)target;
                if (Player.CountAlliesInRange(1000) >= Player.CountEnemiesInRange(1000) && t.Distance(Player) < 850)
                {
                    if (t.IsKillable())
                    {
                        Orbwalker.ForceTarget(t);
                    }
                    if (Player.CountEnemiesInRange(1000) <= Player.CountAlliesInRange(1000) &&
                        Player.CountEnemiesInRange(1000) <= 2 && Player.CountEnemiesInRange(1000) != 0)
                    {
                        var tumblePos = Player.ServerPosition.Extend(t.ServerPosition,
                                                                     Player.Distance(t.ServerPosition) - myRange + 15);
                        if (tumblePos.UnderTurret(Player.Team == GameObjectTeam.Order
                                ? GameObjectTeam.Chaos
                                : GameObjectTeam.Order) && !Player.UnderTurret(true))
                        {
                            return;
                        }
                        if (!tumblePos.IsShroom() && t.Distance(Player) > myRange && t.CountEnemiesInRange(myRange) == 0 &&
                            Player.Level >= t.Level)
                        {
                            if (tumblePos.CountEnemiesInRange(300) < 2 && Q.IsReady())
                            {
                                Q.Cast(tumblePos);
                            }
                            Orbwalker.ForceTarget(t);
                        }
                    }
                }
            }

            if (ComboMenu.Item("QChecks").GetValue <bool>() && Game.CursorPos.IsShroom())
            {
                return;
            }

            if (HasUltiBuff() && ComboMenu.Item("QUltSpam").GetValue <bool>())
            {
                Q.Cast(Game.CursorPos);
            }
            if (LaneClearMenu.Item("QFarm").GetValue <bool>() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear &&
                _tumbleToKillSecondMinion && MinionManager.GetMinions(Game.CursorPos, myRange).Any(m => m.IsValidTarget()) && Q.IsReady())
            {
                if (Game.CursorPos.UnderTurret(Player.Team == GameObjectTeam.Order
                               ? GameObjectTeam.Chaos
                               : GameObjectTeam.Order) && !Player.UnderTurret(true))
                {
                    return;
                }
                Q.Cast(Game.CursorPos);
                _tumbleToKillSecondMinion = false;
                return;
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear ||
                Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                if (ComboMenu.Item("QHarass").GetValue <bool>() && Game.CursorPos.Distance(target.Position) < myRange && Q.IsReady() && Player.CountEnemiesInRange(1000) <= 2 && Player.Level < 11)
                {
                    var pos = Player.Position.Extend(Game.CursorPos,
                                                     Player.Distance(target.Position) - myRange + 15);
                    if (
                        pos.UnderTurret(Player.Team == GameObjectTeam.Order
                            ? GameObjectTeam.Chaos
                            : GameObjectTeam.Order) && !Player.UnderTurret(true))
                    {
                        return;
                    }
                    Q.Cast(pos);
                }
            }

            if (!ComboMenu.Item("QCombo").GetValue <bool>())
            {
                return;
            }
            if (Player.ManaPercent > 25)
            {
                if (unit.IsMe &&
                    Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && !HasUltiBuff() && Q.IsReady())
                {
                    Q.Cast(Game.CursorPos);
                }
            }
            if (Player.CountEnemiesInRange(1000) > 0 || Player.ManaPercent < 70)
            {
                _tumbleToKillSecondMinion = false;
            }
        }