Example #1
0
 public static double Rdmg(Obj_AI_Base target)
 {
     return(Damage.CalcDamage(
                player, target, Damage.DamageType.Physical,
                (new double[] { 200, 300, 400 }[R.Level - 1] +
                 0.9f * (player.BaseAttackDamage + player.FlatPhysicalDamageMod))));
 }
Example #2
0
        private static double getWdamage(AIHeroClient target)
        {
            var dmg = new double[] { 20, 50, 80, 110, 140 }[W.Level - 1] +8f / 100f * target.MaxHealth +
            0.3f * player.FlatMagicDamageMod;

            return(Damage.CalcDamage(player, target, Damage.DamageType.Magical, dmg));
        }
Example #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);
        }
Example #4
0
 private static float PassiveDmg(Obj_AI_Base hero)
 {
     return
         ((float)
          (Damage.CalcDamage(
               player, hero, Damage.DamageType.Magical, 20 + (5 * player.Level) + player.AbilityPower() * 0.3f) +
           player.GetAutoAttackDamage(hero)));
 }
Example #5
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));
 }
Example #6
0
        private double getWDamage(AIHeroClient target)
        {
            var r        = R.Level - 1;
            var Rpercent = new float[] { 0.04f, 0.06f, 0.08f }[r >= 1 ? r: 1];
            var bonusDmg = 20 + ((player.MaxHealth - (515f + (95f * (player.Level - 1f)))) * Rpercent);
            var dmg      = (new double[] { 0.20, 0.23, 0.26, 0.29, 0.32 }[W.Level - 1] +
                            0.02 * player.TotalMagicalDamage / 100) * target.MaxHealth;

            return(Damage.CalcDamage(player, target, Damage.DamageType.Magical, dmg + bonusDmg));
        }
Example #7
0
        public static float GetItemsDamage(AIHeroClient target)
        {
            double damage = 0;

            if (Items.HasItem(odins.Id) && Items.CanUseItem(odins.Id))
            {
                damage += LeagueSharp.Common.Damage.GetItemDamageLS(player, target, LeagueSharp.Common.Damage.DamageItems.OdingVeils);
            }
            if (Items.HasItem(hexgun.Id) && Items.CanUseItem(hexgun.Id))
            {
                damage += Damage.GetItemDamageLS(player, target, Damage.DamageItems.Hexgun);
            }
            var ludenStacks = player.Buffs.FirstOrDefault(buff => buff.Name == "itemmagicshankcharge");

            if (ludenStacks != null && (Items.HasItem(Ludens.Id) && ludenStacks.Count == 100))
            {
                damage += player.CalcDamage(
                    target, Damage.DamageType.Magical,
                    Damage.CalcDamage(player, target, Damage.DamageType.Magical, 100 + player.FlatMagicDamageMod * 0.15));
            }
            if (Items.HasItem(lich.Id) && Items.CanUseItem(lich.Id))
            {
                damage += player.CalcDamage(
                    target, Damage.DamageType.Magical, player.BaseAttackDamage * 0.75 + player.FlatMagicDamageMod * 0.5);
            }
            if (Items.HasItem(Dfg.Id) && Items.CanUseItem(Dfg.Id))
            {
                damage  = damage * 1.2;
                damage += Damage.GetItemDamageLS(player, target, Damage.DamageItems.Dfg);
            }
            if (Items.HasItem(Bft.Id) && Items.CanUseItem(Bft.Id))
            {
                damage  = damage * 1.2;
                damage += Damage.GetItemDamageLS(player, target, Damage.DamageItems.BlackFireTorch);
            }
            if (Items.HasItem(tiamat.Id) && Items.CanUseItem(tiamat.Id))
            {
                damage += Damage.GetItemDamageLS(player, target, Damage.DamageItems.Tiamat);
            }
            if (Items.HasItem(hydra.Id) && Items.CanUseItem(hydra.Id))
            {
                damage += Damage.GetItemDamageLS(player, target, Damage.DamageItems.Hydra);
            }
            if (Items.HasItem(bilgewater.Id) && Items.CanUseItem(bilgewater.Id))
            {
                damage += Damage.GetItemDamageLS(player, target, Damage.DamageItems.Bilgewater);
            }
            if (Items.HasItem(botrk.Id) && Items.CanUseItem(botrk.Id))
            {
                damage += Damage.GetItemDamageLS(player, target, Damage.DamageItems.Botrk);
            }
            damage += GetSheenDmg(target);
            return((float)damage);
        }
Example #8
0
        private double getRDamage(AIHeroClient hero)
        {
            var dmg = new double[] { 175, 350, 525 }[R.Level - 1] +
            new[] { 28.57, 33.33, 40 }[R.Level - 1] / 100 * (hero.MaxHealth - hero.Health);

            if (hero.HasBuff("garenpassiveenemytarget"))
            {
                return(Damage.CalcDamage(player, hero, Damage.DamageType.True, dmg));
            }
            else
            {
                return(Damage.CalcDamage(player, hero, Damage.DamageType.Magical, dmg));
            }
        }
