예제 #1
0
        private float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (R.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.R) * 2;
            }
            damage += ItemHandler.GetItemsDamage(hero);
            if (Q.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.Q);
            }
            if (W.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.W, 1);
            }
            if ((Items.HasItem(ItemHandler.Bft.Id) && Items.CanUseItem(ItemHandler.Bft.Id)) ||
                (Items.HasItem(ItemHandler.Dfg.Id) && Items.CanUseItem(ItemHandler.Dfg.Id)))
            {
                damage = (float)(damage * 1.2);
            }
            var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);

            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + ignitedmg)
            {
                damage += ignitedmg;
            }
            return((float)damage);
        }
예제 #2
0
        private static float ComboDamage(AIHeroClient hero)
        {
            float damage = 0;

            if (Q.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(player, hero, SpellSlot.Q);
            }
            if (W.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(player, hero, SpellSlot.W);
            }
            if (E.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
                damage += (float)Damage.GetSpellDamageLS(player, hero, SpellSlot.E, 1);
            }
            if (R.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(player, hero, SpellSlot.R);
                damage += (float)player.CalcDamage(hero, Damage.DamageType.Magical, maoRStack);
            }
            if ((Items.HasItem(ItemHandler.Bft.Id) && Items.CanUseItem(ItemHandler.Bft.Id)) ||
                (Items.HasItem(ItemHandler.Dfg.Id) && Items.CanUseItem(ItemHandler.Dfg.Id)))
            {
                damage = (float)(damage * 1.2);
            }
            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite))
            {
                damage += (float)player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);
            }
            damage += ItemHandler.GetItemsDamage(hero);
            return(damage);
        }
예제 #3
0
        public double GetdTotalBuffDamage(Obj_AI_Base target, BuffInstance buff)
        {
            var caster    = buff.Caster as AIHeroClient;
            var SpelLevel = caster.Spellbook.GetSpell(Slot).Level;

            if (caster.Spellbook.GetSpell(Slot).Level <= 0)
            {
                return(0);
            }
            if (Slot != SpellSlot.Unknown)
            {
                return(Damage.GetSpellDamageLS(caster, target, Slot, Stage) * Multiplier);
            }
            if (BuffName == "toxicshotparticle")
            {
                var dmg = new double[] { 24, 48, 72, 96, 120 }[SpelLevel - 1] +0.4 * caster.TotalMagicalDamage;
                return(Damage.CalcDamage(caster, target, Damage.DamageType.Magical, dmg));
            }
            if (BuffName == "deadlyvenom")
            {
                return(GetBuffDamage(12, 4, 6, SpelLevel) * buff.Count);
            }
            if (BuffName == "MordekaiserChildrenOfTheGrave")
            {
                var dmg = (new double[] { 18.75, 22.5, 26.25 }[SpelLevel - 1] / 100 + 0.03 / 100) *
                          caster.TotalMagicalDamage * target.MaxHealth;
                return(Damage.CalcDamage(caster, target, Damage.DamageType.Magical, dmg));
            }
            if (BuffName == "dariushemo")
            {
                var dmg = (9 + SpelLevel + caster.FlatPhysicalDamageMod * 0.3d) * buff.Count;
                return(Damage.CalcDamage(caster, target, Damage.DamageType.Physical, dmg));
            }
            if (BuffName == "brandablaze")
            {
                var dmg = target.MaxHealth * 0.08d;
                return(Damage.CalcDamage(caster, target, Damage.DamageType.Magical, dmg));
            }
            if (BuffName == "summonerdot")
            {
                return(caster.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite));
            }
            if (BuffName == "tristanaechargesound")
            {
                var dmg = Damage.GetSpellDamageLS(caster, target, Slot, Stage) * buff.Count;
                return(Damage.CalcDamage(caster, target, Damage.DamageType.Physical, dmg));
            }
            if (BuffName == "swainbeamdamage")
            {
                var dmg = Damage.GetSpellDamageLS(caster, target, Slot, Stage) * 3;
                return(Damage.CalcDamage(caster, target, Damage.DamageType.Magical, dmg));
            }
            if (BuffName == "SwainTorment")
            {
                var dmg = new double[] { 81, 128, 176, 228, 282 }[SpelLevel - 1] +
                new double[] { 0.86, 0.89, 0.92, 0.93, 0.96 }[SpelLevel - 1] *caster.TotalMagicalDamage;
                return(Damage.CalcDamage(caster, target, Damage.DamageType.Magical, dmg));
            }
            return(0);
        }
