private static float TotalDmg(Obj_AI_Base enemy, bool useQ, bool useE, bool useR, bool qRange) { var qaaDmg = new Double[] { 20, 40, 60, 80, 100 }; var damage = 0d; var rTicks = sliderLinks["rTicks"].Value.Value; bool inQRange = ((qRange && Orbwalking.InAutoAttackRange(enemy)) || qRange == false); //Base Q damage if (useQ && Q.IsReady() && inQRange) { damage += player.GetSpellDamage(enemy, SpellSlot.Q); damage += player.CalcDamage(enemy, Damage.DamageType.Magical, qaaDmg[Q.Level - 1] + 0.5 * player.TotalMagicalDamage + player.TotalAttackDamage); } // Q damage on AA if (useQ && !Q.IsReady() && player.HasBuff("viktorpowertransferreturn") && inQRange) { damage += player.CalcDamage(enemy, Damage.DamageType.Magical, qaaDmg[Q.Level - 1] + 0.5 * player.TotalMagicalDamage + player.TotalAttackDamage); } //E damage if (useE && E.IsReady()) { if (player.HasBuff("viktoreaug") || player.HasBuff("viktorqeaug") || player.HasBuff("viktorqweaug")) { damage += player.GetSpellDamage(enemy, SpellSlot.E, 1); } else { damage += player.GetSpellDamage(enemy, SpellSlot.E); } } //R damage + 2 ticks if (useR && R.Level > 0 && R.IsReady() && R.Instance.Name == "ViktorChaosStorm") { damage += Damage.GetSpellDamage(player, enemy, SpellSlot.R, 1) * rTicks; damage += Damage.GetSpellDamage(player, enemy, SpellSlot.R); } // Ludens Echo damage if (Items.HasItem(3285)) { damage += player.CalcDamage(enemy, Damage.DamageType.Magical, 100 + player.FlatMagicDamageMod * 0.1); } //sheen damage if (Items.HasItem(3057)) { damage += player.CalcDamage(enemy, Damage.DamageType.Physical, 0.5 * player.BaseAttackDamage); } //lich bane dmg if (Items.HasItem(3100)) { damage += player.CalcDamage(enemy, Damage.DamageType.Magical, 0.5 * player.FlatMagicDamageMod + 0.75 * player.BaseAttackDamage); } return((float)damage); }
private void Clear() { var mob = Jungle.GetNearest(player.Position); if (mob != null && config.Item("usewLCSteal").GetValue <bool>() && CanW && W.CanCast(mob) && player.CalcDamage(mob, Damage.DamageType.Physical, Wdmg(mob)) > mob.Health) { W.Cast(mob); } if (mob != null && config.Item("usewbsmite").GetValue <bool>() && CanW && W.CanCast(mob) && Jungle.SmiteReady(config.Item("useSmite").GetValue <KeyBind>().Active) && player.CalcDamage(mob, Damage.DamageType.Physical, Wdmg(mob)) + Jungle.smiteDamage(mob) > mob.Health) { W.Cast(mob); } float perc = config.Item("minmana").GetValue <Slider>().Value / 100f; if (player.Mana < player.MaxMana * perc) { return; } var minions = MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly); if (config.Item("useeLC").GetValue <bool>() && E.IsReady() && config.Item("ehitLC").GetValue <Slider>().Value <= minions.Count) { E.Cast(); } }
static double IsRapeble(AIHeroClient victim) { int UC = ultiCount(); int jumpCount = (UC - (int)(victim.Distance(player.Position) / R.Range)); double comboDamage = 0d; if (Q.IsReady()) comboDamage += player.GetSpellDamage(victim, SpellSlot.Q) + player.CalcDamage(victim, Damage.DamageType.Magical, (45 + 35 * Q.Level + 0.5 * player.FlatMagicDamageMod)); if (E.IsReady()) comboDamage += player.GetSpellDamage(victim, SpellSlot.E); if (hasBuff(victim, "AkaliMota")) comboDamage += player.CalcDamage(victim, Damage.DamageType.Magical, (45 + 35 * Q.Level + 0.5 * player.FlatMagicDamageMod)); //comboDamage += player.GetAutoAttackDamage(victim, true); comboDamage += player.CalcDamage(victim, Damage.DamageType.Magical, CalcPassiveDmg()); comboDamage += player.CalcDamage(victim, Damage.DamageType.Magical, CalcItemsDmg(victim)); foreach (var item in player.InventoryItems) if ((int)item.Id == 3128) if (player.Spellbook.CanUseSpell((SpellSlot)item.Slot) == SpellState.Ready) comboDamage *= 1.2; if (hasBuff(victim, "deathfiregraspspell")) comboDamage *= 1.2; if (UC > 0) comboDamage += jumpCount > 0 ? player.GetSpellDamage(victim, SpellSlot.R) * jumpCount : player.GetSpellDamage(victim, SpellSlot.R); if (IgniteSlot != SpellSlot.Unknown && player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready) comboDamage += ObjectManager.Player.GetSummonerSpellDamage(victim, Damage.SummonerSpell.Ignite); return comboDamage; }
internal static double GetQDamage(Obj_AI_Base t) { return(Me.CalcDamage (t, Damage.DamageType.Magical, (float)new double[] { 70, 110, 150, 190, 230 }[Q.Level - 1] +0.65f * Me.TotalMagicalDamage)); }
internal static float QDmg(Obj_AI_Base unit) { return ((float) Player.CalcDamage(unit, Damage.DamageType.Physical, new[] { 20, 20, 35, 50, 65, 80 }[Spellbook["Q"].Level] + (new[] { 1.0, 1.0, 1.1, 1.2, 1.3, 1.4 }[Spellbook["Q"].Level] *Player.FlatPhysicalDamageMod))); }
private static double EDamage(Obj_AI_Base unit) { return(_e.IsReady() ? _player.CalcDamage(unit, DamageType.Physical, new[] { 0.8, 0.9, 1, 1.1, 1.2 }[_e.Level - 1] *_player.TotalAttackDamage * (1 + _player.Mana / _player.MaxMana)) : 0d); }
public static float getJayceEQDmg(Obj_AI_Base target) { return ((float) Player.CalcDamage(target, Damage.DamageType.Physical, (7 + (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Level * 77)) + (1.68 * ObjectManager.Player.FlatPhysicalDamageMod))); }
public static float getTrueRDmgOn(Obj_AI_Base target, float minus = 0) { float baseDmg = 40 + 40 * R.Level + 0.6f * Player.FlatPhysicalDamageMod; float eneMissHpProc = ((((target.MaxHealth - target.Health - minus) / target.MaxHealth) * 100f) > 75f)?75f:(((target.MaxHealth - target.Health) / target.MaxHealth) * 100f); float multiplier = 1 + (eneMissHpProc * 2.66f) / 100; return((float)Player.CalcDamage(target, Damage.DamageType.Physical, baseDmg * multiplier)); }
internal static double GetDamage_Q1(Obj_AI_Base unit) { List <double> baseDmg = new List <double> { 50, 80, 110, 140, 170 }; double bonus = (myHero.TotalAttackDamage - myHero.BaseAttackDamage) * 0.9; double total = baseDmg[Q.Level - 1] + bonus; return(myHero.CalcDamage(unit, Damage.DamageType.Physical, total)); }
// WorstPing public static double GetDamageQ(Obj_AI_Base target) // fixed { return(Q.IsReady() ? Player.CalcDamage( target, DamageType.Magical, new double[] { 120, 160, 200, 240, 280 }[Q.Level - 1] +Player.TotalMagicalDamage * .8f) : 0d); }
public static float GetItemsDamage(AIHeroClient target) { double damage = 0; if (Items.HasItem(odins.Id) && Items.CanUseItem(odins.Id)) { damage += Damage.GetItemDamage(player, target, Damage.DamageItems.OdingVeils); } if (Items.HasItem(hexgun.Id) && Items.CanUseItem(hexgun.Id)) { damage += Damage.GetItemDamage(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.GetItemDamage(player, target, Damage.DamageItems.Dfg); } if (Items.HasItem(Bft.Id) && Items.CanUseItem(Bft.Id)) { damage = damage * 1.2; damage += Damage.GetItemDamage(player, target, Damage.DamageItems.BlackFireTorch); } if (Items.HasItem(tiamat.Id) && Items.CanUseItem(tiamat.Id)) { damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Tiamat); } if (Items.HasItem(hydra.Id) && Items.CanUseItem(hydra.Id)) { damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Hydra); } if (Items.HasItem(bilgewater.Id) && Items.CanUseItem(bilgewater.Id)) { damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Bilgewater); } if (Items.HasItem(botrk.Id) && Items.CanUseItem(botrk.Id)) { damage += Damage.GetItemDamage(player, target, Damage.DamageItems.Botrk); } damage += GetSheenDmg(target); return((float)damage); }
private static 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(player.CalcDamage(hero, DamageType.True, dmg)); } return(player.CalcDamage(hero, DamageType.Magical, dmg)); }
private double GetAADamage(Obj_AI_Base target) { double dmg = Player.GetAutoAttackDamage(target, false); // BotRK if (Items.HasItem(3153, Player)) { var d = 0.08 * target.Health; if (target is Obj_AI_Minion) { d = Math.Min(d, 60); } dmg += d; } if (Player.Masteries.Any(m => m.Page == MasteryPage.Offense && m.Id == 132 && m.Points == 1)) { dmg += Player.CalcDamage(target, Damage.DamageType.Magical, 0.05 * Player.FlatMagicDamageMod); } if (Player.ChampionName.ToLower() == "orianna") { float[] orianna_passive = new float[] { 10, 10, 10, 18, 18, 18, 26, 26, 26, 34, 34, 34, 42, 42, 42, 50, 50, 50 }; if (Player.HasBuff("orianaspellsword")) { int count = Player.GetBuff("orianaspellsword").Count; if (_lastTarget == target) { if (count < 2) { count++; } } else { count = 0; } dmg += Player.CalcDamage(target, Damage.DamageType.Magical, (0.15 * Player.FlatMagicDamageMod + orianna_passive[Player.Level - 1]) * (1 + count * 0.2)); } else { dmg += Player.CalcDamage(target, Damage.DamageType.Magical, 0.15 * Player.FlatMagicDamageMod + orianna_passive[Player.Level - 1]); } } return(dmg); }
private static double GetQDamage(Obj_AI_Base target) { if (!target.IsValidTarget()) { return(0d); } return(Q.Level > 0 && Qcd == 0 ? Me.CalcDamage (target, Damage.DamageType.Magical, new[] { 60, 77.5, 95, 112.5, 130 }[Q.Level - 1] + 0.4 * Me.TotalMagicalDamage) : 0d); }
public static float GetQDamage(Obj_AI_Base target) { float damage = 0f; damage += (float)Player.GetSpellDamage(target, SpellSlot.Q); if (SpellManager.HasQBuff) { var afterQDmgs = new float[] { 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80, 90, 110, 130, 150, 170, 190, 210 }; var afterQDmg = afterQDmgs[Player.Level - 1]; damage = afterQDmg; damage += (float)(Player.TotalMagicalDamage * 0.5) + Player.TotalAttackDamage; damage = (float)Player.CalcDamage(target, Damage.DamageType.Magical, (double)damage); } return(damage); }
public static float fullComboDmgOn(Obj_AI_Base target) { float dmg = 0f; if (gotPassiveDmg()) { dmg += (float) Player.CalcDamage(target, Damage.DamageType.Magical, 10 + 10 * Player.Level + 0.5 * Player.FlatMagicDamageMod); //DamageLib.CalcMagicDmg(10 + 10* Player.Level + 0.5*Player.FlatMagicDamageMod,target); } if (Q.IsReady()) { if (targetIsIsolated(target)) { dmg += Q.GetDamage(target, 1);// DamageLib.getDmg(target, DamageLib.SpellType.Q, DamageLib.StageType.FirstDamage); } else { dmg += Q.GetDamage(target); } } if (W.IsReady()) { dmg += W.GetDamage(target); } if (E.IsReady()) { dmg += E.GetDamage(target); } return(dmg); }
public static double GetQ2Damage(Obj_AI_Base target, double dmg) { var hpafter = target.Health - dmg; var qDmg = ((Program._Q.Level * 30) + 20) + (Player.FlatPhysicalDamageMod * 0.9) + (0.08 * (target.MaxHealth - hpafter)); return(Player.CalcDamage(target, Damage.DamageType.Physical, qDmg)); }
private static float PassiveDmg(Obj_AI_Base hero) { return ((float) (player.CalcDamage(hero, DamageType.Magical, 20 + 5 * player.Level + player.TotalMagicalDamage * 0.3f) + player.GetAutoAttackDamage(hero))); }
private static bool KillableWithAA(Obj_AI_Base target) { var qaaDmg = new Double[] { 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80, 90, 110, 130, 150, 170, 190, 210 }; if (player.HasBuff("viktorpowertransferreturn") && Orbwalker.CanAutoAttack && (player.CalcDamage(target, DamageType.Magical, qaaDmg[player.Level >= 18 ? 18 - 1 : player.Level - 1] + (player.TotalMagicalDamage * .5) + player.TotalAttackDamage) > target.Health)) { Console.WriteLine("killable with aa"); return(true); } else { return(false); } }
private static float getRDamage(AIHeroClient enemy) { return ((float) player.CalcDamage(enemy, DamageType.Magical, (Rwave[R.Level - 1] + 0.1 * player.FlatMagicDamageMod) * waveLength())); }
public float GetScalingDamage(Obj_AI_Base target, DamageType Type, ScalingType Stat, float percentScaling) { float amount = ScalingFunc[Stat.ToString()](percentScaling); if (Type == DamageType.Magical) { return((float)Magic_damage_m * (float)source.CalcDamage(target, Damage.DamageType.Magical, amount)); } else if (Type == DamageType.Physical) { return((float)Physical_damage_m * (float)source.CalcDamage(target, Damage.DamageType.Physical, amount)); } else if (Type == DamageType.True) { return(amount); } return(0f); }
private double getWDamage(AIHeroClient target) { var r = R.Level - 1; var Rpercent = new[] { 0.04f, 0.06f, 0.08f }[r >= 1 ? r: 1]; var bonusDmg = 20 + (player.MaxHealth - (515f + 95f * (player.Level - 1f))) * Rpercent; var dmg = (new[] { 0.20, 0.23, 0.26, 0.29, 0.32 }[W.Level - 1] + 0.02 * player.TotalMagicalDamage / 100) * target.MaxHealth; return(player.CalcDamage(target, DamageType.Magical, dmg + bonusDmg)); }
public static double GetAzirAASandwarriorDamage(Obj_AI_Base unit) { var damagelist = new List <int> { 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 110, 120, 130, 140, 150, 160, 170 }; var dmg = damagelist[MyHero.Level - 1] + (MyHero.BaseAbilityDamage * 0.7); if ( ObjectManager.Get <Obj_AI_Minion>() .Count( obj => obj.Name == "AzirSoldier" && obj.IsAlly && obj.BoundingRadius < 66 && obj.AttackSpeedMod > 1 && obj.LSDistance(unit) < 350) == 2) { return(MyHero.CalcDamage(unit, DamageType.Magical, dmg) + (MyHero.CalcDamage(unit, DamageType.Magical, dmg) * 0.25)); } return(MyHero.CalcDamage(unit, DamageType.Magical, dmg)); }
public static float GetRealDamage(this SpellSlot slot, Obj_AI_Base target) { // Helpers var spellLevel = player.Spellbook.GetSpell(slot).Level; var damageType = Damage.DamageType.Magical; float damage = 0; float extraDamage = 0; // Validate spell level if (spellLevel == 0) { return(0); } spellLevel--; switch (slot) { case SpellSlot.Q: // First cast: Xerath charges Arcanopulse, gradually decreasing his Movement Speed while increasing the spell's range. // Second cast: Xerath fires Arcanopulse, dealing 80/120/160/200/240 (+0.75) magic damage to all enemies in a line. // While charging Arcanopulse, Xerath cannot attack or cast other spells. If Xerath does not fire the spell, half the Mana cost is refunded. damage = new float[] { 80, 120, 160, 200, 240 }[spellLevel] +0.75f * player.TotalMagicalDamage(); break; case SpellSlot.W: // Xerath calls down a blast of arcane energy, dealing 60/90/120/150/180 (+0.6) magic damage to all enemies within the target area, slowing them by 10% for 2.5 seconds. // Enemies in the center of the blast take undefined (+undefined) magic damage and are slowed by 60/65/70/75/80%. This slow decays rapidly damage = new float[] { 60, 90, 120, 150, 180 }[spellLevel] +0.6f * player.TotalMagicalDamage(); break; case SpellSlot.E: // Xerath fires an orb of raw magic. The first enemy hit takes 80/110/140/170/200 (+0.45) magic damage and is stunned for between 0.75 and 2 seconds. // The stun duration lengthens based on how far the orb travels. damage = new float[] { 80, 110, 140, 170, 200 }[spellLevel] +0.45f * player.TotalMagicalDamage(); break; case SpellSlot.R: // Xerath ascends to his true form, becoming rooted in place and gaining 3 Arcane Barrages. This magic artillery deals 190/245/300 (+0.43) magic damage to all enemies hit. damage = new float[] { 200, 230, 260 }[spellLevel] +0.43f * player.TotalMagicalDamage(); break; } // No damage set if (damage == 0 && extraDamage == 0) { return(0); } // Calculate damage on target and return (-20 to make it actually more accurate Kappa) return((float)player.CalcDamage(target, damageType, damage) + extraDamage - 20); }
internal static float GetRDamage(AIHeroClient target) { if (target == null) { return(0f); } // impact physical damage var irdmg = Chargeshot.IsReady() && Proj2(target.ServerPosition, Chargeshot.Width, Chargeshot.Range) <= 1 ? (float)Me.CalcDamage(target, Damage.DamageType.Physical, new double[] { 250, 400, 550 }[Chargeshot.Level - 1] +1.5 * Me.FlatPhysicalDamageMod) : 0; // explosion damage var erdmg = Chargeshot.IsReady() && Proj2(target.ServerPosition, Chargeshot.Width, Chargeshot.Range) > 1 ? (float)Me.CalcDamage(target, Damage.DamageType.Physical, new double[] { 200, 320, 440 }[Chargeshot.Level - 1] +1.2 * Me.FlatPhysicalDamageMod) : 0; return(irdmg + erdmg); }
internal static int GetCustomDamage(this AIHeroClient source, string auraname, AIHeroClient target) { if (auraname == "sheen") { return ((int) source.CalcDamage(target, Damage.DamageType.Physical, 1.0 * source.FlatPhysicalDamageMod + source.BaseAttackDamage)); } if (auraname == "lichbane") { return ((int) source.CalcDamage(target, Damage.DamageType.Magical, (0.75 * source.FlatPhysicalDamageMod + source.BaseAttackDamage) + (0.50 * source.FlatMagicDamageMod))); } return(0); }
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); }
private static float RivenDamageQ(SpellDataInst spell, AIHeroClient src, AIHeroClient dsc) { double dmg = 0; if (spell.IsReady()) { dmg += src.CalcDamage( dsc, DamageType.Physical, (-10 + spell.Level * 20 + (0.35 + spell.Level * 0.05) * (src.FlatPhysicalDamageMod + src.BaseAttackDamage)) * 3); } return((float)dmg); }
private void Clear() { var mob = Jungle.GetNearest(player.Position); if (mob != null && getCheckBoxItem(menuLC, "usewLCSteal") && CanW && W.CanCast(mob) && player.CalcDamage(mob, DamageType.Physical, Wdmg(mob)) > mob.Health) { W.Cast(mob, getCheckBoxItem(config, "packets")); } var perc = getSliderItem(menuLC, "minmana") / 100f; if (player.Mana < player.MaxMana * perc) { return; } var minions = MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly); if (getCheckBoxItem(menuLC, "useeLC") && E.IsReady() && getSliderItem(menuLC, "ehitLC") <= minions.Count) { E.Cast(getCheckBoxItem(config, "packets")); } }
public static float ComboDamage(AIHeroClient hero) // Thanks honda { var result = 0d; if (Spells.Q.IsReady()) { result += QDamage(hero) + ExtraWDamage(hero) + SheenDamage(hero); } if (Spells.W.IsReady() || Player.HasBuff("ireliahitenstylecharged")) { result += (ExtraWDamage(hero) + Player.CalcDamage(hero, DamageType.Physical, Player.TotalAttackDamage)) * 3; // 3 autos } if (Spells.E.IsReady()) { result += Spells.E.GetDamage(hero); } if (Spells.R.IsReady()) { result += Spells.R.GetDamage(hero) * rcount; } return((float)result); }
private static float RivenDamageQ(SpellDataInst spell, AIHeroClient src, AIHeroClient dsc) { double dmg = 0; if (spell.IsReady()) { dmg += src.CalcDamage( dsc, DamageType.Physical, (-10 + spell.Level*20 + (0.35 + spell.Level*0.05)*(src.FlatPhysicalDamageMod + src.BaseAttackDamage))*3); } return (float) dmg; }