Example #9
0
        private void Clear()
        {
            float perc = config.Item("minmana", true).GetValue <Slider>().Value / 100f;
            var   buff = Jungle.GetNearest(player.Position);

            if (buff != null && config.Item("useeLCsteal", true).GetValue <bool>() && E.IsReady())
            {
                var dmg = new double[] { 50, 65, 80, 95, 110 }[E.Level] +0.75 * player.FlatMagicDamageMod +
                Math.Min(300, new double[] { 6, 6.5, 7, 7.5, 8 }[E.Level] / 100 * buff.MaxHealth);
                if (E.CanCast(buff) && Damage.CalcDamage(player, buff, Damage.DamageType.Magical, dmg) > buff.Health)
                {
                    E.CastOnUnit(buff);
                }
            }
            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            var pos  = LeagueSharp.Common.Prediction.GetPrediction(player, 1);
            var coll = Qp.GetCollision(
                player.Position.To2D(),
                new List <Vector2>
            {
                player.Position.Extend(pos.UnitPosition, player.Distance(pos.CastPosition) * -1).To3DWorld().To2D()
            });

            if ((coll.Count > 0 || Environment.Minion.countMinionsInrange(player.Position, 250f) > 0) &&
                config.Item("useqLC", true).GetValue <bool>())
            {
                CastQ();
            }
            if (config.Item("moveLC", true).GetValue <bool>() && player.CountEnemiesInRange(1000) < 1 &&
                Orbwalking.CanMove(100) && player.Mana > 30 && !player.Spellbook.IsAutoAttacking)
            {
                var mini =
                    MinionManager.GetMinions(600, MinionTypes.All, MinionTeam.NotAlly)
                    .Where(m => !m.HasBuff("poisontrailtarget") && !m.UnderTurret(true))
                    .OrderBy(m => m.Distance(player))
                    .FirstOrDefault();

                if (mini != null && !Environment.Minion.KillableMinion(player.AttackRange))
                {
                    EloBuddy.Player.IssueOrder(
                        GameObjectOrder.MoveTo, player.Position.Extend(mini.Position, player.Distance(mini) + 100).To3DWorld());
                    Orbwalking.Attack = false;
                    Orbwalking.Move   = false;
                }
            }
        }
Example #10
0
        private double getEDamage(AIHeroClient target, bool bufftime = false)
        {
            var spins = 0d;

            if (bufftime)
            {
                spins = CombatHelper.GetBuffTime(player.GetBuff("GarenE")) * GetSpins() / 3;
            }
            else
            {
                spins = GetSpins();
            }
            var dmg   = (baseEDamage[E.Level - 1] + bonusEDamage[E.Level - 1] / 100 * player.TotalAttackDamage) * spins;
            var bonus = target.HasBuff("garenpassiveenemytarget") ? target.MaxHealth / 100f * spins : 0;

            if (ObjectManager.Get <Obj_AI_Base>().Count(o => o.IsValidTargetLS() && o.Distance(target) < 650) == 0)
            {
                return(Damage.CalcDamage(player, target, Damage.DamageType.Physical, dmg) * 1.33 + bonus);
            }
            else
            {
                return(Damage.CalcDamage(player, target, Damage.DamageType.Physical, dmg) + bonus);
            }
        }