예제 #4
0
        private static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (activatedP)
            {
                return((float)player.GetAutoAttackDamage(hero, true));
            }
            if (Q.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.Q) * 2f;
            }
            if (W.IsReady() || activatedW)
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.W);
            }
            if (E.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
            }
            if (R.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.R) * hero.Distance(player) > 1000 ? 2f : 1.3f;
            }
            //damage += ItemHandler.GetItemsDamage(target);
            var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);

            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + ignitedmg)
            {
                damage += ignitedmg;
            }
            return((float)damage);
        }
예제 #5
0
        private static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (E.IsReady() && E.Instance.SData.Mana < player.Mana)
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
            }
            if (R.IsReady() && config.Item("Rdamage").GetValue <bool>())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.R) * 15;
            }
            if (Q.IsReady() && config.Item("Qdamage").GetValue <bool>())
            {
                damage += Q.GetDamage(hero) + player.GetAutoAttackDamage(hero);
            }
            //damage += ItemHandler.GetItemsDamage(hero);
            var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);

            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + ignitedmg)
            {
                damage += ignitedmg;
            }
            return((float)damage);
        }
예제 #6
0
파일: Gragas.cs 프로젝트: yashine59fr/Port
        private static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            damage += getQdamage(hero);
            if (E.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
            }
            if (W.IsReady() || player.HasBuff("gragaswattackbuff"))
            {
                damage += getWdamage(hero);
            }
            if (R.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.R);
            }
            //damage += ItemHandler.GetItemsDamage(target);
            var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);

            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + ignitedmg)
            {
                damage += ignitedmg;
            }
            return((float)damage);
        }
예제 #7
0
파일: Hecarim.cs 프로젝트: yashine59fr/Port
        private static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (Q.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.Q);
            }
            if (W.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.W);
            }
            if (E.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
            }
            if (R.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.R);
            }
            damage += ItemHandler.GetItemsDamage(hero);
            var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);

            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + ignitedmg)
            {
                damage += ignitedmg;
            }
            return((float)damage);
        }
예제 #8
0
        private static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (Q.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.Q);
            }
            if (W.IsReady() || player.GetSpell(SpellSlot.W).State == SpellState.Surpressed)
            {
                damage += player.CalcDamage(hero, Damage.DamageType.Physical, Wdmg(hero));
            }
            if (E.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
            }
            if ((Items.HasItem(ItemHandler.Bft.Id) && Items.CanUseItem(ItemHandler.Bft.Id)) ||
                (Items.HasItem(ItemHandler.Dfg.Id) && Items.CanUseItem(ItemHandler.Dfg.Id)))
            {
                damage = (damage * 1.2);
            }
            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite))
            {
                damage += player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);
            }
            damage += ItemHandler.GetItemsDamage(hero);
            return((float)damage);
        }
예제 #9
0
        public static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (Q.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.Q);
            }
            if (W.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.W);
            }
            if ((Items.HasItem(ItemHandler.Bft.Id) && Items.CanUseItem(ItemHandler.Bft.Id)) ||
                (Items.HasItem(ItemHandler.Dfg.Id) && Items.CanUseItem(ItemHandler.Dfg.Id)))
            {
                damage = (float)(damage * 1.2);
            }
            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready)
            {
                damage += player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);
            }
            if (R.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.R);
            }
            damage += ItemHandler.GetItemsDamage(hero);
            return((float)damage);
        }
예제 #10
0
 private static double GetRDmagage(Obj_AI_Base hero)
 {
     return(Damage.GetSpellDamageLS(player, hero, SpellSlot.R) * 5 +
            Damage.CalcDamage(
                player, hero, Damage.DamageType.Magical,
                new double[5] {
         40, 80, 120, 160, 200
     }[R.Level - 1] +0.45 * (double)player.FlatMagicDamageMod));
 }
예제 #11
0
파일: Rumble.cs 프로젝트: yashine59fr/Port
        private static float getEdamage(AIHeroClient target)
        {
            if (!E.IsReady())
            {
                return(0);
            }
            var num = ActiveE ? 1 : 2;
            var dmg = Damage.GetSpellDamageLS(player, target, SpellSlot.E) * num;

            return((float)(Enhanced ? dmg * 1.5f : dmg));
        }
