예제 #1
0
파일: Other.cs 프로젝트: wade1990/PortAIO
        /// <summary>
        /// The combo damage.
        /// </summary>
        /// <param name="target">
        /// The target.
        /// </param>
        /// <returns>
        /// The <see cref="double"/>.
        /// </returns>
        public static double ComboDamage(Obj_AI_Base target)
        {
            double damage = 0;

            if ((CannonQ_CD_R == 0) && (CannonE_CD_R != 0))
            {
                damage += CannonQDmg(target);
            }
            if ((CannonQ_CD_R == 0) && (CannonE_CD_R == 0))
            {
                damage += CannonQEDmg(target);
            }
            if (HammerQ_CD_R == 0)
            {
                damage += Q1.GetDamage(target);
            }
            if (HammerW_CD_R == 0)
            {
                damage += W1.GetDamage(target);
            }
            if (HammerE_CD_R == 0)
            {
                damage += HammerEDmg(target);
            }
            return(damage);
        }
예제 #2
0
        public static void KS()
        {
            var PacketCast  = SkyLv_AurelionSol.Menu.Item("AurelionSol.PacketCastKS").GetValue <bool>();
            var useIgniteKS = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseIgniteKS").GetValue <bool>();
            var useQKS      = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseQKS").GetValue <bool>();
            var useWKS      = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseWKS").GetValue <bool>();
            var useRKS      = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseRKS").GetValue <bool>();

            foreach (var target in ObjectManager.Get <Obj_AI_Hero>().Where(target => !target.IsMe && target.Team != ObjectManager.Player.Team))
            {
                if (!target.HasBuff("SionPassiveZombie") && !target.HasBuff("Udying Rage") && !target.HasBuff("JudicatorIntervention"))
                {
                    if (useQKS && Q.IsReady() && target.Health < MathsLib.QDamage(target) && !target.IsDead)
                    {
                        var prediction = Q.GetPrediction(target);
                        if (prediction.Hitchance >= HitChance.High)
                        {
                            Q.Cast(prediction.CastPosition, PacketCast);
                            return;
                        }
                    }

                    if (useWKS && W1.IsReady() && target.Health < W1.GetDamage(target) && !target.IsDead)
                    {
                        if (Player.Distance(target) > W1.Range - 20 && Player.Distance(target) < W1.Range + 20 && MathsLib.isWInLongRangeMode())
                        {
                            W2.Cast(PacketCast);
                            return;
                        }

                        if (Player.Distance(target) > W2.Range - 20 && Player.Distance(target) < W2.Range + 20 && !MathsLib.isWInLongRangeMode())
                        {
                            W1.Cast(PacketCast);
                            return;
                        }
                        return;
                    }

                    if (useRKS && R.IsReady() && target.Health < MathsLib.RDamage(target) && !target.IsDead)
                    {
                        var prediction = R.GetPrediction(target);
                        if (prediction.Hitchance == HitChance.VeryHigh)
                        {
                            R.Cast(prediction.CastPosition, PacketCast);
                            return;
                        }
                        return;
                    }

                    if (useIgniteKS && SkyLv_AurelionSol.IgniteSlot.IsReady() && target.Health < Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite) && Player.Distance(target) <= 600 && !target.IsDead && target.IsValidTarget())
                    {
                        Player.Spellbook.CastSpell(SkyLv_AurelionSol.IgniteSlot);
                        return;
                    }
                }
            }
        }