Example #11
0
        private static void Combo()
        {
            AIHeroClient target = LeagueSharp.Common.TargetSelector.GetTarget(1000, LeagueSharp.Common.TargetSelector.DamageType.Magical);

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

            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target, config, ComboDamage(target));
            }
            bool hasFlash = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerFlash")) == SpellState.Ready;

            if (config.Item("usee", true).GetValue <bool>() && E.IsReady())
            {
                if (config.Item("useewall", true).GetValue <bool>())
                {
                    var   bestpos = CombatHelper.bestVectorToPoppyFlash2(target);
                    float damage  =
                        (float)
                        (ComboDamage(target) +
                         Damage.CalcDamage(
                             player, target, Damage.DamageType.Magical,
                             (eSecond[E.Level - 1] + 0.8f * player.FlatMagicDamageMod)) +
                         (player.GetAutoAttackDamage(target) * 4));
                    float damageno = (float)(ComboDamage(target) + (player.GetAutoAttackDamage(target) * 4));
                    if (config.Item("useeflash", true).GetValue <bool>() && hasFlash && !CheckWalls(player, target) &&
                        damage > target.Health && target.Health > damageno &&
                        CombatHelper.bestVectorToPoppyFlash(target).IsValid())
                    {
                        player.Spellbook.CastSpell(player.GetSpellSlot("SummonerFlash"), bestpos);
                        LeagueSharp.Common.Utility.DelayAction.Add(
                            100, () => E.CastOnUnit(target));
                    }
                    if (E.CanCast(target) &&
                        (CheckWalls(player, target) ||
                         target.Health < E.GetDamage(target) + player.GetAutoAttackDamage(target, true)))
                    {
                        E.CastOnUnit(target);
                    }
                    if (E.CanCast(target) && Q.IsReady() && Q.Instance.SData.Mana + E.Instance.SData.Mana > player.Mana &&
                        target.Health <
                        E.GetDamage(target) + Q.GetDamage(target) + player.GetAutoAttackDamage(target, true))
                    {
                        E.CastOnUnit(target);
                    }
                }
                else
                {
                    if (E.CanCast(target))
                    {
                        E.CastOnUnit(target);
                    }
                }
            }
            if (config.Item("useq", true).GetValue <bool>() && Q.IsReady() && Q.CanCast(target) &&
                Orbwalking.CanMove(100) && target.Distance(player) < Q.Range &&
                (player.Distance(target) > Orbwalking.GetRealAutoAttackRange(target) || !EloBuddy.SDK.Orbwalker.CanAutoAttack))
            {
                Q.CastIfHitchanceEquals(target, HitChance.High);
            }

            bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready &&
                             config.Item("useIgnite").GetValue <bool>();
            var ignitedmg = hasIgnite ? (float)player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite) : 0f;

            if (ignitedmg > target.Health && hasIgnite && !E.CanCast(target) && !Q.CanCast(target) &&
                (player.Distance(target) > Q.Range || player.HealthPercent < 30))
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (config.Item("userindanger", true).GetValue <bool>() && R.IsReady() &&
                ((player.CountEnemiesInRange(800) >= 2 &&
                  player.CountEnemiesInRange(800) > player.CountAlliesInRange(1500) + 1 && player.HealthPercent < 60) ||
                 (player.Health < target.Health && player.HealthPercent < 40 &&
                  player.CountAlliesInRange(1000) + 1 < player.CountEnemiesInRange(1000))))
            {
                var targ =
                    HeroManager.Enemies.Where(
                        e =>
                        e.IsValidTargetLS() && R.CanCast(e) &&
                        (player.HealthPercent < 60 || e.CountEnemiesInRange(300) > 2) &&
                        HeroManager.Enemies.Count(h => h.Distance(e) < 400 && e.HealthPercent < 35) == 0 &&
                        R.GetPrediction(e).CastPosition.Distance(player.Position) < R.ChargedMaxRange)
                    .OrderByDescending(e => R.GetPrediction(e).CastPosition.CountEnemiesInRange(400))
                    .ThenByDescending(e => e.Distance(target))
                    .FirstOrDefault();
                if (R.Range > 1300 && targ == null)
                {
                    targ =
                        HeroManager.Enemies.Where(
                            e =>
                            e.IsValidTargetLS() && R.CanCast(e) &&
                            R.GetPrediction(e).CastPosition.Distance(player.Position) < R.ChargedMaxRange)
                        .OrderByDescending(e => R.GetPrediction(e).CastPosition.CountEnemiesInRange(400))
                        .ThenByDescending(e => e.Distance(target))
                        .FirstOrDefault();
                }
                if (!R.IsCharging && targ != null)
                {
                    R.StartCharging();
                }
                if (R.IsCharging && targ != null && R.CanCast(targ) && R.Range > 1000 && R.Range > targ.Distance(player))
                {
                    R.CastIfHitchanceEquals(targ, HitChance.Medium);
                }
                if (R.IsCharging && targ != null && R.Range < 1000)
                {
                    return;
                }
            }
            if (config.Item("user", true).GetValue <bool>() && R.IsReady() && player.Distance(target) < 1400 &&
                !target.UnderTurret(true))
            {
                var cond = ((Rdmg(target) < target.Health && ignitedmg + Rdmg(target) > target.Health &&
                             player.Distance(target) < 600) ||
                            (target.Distance(player) > E.Range && Rdmg(target) > target.Health &&
                             target.Distance(player) < 1100));
                if (!R.IsCharging && cond && !Q.IsReady() && player.HealthPercent < 40)
                {
                    R.StartCharging();
                    if (hasIgnite && cmbdmg > target.Health && cmbdmg - Rdmg(target) < target.Health)
                    {
                        if (!target.HasBuff("summonerdot"))
                        {
                            player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
                        }
                    }
                }
                if (R.IsCharging && R.CanCast(target) && R.Range > target.Distance(player) && cond)
                {
                    R.CastIfHitchanceEquals(target, HitChance.High);
                }
            }
        }