예제 #12
0
        public bool checkFuryMode(SpellSlot spellSlot, Obj_AI_Base target)
        {
            if (Damage.GetSpellDamageLS(player, target, spellSlot) > target.Health)
            {
                return(true);
            }
            if (canBeOpWIthQ(player.Position) && spellSlot != SpellSlot.Q)
            {
                return(false);
            }
            if (!fury)
            {
                return(true);
            }
            if (player.Spellbook.IsAutoAttacking)
            {
                return(false);
            }
            switch (config.Item("furyMode", true).GetValue <StringList>().SelectedIndex)
            {
            case 0:
                return(true);

                break;

            case 1:
                if (spellSlot != SpellSlot.Q && Q.IsReady(500))
                {
                    return(false);
                }
                break;

            case 2:
                if (spellSlot != SpellSlot.W && (W.IsReady(500) || renw) && target.IsInAttackRange())
                {
                    return(false);
                }
                break;

            case 3:
                if (spellSlot != SpellSlot.E && rene && E.IsReady(500))
                {
                    return(false);
                }
                break;

            default:
                return(true);

                break;
            }
            return(true);
        }
예제 #13
0
파일: Sejuani.cs 프로젝트: yashine59fr/Port
        private static void Combo()
        {
            Ulti();
            float        perc   = (float)config.Item("minmana", true).GetValue <Slider>().Value / 100f;
            var          minHit = config.Item("useemin", true).GetValue <Slider>().Value;
            AIHeroClient target = LeagueSharp.Common.TargetSelector.GetTarget(R.Range, LeagueSharp.Common.TargetSelector.DamageType.Magical);

            if (target == null)
            {
                return;
            }
            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config, ComboDamage(target));
            }

            var buffs = CombatHelper.SejuaniCountFrostHero(E.Range);

            if (E.IsReady() && me.Distance(target.Position) < E.Range && buffs > 0 &&
                ((buffs > minHit) || (Damage.GetSpellDamageLS(me, target, SpellSlot.E) >= target.Health) ||
                 (me.Distance(target) > config.Item("useEminr", true).GetValue <Slider>().Value&&
                  me.Distance(target) < E.Range && buffs == 1)))
            {
                if (!(Q.IsReady() && me.Mana - me.Spellbook.GetSpell(SpellSlot.Q).SData.Mana < me.MaxMana * perc) ||
                    !(W.IsReady() && me.Mana - me.Spellbook.GetSpell(SpellSlot.W).SData.Mana < me.MaxMana * perc))
                {
                    E.Cast();
                }
            }
            if (Q.IsReady() && config.Item("useq", true).GetValue <bool>() &&
                me.Distance(target.Position) > config.Item("useQminr", true).GetValue <Slider>().Value)
            {
                var hits = Q.GetHitCount(HitChance.High);
                if (target.CountEnemiesInRange(Q.Width) >= hits)
                {
                    if (Program.IsSPrediction)
                    {
                        Q.SPredictionCast(target, HitChance.High);
                    }
                    else
                    {
                        Q.CastIfHitchanceEquals(target, HitChance.High);
                    }
                }
            }
            bool hasIgnite = me.Spellbook.CanUseSpell(me.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  ignitedmg = (float)me.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (ignitedmg > target.Health && hasIgnite && !E.CanCast(target) && !W.CanCast(target) && !Q.CanCast(target))
            {
                me.Spellbook.CastSpell(me.GetSpellSlot("SummonerDot"), target);
            }
        }
예제 #14
0
파일: Yorick.cs 프로젝트: yashine59fr/Port
        private void Clear()
        {
            float perc = (float)config.Item("minmana").GetValue <Slider>().Value / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            var bestpos =
                W.GetCircularFarmLocation(
                    MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth),
                    100);

            if (config.Item("usewLC").GetValue <bool>() && W.IsReady() &&
                config.Item("usewLChit").GetValue <Slider>().Value <= bestpos.MinionsHit)
            {
                W.Cast(bestpos.Position);
            }
            var target =
                MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly)
                .Where(i => i.Health <E.GetDamage(i) || i.Health> 600f)
                .OrderByDescending(i => i.Distance(player))
                .FirstOrDefault();

            if (config.Item("useeLC").GetValue <bool>() && E.CanCast(target))
            {
                E.CastOnUnit(target);
            }
            if (config.Item("useqLC").GetValue <bool>() && Q.IsReady())
            {
                var targetQ =
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .Where(
                        i =>
                        (i.Health < Damage.GetSpellDamageLS(player, i, SpellSlot.Q) &&
                         !(i.Health < player.GetAutoAttackDamage(i))))
                    .OrderByDescending(i => i.Health)
                    .FirstOrDefault();
                if (targetQ == null)
                {
                    return;
                }
                Q.Cast();
                EloBuddy.Player.IssueOrder(GameObjectOrder.AutoAttack, targetQ);
            }
        }