예제 #3
0
        public static void KS()
        {
            var PacketCast  = SkyLv_AurelionSol.Menu.Item("AurelionSol.PacketCastKS").GetValue <bool>();
            var UseIgniteKS = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseIgniteKS").GetValue <bool>();
            var UseQKS      = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseQKS").GetValue <bool>();
            var UseWKS      = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseWKS").GetValue <bool>();
            var UseRKS      = SkyLv_AurelionSol.Menu.Item("AurelionSol.UseRKS").GetValue <bool>();

            foreach (var target in ObjectManager.Get <AIHeroClient>().Where(target => !target.IsMe && !target.IsDead && target.Team != ObjectManager.Player.Team && !target.IsZombie && (SkyLv_AurelionSol.Ignite.Slot != SpellSlot.Unknown || !target.HasBuff("summonerdot"))))
            {
                if (UseQKS && Player.Distance(target) <= Q.Range && Q.IsReady() && target.Health < CustomLib.QDamage(target) && Player.Mana >= Q.ManaCost)
                {
                    Q.CastIfHitchanceEquals(target, HitChance.VeryHigh, PacketCast);
                }

                if (UseWKS && W1.IsReady() && target.Health < W1.GetDamage(target))
                {
                    if (Player.Distance(target) > W1.Range - 20 && Player.Distance(target) < W1.Range + 20 && CustomLib.isWInLongRangeMode())
                    {
                        W2.Cast(PacketCast);
                    }

                    if (Player.Distance(target) > W2.Range - 20 && Player.Distance(target) < W2.Range + 20 && !CustomLib.isWInLongRangeMode())
                    {
                        W1.Cast(PacketCast);
                    }
                }

                if (UseRKS && Player.Distance(target) <= R.Range && R.IsReady() && target.Health < CustomLib.RDamage(target) && Player.Mana >= R.ManaCost)
                {
                    R.CastIfHitchanceEquals(target, HitChance.VeryHigh, PacketCast);
                }

                if (UseIgniteKS && SkyLv_AurelionSol.Ignite.Slot != SpellSlot.Unknown && target.Health < Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite) && Player.Distance(target) <= SkyLv_AurelionSol.Ignite.Range)
                {
                    SkyLv_AurelionSol.Ignite.Cast(target, true);
                }
            }
        }
예제 #4
0
        private static void doCombo()
        {
            var Target   = SimpleTs.GetTarget(Q1.Range, SimpleTs.DamageType.Magical);
            var Marked   = Target.HasBuff("nidaleepassivehunted", true);
            var Hunting  = Player.HasBuff("nidaleepassivehunting", true);
            var Distance = Player.Distance(Target);
            var useItems = Config.Item("combo_Items").GetValue <bool>();

            if (useItems)
            {
                if (Items.CanUseItem(Bork.Id))
                {
                    Bork.Cast(Target);
                }
                if (Items.CanUseItem(Cutlass.Id))
                {
                    Cutlass.Cast(Target);
                }
            }

            var comboUT = Config.Item("combo_UT").GetValue <bool>();

            /* Human Form */
            if (!IsCougar)
            {
                if (Marked && R.IsReady() && Config.Item("combo_R").GetValue <bool>() && Distance < 750f ||
                    (!Q1.IsReady() && !Q1.IsReady(2500) && Target.Distance(Player) < 300f) &&
                    (!Utility.UnderTurret(Target, true) || comboUT))
                {
                    R.CastOnUnit(Player, PacketCasting);
                }

                else if (Q1.IsReady() && Config.Item("combo_Q1").GetValue <bool>())
                {
                    Q1.Cast(Target, PacketCasting);
                }

                else if (W1.IsReady() && Config.Item("combo_W1").GetValue <bool>())
                {
                    W1.Cast(Target, PacketCasting);
                }

                else if (E1.IsReady() && Config.Item("combo_E1").GetValue <bool>() &&
                         (!R.IsReady() || !Marked && Distance < W2.Range + 75f))
                {
                    E1.CastOnUnit(Player, PacketCasting);
                }
            }

            /* Cougar Form */
            else
            {
                if (!Marked && R.IsReady() && Config.Item("combo_R").GetValue <bool>() && Distance < W2.Range + 75f)
                {
                    R.CastOnUnit(Player, PacketCasting);
                    return;
                }

                // Deathfire grasp / Blackfire Torch
                var dmg = Q1.GetDamage(Target, 1) + W1.GetDamage(Target, 1) + E1.GetDamage(Target, 1);
                if (Target.IsValidTarget(DFG.Range) && Q1.IsReady() && W1.IsReady() && E1.IsReady() && dmg < Target.Health && (dmg * 1.2f) + (Target.MaxHealth * (DFG.Id == 3188 ? 0.20f : 0.15f)) > Target.Health && useItems)
                {
                    DFG.Cast(Target);
                }

                if (Marked && Hunting && W2.IsReady() && Config.Item("combo_W2").GetValue <bool>() && Distance < 750f &&
                    Distance > 200f && (!Utility
                                        .UnderTurret(Target, true) || comboUT))
                {
                    Player.Spellbook.CastSpell(SpellSlot.W, Target);
                }
                else if (E2.IsReady() && Distance < 300f)
                {
                    var Pred = Prediction.GetPrediction(Target, 0.5f);
                    E2.Cast(Pred.CastPosition, PacketCasting);
                }
            }
        }