예제 #1
0
파일: Ezreal.cs 프로젝트: wade1990/PortAIO
        internal static void Game_OnUpdate(EventArgs args)
        {
            if (ProSeries.CanCombo())
            {
                var qtarget = TargetSelector.GetTargetNoCollision(Q);
                if (qtarget.IsValidTarget() && Q.IsReady())
                {
                    if (ProSeries.Config.Item("usecomboq", true).GetValue <bool>())
                    {
                        Q.Cast(qtarget);
                    }
                }

                var wtarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                if (wtarget.IsValidTarget() && W.IsReady())
                {
                    if (ProSeries.Config.Item("usecombow", true).GetValue <bool>())
                    {
                        W.Cast(wtarget);
                    }
                }
            }

            if (ProSeries.CanHarass())
            {
                var qtarget = TargetSelector.GetTargetNoCollision(Q);
                if (qtarget.IsValidTarget() && Q.IsReady() && ProSeries.IsWhiteListed(qtarget))
                {
                    if (ProSeries.Config.Item("usecomboq", true).GetValue <bool>())
                    {
                        Q.Cast(qtarget);
                    }
                }

                var wtarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                if (wtarget.IsValidTarget() && W.IsReady() && ProSeries.IsWhiteListed(wtarget))
                {
                    if (ProSeries.Config.Item("useharassw", true).GetValue <bool>())
                    {
                        W.Cast(wtarget);
                    }
                }
            }

            if (Q.IsReady())
            {
                foreach (var target in ObjectManager.Get <AIHeroClient>().Where(h => h.IsValidTarget(Q.Range)))
                {
                    if (ProSeries.Config.Item("useqimm", true).GetValue <bool>())
                    {
                        Q.CastIfHitchanceEquals(target, HitChance.Immobile);
                    }

                    if (ProSeries.Config.Item("useqdash", true).GetValue <bool>())
                    {
                        Q.CastIfHitchanceEquals(target, HitChance.Dashing);
                    }
                }
            }

            if (ProSeries.CanClear())
            {
                foreach (var neutral in ProSeries.JungleMobsInRange(650))
                {
                    if (ProSeries.Config.Item("useclearq", true).GetValue <bool>())
                    {
                        Q.Cast(neutral);
                    }
                }

                foreach (var minion in ObjectManager.Get <Obj_AI_Minion>().Where(m => m.IsValidTarget(Q.Range)))
                {
                    if (ProSeries.Player.GetSpellDamage(minion, Q.Slot) >= minion.Health &&
                        ProSeries.Config.Item("useclearq", true).GetValue <bool>())
                    {
                        if (!minion.Name.Contains("Ward"))
                        {
                            Q.Cast(minion);
                        }
                    }
                }
            }

            if (ProSeries.Config.Item("usecombor", true).GetValue <bool>())
            {
                var maxDistance = ProSeries.Config.Item("maxrdist", true).GetValue <Slider>().Value;
                foreach (var target in ObjectManager.Get <AIHeroClient>().Where(h => h.IsValidTarget(maxDistance)))
                {
                    var aaDamage = Orbwalking.InAutoAttackRange(target)
                        ? ProSeries.Player.GetAutoAttackDamage(target, true)
                        : 0;

                    if (!target.IsZombie &&
                        target.Health - aaDamage <= ProSeries.Player.GetSpellDamage(target, SpellSlot.R))
                    {
                        R.Cast(target);
                    }
                }
            }
        }
예제 #2
0
        internal static void Game_OnUpdate(EventArgs args)
        {
            R.Range = ProSeries.Player.Buffs.Any(
                h => h.Name.ToLower().Contains("corkimissilebarragecounterbig")) ? 1500f : 1300f;

            if (ProSeries.CanCombo())
            {
                var qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                if (qtarget.IsValidTarget() && Q.IsReady())
                {
                    if (ProSeries.Config.Item("usecomboq", true).GetValue <bool>())
                    {
                        Q.CastIfHitchanceEquals(qtarget, HitChance.High);
                    }
                }

                var etarget = HeroManager.Enemies.FirstOrDefault(h => h.IsValidTarget(E.Range));
                if (etarget.IsValidTarget() && E.IsReady())
                {
                    if (ProSeries.Config.Item("usecomboe", true).GetValue <bool>() &&
                        E.Cast(etarget) == Spell.CastStates.SuccessfullyCasted)
                    {
                        return;
                    }
                }

                var rtarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                if (rtarget.IsValidTarget() && R.IsReady())
                {
                    if (ProSeries.Config.Item("usecombor", true).GetValue <bool>())
                    {
                        R.CastIfHitchanceEquals(rtarget, HitChance.High);
                    }
                }
            }

            if (ProSeries.CanHarass())
            {
                var qtarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
                if (qtarget.IsValidTarget() && Q.IsReady() && ProSeries.IsWhiteListed(qtarget))
                {
                    if (ProSeries.Config.Item("useharassq", true).GetValue <bool>())
                    {
                        Q.CastIfHitchanceEquals(qtarget, HitChance.High);
                    }
                }

                var etarget = HeroManager.Enemies.FirstOrDefault(h => h.IsValidTarget(E.Range));
                if (etarget.IsValidTarget() && E.IsReady() && ProSeries.IsWhiteListed(etarget))
                {
                    if (ProSeries.Config.Item("useharasse", true).GetValue <bool>())
                    {
                        if (E.Cast(etarget) == Spell.CastStates.SuccessfullyCasted)
                        {
                            return;
                        }
                    }
                }

                var rtarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                if (rtarget.IsValidTarget() && R.IsReady() && ProSeries.IsWhiteListed(rtarget))
                {
                    if (ProSeries.Config.Item("useharassr", true).GetValue <bool>() && R.Instance.Ammo > 3)
                    {
                        R.CastIfHitchanceEquals(rtarget, HitChance.High);
                    }
                }
            }

            if (ProSeries.CanClear())
            {
                foreach (var neutral in ProSeries.JungleMobsInRange(650))
                {
                    if (ProSeries.Config.Item("useclearq", true).GetValue <bool>() && Q.IsReady())
                    {
                        Q.Cast(neutral);
                    }
                    if (ProSeries.Config.Item("usecleare", true).GetValue <bool>() && E.IsReady())
                    {
                        if (E.Cast(neutral) == Spell.CastStates.SuccessfullyCasted)
                        {
                            return;
                        }
                    }
                }

                if (E.IsReady() && ProSeries.Config.Item("usecleare", true).GetValue <bool>())
                {
                    if (ObjectManager.Get <Obj_AI_Minion>().Count(h => h.IsValidTarget(E.Range) && !h.Name.Contains("Ward")) >= 3)
                    {
                        if (E.Cast(ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(h => h.IsValidTarget(E.Range))) ==
                            Spell.CastStates.SuccessfullyCasted)
                        {
                            return;
                        }
                    }
                }

                if (Q.IsReady() && ProSeries.Config.Item("useclearq", true).GetValue <bool>())
                {
                    var farmLocation = Q.GetCircularFarmLocation(MinionManager.GetMinions(Q.Range));
                    if (farmLocation.MinionsHit >= 3)
                    {
                        Q.Cast(farmLocation.Position);
                    }
                }
            }
        }