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)))); }
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)); }
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); }
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))); }
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)); }
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)); }
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); }
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)); } }
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; } } }
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); } }
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); } } }