public static float GetComboDamage(this Obj_AI_Base unit, bool q, bool w, bool e, bool r, bool calculateUltTick = false, bool damageIndicator = false) { if (!unit.LSIsValidTarget()) { return(0); } var d = 0f; if (q) { d += SpellManager.Q.GetDamage(unit); if (unit.HasBuff("katarinaqmark")) { d += SpellManager.Q.GetDamage(unit, 1); } } if (w) { d += SpellManager.W.GetDamage(unit); } if (e) { d += SpellManager.E.GetDamage(unit); } if (r) { if (!calculateUltTick) { d += SpellManager.R.GetDamage(unit, 1); } else { d += unit.GetCalculatedRDamage(Katarina.UltTicks); } } d += ObjectManager.Player.GetAutoAttackDamage(unit, true); var dl = ObjectManager.Player.GetMastery(MasteryData.Ferocity.DoubleEdgedSword); if (dl != null && dl.IsActive()) { d *= 1.03f; } var assasin = ObjectManager.Player.GetMastery((MasteryData.Cunning) 83); if (assasin != null && assasin.IsActive() && ObjectManager.Player.CountAlliesInRange(800) == 0) { d *= 1.015f; } var igniteSlot = ObjectManager.Player.GetSpellSlot("summonerdot"); if (!igniteSlot.Equals(SpellSlot.Unknown)) { if (igniteSlot.IsReady()) { d += (float)ObjectManager.Player.GetSummonerSpellDamage(unit, Damage.SummonerSpell.Ignite); } } if (damageIndicator) { var tl = ObjectManager.Player.GetMastery(MasteryData.Cunning.ThunderlordsDecree); if (tl != null && tl.IsActive() && !ObjectManager.Player.HasBuff("masterylordsdecreecooldown")) { d += 10 * ObjectManager.Player.Level + .3f * ObjectManager.Player.FlatPhysicalDamageMod + .1f * ObjectManager.Player.TotalMagicalDamage; } } if (ItemManager.LudensEcho != null) { var b = ObjectManager.Player.GetBuff("itemmagicshankcharge"); if (b != null && b.IsActive && b.Count >= (damageIndicator ? 70 : 100)) { d += 100 + ObjectManager.Player.TotalMagicalDamage * .1f; } } return(d); }