Exemplo n.º 1
0
        private static void OnTick(EventArgs args)
        {
            if (Orbwalker.CanMove)
            {
                CanMoveTick = Environment.TickCount;
            }

            if (!Player.IsDead)
            {
                if (CanMoveTick <= Environment.TickCount + 100)
                {
                    //Combo
                    if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                    {
                        if (KappalistaMenu.GetBoolValue(KappalistaMenu.SpellsMenu, "atk.minion"))
                        {
                            if (Orbwalker.LastTarget == null)
                            {
                                if (
                                    !EntityManager.Heroes.Enemies.Any(
                                        x => x.IsValidTarget() && Player.IsInAutoAttackRange(x)))
                                {
                                    var minion =
                                        EntityManager.MinionsAndMonsters.Get(
                                            EntityManager.MinionsAndMonsters.EntityType.Both,
                                            EntityManager.UnitTeam.Enemy, Player.Position,
                                            Player.GetAutoAttackRange() + 65)
                                        .OrderBy(x => x.Distance(Player))
                                        .FirstOrDefault();
                                    if (minion != null)
                                    {
                                        Orbwalker.ForcedTarget = minion;
                                    }
                                }
                            }
                            else
                            {
                                Orbwalker.ForcedTarget = null;
                            }
                        }
                        if (KappalistaMenu.GetBoolValue(KappalistaMenu.SpellsMenu, "use.q.combo"))
                        {
                            if (Q.Ready())
                            {
                                if (!Player.IsDashing())
                                {
                                    if (!Orbwalker.IsAutoAttacking)
                                    {
                                        var target = Utility.GetTargetNoCollision(Q);
                                        if (target != null)
                                        {
                                            if (Player.Mana - EloBuddy.Player.GetSpell(SpellSlot.Q).SData.Mana >= 40)
                                            {
                                                Q.Cast(target.ServerPosition);
                                            }
                                        }
                                        else
                                        {
                                            var killableTarget =
                                                EntityManager.Heroes.Enemies.FirstOrDefault(
                                                    x =>
                                                    !Player.IsInAutoAttackRange(x) &&
                                                    x.IsKillableAndValidTarget(
                                                        Player.GetSpellDamage(x, SpellSlot.Q),
                                                        DamageType.Physical, Q.Range) &&
                                                    Q.GetPrediction(x).HitChance >= Q.MinimumHitChance);
                                            if (killableTarget != null)
                                            {
                                                Q.Cast(killableTarget.ServerPosition);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        if (KappalistaMenu.GetBoolValue(KappalistaMenu.SpellsMenu, "use.e"))
                        {
                            if (E.Ready())
                            {
                                if (
                                    EntityManager.Heroes.Enemies.Any(
                                        x =>
                                        HealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                        x.IsKillableAndValidTarget(Utility.GetRendDamage(x),
                                                                   DamageType.Physical, E.Range)))
                                {
                                    E.Cast();
                                }
                            }
                        }
                    }
                    //Harass
                    if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
                    {
                        if (KappalistaMenu.GetBoolValue(KappalistaMenu.SpellsMenu, "use.q.harass") &&
                            Player.ManaPercent < KappalistaMenu.GetSliderValue(KappalistaMenu.SpellsMenu, "manapercent") &&
                            !Player.IsDashing() && !Orbwalker.IsAutoAttacking && Q.Ready())
                        {
                            var target = Utility.GetTargetNoCollision(Q);
                            if (target != null)
                            {
                                Q.Cast(target.ServerPosition);
                            }
                        }
                    }
                    //Lane clear
                    if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear))
                    {
                        //Q Laneclear Logic
                        if (Q.Ready() && !Player.IsDashing() &&
                            Player.ManaPercent > KappalistaMenu.GetSliderValue(KappalistaMenu.SpellsMenu, "manapercent"))
                        {
                            foreach (
                                var killableMinion in
                                EntityManager.MinionsAndMonsters.Get(
                                    EntityManager.MinionsAndMonsters.EntityType.Minion, EntityManager.UnitTeam.Enemy,
                                    Player.Position, Q.Range)
                                .Where(
                                    x =>
                                    Q.GetPrediction(x).HitChance >= Q.MinimumHitChance &&
                                    x.IsKillableAndValidTarget(Player.GetSpellDamage(x, SpellSlot.Q),
                                                               DamageType.Physical, Q.Range)))
                            {
                                var killableNumber   = 0;
                                var collisionMinions = Collision.GetCollision(
                                    new List <Vector3>
                                {
                                    ObjectManager.Player.ServerPosition.Extend(
                                        killableMinion.ServerPosition, Q.Range)
                                },
                                    new PredictionInput
                                {
                                    Unit               = ObjectManager.Player,
                                    Delay              = Q.CastDelay,
                                    Speed              = Q.Speed,
                                    Radius             = Q.Width,
                                    Range              = Q.Range,
                                    CollisionObjectsEx = new[] { CollisionableObjectsEx.Minions },
                                    UseBoundingRadius  = false
                                }
                                    ).OrderBy(x => x.Distance(ObjectManager.Player));

                                foreach (var collisionMinion in collisionMinions)
                                {
                                    var hue = collisionMinion as Obj_AI_Minion;
                                    if (
                                        hue.IsKillableAndValidTarget(
                                            ObjectManager.Player.GetSpellDamage(collisionMinion,
                                                                                SpellSlot.Q), DamageType.Physical,
                                            Q.Range))
                                    {
                                        killableNumber++;
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                                if (killableNumber >=
                                    KappalistaMenu.GetSliderValue(KappalistaMenu.LaneClear, "q.min.kill"))
                                {
                                    if (!Orbwalker.IsAutoAttacking)
                                    {
                                        Q.Cast(killableMinion.ServerPosition);
                                        break;
                                    }
                                }
                            }
                        }
                        //E Laneclear Logic
                        if (E.Ready() &&
                            KappalistaMenu.GetSliderValue(KappalistaMenu.LaneClear, "manapercent") < Player.ManaPercent)
                        {
                            if (
                                EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy,
                                                                                Player.Position, E.Range).Count(x =>
                                                                                                                HealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                                                                                                x.IsKillableAndValidTarget(Utility.GetRendDamage(x),
                                                                                                                                           DamageType.Physical)) >=
                                KappalistaMenu.GetSliderValue(KappalistaMenu.LaneClear, "e.minkill"))
                            {
                                E.Cast();
                            }
                        }
                    }
                    //Jungle Clear
                    if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear) &&
                        KappalistaMenu.GetSliderValue(KappalistaMenu.JungleClear, "manapercent") < Player.ManaPercent)
                    {
                        //Q logic
                        if (KappalistaMenu.GetBoolValue(KappalistaMenu.JungleClear, "use.q") && Q.Ready())
                        {
                            var target = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Position, Q.Range)
                                         .OrderByDescending(i => i.MaxHealth)
                                         .FirstOrDefault(
                                x =>
                                x.IsValidTarget(Q.Range) &&
                                Q.GetPrediction(x).HitChance >= HitChance.AveragePoint);

                            if (target != null)
                            {
                                Q.Cast(target.ServerPosition);
                            }
                        }
                        //E logic
                        if (KappalistaMenu.GetBoolValue(KappalistaMenu.JungleClear, "use.e") && E.Ready())
                        {
                            if (
                                EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Position, E.Range)
                                .OrderByDescending(i => i.MaxHealth)
                                .Any(x => HealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                     x.IsKillableAndValidTarget(Utility.GetRendDamage(x),
                                                                DamageType.Physical)))
                            {
                                E.Cast();
                            }
                        }
                    }
                }
                //Perma Active
                if (KappalistaMenu.GetBoolValue(KappalistaMenu.Misc, "e.killsteal") && E.Ready())
                {
                    if (EntityManager.Heroes.Enemies.Any(x =>
                                                         HealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                                         x.IsKillableAndValidTarget(Utility.GetRendDamage(x), DamageType.Physical,
                                                                                    E.Range)))
                    {
                        E.Cast();
                    }
                }

                if (KappalistaMenu.GetBoolValue(KappalistaMenu.Misc, "e.mobsteal") && E.Ready())
                {
                    if (
                        EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Position, E.Range)
                        .OrderByDescending(x => x.MaxHealth)
                        .Any(y => HealthPrediction.GetHealthPrediction(y, 500) > 0 &&
                             y.IsKillableAndValidTarget(Utility.GetRendDamage(y), DamageType.Physical)))
                    {
                        E.Cast();
                    }
                }

                if (KappalistaMenu.GetBoolValue(KappalistaMenu.Misc, "e.siegeandsuper") && E.Ready())
                {
                    if (
                        EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Position,
                                                                        E.Range).Any(x => HealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                                                                     x.IsKillableAndValidTarget(Utility.GetRendDamage(x), DamageType.Physical) &&
                                                                                     (x.CharData.BaseSkinName.ToLower().Contains("siege") ||
                                                                                      x.CharData.BaseSkinName.ToLower().Contains("super"))))
                    {
                        E.Cast();
                    }
                }

                if (KappalistaMenu.GetBoolValue(KappalistaMenu.Misc, "r.balista") && R.Ready())
                {
                    var blitz =
                        EntityManager.Heroes.Allies.FirstOrDefault(
                            x => !x.IsDead && x.HasBuff("kalistacoopstrikeally") && x.ChampionName == "Blitzcrank");
                    if (blitz != null)
                    {
                        var grabTarget =
                            EntityManager.Heroes.Enemies.FirstOrDefault(x => !x.IsDead && x.HasBuff("rocketgrab2"));
                        if (grabTarget != null)
                        {
                            if (ObjectManager.Player.Distance(grabTarget) > blitz.Distance(grabTarget))
                            {
                                R.Cast();
                            }
                        }
                    }
                }

                if (KappalistaMenu.GetBoolValue(KappalistaMenu.Misc, "e.harass") &&
                    !KappalistaMenu.GetBoolValue(KappalistaMenu.Misc, "e.dontharasscombo") && E.Ready() &&
                    Player.Mana - EloBuddy.Player.GetSpell(SpellSlot.E).SData.Mana >=
                    EloBuddy.Player.GetSpell(SpellSlot.E).SData.Mana)
                {
                    if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                    {
                        if (
                            EntityManager.MinionsAndMonsters.Get(EntityManager.MinionsAndMonsters.EntityType.Both,
                                                                 EntityManager.UnitTeam.Enemy, Player.Position).Any(x =>
                                                                                                                    HealthPrediction.GetHealthPrediction(x, 250) > 0 &&
                                                                                                                    x.IsKillableAndValidTarget(Utility.GetRendDamage(x),
                                                                                                                                               DamageType.Physical, E.Range)))
                        {
                            E.Cast();
                        }
                    }
                }
                if (KappalistaMenu.Misc["w.dragonorbaron"].Cast <CheckBox>().CurrentValue&& !Orbwalker.IsAutoAttacking &&
                    !Player.IsRecalling() && W.Ready() && Player.Position.CountEnemiesInRange(1500) <= 0 &&
                    Orbwalker.LastTarget == null && Player.ManaPercent > 50)
                {
                    if (Player.Distance(DragonLocation) <= W.Range)
                    {
                        W.Cast(DragonLocation);
                    }
                    if (Player.Distance(BaronLocation) <= W.Range)
                    {
                        W.Cast(BaronLocation);
                    }
                }

                if (KappalistaMenu.Misc["w.castdragon"].Cast <KeyBind>().CurrentValue&& W.Ready())
                {
                    if (Player.Distance(DragonLocation) <= W.Range)
                    {
                        W.Cast(DragonLocation);
                    }
                }
                if (KappalistaMenu.Misc["w.castbaron"].Cast <KeyBind>().CurrentValue&& W.Ready())
                {
                    if (Player.Distance(BaronLocation) <= W.Range)
                    {
                        W.Cast(BaronLocation);
                    }
                }
            }
        }