예제 #15
0
파일: Shen.cs 프로젝트: yashine59fr/Port
        private static float ComboDamage(AIHeroClient hero)
        {
            float damage = 0;

            if (Q.IsReady() && player.Spellbook.GetSpell(SpellSlot.Q).SData.Mana < player.Mana)
            {
                damage += (float)Damage.GetSpellDamageLS(player, hero, SpellSlot.Q);
            }
            if (E.IsReady() && player.Spellbook.GetSpell(SpellSlot.E).SData.Mana < player.Mana)
            {
                damage += (float)Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
            }
            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health - damage < (float)player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite))
            {
                damage += (float)player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);
            }
            return(damage);
        }
예제 #16
0
파일: Gragas.cs 프로젝트: yashine59fr/Port
        public static float getQdamage(Obj_AI_Base target)
        {
            var damage = 0d;

            if (Q.IsReady())
            {
                if (savedQ == null)
                {
                    damage += Damage.GetSpellDamageLS(player, target, SpellSlot.Q);
                }
                else
                {
                    if (savedQ.deltaT() > 2000)
                    {
                        damage += Damage.GetSpellDamageLS(player, target, SpellSlot.Q) * 1.5f;
                    }
                    else
                    {
                        damage += Damage.GetSpellDamageLS(player, target, SpellSlot.Q);
                    }
                }
            }
            if (target.Name.Contains("SRU_Dragon"))
            {
                var dsBuff = player.GetBuff("s5test_dragonslayerbuff");
                if (dsBuff != null)
                {
                    damage = damage * (1f - 0.07f * dsBuff.Count);
                }
            }
            if (target.Name.Contains("SRU_Baron"))
            {
                var bBuff = player.GetBuff("barontarget");
                if (bBuff != null)
                {
                    damage = damage * 0.5f;
                }
            }
            return((float)damage);
        }
예제 #17
0
파일: Sejuani.cs 프로젝트: yashine59fr/Port
        private static float ComboDamage(AIHeroClient hero)
        {
            float damage = 0;

            if (Q.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(me, hero, SpellSlot.Q);
            }
            if (E.IsReady() || E.Instance.State == SpellState.Surpressed)
            {
                damage += (float)Damage.GetSpellDamageLS(me, hero, SpellSlot.E);
            }
            if (W.IsReady())
            {
                double watk = (new double[] { 4, 4.5, 5, 5.5, 6 }[W.Level - 1] +hero.FlatMagicDamageMod * 0.03) / 100 *
                              hero.Health;
                double wdot = new double[] { 40, 70, 100, 130, 160 }[W.Level - 1] +
                (new double[] { 4, 6, 8, 10, 12 }[W.Level - 1] / 100) * me.MaxHealth;
                damage += (float)me.CalcDamage(hero, Damage.DamageType.Magical, wdot);
                damage += (float)me.CalcDamage(hero, Damage.DamageType.Magical, watk);
            }
            if (R.IsReady())
            {
                damage += (float)Damage.GetSpellDamageLS(me, hero, SpellSlot.R);
            }

            if ((Items.HasItem(ItemHandler.Bft.Id) && Items.CanUseItem(ItemHandler.Bft.Id)) ||
                (Items.HasItem(ItemHandler.Dfg.Id) && Items.CanUseItem(ItemHandler.Dfg.Id)))
            {
                damage = (float)(damage * 1.2);
            }
            if (me.Spellbook.CanUseSpell(me.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + me.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite))
            {
                damage += (float)me.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);
            }
            damage += ItemHandler.GetItemsDamage(hero);
            return(damage);
        }
예제 #18
0
파일: Singed.cs 프로젝트: yashine59fr/Port
        private static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (config.Item("drawcomboQ", true).GetValue <bool>())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.Q) * 5;
            }
            if (E.IsReady())
            {
                damage += Damage.GetSpellDamageLS(player, hero, SpellSlot.E);
            }
            //damage += ItemHandler.GetItemsDamage(hero);
            var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);

            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + ignitedmg)
            {
                damage += ignitedmg;
            }
            return((float)damage);
        }
