Esempio n. 1
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Automatic()
        {
            if (SoulBound == null)
            {
                var possibleSoulBound = ObjectCache.AllyHeroes.FirstOrDefault(a => a.HasBuff("kalistacoopstrikeally"));
                if (possibleSoulBound != null)
                {
                    SoulBound = possibleSoulBound;
                }
            }

            if (UtilityClass.Player.IsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The Automatic E Logics.
            /// </summary>
            if (SpellClass.E.Ready &&
                MenuClass.E["beforedeath"].Enabled &&
                LocalPlayer.Instance.HPPercent() <= MenuClass.E["beforedeath"].Value)
            {
                SpellClass.E.Cast();
            }

            /// <summary>
            ///     The R Logics.
            /// </summary>
            if (SpellClass.R.Ready &&
                SoulBound != null)
            {
                /// <summary>
                ///     The Lifesaver R Logic.
                /// </summary>
                if (SoulBound.EnemyHeroesCount(800f) > 0 &&
                    SoulBound.HPPercent() <=
                    MenuClass.R["lifesaver"].Value &&
                    MenuClass.R["lifesaver"].Enabled)
                {
                    SpellClass.R.Cast();
                }

                /// <summary>
                ///     The Offensive R Logics.
                /// </summary>
                if (RLogics.ContainsKey(SoulBound.CharName))
                {
                    var option     = RLogics.FirstOrDefault(k => k.Key == SoulBound.CharName).Value;
                    var buffName   = option.Item1;
                    var menuOption = option.Item2;

                    var target = ObjectCache.EnemyHeroes.FirstOrDefault(t => t.HasBuff(buffName));
                    if (target != null &&
                        MenuClass.R[menuOption].Enabled)
                    {
                        var buff = target.GetBuff(buffName);
                        if (buff.Caster == SoulBound &&
                            target.DistanceToPlayer() >
                            UtilityClass.Player.GetAutoAttackRange(target))
                        {
                            SpellClass.R.Cast();
                        }
                    }
                }
            }

            /// <summary>
            ///     The Spot W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                !UtilityClass.Player.Position.IsUnderEnemyTurret() &&
                Orbwalker.Mode == OrbwalkingMode.None &&
                UtilityClass.Player.EnemyHeroesCount(1500f) == 0 &&
                UtilityClass.Player.MPPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.W["logical"]) &&
                MenuClass.W["logical"].Enabled)
            {
                foreach (var loc in Locations.Where(l =>
                                                    UtilityClass.Player.Distance(l) <= SpellClass.W.Range &&
                                                    !ObjectCache.AllMinions.Any(m => m.Distance(l) <= 1000f && m.ModelName.Equals("KalistaSpawn"))))
                {
                    SpellClass.W.Cast(loc);
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Automatic()
        {
            var passiveObject = ObjectManager.Get <GameObject>().FirstOrDefault(o => o.IsValid && o.Name == "Kalista_Base_P_LinkIcon.troy");

            if (passiveObject != null)
            {
                SoulBound = GameObjects.AllyHeroes
                            .Where(a => !a.IsMe)
                            .MinBy(o => o.Distance(passiveObject));
            }

            if (UtilityClass.Player.IsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The R Logics.
            /// </summary>
            if (SpellClass.R.Ready &&
                SoulBound != null)
            {
                var soulbound = SoulBound;

                /// <summary>
                ///     The Offensive R Logics.
                /// </summary>
                foreach (var target in GameObjects.EnemyHeroes
                         .Where(t => t.Distance(UtilityClass.Player.ServerPosition) > UtilityClass.Player.GetFullAttackRange(t)))
                {
                    if (RLogics.ContainsKey(soulbound.ChampionName))
                    {
                        var option     = RLogics.FirstOrDefault(k => k.Key == soulbound.ChampionName);
                        var buffName   = option.Value.Item1;
                        var menuOption = option.Value.Item2;

                        if (target.HasBuff(buffName) &&
                            MenuClass.Spells["r"][menuOption].As <MenuBool>().Enabled)
                        {
                            SpellClass.R.Cast();
                        }
                    }
                }

                /// <summary>
                ///     The Lifesaver R Logic.
                /// </summary>
                if (soulbound.CountEnemyHeroesInRange(800f) > 0 &&
                    soulbound.HealthPercent() <=
                    MenuClass.Spells["r"]["lifesaver"].As <MenuSliderBool>().Value&&
                    MenuClass.Spells["r"]["lifesaver"].As <MenuSliderBool>().Enabled)
                {
                    SpellClass.R.Cast();
                }
            }

            /// <summary>
            ///     The Spot W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                !UtilityClass.Player.IsUnderEnemyTurret() &&
                ImplementationClass.IOrbwalker.Mode == OrbwalkingMode.None &&
                UtilityClass.Player.CountEnemyHeroesInRange(1500f) == 0 &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["logical"]) &&
                MenuClass.Spells["w"]["logical"].As <MenuSliderBool>().Enabled)
            {
                foreach (var loc in Locations.Where(l =>
                                                    UtilityClass.Player.Distance(l) <= SpellClass.W.Range &&
                                                    !ObjectManager.Get <Obj_AI_Minion>().Any(m => m.Distance(l) <= 1000f && m.UnitSkinName.Equals("KalistaSpawn"))))
                {
                    SpellClass.W.Cast(loc);
                }
            }

            /// <summary>
            ///     The Automatic E Logics.
            /// </summary>
            if (SpellClass.E.Ready)
            {
                /// <summary>
                ///     The E Before death Logic.
                /// </summary>
                if (MenuClass.Spells["e"]["ondeath"].As <MenuBool>().Enabled&&
                    ImplementationClass.IHealthPrediction.GetPrediction(UtilityClass.Player, 1000 + Game.Ping) <= 0)
                {
                    SpellClass.E.Cast();
                }

                /// <summary>
                ///     The E Minion Harass Logic.
                /// </summary>
                if (GameObjects.EnemyHeroes.Any(IsPerfectRendTarget) &&
                    Extensions.GetEnemyLaneMinionsTargetsInRange(SpellClass.E.Range).Any(m => IsPerfectRendTarget(m) && m.GetRealHealth() <= GetTotalRendDamage(m)) &&
                    MenuClass.Spells["e"]["harass"].As <MenuBool>().Enabled)
                {
                    SpellClass.E.Cast();
                }

                /// <summary>
                ///     The E Jungleclear Logic.
                /// </summary>
                if (MenuClass.Spells["e"]["junglesteal"].As <MenuBool>().Enabled)
                {
                    foreach (var minion in ObjectManager.Get <Obj_AI_Minion>().Where(m => UtilityClass.JungleList.Contains(m.UnitSkinName)))
                    {
                        if (IsPerfectRendTarget(minion) &&
                            minion.GetRealHealth() <= GetTotalRendDamage(minion) &&
                            MenuClass.Spells["e"]["whitelist"][minion.UnitSkinName].As <MenuBool>().Enabled)
                        {
                            SpellClass.E.Cast();
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        ///     Fired when the game is updated.
        /// </summary>
        public void Automatic()
        {
            var passiveObject = ObjectManager.Get <GameObject>().FirstOrDefault(o => o.IsValid && o.Name == "Kalista_Base_P_LinkIcon.troy");

            if (passiveObject != null)
            {
                SoulBound = GameObjects.AllyHeroes
                            .Where(a => !a.IsMe)
                            .MinBy(o => o.Distance(passiveObject));
            }

            if (UtilityClass.Player.IsRecalling())
            {
                return;
            }

            /// <summary>
            ///     The R Logics.
            /// </summary>
            if (SpellClass.R.Ready &&
                SoulBound != null)
            {
                /// <summary>
                ///     The Lifesaver R Logic.
                /// </summary>
                if (SoulBound.CountEnemyHeroesInRange(800f) > 0 &&
                    SoulBound.HealthPercent() <=
                    MenuClass.Spells["r"]["lifesaver"].As <MenuSliderBool>().Value&&
                    MenuClass.Spells["r"]["lifesaver"].As <MenuSliderBool>().Enabled)
                {
                    SpellClass.R.Cast();
                }

                var option = RLogics.FirstOrDefault(k => k.Key == SoulBound.ChampionName).Value;
                if (option != null)
                {
                    var buffName   = option.Item1;
                    var menuOption = option.Item2;

                    /// <summary>
                    ///     The Offensive R Logics.
                    /// </summary>
                    if (RLogics.ContainsKey(SoulBound.ChampionName) &&
                        GameObjects.EnemyHeroes.Any(t =>
                                                    t.HasBuff(buffName) &&
                                                    MenuClass.Spells["r"][menuOption].As <MenuBool>().Enabled&&
                                                    t.Distance(UtilityClass.Player.ServerPosition) > UtilityClass.Player.GetFullAttackRange(t)))
                    {
                        SpellClass.R.Cast();
                    }
                }
            }

            /// <summary>
            ///     The Spot W Logic.
            /// </summary>
            if (SpellClass.W.Ready &&
                !UtilityClass.Player.IsUnderEnemyTurret() &&
                ImplementationClass.IOrbwalker.Mode == OrbwalkingMode.None &&
                UtilityClass.Player.CountEnemyHeroesInRange(1500f) == 0 &&
                UtilityClass.Player.ManaPercent()
                > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["logical"]) &&
                MenuClass.Spells["w"]["logical"].As <MenuSliderBool>().Enabled)
            {
                foreach (var loc in Locations.Where(l =>
                                                    UtilityClass.Player.Distance(l) <= SpellClass.W.Range &&
                                                    !ObjectManager.Get <Obj_AI_Minion>().Any(m => m.Distance(l) <= 1000f && m.UnitSkinName.Equals("KalistaSpawn"))))
                {
                    SpellClass.W.Cast(loc);
                }
            }
        }