コード例 #1
0
ファイル: Core.cs プロジェクト: wade1990/PortAIO
        public override void HarasMode()
        {
            AIHeroClient target;

            if (Q.UseOnHaras && Q.IsReady() &&
                champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytoharas"))
            {
                target = TargetSelector.GetTarget(Q.Range, Q.DamageType);
                if (target != null)
                {
                    Q.Cast(target);
                }
            }

            if (E.UseOnHaras && E.IsReady() &&
                champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytoharas"))
            {
                target = TargetSelector.GetTarget(E.Range, E.DamageType);
                if (target != null)
                {
                    E.Cast();
                }
            }

            LastHitMode();
        }
コード例 #2
0
        public override void LaneClearMode()
        {
            if (CheckPassive())
            {
                return;
            }

            lock (lockObject)
            {
                if (Q.UseOnLaneClear && Q.IsReady() && Q.CanCast() && !CheckPassive() && HaveManaToLaneclear() &&
                    champion.CastExtendedQToLaneClear())
                {
                    ProcessSpell();
                }

                if (W.UseOnLaneClear && W.IsReady() && W.CanCast() && !CheckPassive() && HaveManaToHaras())
                {
                    List <Obj_AI_Base>         minions      = MinionManager.GetMinions(W.Range).ToList();
                    MinionManager.FarmLocation farmLocation = W.GetCircularFarmLocation(minions);

                    int minMinions = KoreanUtils.GetParamSlider(champion.MainMenu, "wcounthit");

                    if (farmLocation.MinionsHit >= minMinions && minions.Count >= minMinions)
                    {
                        if (W.Cast(farmLocation.Position))
                        {
                            ProcessSpell();
                        }
                    }
                }

                if (E.UseOnLaneClear && lucian.semiAutomaticE.Holding && E.IsReady() && E.CanCast() && !CheckPassive() &&
                    (E.Instance.SData.Mana.Equals(0) || (E.Instance.SData.Mana > 0 && HaveManaToHaras())))
                {
                    Obj_AI_Base target =
                        MinionManager.GetMinions(E.Range + Orbwalking.GetRealAutoAttackRange(champion.Player))
                        .FirstOrDefault(
                            minion =>
                            champion.Player.Distance(minion) > Orbwalking.GetRealAutoAttackRange(champion.Player) &&
                            Game.CursorPos.Distance(minion.Position) < champion.Player.Distance(minion));

                    if (target != null && lucian.semiAutomaticE.Cast(target))
                    {
                        ProcessSpell();
                        champion.Orbwalker.ForceTarget(target);
                    }
                }
            }

            if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear"))
            {
                HarasMode();
            }
        }
コード例 #3
0
        public override void LaneClearMode()
        {
            if (E.IsReady() && E.UseOnLaneClear)
            {
                if (MinionManager.GetMinions(E.Range).Count >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoe"))
                {
                    E.Cast();
                }

                if (E.IsReady())
                {
                    if (MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral).Count > 0)
                    {
                        E.Cast();
                    }
                }
            }

            if (KoreanUtils.GetParamBool(champion.MainMenu, "saveqtofarm") &&
                KoreanUtils.GetParamBool(champion.MainMenu, "useqtofarm"))
            {
                LastHitMode();
            }
            else if (Q.IsReady() && Q.UseOnLaneClear)
            {
                Obj_AI_Base minion =
                    MinionManager.GetMinions(Q.Range).OrderByDescending(x => x.MaxHealth).FirstOrDefault();

                if (minion != null)
                {
                    Q.Cast(minion);
                }
            }

            if (Q.IsReady() && Q.UseOnLaneClear)
            {
                Obj_AI_Base jungleMob =
                    MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth)
                    .FirstOrDefault();

                if (jungleMob != null)
                {
                    Q.Cast(jungleMob);
                }
            }

            if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear"))
            {
                HarasMode();
            }
        }
コード例 #4
0
 private void LoadLambdaExpressions()
 {
     ParamName       = s => KoreanUtils.ParamName(MainMenu, s);
     GetParamBool    = s => KoreanUtils.GetParamBool(MainMenu, s);
     SetValueBool    = (s, b) => KoreanUtils.SetValueBool(MainMenu, s, b);
     GetParamSlider  = s => KoreanUtils.GetParamSlider(MainMenu, s);
     GetParamKeyBind = s => KoreanUtils.GetParamKeyBind(MainMenu, s);
     CanFarm         =
         () =>
         (!GetParamBool("supportmode")) ||
         ((GetParamBool("supportmode")) && (Player.CountAlliesInRange(1500f) == 1));
     CheckStun = () => Player.HasBuff("pyromania_particle");
     SaveStun  = () => (CheckStun() && (GetParamBool("savestunforcombo")));
 }
コード例 #5
0
ファイル: Core.cs プロジェクト: thienha1/EnsoulSharp
        public override void LaneClearMode()
        {
            if (!HaveManaToLaneclear())
            {
                return;
            }
            if (spells.Q.UseOnLaneClear && spells.Q.IsReady() && spells.Q.CanCast())
            {
                List <AIBaseClient>        minions      = MinionManager.GetMinions(champion.Player.Position, spells.Q.Range);
                MinionManager.FarmLocation farmLocation = spells.Q.GetCircularFarmLocation(minions);

                if (farmLocation.MinionsHit >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoq"))
                {
                    spells.Q.Cast(farmLocation.Position);
                }
            }

            if (!HaveManaToLaneclear())
            {
                return;
            }

            if (spells.W.UseOnLaneClear && spells.W.IsReady() && spells.W.CanCast())
            {
                List <AIBaseClient> minions = MinionManager.GetMinions(champion.Player.Position, spells.W.Range);

                MinionManager.FarmLocation wFarmLocation = spells.W.GetCircularFarmLocation(minions);

                if (wFarmLocation.MinionsHit >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstow"))
                {
                    spells.W.Cast(wFarmLocation.Position);
                }
            }

            if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear"))
            {
                HarasMode();
            }
        }
コード例 #6
0
ファイル: Core.cs プロジェクト: wade1990/PortAIO
        public override void LaneClearMode()
        {
            if (Q.UseOnLaneClear && Q.IsReady() &&
                champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytolaneclear"))
            {
                if (KoreanUtils.GetParamBool(champion.MainMenu, "saveqtofarm"))
                {
                    LastHitMode();
                }
                else
                {
                    Q.Cast(MinionManager.GetMinions(Q.Range).FirstOrDefault());
                }
            }

            if (E.UseOnLaneClear && E.IsReady() &&
                champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytolaneclear") &&
                MinionManager.GetMinions(E.Range).Count >=
                KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoe"))
            {
                E.Cast();
            }
        }
コード例 #7
0
        public static bool CastExtendedQToLaneClear(this CommonChampion lucian)
        {
            if (!ExtendedQIsReady(lucian, true) || !lucian.Spells.Q.UseOnLaneClear)
            {
                return(false);
            }

            AdvancedQ.SetSkillshot(0.55f, 75f, float.MaxValue, false, SkillshotType.SkillshotLine);

            List <Obj_AI_Base> minionsBase = MinionManager.GetMinions(
                lucian.Player.Position,
                AdvancedQ.Range,
                MinionTypes.All,
                MinionTeam.NotAlly,
                MinionOrderTypes.MaxHealth);

            if (minionsBase.Count == 0)
            {
                return(false);
            }

            Spell q = lucian.Spells.Q;

            foreach (Obj_AI_Base minion in minionsBase.Where(x => q.IsInRange(x)))
            {
                if (AdvancedQ.CountHits(minionsBase, minion.Position)
                    >= KoreanUtils.GetParamSlider(lucian.MainMenu, "qcounthit"))
                {
                    q.CastOnUnit(minion);
                    Orbwalking.ResetAutoAttackTimer();
                    return(true);
                }
            }

            return(false);
        }
コード例 #8
0
ファイル: KeepEAlive.cs プロジェクト: q51251/LeagueSharp-11
        private void Game_OnUpdate(EventArgs args)
        {
            if (!KoreanUtils.GetParamBool(Vladimir.MainMenu, "autostackeactive"))
            {
                return;
            }

            if (Vladimir.Player.IsRecalling() || Vladimir.Player.InFountain())
            {
                return;
            }

            if (Vladimir.Player.HealthPercent < KoreanUtils.GetParamSlider(Vladimir.MainMenu, "autostackelimit") ||
                Math.Round(Vladimir.Player.HPRegenRate * 5, 0) <
                KoreanUtils.GetParamSlider(Vladimir.MainMenu, "autostackehealthregen"))
            {
                return;
            }

            if (NextCicleOn <= Game.Time)
            {
                Utility.DelayAction.Add(100, () => E.Cast());
            }
        }
コード例 #9
0
 public bool HaveManaToLaneclear()
 {
     return(champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "manalimittolaneclear"));
 }
コード例 #10
0
        //Maybe next feature
        //private bool IsJungleMob(Obj_AI_Base target)
        //{
        //    return (target.BaseSkinName.ToLowerInvariant() == "sru_blue"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_gromp"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_murkwolf"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_razorbeak"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_baron"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_dragon"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_red"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_crab"
        //            || target.BaseSkinName.ToLowerInvariant() == "sru_krug");
        //}

        public bool HaveManaToHaras()
        {
            return(champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "manalimittoharas"));
        }
コード例 #11
0
        public override void ComboMode()
        {
            Obj_AI_Hero target;

            if (R.IsReady() && R.UseOnCombo)
            {
                int minEnemiesToR = KoreanUtils.GetParamSlider(champion.MainMenu, "minenemiestor");

                if (minEnemiesToR == 1)
                {
                    target = TargetSelector.GetTarget(R.Range, R.DamageType);
                    if (target != null)
                    {
                        spells.R.Cast(target.Position);
                    }
                }
                else
                {
                    foreach (PredictionOutput pred in
                             ObjectManager.Get <Obj_AI_Hero>()
                             .Where(x => x.IsValidTarget(spells.R.Range))
                             .Select(x => spells.R.GetPrediction(x, true))
                             .Where(pred => pred.Hitchance >= HitChance.High && pred.AoeTargetsHitCount >= minEnemiesToR)
                             )
                    {
                        spells.R.Cast(pred.CastPosition);
                    }
                }

                if (R.IsReady() && ((Q.UseOnCombo && Q.IsReady()) || !Q.UseOnCombo))
                {
                    target = TargetSelector.GetTarget(R.Range, R.DamageType);

                    if (target != null)
                    {
                        float totalDamage = R.GetDamage(target) + Q.GetDamage(target) * 1.12f + E.GetDamage(target) * 1.25f * (E.Instance.Ammo + 1) * 1.12f;

                        if (totalDamage > target.Health && totalDamage * 0.7f < target.Health)
                        {
                            R.Cast(target.Position);
                        }
                    }
                }
            }

            if (E.IsReady() && E.UseOnCombo)
            {
                target = TargetSelector.GetTarget(E.Range, E.DamageType);

                if (target != null)
                {
                    E.Cast();
                }
            }

            if (Q.IsReady() && Q.UseOnCombo)
            {
                target = TargetSelector.GetTarget(Q.Range, Q.DamageType);

                if (target != null)
                {
                    Q.Cast(target);
                }
            }

            if (W.IsReady() && W.UseOnCombo)
            {
                if (HeroManager.Enemies.Any(enemy => enemy.Distance(champion.Player) < 180 && !enemy.IsDead))
                {
                    W.Cast();
                }
            }
        }