예제 #19
0
        private static void Combo()
        {
            AIHeroClient target = LeagueSharp.Common.TargetSelector.GetTarget(1000, LeagueSharp.Common.TargetSelector.DamageType.Magical);

            if (config.Item("usee", true).GetValue <bool>() && !VorpalSpikes && E.GetHitCount() > 0 &&
                (Environment.Turret.countTurretsInRange(player) < 1 || target.Health < 150))
            {
                E.Cast();
            }
            if (target == null)
            {
                return;
            }
            if (config.Item("selected", true).GetValue <bool>())
            {
                target = CombatHelper.SetTarget(target, LeagueSharp.Common.TargetSelector.GetSelectedTarget());
            }
            var combodmg = ComboDamage(target);

            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config, combodmg);
            }
            bool hasFlash  = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerFlash")) == SpellState.Ready;
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (hasIgnite && ignitedmg > target.Health && !R.CanCast(target) && !W.CanCast(target) && !Q.CanCast(target))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (hasIgnite && combodmg > target.Health && R.CanCast(target) &&
                (float)Damage.GetSpellDamageLS(player, target, SpellSlot.R) < target.Health)
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (hasIgnite)
            {
                flashRblock = true;
            }
            else
            {
                flashRblock = false;
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady())
            {
                int qHit = config.Item("qHit", true).GetValue <Slider>().Value;
                var hitC = HitChance.VeryHigh;
                switch (qHit)
                {
                case 1:
                    hitC = HitChance.Low;
                    break;

                case 2:
                    hitC = HitChance.Medium;
                    break;

                case 3:
                    hitC = HitChance.High;
                    break;

                case 4:
                    hitC = HitChance.VeryHigh;
                    break;
                }
                if (Program.IsSPrediction)
                {
                    Q.SPredictionCast(target, hitC);
                }
                else
                {
                    var pred = Q.GetPrediction(target);
                    if (pred.Hitchance >= hitC)
                    {
                        if (target.IsMoving)
                        {
                            if (pred.CastPosition.Distance(target.ServerPosition) > 250f)
                            {
                                Q.Cast(target.Position.Extend(pred.CastPosition, 250f));
                            }
                            else
                            {
                                Q.Cast(pred.CastPosition);
                            }
                        }
                        else
                        {
                            Q.CastIfHitchanceEquals(target, hitC);
                        }
                    }
                }
            }
            if (config.Item("usew", true).GetValue <bool>() && W.CanCast(target))
            {
                if (Program.IsSPrediction)
                {
                    W.SPredictionCast(target, HitChance.High);
                }
                else
                {
                    W.Cast(target);
                }
            }
            if (config.Item("UseFlashC", true).GetValue <bool>() && !flashRblock && R.IsReady() && hasFlash &&
                !CombatHelper.CheckCriticalBuffs(target) && player.GetSpell(SpellSlot.R).SData.Mana <= player.Mana &&
                player.Distance(target.Position) >= 400 && player.GetSpellDamageLS(target, SpellSlot.R) > target.Health &&
                !Q.IsReady() && !W.IsReady() && player.Distance(target.Position) <= RFlash.Range &&
                !player.Position.Extend(target.Position, 400).IsWall())
            {
                player.Spellbook.CastSpell(
                    player.GetSpellSlot("SummonerFlash"), player.Position.Extend(target.Position, 400).To3DWorld());
                LeagueSharp.Common.Utility.DelayAction.Add(50, () => R.Cast(target));
            }
            var rtarget =
                HeroManager.Enemies.Where(e => e.IsValidTargetLS() && R.CanCast(e))
                .OrderByDescending(e => LeagueSharp.Common.TargetSelector.GetPriority(e))
                .FirstOrDefault();

            if (config.Item("user", true).GetValue <bool>() && rtarget != null &&
                player.GetSpellDamageLS(target, SpellSlot.R) > rtarget.Health)
            {
                R.Cast(rtarget);
            }
        }
예제 #20
0
파일: Garen.cs 프로젝트: yashine59fr/Port
        private void Combo()
        {
            AIHeroClient target = LeagueSharp.Common.TargetSelector.GetTarget(700, LeagueSharp.Common.TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }
            var combodamage = ComboDamage(target);

            if (config.Item("useItems").GetValue <bool>() && !GarenQ)
            {
                ItemHandler.UseItems(target, config, combodamage);
            }
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (config.Item("useIgnite").GetValue <bool>() && hasIgnite &&
                ((R.IsReady() && ignitedmg + R.GetDamage(target) > target.Health) || ignitedmg > target.Health) &&
                (target.Distance(player) > E.Range || player.HealthPercent < 20))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady() &&
                player.Distance(target) > player.AttackRange && !GarenE && !GarenQ &&
                player.Distance(target) > Orbwalking.GetRealAutoAttackRange(target) &&
                CombatHelper.IsPossibleToReachHim(target, 0.30f, new float[5] {
                1.5f, 2f, 2.5f, 3f, 3.5f
            }[Q.Level - 1]))
            {
                Q.Cast();
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady() && !GarenQ &&
                (!GarenE || (Q.IsReady() && Damage.GetSpellDamageLS(player, target, SpellSlot.Q) > target.Health)))
            {
                if (GarenE)
                {
                    E.Cast();
                }
                Q.Cast();
                EloBuddy.Player.IssueOrder(GameObjectOrder.AutoAttack, target);
            }
            if (config.Item("usee", true).GetValue <bool>() && E.IsReady() && !Q.IsReady() && !GarenQ && !GarenE &&
                !EloBuddy.SDK.Orbwalker.CanAutoAttack && !player.Spellbook.IsAutoAttacking && player.CountEnemiesInRange(E.Range) > 0)
            {
                E.Cast();
            }
            var targHP = target.Health + 20 - CombatHelper.IgniteDamage(target);
            var rLogic = config.Item("user", true).GetValue <bool>() && R.IsReady() && target.IsValidTargetLS() &&
                         (!config.Item("ult" + target.BaseSkinName, true).GetValue <bool>() ||
                          player.CountEnemiesInRange(1500) == 1) && getRDamage(target) > targHP && targHP > 0;

            if (rLogic && target.Distance(player) < R.Range)
            {
                if (!(GarenE && target.Health < getEDamage(target, true) && target.Distance(player) < E.Range))
                {
                    if (GarenE)
                    {
                        E.Cast();
                    }
                    else
                    {
                        R.Cast(target);
                    }
                }
            }
            var data = Program.IncDamages.GetAllyData(player.NetworkId);

            if (config.Item("usew", true).GetValue <bool>() && W.IsReady() && target.IsFacing(player) &&
                data.DamageTaken > 40)
            {
                W.Cast();
            }
            bool hasFlash = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerFlash")) == SpellState.Ready;

            if (config.Item("useFlash", true).GetValue <bool>() && hasFlash && rLogic &&
                target.Distance(player) < R.Range + 425 && target.Distance(player) > R.Range + 250 && !Q.IsReady() &&
                !CombatHelper.IsFacing(target, player.Position) && !GarenQ)
            {
                if (target.Distance(player) < R.Range + 300 && player.MoveSpeed > target.MoveSpeed)
                {
                    return;
                }
                if (GarenE)
                {
                    E.Cast();
                }
                else if (!player.Position.Extend(target.Position, 425f).IsWall())
                {
                }
                {
                    player.Spellbook.CastSpell(
                        player.GetSpellSlot("SummonerFlash"), player.Position.Extend(target.Position, 425f).To3DWorld());
                }
            }
        }
예제 #21
0
        public static float GetChampDmgToMe(AIHeroClient enemy)
        {
            double result   = 0;
            double basicDmg = 0;
            int    attacks  = (int)Math.Floor(enemy.AttackSpeedMod * 5);

            for (int i = 0; i < attacks; i++)
            {
                if (enemy.Crit > 0)
                {
                    basicDmg += enemy.GetAutoAttackDamage(player) * (1 + enemy.Crit / attacks);
                }
                else
                {
                    basicDmg += enemy.GetAutoAttackDamage(player);
                }
            }
            result += basicDmg;
            var spells = enemy.Spellbook.Spells;

            foreach (var spell in spells)
            {
                var t = spell.CooldownExpires - Game.Time;
                if (t < 0.5)
                {
                    switch (enemy.BaseSkinName)
                    {
                    case "Ahri":
                        if (spell.Slot == SpellSlot.Q)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot));
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot, 1));
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Akali":
                        if (spell.Slot == SpellSlot.R)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * spell.Ammo);
                        }
                        else if (spell.Slot == SpellSlot.Q)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot));
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot, 1));
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Amumu":
                        if (spell.Slot == SpellSlot.W)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 5);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Cassiopeia":
                        if (spell.Slot == SpellSlot.Q || spell.Slot == SpellSlot.E || spell.Slot == SpellSlot.W)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 2);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Fiddlesticks":
                        if (spell.Slot == SpellSlot.W || spell.Slot == SpellSlot.E)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 5);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Garen":
                        if (spell.Slot == SpellSlot.E)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 3);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Irelia":
                        if (spell.Slot == SpellSlot.W)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * attacks);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Karthus":
                        if (spell.Slot == SpellSlot.Q)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 4);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "KogMaw":
                        if (spell.Slot == SpellSlot.W)
                        {
                            result += (Damage.GetSpellDamageLS(enemy, player, spell.Slot) * attacks);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "LeeSin":
                        if (spell.Slot == SpellSlot.Q)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot, 1);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Lucian":
                        if (spell.Slot == SpellSlot.R)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 4;
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Nunu":
                        if (spell.Slot != SpellSlot.R && spell.Slot != SpellSlot.Q)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "MasterYi":
                        if (spell.Slot != SpellSlot.E)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot) * attacks;
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "MonkeyKing":
                        if (spell.Slot != SpellSlot.R)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 4;
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Pantheon":
                        if (spell.Slot == SpellSlot.E)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 3;
                        }
                        else if (spell.Slot == SpellSlot.R)
                        {
                            result += 0;
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }

                        break;

                    case "Rammus":
                        if (spell.Slot == SpellSlot.R)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 6;
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Riven":
                        if (spell.Slot == SpellSlot.Q)
                        {
                            result += RivenDamageQ(spell, enemy, player);
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Viktor":
                        if (spell.Slot == SpellSlot.R)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot, 1) * 5;
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    case "Vladimir":
                        if (spell.Slot == SpellSlot.E)
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot) * 2;
                        }
                        else
                        {
                            result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        }
                        break;

                    default:
                        result += Damage.GetSpellDamageLS(enemy, player, spell.Slot);
                        break;
                    }
                }
            }
            if (enemy.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready)
            {
                result += enemy.GetSummonerSpellDamage(player, Damage.SummonerSpell.Ignite);
            }
            foreach (var minions in
                     ObjectManager.Get <Obj_AI_Minion>()
                     .Where(i => i.Distance(player.Position) < 750 && i.IsMinion && !i.IsAlly && !i.IsDead))
            {
                result += minions.GetAutoAttackDamage(player, false);
            }
            return((float)result);
        }
예제 #22
0
        private void Combo()
        {
            AIHeroClient target = LeagueSharp.Common.TargetSelector.GetTarget(E.Range, LeagueSharp.Common.TargetSelector.DamageType.Magical);

            if (target == null)
            {
                if (maoR)
                {
                    if (!turnOff)
                    {
                        turnOff = true;
                        LeagueSharp.Common.Utility.DelayAction.Add(2600, () => turnOffUlt());
                    }
                }
                return;
            }
            if (config.Item("selected", true).GetValue <bool>())
            {
                target = CombatHelper.SetTarget(target, LeagueSharp.Common.TargetSelector.GetSelectedTarget());
                orbwalker.ForceTarget(target);
            }
            var manaperc = player.Mana / player.MaxMana * 100;

            if (player.HasBuff("MaokaiSapMagicMelee") &&
                player.Distance(target) < Orbwalking.GetRealAutoAttackRange(target) + 75)
            {
                return;
            }
            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config, ComboDamage(target));
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.CanCast(target) && !player.Spellbook.IsAutoAttacking &&
                ((config.Item("useqroot", true).GetValue <bool>() &&
                  (!target.HasBuffOfType(BuffType.Snare) && !target.HasBuffOfType(BuffType.Stun) &&
                   !target.HasBuffOfType(BuffType.Suppression))) || !config.Item("useqroot", true).GetValue <bool>()) &&
                !W.CanCast(target))
            {
                Q.Cast(target);
            }
            if (config.Item("usew", true).GetValue <bool>())
            {
                if (config.Item("blocke", true).GetValue <bool>() && player.Distance(target) < W.Range && W.IsReady() &&
                    E.CanCast(target))
                {
                    E.Cast(target);
                    CastR(target);
                    LeagueSharp.Common.Utility.DelayAction.Add(100, () => W.Cast(target));
                }
                else if (W.CanCast(target))
                {
                    CastR(target);
                    W.Cast(target);
                }
            }
            if (config.Item("usee", true).GetValue <bool>() && E.CanCast(target))
            {
                if (!config.Item("blocke", true).GetValue <bool>() ||
                    config.Item("blocke", true).GetValue <bool>() && !W.IsReady())
                {
                    E.Cast(target);
                }
            }

            if (R.IsReady())
            {
                bool enoughEnemies = config.Item("user", true).GetValue <Slider>().Value <=
                                     player.CountEnemiesInRange(R.Range - 50);
                AIHeroClient targetR = LeagueSharp.Common.TargetSelector.GetTarget(R.Range, LeagueSharp.Common.TargetSelector.DamageType.Magical);

                if (maoR && targetR != null &&
                    ((config.Item("rks", true).GetValue <bool>() &&
                      (Damage.GetSpellDamageLS(player, targetR, SpellSlot.R) +
                       player.CalcDamage(target, Damage.DamageType.Magical, maoRStack)) > targetR.Health) ||
                     manaperc < config.Item("rmana", true).GetValue <Slider>().Value ||
                     (!enoughEnemies && player.Distance(targetR) > R.Range - 50)))
                {
                    R.Cast();
                }

                if (targetR != null && !maoR && manaperc > config.Item("rmana", true).GetValue <Slider>().Value&&
                    (enoughEnemies || R.IsInRange(targetR)))
                {
                    R.Cast();
                }
            }
            var  ignitedmg = (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;

            if (config.Item("useIgnite").GetValue <bool>() && ignitedmg > target.Health && hasIgnite &&
                !E.CanCast(target))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
        }
예제 #23
0
        private void Combo()
        {
            AIHeroClient target = LeagueSharp.Common.TargetSelector.GetTarget(E.Range * 2, LeagueSharp.Common.TargetSelector.DamageType.Physical);

            if (target == null)
            {
                return;
            }
            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config, ComboDamage(target));
            }
            bool hasIgnite   = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  FuryQ       = Damage.GetSpellDamageLS(player, target, SpellSlot.Q) * 0.5;
            var  FuryW       = Damage.GetSpellDamageLS(player, target, SpellSlot.W) * 0.5;
            var  eDmg        = Damage.GetSpellDamageLS(player, target, SpellSlot.E);
            var  combodamage = ComboDamage(target);

            if (config.Item("useIgnite").GetValue <bool>() && hasIgnite &&
                player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite) > target.Health)
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (player.Distance(target) > E.Range && E.IsReady() && (W.IsReady() || Q.IsReady()) && lastE.Equals(0) &&
                config.Item("usee", true).GetValue <bool>())
            {
                var closeGapTarget =
                    MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .Where(i => i.Distance(target.ServerPosition) < Q.Range - 40)
                    .OrderByDescending(i => Environment.Minion.countMinionsInrange(i.Position, Q.Range))
                    .FirstOrDefault();
                if (closeGapTarget != null)
                {
                    if ((canBeOpWIthQ(closeGapTarget.Position) || fury) && !rene)
                    {
                        if (E.CanCast(closeGapTarget))
                        {
                            E.Cast(closeGapTarget.Position);
                            lastE = System.Environment.TickCount;
                            return;
                        }
                    }
                }
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.CanCast(target) && !renw && !player.IsDashing() &&
                checkFuryMode(SpellSlot.Q, target))
            {
                Q.Cast();
            }
            var distance = player.Distance(target.Position);

            if (config.Item("usee", true).GetValue <bool>() && lastE.Equals(0) && E.CanCast(target) &&
                (eDmg > target.Health ||
                 (((W.IsReady() && canBeOpWIthQ(target.Position) && !rene) ||
                   (distance > target.Distance(player.Position.Extend(target.Position, E.Range)) - distance)))))
            {
                E.Cast(target.Position);
                lastE = System.Environment.TickCount;
                return;
            }
            if (config.Item("usee", true).GetValue <bool>() && checkFuryMode(SpellSlot.E, target) && !lastE.Equals(0) &&
                (eDmg + player.GetAutoAttackDamage(target) > target.Health ||
                 (((W.IsReady() && canBeOpWIthQ(target.Position) && !rene) ||
                   (distance < target.Distance(player.Position.Extend(target.Position, E.Range)) - distance) ||
                   player.Distance(target) > E.Range - 100))))
            {
                var time = System.Environment.TickCount - lastE;
                if (time > 3600f || combodamage > target.Health || (player.Distance(target) > E.Range - 100))
                {
                    E.Cast(target.Position);
                    lastE = 0;
                }
            }
            var data = Program.IncDamages.GetAllyData(player.NetworkId);

            if (((player.Health * 100 / player.MaxHealth) <= config.Item("user", true).GetValue <Slider>().Value&&
                 data.DamageTaken > 30) ||
                config.Item("userindanger", true).GetValue <Slider>().Value <= player.CountEnemiesInRange(R.Range))
            {
                R.Cast();
            }
        }