private static void AddPassiveAttack( string championName, Func<AIHeroClient, Obj_AI_Base, bool> condition, DamageType damageType, Func<AIHeroClient, Obj_AI_Base, double> func, bool ignoreCalculation = false, bool @override = false) { var passive = new PassiveDamage { Condition = condition, Func = func, DamageType = damageType, Override = @override, IgnoreCalculation = ignoreCalculation }; if (PassiveDamages.ContainsKey(championName)) { PassiveDamages[championName].Add(passive); return; } PassiveDamages.Add(championName, new List<PassiveDamage> { passive }); }
private static void AddPassiveAttack( string championName, Func<Obj_AI_Hero, Obj_AI_Base, bool> condition, DamageType damageType, Func<Obj_AI_Hero, Obj_AI_Base, double> func, bool @override = false, bool ignoreCalculation = false) { var passive = new PassiveDamage { Condition = condition, Func = func, DamageType = damageType, Override = @override, IgnoreCalculation = ignoreCalculation }; List<PassiveDamage> value; if (PassiveDamages.TryGetValue(championName, out value)) { value.Add(passive); return; } PassiveDamages.Add(championName, new List<PassiveDamage> { passive }); }
//attack passives are handled in the orbwalker, it will be changed in the future :^) static Damage() { //Add the passive damages PassiveDamage p; #region PassiveDamages #region Nashors_Tooth // By Rl244 리치베인 광휘의검 삼위일체 얼어붙은 건틀릿도 추가해야함. 왜이렇게 없는게 많을까. p = new PassiveDamage { ChampionName = "Riven", IsActive = (source, target) => (Items.HasItem((int)ItemId.Nashors_Tooth, source)), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, 15 + (float)0.15d * source.FlatMagicDamageMod), }; AttackPassives.Add(p); #endregion #region Wits_End // By Rl244 p = new PassiveDamage { ChampionName = "Riven", IsActive = (source, target) => (Items.HasItem((int)ItemId.Wits_End, source)), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, 42), }; AttackPassives.Add(p); #endregion #region Slayer // By Rl244 p = new PassiveDamage { ChampionName = "Riven", IsActive = (source, target) => (source.HasBuff("enchantment_slayer_stacks")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (from buff in ObjectManager.Player.Buffs where buff.Name == "enchantment_slayer_stacks" select buff.Count).FirstOrDefault() + 25), }; AttackPassives.Add(p); #endregion #region Riven p = new PassiveDamage { ChampionName = "Riven", IsActive = (source, target) => source.GetBuffCount("rivenpassiveaaboost") > 0, GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, new double[] { 0.2, 0.2, 0.25, 0.25, 0.25, 0.3, 0.3, 0.3, 0.35, 0.35, 0.35, 0.4, 0.4, 0.4, 0.45, 0.45, 0.45, 0.5 }[ source.Level - 1] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); #endregion /* #region Quinn // By Rl244 p = new PassiveDamage { ChampionName = "Quinn", IsActive = (source, target) => (!source.HasBuff("quinnpassiveammo")), // GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Physical, (target.HasBuff("quinnw_cosmetic") ? new float[] { 25/35/45/55/65/75/85/95/105/115/125/135/145/155/170/185/200/215 }[source.Level - 1] + 0.5 * source.FlatPhysicalDamageMod : 0)), }; AttackPassives.Add(p); #endregion*/ #region MasterYi // By Rl244 p = new PassiveDamage { ChampionName = "MasterYi", IsActive = (source, target) => (source.HasBuff("doublestrike")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Physical, 0.5 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Ashe // By Rl244 p = new PassiveDamage { ChampionName = "Ashe", IsActive = (source, target) => (target.HasBuff("ashepassiveslow")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Physical, (float)(0.1d + source.FlatCritChanceMod) * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Ashe // By Rl244 p = new PassiveDamage { ChampionName = "Ashe", IsActive = (source, target) => (source.HasBuff("asheqattack")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Physical, (0.15d + 0.05d * (source.Spellbook.GetSpell(SpellSlot.Q).Level - 1)) * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Diana // By Rl244 p = new PassiveDamage { ChampionName = "Diana", IsActive = (source, target) => (source.HasBuff("DianaPassiveMarker") && source.HasBuff("dianaarcready")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, new float[] { 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 105, 120, 135, 155, 175, 200, 225, 250 }[source.Level - 1] + (float)0.8d * source.FlatMagicDamageMod), }; AttackPassives.Add(p); #endregion #region Viktor // By Rl244 p = new PassiveDamage { ChampionName = "Viktor", IsActive = (source, target) => (source.HasBuff("viktorqbuff")), // viktorpowertransferreturn GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, new float[] { 20 / 25 / 30 / 35 / 40 / 45 / 50 / 55 / 60 / 70 / 80 / 90 / 110 / 130 / 150 / 170 / 190 / 210 }[source.Level - 1] + (float)0.5d * source.FlatMagicDamageMod), }; AttackPassives.Add(p); #endregion #region Pantheon // By Rl244 p = new PassiveDamage { ChampionName = "Pantheon", IsActive = (source, target) => (target.Health / target.MaxHealth < 0.15), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Physical, 1d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Aatrox p = new PassiveDamage { ChampionName = "Aatrox", IsActive = (source, target) => (source.HasBuff("AatroxWPower") && source.HasBuff("AatroxWONHPowerBuff")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region Alistar p = new PassiveDamage { ChampionName = "Alistar", IsActive = (source, target) => (source.HasBuff("Trample")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Magical, 6d + source.Level + (0.1d * source.FlatMagicDamageMod))), }; AttackPassives.Add(p); #endregion #region Caitlyn p = new PassiveDamage // By Rl244 { ChampionName = "Caitlyn", IsActive = (source, target) => (source.HasBuff("CaitlynHeadshotReady")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, (target is Obj_AI_Minion ? 1.5d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) : 0.5d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)))), }; AttackPassives.Add(p); #endregion #region Draven p = new PassiveDamage { ChampionName = "Draven", IsActive = (source, target) => (source.HasBuff("dravenspinning")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, 0.45d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); #endregion #region Corki p = new PassiveDamage { ChampionName = "Corki", IsActive = (source, target) => (source.HasBuff("rapidreload")), GetDamage = (source, target) => ((float)0.1d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Gnar p = new PassiveDamage { ChampionName = "Gnar", IsActive = (source, target) => (from buff in target.Buffs where buff.DisplayName == "GnarWProc" select buff.Count) .FirstOrDefault() == 2, GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region JarvanIV // By Rl244 p = new PassiveDamage { ChampionName = "JarvanIV", IsActive = (source, target) => (!target.HasBuff("jarvanivmartialcadencecheck")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, 0.1d * (source.Health))), }; AttackPassives.Add(p); #endregion #region Jinx p = new PassiveDamage { ChampionName = "Jinx", IsActive = (source, target) => (source.HasBuff("JinxQ")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, 0.1d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); #endregion #region Katarina p = new PassiveDamage { ChampionName = "Katarina", IsActive = (source, target) => (target.HasBuff("KataQMark1")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.Q, 1)), }; AttackPassives.Add(p); #endregion #region KogMaw p = new PassiveDamage { ChampionName = "KogMaw", IsActive = (source, target) => (source.HasBuff("KogMawBioArcaneBarrage")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region MissFortune p = new PassiveDamage { ChampionName = "MissFortune", IsActive = (source, target) => (source.HasBuff("MissFortunePassive")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (float)0.06 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Nasus p = new PassiveDamage { ChampionName = "Nasus", IsActive = (source, target) => (source.HasBuff("NasusQ")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.Q)), }; AttackPassives.Add(p); #endregion #region Orianna p = new PassiveDamage { ChampionName = "Orianna", IsActive = (source, target) => (source.HasBuff("orianaspellsword")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (float)0.15 * source.FlatMagicDamageMod + new float[] { 10, 10, 10, 18, 18, 18, 26, 26, 26, 34, 34, 34, 42, 42, 42, 50, 50, 50 }[ source.Level - 1]), }; AttackPassives.Add(p); #endregion #region Teemo p = new PassiveDamage { ChampionName = "Teemo", IsActive = (source, target) => (source.HasBuff("ToxicShot")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Magical, source.Spellbook.GetSpell(SpellSlot.E).Level * 10 + source.FlatMagicDamageMod * 0.3)), }; AttackPassives.Add(p); #endregion #region TwistedFate p = new PassiveDamage { ChampionName = "TwistedFate", IsActive = (source, target) => (source.HasBuff("bluecardpreattack")), GetDamage = (source, target) => (float)source.GetSpellDamage(target, SpellSlot.W) - (float) source.CalcDamage( target, DamageType.Physical, (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); p = new PassiveDamage { ChampionName = "TwistedFate", IsActive = (source, target) => (source.HasBuff("cardmasterstackparticle")), GetDamage = (source, target) => (float)source.GetSpellDamage(target, SpellSlot.E), }; AttackPassives.Add(p); #endregion #region Varus p = new PassiveDamage { ChampionName = "Varus", IsActive = (source, target) => (source.HasBuff("VarusW")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region Vayne p = new PassiveDamage { ChampionName = "Vayne", IsActive = (source, target) => (source.HasBuff("vaynetumblebonus")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.Q)), }; AttackPassives.Add(p); p = new PassiveDamage { ChampionName = "Vayne", IsActive = (source, target) => (from buff in target.Buffs where buff.Name == "vaynesilvereddebuff" select buff.Count) .FirstOrDefault() == 2, GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region Ziggs p = new PassiveDamage { ChampionName = "Ziggs", IsActive = (source, target) => (source.HasBuff("ziggsshortfuse")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (float)0.25d * source.FlatMagicDamageMod + new float[] { 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 80, 88, 100, 112, 124, 136, 148, 160 }[ source.Level - 1]), }; AttackPassives.Add(p); #endregion #endregion //Synced on -[dte]- 18:53 with patch 4.16 data. #region Spells Spells.Add( "Aatrox", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 110, 145, 180, 215 }[level] + 0.6 * source.FlatMagicDamageMod + 0.6 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Ahri", new List<DamageSpell> { //Normal Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.35 * source.FlatMagicDamageMod }, //Q Return new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.35 * source.FlatMagicDamageMod }, //W => Magic Damage to the Same Target new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 64, 104, 144, 184, 224 }[level] + 0.64 * source.FlatMagicDamageMod }, //W => 1 FF new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.4 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.35 * source.FlatMagicDamageMod }, //R, per dash new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150 }[level] + 0.3 * source.FlatMagicDamageMod }, }); Spells.Add( "Akali", new List<DamageSpell> { //Q Initial new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 35, 55, 75, 95, 115 }[level] + 0.4 * source.FlatMagicDamageMod }, //Q Detonation new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 45, 70, 95, 120, 145 }[level] + 0.5 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 55, 80, 105, 130 }[level] + 0.4 * source.FlatMagicDamageMod + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 175, 250 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Alistar", new List<DamageSpell> { //Q Initial new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.5 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 110, 165, 220, 275 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Amumu", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.7 * source.FlatMagicDamageMod }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 8, 12, 16, 20, 24 }[level] + (new[] { 0.01, 0.015, 0.02, 0.025, 0.03 }[level] + 0.01 * source.FlatMagicDamageMod / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 100, 125, 150, 175 }[level] + 0.5 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.8 * source.FlatMagicDamageMod }, }); Spells.Add( "Anivia", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.5 * source.FlatMagicDamageMod }, //Q - max new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] * 2 + 1 * source.FlatMagicDamageMod }, //E - not chilled targets - TODO new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 85, 115, 145, 175 }[level] + 0.5 * source.FlatMagicDamageMod }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160 }[level] + 0.25 * source.FlatMagicDamageMod }, }); Spells.Add( "Annie", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 115, 150, 185, 220 }[level] + 0.8 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.85 * source.FlatMagicDamageMod }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 210, 335, 460 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Ashe", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 425, 600 }[level] + 1 * source.FlatMagicDamageMod }, //R - Min new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 250, 425, 600 }[level] + 1 * source.FlatMagicDamageMod) / 2 }, }); Spells.Add( "Azir", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 85, 105, 125, 145 }[level] + 0.5 * source.FlatMagicDamageMod }, //W - Soldier auto attacks new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => 45 + new double[] { 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 110, 120, 130, 140, 150, 160, 170 }[ ((Obj_AI_Hero) source).Level - 1] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.4 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 225, 300 }[level] + 0.6 * source.FlatMagicDamageMod }, }); Spells.Add( "Blitzcrank", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 1 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 375, 500 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Bard", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.65 * source.FlatMagicDamageMod }, }); Spells.Add( "Brand", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.65 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 120, 165, 210, 255 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.55 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Braum", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.025 * source.MaxHealth }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.6 * source.FlatMagicDamageMod }, }); Spells.Add( "Caitlyn", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 60, 100, 140, 180 }[level] + 1.3 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.8 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 250, 475, 700 }[level] + 2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Cassiopeia", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 0.45 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 15, 20, 25, 30 }[level] + 0.1 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.55 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "ChoGath", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 305 }[level] + 1 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 125, 175, 225, 275 }[level] + 0.7 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 0.3 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 300, 475, 650 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Corki", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.5 * source.FlatMagicDamageMod + 0.5 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.4 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 32, 44, 56, 68 }[level] + 0.4 * source.FlatPhysicalDamageMod }, //R - Normal missile new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 180, 260 }[level] + 0.3 * source.FlatMagicDamageMod + new double[] { 20, 30, 40 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - Big missile new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 270, 390 }[level] + 0.45 * source.FlatMagicDamageMod + new double[] { 30, 40, 60 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Darius", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.7 * source.FlatPhysicalDamageMod }, //Q - Blade new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new[] { 105, 157.5, 210, 262.5, 315 }[level] + 1.05 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 40, 60, 80, 100 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 160, 250, 340 }[level] + 0.75 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Diana", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.7 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 22, 34, 46, 58, 70 }[level] + 0.2 * source.FlatMagicDamageMod }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 160, 220 }[level] + 0.6 * source.FlatMagicDamageMod }, }); Spells.Add( "DrMundo", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => { if (target is Obj_AI_Minion) { return Math.Min( new double[] { 300, 400, 500, 600, 700 }[level], Math.Max( new double[] { 80, 130, 180, 230, 280 }[level], new double[] { 15, 18, 21, 23, 25 }[level] / 100 * target.Health)); } else return Math.Max( new double[] { 80, 130, 180, 230, 280 }[level], new double[] { 15, 18, 21, 23, 25 }[level] / 100 * target.Health); } }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 35, 50, 65, 80, 95 }[level] + 0.2 * source.FlatMagicDamageMod } }); Spells.Add( "Draven", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 45, 55, 65, 75, 85 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.5 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 175, 275, 375 }[level] + 1.1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Ekko", new List<DamageSpell> { //Q - First new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 75, 90, 105, 120 }[level] + 0.2d * source.FlatMagicDamageMod }, //Q - Second new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.2 * source.FlatMagicDamageMod }, //W - new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (target.HealthPercent < 30 ? (target is Obj_AI_Minion ? Math.Min(target.HealthPercent * (5 + 1 / 45 * source.FlatMagicDamageMod),150) : target.HealthPercent * (5 + 1 / 45 * source.FlatMagicDamageMod)) : 0) //(target.MaxHealth - target.Health) / 100 }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.2 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 350, 500 }[level] + 1.3 * source.FlatMagicDamageMod }, }); Spells.Add( "Elise", new List<DamageSpell> { //Q - Human new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + (0.08 + 0.03 / 100 * source.FlatMagicDamageMod) * target.Health }, //Q - Spider new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + (0.08 + 0.03 / 100 * source.FlatMagicDamageMod) * (target.MaxHealth - target.Health) }, //W - Human new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 125, 175, 225, 275 }[level] + 0.8 * source.FlatMagicDamageMod }, }); Spells.Add( "Evelynn", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 55, 70, 85, 100 }[level] + new double[] { 35, 40, 45, 50, 55 }[level] / 100 * source.FlatMagicDamageMod + new double[] { 50, 55, 60, 65, 70 }[level] / 100 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 1 * source.FlatMagicDamageMod + 1 * source.FlatPhysicalDamageMod }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new[] { 0.15, 0.20, 0.25 }[level] + 0.01 / 100 * source.FlatMagicDamageMod) * target.Health }, }); Spells.Add( "Ezreal", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 35, 55, 75, 95, 115 }[level] + 0.4 * source.FlatMagicDamageMod + 1.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.8 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 125, 175, 225, 275 }[level] + 0.75 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 350, 500, 650 }[level] + 0.9 * source.FlatMagicDamageMod + 1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Fiddlesticks", new List<DamageSpell> { //W - Per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.45 * source.FlatMagicDamageMod }, //E - Per bounce new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 85, 105, 125, 145 }[level] + 0.45 * source.FlatMagicDamageMod }, //R - Per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 125, 225, 325 }[level] + 0.45 * source.FlatMagicDamageMod }, }); Spells.Add( "Fiora", new List<DamageSpell> { //Q - per dash new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 1 * source.FlatMagicDamageMod }, //R - Max damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 325, 663, 1001 }[level] + 2.34 * source.FlatPhysicalDamageMod + (source.GetAutoAttackDamage2(target, true) - source.GetAutoAttackDamage2(target, false))*5 // By RL244 온힛 5번 발동. }, //R - First Tick new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 125, 255, 385 }[level] + 0.9 * source.FlatPhysicalDamageMod + (source.GetAutoAttackDamage2(target, true) - source.GetAutoAttackDamage2(target, false)) // By RL244 }, //R - Continueous Tick new DamageSpell { Slot = SpellSlot.R, Stage = 2, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 102, 154 }[level] + 0.36 * source.FlatPhysicalDamageMod + (source.GetAutoAttackDamage2(target, true) - source.GetAutoAttackDamage2(target, false)) // By RL244 }, //R - 2 Tick (First And Second) new DamageSpell { Slot = SpellSlot.R, Stage = 3, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 175, 357, 539 }[level] + 1.26 * source.FlatPhysicalDamageMod + (source.GetAutoAttackDamage2(target, true) - source.GetAutoAttackDamage2(target, false)) * 2 // By RL244 }, }); Spells.Add( "Fizz", new List<DamageSpell> { //Q - AA excluded. new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 25, 40, 55, 70 }[level] + 0.3 * source.FlatMagicDamageMod }, //W - Per attack new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 20, 30, 40, 50 }[level] + 0.25 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 120, 170, 220, 270 }[level] + 0.75 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Galio", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.5 * source.FlatMagicDamageMod }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 308, 462, 616 }[level] + 0.84 * source.FlatMagicDamageMod }, }); Spells.Add( "GangPlank", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 45, 70, 95, 120 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - per cannonball new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 120, 165 }[level] + 0.2 * source.FlatMagicDamageMod }, }); Spells.Add( "Garen", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 55, 80, 105, 130 }[level] + 1.4 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 45, 70, 95, 120 }[level] + new double[] { 70, 80, 90, 100, 110 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - Max damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 175, 350, 525 }[level] + new[] { 28.57, 33.33, 40 }[level] / 100 * (target.MaxHealth - target.Health) }, }); Spells.Add( "Gnar", new List<DamageSpell> { //Q - mini new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 5, 35, 65, 95, 125 }[level] + 1.15 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - big new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 5, 45, 85, 125, 165 }[level] + 1.2 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - mini new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 20, 30, 40, 50 }[level] + 1 * source.FlatMagicDamageMod + new double[] { 6, 8, 10, 12, 14 }[level] / 100 * target.MaxHealth }, //W - big new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 45, 65, 85, 105 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E - mini new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 60, 100, 140, 180 }[level] + source.MaxHealth * 0.06 }, //E - big new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 60, 100, 140, 180 }[level] + source.MaxHealth * 0.06 }, //R - Max damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 0.5 * source.FlatMagicDamageMod + 0.2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Gragas", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.6 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 50, 80, 110, 140 }[level] + new double[] { 8, 9, 10, 11, 12 }[level] / 100 * target.MaxHealth + 0.3 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Graves", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.75 * source.FlatPhysicalDamageMod }, //Q new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 120, 180, 240, 300, 360 }[level] + 1.50 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.6 * source.FlatMagicDamageMod }, //R - Max damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 1.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Hecarim", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + 0.2 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.5 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Heimerdinger", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.45 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 135, 180, 225 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.45 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 200, 250 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.6 * source.FlatMagicDamageMod }, }); Spells.Add( "Irelia", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 50, 80, 110, 140 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 15, 30, 45, 60, 75 }[level] }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.5 * source.FlatMagicDamageMod }, //R - per blade new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 120, 160 }[level] + 0.5 * source.FlatMagicDamageMod + 0.6 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Janna", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.35 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 115, 170, 225, 280 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "JarvanIV", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 1.2 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.8 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 1.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Jax", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 1 * source.FlatPhysicalDamageMod + 0.6 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.5 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 160, 220 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Jayce", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 120, 170, 220, 270, 320 }[level] + 1.2 * source.FlatPhysicalDamageMod }, //Q - Melee new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 70, 110, 150, 190, 230 }[level] + 1 * source.FlatPhysicalDamageMod }, //Q - Ranged Max Damage new DamageSpell { Slot = SpellSlot.Q, Stage = 2, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 70, 120, 170, 220, 270, 320 }[level] + 1.2 * source.FlatPhysicalDamageMod) * 1.4f }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 25, 40, 55, 70, 85, 100 }[level] + 0.25 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 8, 10.4, 12.8, 15.2, 17.6, 20 }[level] / 100 * target.MaxHealth + 1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Jinx", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => 0.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 60, 110, 160, 210 }[level] + 1.4 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 1 * source.FlatMagicDamageMod }, //R - Min // By Rl244 new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 35, 45 }[level] + new double[] { 25, 30, 35 }[level] / 100 * (target.MaxHealth - target.Health) + 0.1 * source.FlatPhysicalDamageMod }, //R - Max new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 250, 350, 450 }[level] + new double[] { 25, 30, 35 }[level] / 100 * (target.MaxHealth - target.Health) + 1 * source.FlatPhysicalDamageMod }, //R - 거리비례 Coded by RL244 new DamageSpell { Slot = SpellSlot.R, Stage = 2, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 35, 45 }[level] + 0.1 * source.FlatPhysicalDamageMod // 깡뎀+계수 }, //R - 거리비례 Coded by RL244 new DamageSpell { Slot = SpellSlot.R, Stage = 3, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 30, 35 }[level] / 100 * (target.MaxHealth - target.Health) //잃은 체력 }, //R - 거리비례 Coded by RL244 new DamageSpell { Slot = SpellSlot.R, Stage = 4, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 25, 30, 35 }[level] / 100 * (target.MaxHealth - target.Health) + //잃은 체력 ((new double[] { 25, 35, 45 }[level] + 0.1 * source.FlatPhysicalDamageMod) // 깡뎀+계수 * Math.Min((1 + source.Distance(target.ServerPosition)/ 15 * 0.09d),10))), //깡뎀+계수 거리비례 뎀증 }, }); Spells.Add( "Karma", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.6 * source.FlatMagicDamageMod }, //Q - mantra new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + new double[] { 25, 75, 125, 175 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.9 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.9 * source.FlatMagicDamageMod }, //W - Per Tick new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 60, 110, 160, 210, 260 }[level] + 0.9 * source.FlatMagicDamageMod) / 3 }, //W - mantra 만트라 W 역시 더이상 데미지 없다. /*new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + new double[] { 75, 150, 225, 300 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 1.2 * source.FlatMagicDamageMod },*/ //E - mantra // By Rl244 만트라 E는 더이상 데미지가 없다. /*new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 140, 220, 300 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.6 * source.FlatMagicDamageMod },*/ }); Spells.Add( "Karthus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 40, 60, 80, 100, 120 }[level] + 0.3 * source.FlatMagicDamageMod) * 2 }, //Q - Multi-target new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 0.3 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 50, 70, 90, 110 }[level] + 0.2 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 0.6 * source.FlatMagicDamageMod }, }); Spells.Add( "Kassadin", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 95, 120, 145, 170 }[level] + 0.7 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.6 * source.FlatMagicDamageMod }, //W - pasive new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => 20 + 0.1 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 105, 130, 155, 180 }[level] + 0.7 * source.FlatMagicDamageMod }, //R - Base new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 100, 120 }[level] + 0.02 * source.MaxMana }, //R - Per Stack new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 50, 60 }[level] + 0.01 * source.MaxMana }, }); Spells.Add( "Katarina", new List<DamageSpell> { //Q - dagger new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.45 * source.FlatMagicDamageMod }, //Q - mark new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 30, 45, 60, 75 }[level] + 0.15 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.6 * source.FlatPhysicalDamageMod + 0.25 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.4 * source.FlatMagicDamageMod }, //R - per dagger new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 350, 550, 750 }[level] + 3.75 * source.FlatPhysicalDamageMod + 2.5 * source.FlatMagicDamageMod) / 10 }, //R - max new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 400, 575, 750 }[level] + 3.75 * source.FlatPhysicalDamageMod + 2.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Kayle", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 1 * source.FlatPhysicalDamageMod + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + 0.25 * source.FlatMagicDamageMod }, }); Spells.Add( "Kennen", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 0.75 * source.FlatMagicDamageMod }, //W - Passive new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 50, 60, 70, 80 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - Active new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 95, 125, 155, 185 }[level] + 0.55 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 85, 125, 165, 205, 245 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 145, 210 }[level] + 0.4 * source.FlatMagicDamageMod }, }); Spells.Add( "KhaZix", new List<DamageSpell> { //Q - Normal target - UnEvolved new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 95, 120, 145, 170 }[level] + 1.2 * source.FlatPhysicalDamageMod }, //Q - Isolated target - UnEvolved new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new[] { 91, 123.5, 156, 188.5, 221 }[level] + 1.56 * source.FlatPhysicalDamageMod }, //Q - Normal target - Evolved new DamageSpell { Slot = SpellSlot.Q, Stage = 2, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 95, 120, 145, 170 }[level] + 2.24 * source.FlatPhysicalDamageMod + 10 * ((Obj_AI_Hero) source).Level }, //Q - Isolated target - Evolved new DamageSpell { Slot = SpellSlot.Q, Stage = 3, DamageType = DamageType.Physical, Damage = (source, target, level) => new[] { 91, 123.5, 156, 188.5, 221 }[level] + 2.6 * source.FlatPhysicalDamageMod + 10 * ((Obj_AI_Hero) source).Level }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 65, 100, 135, 170, 205 }[level] + 0.2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "KogMaw", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.5 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 2, 3, 4, 5, 6 }[level] / 100 + 0.01 / 100 * source.FlatMagicDamageMod) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.7 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160 }[level] * 2 + 0.5 * source.FlatPhysicalDamageMod + 0.3 * source.FlatMagicDamageMod }, }); Spells.Add( "Kalista", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 70, 130, 190, 250 }[level] + source.BaseAttackDamage + source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 12, 14, 16, 18, 20 }[level] / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => { var count = target.GetBuffCount("kalistaexpungemarker"); if (count > 0) { return (new double[] { 20, 30, 40, 50, 60 }[level] + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)) + // Base damage of E ((count - 1) * (new double[] { 10, 14, 19, 25, 32 }[level] + // Base damage per spear new double[] { 0.2, 0.225, 0.25, 0.275, 0.3 }[level] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))); // Damage multiplier per spear } return 0; } }, }); Spells.Add( "LeBlanc", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.4 * source.FlatMagicDamageMod }, //Q . explosion new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.4 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 85, 125, 165, 205, 245 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "LeeSin", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.9 * source.FlatPhysicalDamageMod }, //Q - 2nd new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.9 * source.FlatPhysicalDamageMod + 0.08 * (target.MaxHealth - target.Health) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 1 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 400, 600 }[level] + 2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Leona", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.3 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.4 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.4 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.8 * source.FlatMagicDamageMod }, }); Spells.Add( "Lissandra", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 100, 130, 160, 190 }[level] + 0.65 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.4 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Lucian", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + new double[] { 60, 75, 90, 105, 120 }[level] / 100 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.9 * source.FlatMagicDamageMod }, //R - per shot new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 50, 60 }[level] + 0.1 * source.FlatMagicDamageMod + 0.25 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Lulu", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.5 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 0.4 * source.FlatMagicDamageMod }, }); Spells.Add( "Lux", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.7 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 300, 400, 500 }[level] + 0.75 * source.FlatMagicDamageMod }, }); Spells.Add( "Malphite", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 120, 170, 220, 270 }[level] + 0.6 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 38, 46, 54, 62 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.3 * source.Armor + 0.2 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Malzahar", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 0.8 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 4, 5, 6, 7, 8 }[level] / 100 + 0.01 / 100 * source.FlatMagicDamageMod) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 140, 200, 260, 320 }[level] + 0.8 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 1.3 * source.FlatMagicDamageMod }, }); Spells.Add( "Maokai", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.4 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 9, 10, 11, 12, 13 }[level] / 100 + 0.03 / 100 * source.FlatMagicDamageMod) * target.MaxHealth }, //E - impact new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 0.4 * source.FlatMagicDamageMod }, //E - explosion new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 150, 200 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "MasterYi", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 60, 95, 130, 165 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.True, Damage = (source, target, level) => new[] { 10, 12.5, 15, 17.5, 20 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + new double[] { 10, 15, 20, 25, 30 }[level] }, }); Spells.Add( "MissFortune", new List<DamageSpell> { //Q - First target new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 0.35 * source.FlatMagicDamageMod + 0.85 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - Second target new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.5 * source.FlatMagicDamageMod + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => 0.06 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 145, 200, 255, 310 }[level] + 0.8 * source.FlatMagicDamageMod }, //R - per wave new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 75, 125 }[level] + 0.2 * source.FlatMagicDamageMod }, }); Spells.Add( "MonkeyKing", new List<DamageSpell> //AKA wukong { //Q - bonus new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 0.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 110, 200 }[level] + 1.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Mordekaiser", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 1 * source.FlatPhysicalDamageMod + 0.4 * source.FlatMagicDamageMod }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 24, 38, 52, 66, 80 }[level] + 0.2 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.FlatMagicDamageMod }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 24, 29, 34 }[level] / 100 + 0.04 / 100 * source.FlatMagicDamageMod) * target.MaxHealth }, }); Spells.Add( "Morgana", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 0.9 * source.FlatMagicDamageMod }, //W - per tick new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 8, 16, 24, 32, 40 }[level] + 0.11 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 225, 300 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Nami", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 130, 185, 240, 295 }[level] + 0.5 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.5 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 25, 40, 55, 70, 85 }[level] + 0.2 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.6 * source.FlatMagicDamageMod }, }); Spells.Add( "Nasus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => (from buff in ObjectManager.Player.Buffs where buff.Name == "nasusqstacks" select buff.Count).FirstOrDefault() + new double[] { 30, 50, 70, 90, 110 }[level] }, //E - Initial new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 95, 135, 175, 215 }[level] + 0.6 * source.FlatMagicDamageMod }, //E - per second new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 11, 19, 27, 35, 43 }[level] + 0.12 * source.FlatMagicDamageMod }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 3, 4, 5 }[level] / 100 + 0.01 / 100 * source.FlatMagicDamageMod) * target.MaxHealth }, }); Spells.Add( "Nautilus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.75 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 40, 50, 60, 70 }[level] + 0.4 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.3 * source.FlatMagicDamageMod }, //R - main target new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 0.8 * source.FlatMagicDamageMod }, //R - missile new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 125, 175, 225 }[level] + 0.4 * source.FlatMagicDamageMod }, }); Spells.Add( "Nidalee", new List<DamageSpell> { //Q - human - min * 3 = max new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.4 * source.FlatMagicDamageMod }, //Q - cat new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 4, 20, 50, 90 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.36 * source.FlatMagicDamageMod + 0.75 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)) * ((target.MaxHealth - target.Health) / target.MaxHealth * 1.5 + 1) }, //W - human new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 80, 120, 160, 200 }[level] + 0.2 * source.FlatMagicDamageMod }, //W - cat new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 100, 150, 200 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.3 * source.FlatMagicDamageMod }, //E - cat new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 130, 190, 250 }[source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.45 * source.FlatMagicDamageMod }, }); Spells.Add( "Nocturne", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 100, 150, 200, 250 }[level] + 0.75 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 100, 150, 200, 250 }[level] + 1 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 1.2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Nunu", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 400, 550, 700, 850, 1000 }[level] }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 85, 130, 175, 225, 275 }[level] + 1 * source.FlatMagicDamageMod }, //R - Max Damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 625, 875, 1125 }[level] + 2.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Olaf", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.4 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Orianna", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.5 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.7 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.3 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 225, 300 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Pantheon", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 65, 105, 145, 185, 225 }[level] + 1.4 * source.FlatPhysicalDamageMod) * ((target.Health / target.MaxHealth < 0.15) ? 2 : 1) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 1 * source.FlatMagicDamageMod }, //E - per strike new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 13, 23, 33, 43, 53 }[level] + 0.6 * source.FlatPhysicalDamageMod) * ((target is Obj_AI_Hero) ? 2 : 1) }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 400, 700, 1000 }[level] + 1 * source.FlatMagicDamageMod }, //R - min new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 400, 700, 1000 }[level] + 1 * source.FlatMagicDamageMod) * 0.5 }, }); Spells.Add( "Poppy", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => Math.Min( new double[] { 75, 150, 225, 300, 375 }[level], new double[] { 20, 40, 60, 80, 100 }[level] + 0.08 * target.MaxHealth + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.6 * source.FlatMagicDamageMod) }, //E - without colliding new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.4 * source.FlatMagicDamageMod }, //E - with colliding new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + new double[] { 75, 125, 175, 225, 275 }[level] + 0.8 * source.FlatMagicDamageMod }, }); Spells.Add( "Quinn", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.65 * source.FlatPhysicalDamageMod + 0.5 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.2 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 100, 150, 200 }[level] * (2 - target.HealthPercent / 100) + 0.5 * source.FlatPhysicalDamageMod) //원래 값이 잘못된것 같아 수정함. 막타가 안돼 -_-; }, }); Spells.Add( "Rammus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 150, 200, 250, 300 }[level] + 1 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 25, 35, 45, 55 }[level] + 0.1 * source.Armor }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 130, 195 }[level] + 0.3 * source.FlatMagicDamageMod }, }); Spells.Add( "Renekton", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //Q - empowered new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 60, 90, 120, 150, 180 }[level] + 0.8 * source.FlatPhysicalDamageMod) * 1.5 }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 30, 50, 70, 90 }[level] + 1.5 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - empowered new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 10, 30, 50, 70, 90 }[level] + 1.5 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)) * 1.5 }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 0.9 * source.FlatPhysicalDamageMod }, //E - empowered new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 30, 60, 90, 120, 150 }[level] + 0.9 * source.FlatPhysicalDamageMod) * 1.5 }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 60, 120 }[level] + 0.1 * source.FlatMagicDamageMod }, }); Spells.Add( "Rengar", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + new double[] { 0, 5, 10, 15, 20 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - Extra new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + (new double[] { 100, 105, 110, 115, 120 }[level] / 100 - 1) * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.8 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 100, 150, 200, 250 }[level] + 0.7 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Riven", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 30, 50, 70, 90 }[level] + ((source.BaseAttackDamage + source.FlatPhysicalDamageMod) / 100) * new double[] { 40, 45, 50, 55, 60 }[level] }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 1 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 80, 120, 160 }[level] + 0.6 * source.FlatPhysicalDamageMod) * ((target.MaxHealth - target.Health) / target.MaxHealth * 2.67 + 1) }, }); Spells.Add( "Rumble", new List<DamageSpell> { //Q - total damage new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 135, 195, 255, 315 }[level] + 1 * source.FlatMagicDamageMod }, //Q - Danger Zone total damage new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 112.5, 202.5, 292.5, 382.5, 472.5 }[level] + 1.5 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 45, 70, 95, 120, 145 }[level] + 0.4 * source.FlatMagicDamageMod }, //E - Danger Zone new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 67.5, 105, 142.5, 180, 217.5 }[level] + 0.6 * source.FlatMagicDamageMod }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 130, 185, 240 }[level] + 0.3 * source.FlatMagicDamageMod }, //R - Total new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 650, 925, 1200 }[level] + 1.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Ryze", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 95, 125, 155, 185 }[level] + 0.55 * source.FlatMagicDamageMod + new double[]{2, 2.5, 3, 3.5, 4}[level] / 100 * source.MaxMana }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 95, 125, 155, 185 }[level] + 0.4 * source.FlatMagicDamageMod + 0.025 * source.MaxMana }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 66, 82, 98, 114 }[level] + 0.3 * source.FlatMagicDamageMod + 0.02 * source.MaxMana }, }); Spells.Add( "Sejuani", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] }, //W - AA damage new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new[] { 4, 4.5, 5, 5.5, 6 }[level] + (source.FlatMagicDamageMod / 100)) / 100 * target.MaxHealth }, //W - Aoe per second new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 10, 17.5, 25, 32.5, 40 }[level] + (new double[] { 4, 6, 8, 10, 12 }[level] / 100) * source.MaxHealth + 0.15 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.5 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.8 * source.FlatMagicDamageMod }, }); Spells.Add( "Shaco", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 140, 160, 180, 200, 220 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - per attack new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 35, 50, 65, 80, 95 }[level] + 0.2 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 90, 130, 170, 210 }[level] + 1 * source.FlatPhysicalDamageMod + 1 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 300, 450, 600 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Shen", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 85, 120, 155, 190 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Shyvana", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 85, 90, 95, 100 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 0.2 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 175, 300, 425 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Singed", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 22, 34, 46, 58, 70 }[level] + 0.3 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 65, 80, 95, 110 }[level] + 0.75 * source.FlatMagicDamageMod + new double[] { 4, 5.5, 7, 8.5, 10 }[level] / 100 * target.MaxHealth }, }); Spells.Add( "Sion", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 40, 60, 80, 100 }[level] + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 120, 180, 240, 300 }[level] + 1.8 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.4 * source.FlatMagicDamageMod + new double[] { 10, 11, 12, 13, 14 }[level] / 100 * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.4 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 70, 105, 140, 175, 210 }[level] + 0.4 * source.FlatMagicDamageMod) * 1.5 }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 150, 300, 450 }[level] + 0.4 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 150, 300, 450 }[level] + 0.4 * source.FlatPhysicalDamageMod) * 2 }, }); Spells.Add( "Sivir", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 45, 65, 85, 105 }[level] + new double[] { 70, 80, 90, 100, 110 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.FlatMagicDamageMod }, //W - bounce new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 55, 60, 65, 70 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Skarner", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + 0.4 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.4 * source.FlatMagicDamageMod }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 100, 150, 200 }[level] + 0.5 * source.FlatMagicDamageMod) * 2 }, }); Spells.Add( "Sona", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 80, 120, 160, 200 }[level] + 0.4 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Soraka", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.35 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.4 * source.FlatMagicDamageMod }, }); Spells.Add( "Swain", new List<DamageSpell> { //Q - per second new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 25, 40, 55, 70, 85 }[level] + 0.3 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.7 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 0.8 * source.FlatMagicDamageMod }, //R - per draven new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 70, 90 }[level] + 0.2 * source.FlatMagicDamageMod }, }); Spells.Add( "Syndra", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 50, 95, 140, 185, 230 }[level] + 0.6 * source.FlatMagicDamageMod) * ((level == 5 && target is Obj_AI_Hero) ? 1.15 : 1) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.7 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.4 * source.FlatMagicDamageMod }, //R - min damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 270, 405, 540 }[level] + 0.6 * source.FlatMagicDamageMod }, //R - per sphere new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 135, 180 }[level] + 0.2 * source.FlatMagicDamageMod }, }); Spells.Add( "Talon", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 0.3 * source.FlatPhysicalDamageMod + ((target is Obj_AI_Hero) ? (new double[] { 10, 20, 30, 40, 50 }[level] + 1 * source.FlatPhysicalDamageMod) : 0) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 55, 80, 105, 130 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 120, 170, 220 }[level] + 0.75 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Taric", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 80, 120, 160, 200 }[level] + 0.2 * source.Armor }, //E - min damage new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.2 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Teemo", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.8 * source.FlatMagicDamageMod }, //E - total new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 34, 68, 102, 136, 170 }[level] + 0.7 * source.FlatMagicDamageMod }, //E - onhit new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 20, 30, 40, 50 }[level] + 0.3 * source.FlatMagicDamageMod }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Thresh", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.5 * source.FlatMagicDamageMod }, //E - Active new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 95, 125, 155, 185 }[level] + 0.4 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Tristana", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 105, 130, 155, 180 }[level] + 0.5 * source.FlatMagicDamageMod }, //E - base damage new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 70, 80, 90, 100 }[level] + new double[] { 0.5, 0.65, 0.8, 0.95, 1.10 }[level] * source.FlatPhysicalDamageMod + 0.5 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 300, 400, 500 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Trundle", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 40, 60, 80, 100 }[level] + new[] { 0, 0.5, 0.1, 0.15, 0.2 }[level] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - Total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 20, 24, 28 }[level] / 100 + 0.02 * source.FlatMagicDamageMod / 100) * target.MaxHealth }, }); Spells.Add( "Tryndamere", new List<DamageSpell> { //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 100, 130, 160, 190 }[level] + 1.2 * source.FlatPhysicalDamageMod + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "TwistedFate", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.65 * source.FlatMagicDamageMod }, //W - Blue new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.FlatMagicDamageMod }, //W - Red new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 45, 60, 75, 90 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.FlatMagicDamageMod }, //W - Yellow new DamageSpell { Slot = SpellSlot.W, Stage = 2, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 15, 22.5, 30, 37.5, 45 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.5 * source.FlatMagicDamageMod }, }); Spells.Add( "Twitch", new List<DamageSpell> { //E - current stacks new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => (from buff in target.Buffs where buff.DisplayName.ToLower() == "twitchdeadlyvenom" select buff.Count).FirstOrDefault() * (new double[] { 15, 20, 25, 30, 35 }[level] + 0.2 * source.FlatMagicDamageMod + 0.25 * source.FlatPhysicalDamageMod) + new double[] { 20, 35, 50, 65, 80 }[level] }, //E - per stack new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 15, 20, 25, 30, 35 }[level] + 0.2 * source.FlatMagicDamageMod + 0.25 * source.FlatPhysicalDamageMod + new double[] { 20, 35, 50, 65, 80 }[level] }, }); Spells.Add( "Udyr", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 80, 130, 180, 230 }[level] + (new double[] { 120, 130, 140, 150, 160 }[level] / 100) * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - per wave new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 25, 35, 45, 55 }[level] + 0.25 * source.FlatMagicDamageMod }, }); Spells.Add( "Urgot", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 40, 70, 100, 130 }[level] + 0.85 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 75, 130, 185, 240, 295 }[level] + 0.6 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Varus", new List<DamageSpell> { //Q - min new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 47, 83, 120, 157 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - max new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 15, 70, 125, 180, 235 }[level] + +1.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - on hit new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 14, 18, 22, 26 }[level] + 0.25 * source.FlatMagicDamageMod }, //W - per stack new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new[] { 2, 2.75, 3.5, 4.25, 5 }[level] / 100 + 0.02 * source.FlatMagicDamageMod / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 65, 100, 135, 170, 205 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 1 * source.FlatMagicDamageMod }, }); Spells.Add( "Vayne", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 35, 40, 45, 50 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + (new double[] { 4, 5, 6, 7, 8 }[level] / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 45, 80, 115, 150, 185 }[level] + 0.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Veigar", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.6 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 120, 170, 220, 270, 320 }[level] + 1 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 375, 500 }[level] + 0.8 * target.FlatMagicDamageMod + 1.0 * source.FlatMagicDamageMod }, }); Spells.Add( "Velkoz", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.6 * source.FlatMagicDamageMod }, //W - Max new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 50, 70, 90, 110 }[level] + new double[] { 45, 75, 105, 135, 165 }[level] + 0.625 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 100, 130, 160, 190 }[level] + 0.5 * source.FlatMagicDamageMod }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 500, 700, 900 }[level] + 0.6 * source.FlatMagicDamageMod }, }); Spells.Add( "Vi", new List<DamageSpell> { //Q - min new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => (new[] { 4, 5.5, 7, 8.5, 10 }[level] / 100 + 0.01 * source.FlatPhysicalDamageMod / 35) * target.MaxHealth }, //E - extra new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 5, 20, 35, 50, 65 }[level] + 1.15 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.7 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 150, 300, 450 }[level] + 1.4 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Viktor", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 0.2 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.7 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 98, 161, 224, 287, 350 }[level] + 0.98 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, Stage = 2, DamageType = DamageType.Magical, Damage = (source, target, level) => (source.HasBuff("viktoreaug") || source.HasBuff("viktorweaug") || source.HasBuff("viktorqeaug") || source.HasBuff("viktorqweaug")) ? (new double[] { 98, 161, 224, 287, 350 }[level] + 0.98 * source.FlatMagicDamageMod) : new double[] { 70, 115, 160, 205, 250 }[level] + 0.7 * source.FlatMagicDamageMod }, //R - summon damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.55 * source.FlatMagicDamageMod }, //R - per bolt new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 30, 45 }[level] + 0.1 * source.FlatMagicDamageMod }, }); Spells.Add( "Vladimir", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 125, 160, 195, 230 }[level] + 0.6 * source.FlatMagicDamageMod }, //W - max new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.45 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.7 * source.FlatMagicDamageMod }, }); Spells.Add( "Volibear", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 80, 125, 170, 215, 260 }[level]) * ((target.MaxHealth - target.Health) / target.MaxHealth + 1) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.6 * source.FlatMagicDamageMod }, //R - per bolt new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155 }[level] + 0.3 * source.FlatMagicDamageMod }, }); Spells.Add( "Warwick", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => Math.Max( new double[] { 75, 125, 175, 225, 275 }[level], new double[] { 8, 10, 12, 14, 16 }[level] / 100 * target.MaxHealth) + 1 * source.FlatMagicDamageMod }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Xerath", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.75 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.6 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 0.45 * source.FlatMagicDamageMod }, //R - per charge new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 190, 245, 300 }[level] + 0.43 * source.FlatMagicDamageMod }, }); Spells.Add( "XinZhao", new List<DamageSpell> { //Q - per attack new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 15, 30, 45, 60, 75 }[level] + 0.2 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 75, 175, 275 }[level] + 1 * source.FlatPhysicalDamageMod + 0.15 * target.Health }, }); Spells.Add( "Yasuo", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 40, 60, 80, 100 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E - min new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 90, 110, 130, 150 }[level] + 0.6 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 1.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Yorick", new List<DamageSpell> { //Q - extra new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 1.2 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 1 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 85, 115, 145, 175 }[level] + 1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Zac", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.5 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 55, 70, 85, 100 }[level] + (new double[] { 4, 5, 6, 7, 8 }[level] / 100 + 0.02 * source.FlatMagicDamageMod / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.7 * source.FlatMagicDamageMod }, //R - per bounce new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 140, 210, 280 }[level] + 0.4 * source.FlatMagicDamageMod }, }); Spells.Add( "Zed", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Ziggs", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 120, 165, 210, 255 }[level] + 0.65 * source.FlatMagicDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.35 * source.FlatMagicDamageMod }, //E - per mine new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.3 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 375, 500 }[level] + 0.9 * source.FlatMagicDamageMod }, }); Spells.Add( "Zilean", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 145, 200, 260, 320 }[level] + 0.9 * source.FlatMagicDamageMod }, }); Spells.Add( "Zyra", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.65 * source.FlatMagicDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.5 * source.FlatMagicDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 180, 265, 350 }[level] + 0.7 * source.FlatMagicDamageMod }, }); #endregion }
static Orbwalking() { Player = ObjectManager.Player; Obj_AI_Base.OnProcessSpellCast += OnProcessSpell; GameObject.OnCreate += Obj_SpellMissile_OnCreate; Game.OnGameProcessPacket += OnProcessPacket; //Add the passive damages PassiveDamage p; #region PassiveDamages #region Caitlyn p = new PassiveDamage { ChampionName = "Caitlyn", IsActive = minion => (Player.HasBuff("CaitlynHeadshotReady")), GetDamage = minion => ((float) DamageLib.CalcPhysicalDmg( 1.5d * (Player.BaseAttackDamage + Player.FlatPhysicalDamageMod), minion)), }; AttackPassives.Add(p); #endregion #region Draven p = new PassiveDamage { ChampionName = "Draven", IsActive = minion => (Player.HasBuff("dravenspinning")), GetDamage = minion => ((float) DamageLib.CalcPhysicalDmg( 0.45d * (Player.BaseAttackDamage + Player.FlatPhysicalDamageMod), minion)), }; AttackPassives.Add(p); #endregion #region Corki p = new PassiveDamage { ChampionName = "Corki", IsActive = minion => (Player.HasBuff("RapidReload")), GetDamage = minion => ((float)0.1d * (Player.BaseAttackDamage + Player.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Gnar p = new PassiveDamage { ChampionName = "Gnar", IsActive = minion => (from buff in minion.Buffs where buff.DisplayName == "GnarWProc" select buff.Count) .FirstOrDefault() == 2, GetDamage = minion => ((float)DamageLib.getDmg(minion, DamageLib.SpellType.W)), }; AttackPassives.Add(p); #endregion #region Jinx p = new PassiveDamage { ChampionName = "Jinx", IsActive = minion => (Player.HasBuff("JinxQ")), GetDamage = minion => ((float) DamageLib.CalcPhysicalDmg( 0.1d * (Player.BaseAttackDamage + Player.FlatPhysicalDamageMod), minion)), }; AttackPassives.Add(p); #endregion #region Katarina p = new PassiveDamage { ChampionName = "Katarina", IsActive = minion => (minion.HasBuff("KataQMark1")), GetDamage = minion => ((float)DamageLib.getDmg(minion, DamageLib.SpellType.Q, DamageLib.StageType.FirstDamage)), }; AttackPassives.Add(p); #endregion #region KogMaw p = new PassiveDamage { ChampionName = "KogMaw", IsActive = minion => (Player.HasBuff("KogMawBioArcaneBarrage")), GetDamage = minion => ((float)DamageLib.getDmg(minion, DamageLib.SpellType.W)), }; AttackPassives.Add(p); #endregion #region MissFortune p = new PassiveDamage { ChampionName = "MissFortune", IsActive = minion => (Player.HasBuff("MissFortunePassive")), GetDamage = minion => (float) DamageLib.CalcMagicDmg( (float)0.06d * (Player.BaseAttackDamage + Player.FlatPhysicalDamageMod), minion), }; AttackPassives.Add(p); #endregion #region Nasus p = new PassiveDamage { ChampionName = "Nasus", IsActive = minion => (Player.HasBuff("SiphoningStrike")), GetDamage = minion => ((float)DamageLib.getDmg(minion, DamageLib.SpellType.Q)), }; AttackPassives.Add(p); #endregion #region Orianna p = new PassiveDamage { ChampionName = "Orianna", IsActive = minion => (Player.HasBuff("OrianaSpellSword")), GetDamage = minion => (float) DamageLib.CalcMagicDmg( (float)0.15d * Player.FlatMagicDamageMod + new float[] { 10, 10, 10, 18, 18, 18, 26, 26, 26, 34, 34, 34, 42, 42, 42, 50, 50, 50 }[ Player.Level - 1], minion), }; AttackPassives.Add(p); #endregion #region Teemo p = new PassiveDamage { ChampionName = "Teemo", IsActive = minion => (Player.HasBuff("Toxic Attack")), GetDamage = minion => ((float) DamageLib.CalcMagicDmg( Player.Spellbook.GetSpell(SpellSlot.E).Level * 10 + Player.FlatMagicDamageMod * 0.3d, minion)), }; AttackPassives.Add(p); #endregion #region TwistedFate p = new PassiveDamage { ChampionName = "TwistedFate", IsActive = minion => (Player.HasBuff("Pick A Card Blue")), GetDamage = minion => (float)DamageLib.getDmg(minion, DamageLib.SpellType.W, DamageLib.StageType.FirstDamage) - (float) DamageLib.CalcPhysicalDmg( (ObjectManager.Player.BaseAttackDamage + ObjectManager.Player.FlatPhysicalDamageMod), minion), }; AttackPassives.Add(p); p = new PassiveDamage { ChampionName = "TwistedFate", IsActive = minion => (Player.HasBuff("CardMasterStackParticle")), GetDamage = minion => (float)DamageLib.getDmg(minion, DamageLib.SpellType.E), }; AttackPassives.Add(p); #endregion #region Varus p = new PassiveDamage { ChampionName = "Varus", IsActive = minion => (Player.HasBuff("VarusW")), GetDamage = minion => ((float)DamageLib.getDmg(minion, DamageLib.SpellType.W)), }; AttackPassives.Add(p); #endregion #region Vayne p = new PassiveDamage { ChampionName = "Vayne", IsActive = minion => (Player.HasBuff("VayneTumble")), GetDamage = minion => ((float)DamageLib.getDmg(minion, DamageLib.SpellType.Q)), }; AttackPassives.Add(p); p = new PassiveDamage { ChampionName = "Vayne", IsActive = minion => (from buff in minion.Buffs where buff.DisplayName == "VayneSilverDebuff" select buff.Count) .FirstOrDefault() == 2, GetDamage = minion => ((float)DamageLib.getDmg(minion, DamageLib.SpellType.W)), }; AttackPassives.Add(p); #endregion #region Ziggs p = new PassiveDamage { ChampionName = "Ziggs", IsActive = minion => (Player.HasBuff("ziggsShortFuse")), GetDamage = minion => (float) DamageLib.CalcMagicDmg( (float)0.25d * Player.FlatMagicDamageMod + new float[] { 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 80, 88, 100, 112, 124, 136, 148, 160 }[ Player.Level - 1], minion), }; AttackPassives.Add(p); #endregion #endregion }
//attack passives are handled in the orbwalker, it will be changed in the future :^) static Damage() { //Add the passive damages PassiveDamage p; #region PassiveDamages #region Aatrox p = new PassiveDamage { ChampionName = "Aatrox", IsActive = (source, target) => (source.HasBuff("AatroxWPower") && source.HasBuff("AatroxWONHPowerBuff")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region Alistar p = new PassiveDamage { ChampionName = "Alistar", IsActive = (source, target) => (source.HasBuff("alistartrample")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Magical, 6d + source.Level + (0.1d * source.AbilityPower()))), }; AttackPassives.Add(p); #endregion #region Caitlyn p = new PassiveDamage { ChampionName = "Caitlyn", IsActive = (source, target) => (source.HasBuff("caitlynheadshot")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, 1.5d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); #endregion #region Draven p = new PassiveDamage { ChampionName = "Draven", IsActive = (source, target) => (source.HasBuff("DravenSpinning")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, 0.45d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); #endregion #region Corki p = new PassiveDamage { ChampionName = "Corki", IsActive = (source, target) => (source.HasBuff("rapidreload")), GetDamage = (source, target) => ((float)0.1d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Ekko p = new PassiveDamage { ChampionName = "Ekko", IsActive = (source, target) => (target.GetBuffCount("EkkoStacks") == 3), GetDamage = (source, target) => (float)source.CalcDamage(target, DamageType.Magical, 10 + (source.Level * 10) + (source.AbilityPower() * 0.8)), }; AttackPassives.Add(p); #endregion #region Gnar p = new PassiveDamage { ChampionName = "Gnar", IsActive = (source, target) => (target.GetBuffCount("gnarwproc") == 2), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region Jinx p = new PassiveDamage { ChampionName = "Jinx", IsActive = (source, target) => (source.HasBuff("JinxQ")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, 0.1d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); #endregion #region Kalista if (!Game.Version.Contains("5.12")) { p = new PassiveDamage { ChampionName = "Kalista", IsActive = (source, target) => true, GetDamage = (source, target) => ((float) -source.CalcDamage( target, DamageType.Physical, 0.1d * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); } #endregion #region Katarina p = new PassiveDamage { ChampionName = "Katarina", IsActive = (source, target) => (target.HasBuff("katarinaqmark")), GetDamage = (source, target) => ((float)source.GetSpellDamage2(target, SpellSlot.Q, 1)), }; AttackPassives.Add(p); #endregion #region KogMaw p = new PassiveDamage { ChampionName = "KogMaw", IsActive = (source, target) => (source.HasBuff("KogMawBioArcaneBarrage")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region MissFortune p = new PassiveDamage { ChampionName = "MissFortune", IsActive = (source, target) => (source.HasBuff("missfortunepassive")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (float)0.06 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)), }; AttackPassives.Add(p); #endregion #region Nasus p = new PassiveDamage { ChampionName = "Nasus", IsActive = (source, target) => (source.HasBuff("NasusQ")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.Q)), }; AttackPassives.Add(p); #endregion #region Orianna p = new PassiveDamage { ChampionName = "Orianna", IsActive = (source, target) => (source.HasBuff("orianaspellsword")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (float)0.15 * source.AbilityPower() + new float[] { 10, 10, 10, 18, 18, 18, 26, 26, 26, 34, 34, 34, 42, 42, 42, 50, 50, 50 }[ source.Level - 1]), }; AttackPassives.Add(p); #endregion #region Riven p = new PassiveDamage { ChampionName = "Riven", IsActive = (source, target) => source.GetBuffCount("rivenpassiveaaboost") > 0, GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Physical, new[] { 0.2, 0.2, 0.25, 0.25, 0.25, 0.3, 0.3, 0.3, 0.35, 0.35, 0.35, 0.4, 0.4, 0.4, 0.45, 0.45, 0.45, 0.5 }[source.Level - 1] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))), }; AttackPassives.Add(p); #endregion #region Teemo p = new PassiveDamage { ChampionName = "Teemo", IsActive = (source, target) => (source.HasBuff("ToxicShot")), GetDamage = (source, target) => ((float) source.CalcDamage( target, DamageType.Magical, source.Spellbook.GetSpell(SpellSlot.E).Level * 10 + source.AbilityPower() * 0.3)), }; AttackPassives.Add(p); #endregion #region TwistedFate p = new PassiveDamage { ChampionName = "TwistedFate", IsActive = (source, target) => (source.HasBuff("bluecardpreattack")), GetDamage = (source, target) => (float)source.GetSpellDamage(target, SpellSlot.W) - (float) source.CalcDamage( target, DamageType.Physical, (source.BaseAttackDamage + source.FlatPhysicalDamageMod)) - 10f, }; AttackPassives.Add(p); p = new PassiveDamage { ChampionName = "TwistedFate", IsActive = (source, target) => (source.HasBuff("cardmasterstackparticle")), GetDamage = (source, target) => (float)source.GetSpellDamage(target, SpellSlot.E), }; AttackPassives.Add(p); #endregion #region Varus p = new PassiveDamage { ChampionName = "Varus", IsActive = (source, target) => (source.HasBuff("VarusW")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region Vayne p = new PassiveDamage { ChampionName = "Vayne", IsActive = (source, target) => (source.HasBuff("vaynetumblebonus")), GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.Q)), }; AttackPassives.Add(p); p = new PassiveDamage { ChampionName = "Vayne", IsActive = (source, target) => (from buff in target.Buffs where buff.Name == "vaynesilvereddebuff" select buff.Count) .FirstOrDefault() == 2, GetDamage = (source, target) => ((float)source.GetSpellDamage(target, SpellSlot.W)), }; AttackPassives.Add(p); #endregion #region Viktor p = new PassiveDamage { ChampionName = "Viktor", IsActive = (source, target) => (source.HasBuff("viktorpowertransferreturn")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (float)0.5d * source.AbilityPower() + new float[] { 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80, 90, 110, 130, 150, 170, 190, 210 }[ source.Level - 1]), }; AttackPassives.Add(p); #endregion #region Ziggs p = new PassiveDamage { ChampionName = "Ziggs", IsActive = (source, target) => (source.HasBuff("ziggsshortfuse")), GetDamage = (source, target) => (float) source.CalcDamage( target, DamageType.Magical, (float)0.25d * source.AbilityPower() + new float[] { 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 80, 88, 100, 112, 124, 136, 148, 160 }[ source.Level - 1]), }; AttackPassives.Add(p); #endregion #endregion //Synced on -[dte]- 18:53 with patch 4.16 data. #region Spells Spells.Add( "Aatrox", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 110, 145, 180, 215 }[level] + 0.6 * source.AbilityPower() + 0.6 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Ahri", new List<DamageSpell> { //Normal Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.35 * source.AbilityPower() }, //Q Return new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.35 * source.AbilityPower() }, //W => First FF to target new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.4 * source.AbilityPower() }, //W => Additional FF to already FF target new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 12, 19.5, 27, 34.5, 42 }[level] + 0.12 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.50 * source.AbilityPower() }, //R, per dash new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150 }[level] + 0.3 * source.AbilityPower() }, }); Spells.Add( "Akali", new List<DamageSpell> { //Q Initial new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 35, 55, 75, 95, 115 }[level] + 0.4 * source.AbilityPower() }, //Q Detonation new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 45, 70, 95, 120, 145 }[level] + 0.5 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 55, 80, 105, 130 }[level] + 0.4 * source.AbilityPower() + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 175, 250 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "Alistar", new List<DamageSpell> { //Q Initial new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.5 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 110, 165, 220, 275 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Amumu", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.7 * source.AbilityPower() }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 8, 12, 16, 20, 24 }[level] + (new[] { 0.01, 0.015, 0.02, 0.025, 0.03 }[level] + 0.01 * source.AbilityPower() / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 100, 125, 150, 175 }[level] + 0.5 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.8 * source.AbilityPower() }, }); Spells.Add( "Anivia", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.5 * source.AbilityPower() }, //Q - max new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] * 2 + 1 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 55, 85, 115, 145, 175 }[level] + 0.5 * source.AbilityPower()) * (target.HasBuff("chilled") ? 2 : 1) }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160 }[level] + 0.25 * source.AbilityPower() }, }); Spells.Add( "Annie", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 115, 150, 185, 220 }[level] + 0.8 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.85 * source.AbilityPower() }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 210, 335, 460 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Ashe", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 425, 600 }[level] + 1 * source.AbilityPower() }, //R - Min new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 250, 425, 600 }[level] + 1 * source.AbilityPower()) / 2 }, }); Spells.Add( "Azir", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 85, 105, 125, 145 }[level] + 0.5 * source.AbilityPower() }, //W - Soldier auto attacks new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 60, 75, 80, 90 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.4 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 225, 300 }[level] + 0.6 * source.AbilityPower() }, }); Spells.Add( "Blitzcrank", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 1 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 375, 500 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Bard", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.65 * source.AbilityPower() }, }); Spells.Add( "Brand", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.65 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 120, 165, 210, 255 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.55 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "Braum", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.025 * source.MaxHealth }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.6 * source.AbilityPower() }, }); Spells.Add( "Caitlyn", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 60, 100, 140, 180 }[level] + 1.3 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.8 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 250, 475, 700 }[level] + 2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Cassiopeia", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 0.45 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 15, 20, 25, 30 }[level] + 0.1 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.55 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "ChoGath", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 305 }[level] + 1 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 125, 175, 225, 275 }[level] + 0.7 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 0.3 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 300, 475, 650 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Corki", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.5 * source.AbilityPower() + 0.5 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.4 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 32, 44, 56, 68 }[level] + 0.4 * source.FlatPhysicalDamageMod }, //R - Normal missile new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 180, 260 }[level] + 0.3 * source.AbilityPower() + new double[] { 20, 30, 40 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - Big missile new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 270, 390 }[level] + 0.45 * source.AbilityPower() + new double[] { 30, 40, 60 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Darius", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new[] { 20, 40, 60, 80, 100 }[level] + new double[] { 1.0, 1.1, 1.2, 1.3, 1.4 }[level] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) * 0.5 }, //Q - Blade new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new[] { 20, 40, 60, 80, 100 }[level] + new double[] { 1.0, 1.1, 1.2, 1.3, 1.4 }[level] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => 1.4 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 100, 200, 300 }[level] + 0.75 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Diana", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.7 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 22, 34, 46, 58, 70 }[level] + 0.2 * source.AbilityPower() }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 160, 220 }[level] + 0.6 * source.AbilityPower() }, }); Spells.Add( "DrMundo", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => { if (target is Obj_AI_Minion) { return Math.Min( new double[] { 300, 400, 500, 600, 700 }[level], Math.Max( new double[] { 80, 130, 180, 230, 280 }[level], new double[] { 15, 18, 21, 23, 25 }[level] / 100 * target.Health)); } return Math.Max( new double[] { 80, 130, 180, 230, 280 }[level], new double[] { 15, 18, 21, 23, 25 }[level] / 100 * target.Health); } }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 35, 50, 65, 80, 95 }[level] + 0.2 * source.AbilityPower() } }); Spells.Add( "Draven", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 45, 55, 65, 75, 85 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.5 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 175, 275, 375 }[level] + 1.1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Ekko", new List<DamageSpell> { // Q - Outgoing new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 75, 90, 105, 120 }[level] + 0.1 * source.AbilityPower() }, // Q - Incoming new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.6 * source.AbilityPower() }, // W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 195, 240, 285, 330 }[level] + 0.8 * source.AbilityPower() }, // E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.2 * source.AbilityPower() }, // R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 350, 500 }[level] + 1.3 * source.AbilityPower() } }); Spells.Add( "Elise", new List<DamageSpell> { //Q - Human new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + (0.08 + 0.03 / 100 * source.AbilityPower()) * target.Health }, //Q - Spider new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + (0.08 + 0.03 / 100 * source.AbilityPower()) * (target.MaxHealth - target.Health) }, //W - Human new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 125, 175, 225, 275 }[level] + 0.8 * source.AbilityPower() }, }); Spells.Add( "Evelynn", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 50, 60, 70, 80 }[level] + new double[] { 35, 40, 45, 50, 55 }[level] / 100 * source.AbilityPower() + new double[] { 50, 55, 60, 65, 70 }[level] / 100 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 1 * source.AbilityPower() + 1 * source.FlatPhysicalDamageMod }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new[] { 0.15, 0.20, 0.25 }[level] + 0.01 / 100 * source.AbilityPower()) * target.Health }, }); Spells.Add( "Ezreal", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 35, 55, 75, 95, 115 }[level] + 0.4 * source.AbilityPower() + 1.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.8 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 125, 175, 225, 275 }[level] + 0.75 * source.AbilityPower() + 0.5 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 350, 500, 650 }[level] + 0.9 * source.AbilityPower() + 1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Fiddlesticks", new List<DamageSpell> { //W - Per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.45 * source.AbilityPower() }, //E - Per bounce new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 85, 105, 125, 145 }[level] + 0.45 * source.AbilityPower() }, //R - Per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 125, 225, 325 }[level] + 0.45 * source.AbilityPower() }, }); Spells.Add( "Fiora", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 65, 75, 85, 95, 105 }[level] + new [] { .55, .70, .85, 1, 1.15 }[level] * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 130, 170, 210, 250 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Fizz", new List<DamageSpell> { //Q - AA excluded. new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 25, 40, 55, 70 }[level] + 0.35 * source.AbilityPower() }, //W - Per attack new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 15, 20, 25, 30 }[level] + 0.3 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 120, 170, 220, 270 }[level] + 0.75 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Galio", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.5 * source.AbilityPower() }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 360, 540, 720 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "GangPlank", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 45, 70, 95, 120 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - per cannonball new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 70, 90 }[level] + 0.1 * source.AbilityPower() }, }); Spells.Add( "Garen", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 55, 80, 105, 130 }[level] + 1.4 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 45, 70, 95, 120 }[level] + new double[] { 70, 80, 90, 100, 110 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - Max damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 175, 350, 525 }[level] + new[] { 28.57, 33.33, 40 }[level] / 100 * (target.MaxHealth - target.Health) }, }); Spells.Add( "Gnar", new List<DamageSpell> { //Q - mini new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 5, 35, 65, 95, 125 }[level] + 1.15 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - big new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 5, 45, 85, 125, 165 }[level] + 1.2 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - mini new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 20, 30, 40, 50 }[level] + 1 * source.AbilityPower() + new double[] { 6, 8, 10, 12, 14 }[level] / 100 * target.MaxHealth }, //W - big new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 45, 65, 85, 105 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E - mini new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 60, 100, 140, 180 }[level] + source.MaxHealth * 0.06 }, //E - big new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 60, 100, 140, 180 }[level] + source.MaxHealth * 0.06 }, //R - Max damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 0.5 * source.AbilityPower() + 0.2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Gragas", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.6 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 50, 80, 110, 140 }[level] + 8 / 100 * target.MaxHealth + 0.3 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Graves", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.75 * source.FlatPhysicalDamageMod }, //Q new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 120, 180, 240, 300, 360 }[level] + 1.50 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.6 * source.AbilityPower() }, //R - Max damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 1.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Hecarim", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + 0.2 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.5 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Heimerdinger", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.45 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 135, 180, 225 }[ source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.45 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 200, 250 }[ source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.6 * source.AbilityPower() }, }); Spells.Add( "Irelia", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 50, 80, 110, 140 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 15, 30, 45, 60, 75 }[level] }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.5 * source.AbilityPower() }, //R - per blade new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 120, 160 }[level] + 0.5 * source.AbilityPower() + 0.6 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Janna", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.35 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 115, 170, 225, 280 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "JarvanIV", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 1.2 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.8 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 1.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Jax", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 1 * source.FlatPhysicalDamageMod + 0.6 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.5 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 160, 220 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Jayce", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 120, 170, 220, 270, 320 }[level] + 1.2 * source.FlatPhysicalDamageMod }, //Q - Melee new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 70, 110, 150, 190, 230 }[level] + 1 * source.FlatPhysicalDamageMod }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 25, 40, 55, 70, 85, 100 }[level] + 0.25 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => (new[] { 8, 10.4, 12.8, 15.2, 17.6, 20 }[level] / 100) * target.MaxHealth + 1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Jinx", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => 0.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 60, 110, 160, 210 }[level] + 1.4 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 1 * source.AbilityPower() }, //R - Min new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 35, 45 }[level] + new double[] { 25, 30, 35 }[level] / 100 * (target.MaxHealth - target.Health) + 0.1 * source.FlatPhysicalDamageMod }, //R - Max new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 250, 350, 450 }[level] + new double[] { 25, 30, 35 }[level] / 100 * (target.MaxHealth - target.Health) + 1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Karma", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.6 * source.AbilityPower() }, //Q - mantra new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + new double[] { 25, 75, 125, 175 }[ source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.9 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.9 * source.AbilityPower() }, //W - mantra new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.9 * source.AbilityPower() }, }); Spells.Add( "Karthus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 40, 60, 80, 100, 120 }[level] + 0.3 * source.AbilityPower()) * 2 }, //Q - Multi-target new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 0.3 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 50, 70, 90, 110 }[level] + 0.2 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 0.6 * source.AbilityPower() }, }); Spells.Add( "Kassadin", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 95, 120, 145, 170 }[level] + 0.7 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.6 * source.AbilityPower() }, //W - pasive new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => 20 + 0.1 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 105, 130, 155, 180 }[level] + 0.7 * source.AbilityPower() }, //R - Base new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 100, 120 }[level] + 0.02 * source.MaxMana }, //R - Per Stack new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 50, 60 }[level] + 0.01 * source.MaxMana }, }); Spells.Add( "Katarina", new List<DamageSpell> { //Q - dagger new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.45 * source.AbilityPower() }, //Q - mark new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 30, 45, 60, 75 }[level] + 0.15 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.6 * source.FlatPhysicalDamageMod + 0.25 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.25 * source.AbilityPower() }, //R - per dagger new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 350, 550, 750 }[level] + 3.75 * source.FlatPhysicalDamageMod + 2.5 * source.AbilityPower()) / 10 }, //R - max new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 350, 550, 750 }[level] + 3.75 * source.FlatPhysicalDamageMod + 2.5 * source.AbilityPower() }, }); Spells.Add( "Kayle", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 1 * source.FlatPhysicalDamageMod + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + 0.25 * source.AbilityPower() }, }); Spells.Add( "Kennen", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 0.75 * source.AbilityPower() }, //W - Passive new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 50, 60, 70, 80 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - Active new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 95, 125, 155, 185 }[level] + 0.55 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 85, 125, 165, 205, 245 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 145, 210 }[level] + 0.4 * source.AbilityPower() }, }); Spells.Add( "KhaZix", new List<DamageSpell> { //Q - Normal target - UnEvolved new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 95, 120, 145, 170 }[level] + 1.2 * source.FlatPhysicalDamageMod }, //Q - Isolated target - UnEvolved new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new[] { 91, 123.5, 156, 188.5, 221 }[level] + 1.56 * source.FlatPhysicalDamageMod }, //Q - Normal target - Evolved new DamageSpell { Slot = SpellSlot.Q, Stage = 2, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 95, 120, 145, 170 }[level] + 2.24 * source.FlatPhysicalDamageMod + 10 * ((AIHeroClient)source).Level }, //Q - Isolated target - Evolved new DamageSpell { Slot = SpellSlot.Q, Stage = 3, DamageType = DamageType.Physical, Damage = (source, target, level) => new[] { 91, 123.5, 156, 188.5, 221 }[level] + 2.6 * source.FlatPhysicalDamageMod + 10 * ((AIHeroClient)source).Level }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 65, 100, 135, 170, 205 }[level] + 0.2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "KogMaw", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.5 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 2, 3, 4, 5, 6 }[level] / 100 + 0.01 / 100 * source.AbilityPower()) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.7 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160 }[level] * 2 + 0.5 * source.FlatPhysicalDamageMod + 0.3 * source.AbilityPower() }, }); Spells.Add( "Kalista", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 70, 130, 190, 250 }[level] + source.BaseAttackDamage + source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 12, 14, 16, 18, 20 }[level] / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => { var count = target.GetBuffCount("kalistaexpungemarker"); if (count > 0) { return (new double[] { 20, 30, 40, 50, 60 }[level] + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)) + // Base damage of E ((count - 1) * (new double[] { 10, 14, 19, 25, 32 }[level] + // Base damage per spear new double[] { 0.2, 0.225, 0.25, 0.275, 0.3 }[ level] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod))); // Damage multiplier per spear } return 0; } }, }); Spells.Add( "Kindred", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180}[level] + (source.BaseAttackDamage + source.FlatPhysicalDamageMod) * 0.2f }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 30, 35, 40, 45 }[level] + (source.BaseAttackDamage + source.FlatPhysicalDamageMod) * 0.4f }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + (source.BaseAttackDamage + source.FlatPhysicalDamageMod) * 0.2f + target.MaxHealth * 0.05f }, }); Spells.Add( "LeBlanc", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.4 * source.AbilityPower() }, //Q . explosion new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.4 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 85, 125, 165, 205, 245 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "LeeSin", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.9 * source.FlatPhysicalDamageMod }, //Q - 2nd new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.9 * source.FlatPhysicalDamageMod + 0.08 * (target.MaxHealth - target.Health) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 1 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 400, 600 }[level] + 2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Leona", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.3 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.4 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.4 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.8 * source.AbilityPower() }, }); Spells.Add( "Lissandra", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 100, 130, 160, 190 }[level] + 0.65 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.4 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Lucian", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + new double[] { 60, 75, 90, 105, 120 }[level] / 100 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.9 * source.AbilityPower() }, //R - per shot new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 50, 60 }[level] + 0.1 * source.AbilityPower() + 0.25 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Lulu", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.5 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 0.4 * source.AbilityPower() }, }); Spells.Add( "Lux", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.7 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 300, 400, 500 }[level] + 0.75 * source.AbilityPower() }, }); Spells.Add( "Malphite", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 120, 170, 220, 270 }[level] + 0.6 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 38, 46, 54, 62 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.3 * source.Armor + 0.2 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Malzahar", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 0.8 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 4, 5, 6, 7, 8 }[level] / 100 + 0.01 / 100 * source.AbilityPower()) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 140, 200, 260, 320 }[level] + 0.8 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 1.3 * source.AbilityPower() }, }); Spells.Add( "Maokai", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.4 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 9, 10, 11, 12, 13 }[level] / 100 + 0.03 / 100 * source.AbilityPower()) * target.MaxHealth }, //E - impact new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 0.4 * source.AbilityPower() }, //E - explosion new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 150, 200 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "MasterYi", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 60, 95, 130, 165 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.True, Damage = (source, target, level) => new[] { 10, 12.5, 15, 17.5, 20 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + new double[] { 10, 15, 20, 25, 30 }[level] }, }); Spells.Add( "MissFortune", new List<DamageSpell> { //Q - First target new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 0.35 * source.AbilityPower() + 0.85 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - Second target new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.5 * source.AbilityPower() + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => 0.06 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 145, 200, 255, 310 }[level] + 0.8 * source.AbilityPower() }, //R - per wave new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 75, 125 }[level] + 0.2 * source.AbilityPower() }, }); Spells.Add( "MonkeyKing", new List<DamageSpell> //AKA wukong { //Q - bonus new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 0.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 110, 200 }[level] + 1.1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Mordekaiser", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 1 * source.FlatPhysicalDamageMod + 0.4 * source.AbilityPower() }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 24, 38, 52, 66, 80 }[level] + 0.2 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.6 * source.AbilityPower() }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 24, 29, 34 }[level] / 100 + 0.04 / 100 * source.AbilityPower()) * target.MaxHealth }, }); Spells.Add( "Morgana", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] + 0.9 * source.AbilityPower() }, //W - per tick new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 8, 16, 24, 32, 40 }[level] + 0.11 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 225, 300 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Nami", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 130, 185, 240, 295 }[level] + 0.5 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.5 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 25, 40, 55, 70, 85 }[level] + 0.2 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.6 * source.AbilityPower() }, }); Spells.Add( "Nasus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => (from buff in ObjectManager.Player.Buffs where buff.Name == "nasusqstacks" select buff.Count).FirstOrDefault() + new double[] { 30, 50, 70, 90, 110 }[level] }, //E - Initial new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 95, 135, 175, 215 }[level] + 0.6 * source.AbilityPower() }, //E - per second new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 11, 19, 27, 35, 43 }[level] + 0.12 * source.AbilityPower() }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 3, 4, 5 }[level] / 100 + 0.01 / 100 * source.AbilityPower()) * target.MaxHealth }, }); Spells.Add( "Nautilus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.75 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 40, 50, 60, 70 }[level] + 0.4 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.3 * source.AbilityPower() }, //R - main target new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 0.8 * source.AbilityPower() }, //R - missile new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 125, 175, 225 }[level] + 0.4 * source.AbilityPower() }, }); Spells.Add( "Nidalee", new List<DamageSpell> { //Q - human - min * 3 = max new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.4 * source.AbilityPower() }, //Q - cat new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 4, 20, 50, 90 }[ source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.36 * source.AbilityPower() + 0.75 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)) * ((target.MaxHealth - target.Health) / target.MaxHealth * 1.5 + 1) }, //W - human new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 80, 120, 160, 200 }[level] + 0.2 * source.AbilityPower() }, //W - cat new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 100, 150, 200 }[ source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.3 * source.AbilityPower() }, //E - cat new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 130, 190, 250 }[ source.Spellbook.GetSpell(SpellSlot.R).Level - 1] + 0.45 * source.AbilityPower() }, }); Spells.Add( "Nocturne", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.75 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 260 }[level] + 1 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 1.2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Nunu", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 400, 550, 700, 850, 1000 }[level] }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 85, 130, 175, 225, 275 }[level] + 1 * source.AbilityPower() }, //R - Max Damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 625, 875, 1125 }[level] + 2.5 * source.AbilityPower() }, }); Spells.Add( "Olaf", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.4 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Orianna", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.5 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.7 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.3 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 225, 300 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Pantheon", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 65, 105, 145, 185, 225 }[level] + 1.4 * source.FlatPhysicalDamageMod) * ((target.Health / target.MaxHealth < 0.15) ? 2 : 1) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 1 * source.AbilityPower() }, //E - per strike new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 13, 23, 33, 43, 53 }[level] + 0.6 * source.FlatPhysicalDamageMod) * ((target is AIHeroClient) ? 2 : 1) }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 400, 700, 1000 }[level] + 1 * source.AbilityPower() }, //R - min new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 400, 700, 1000 }[level] + 1 * source.AbilityPower()) * 0.5 }, }); Spells.Add( "Poppy", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => Math.Min( new double[] { 75, 150, 225, 300, 375 }[level], new double[] { 20, 40, 60, 80, 100 }[level] + 0.08 * target.MaxHealth + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.6 * source.AbilityPower()) }, //E - without colliding new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.4 * source.AbilityPower() }, //E - with colliding new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + new double[] { 75, 125, 175, 225, 275 }[level] + 0.8 * source.AbilityPower() }, }); Spells.Add( "Quinn", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.65 * source.FlatPhysicalDamageMod + 0.5 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.2 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 100, 150, 200 }[level] + 0.5 * source.FlatPhysicalDamageMod) * ((target.MaxHealth - target.Health) / target.MaxHealth + 1) }, }); Spells.Add( "Rammus", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 150, 200, 250, 300 }[level] + 1 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 25, 35, 45, 55 }[level] + 0.1 * source.Armor }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 130, 195 }[level] + 0.3 * source.AbilityPower() }, }); Spells.Add( "Renekton", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //Q - empowered new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 60, 90, 120, 150, 180 }[level] + 0.8 * source.FlatPhysicalDamageMod) * 1.5 }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 30, 50, 70, 90 }[level] + 1.5 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - empowered new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 10, 30, 50, 70, 90 }[level] + 1.5 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod)) * 1.5 }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 0.9 * source.FlatPhysicalDamageMod }, //E - empowered new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 30, 60, 90, 120, 150 }[level] + 0.9 * source.FlatPhysicalDamageMod) * 1.5 }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 60, 120 }[level] + 0.1 * source.AbilityPower() }, }); Spells.Add( "Rengar", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + new double[] { 0, 5, 10, 15, 20 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - Extra new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + (new double[] { 100, 105, 110, 115, 120 }[level] / 100 - 1) * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 0.8 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 100, 150, 200, 250 }[level] + 0.7 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Riven", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 30, 50, 70, 90 }[level] + ((source.BaseAttackDamage + source.FlatPhysicalDamageMod) / 100) * new double[] { 40, 45, 50, 55, 60 }[level] }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 80, 110, 140, 170 }[level] + 1 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 80, 120, 160 }[level] + 0.6 * source.FlatPhysicalDamageMod) * ((target.MaxHealth - target.Health) / target.MaxHealth * 2.67 + 1) }, }); Spells.Add( "Rumble", new List<DamageSpell> { //Q - total damage new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 135, 195, 255, 315 }[level] + 1 * source.AbilityPower() }, //Q - Danger Zone total damage new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 112.5, 202.5, 292.5, 382.5, 472.5 }[level] + 1.5 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 45, 70, 95, 120, 145 }[level] + 0.4 * source.AbilityPower() }, //E - Danger Zone new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 67.5, 105, 142.5, 180, 217.5 }[level] + 0.6 * source.AbilityPower() }, //R - per second new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 130, 185, 240 }[level] + 0.3 * source.AbilityPower() }, //R - Total new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 650, 925, 1200 }[level] + 1.5 * source.AbilityPower() }, }); Spells.Add( "Ryze", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.55 * source.AbilityPower() + new double[] { 2, 2.5, 3, 3.5, 4 }[level] / 100 * source.MaxMana }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 100, 120, 140, 160 }[level] + 0.4 * source.AbilityPower() + 0.025 * source.MaxMana }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 36, 52, 68, 84, 100 }[level] + 0.2 * source.AbilityPower() + 0.02 * source.MaxMana }, }); Spells.Add( "Sejuani", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] }, //W - AA damage new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 4, 4.5, 5, 5.5, 6 }[level] / 100 * target.MaxHealth }, //W - Aoe per second new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 10, 17.5, 25, 32.5, 40 }[level] + (new double[] { 4, 6, 8, 10, 12 }[level] / 100) * source.MaxHealth + 0.15 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.5 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.8 * source.AbilityPower() }, }); Spells.Add( "Shaco", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 140, 160, 180, 200, 220 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - per attack new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 35, 50, 65, 80, 95 }[level] + 0.2 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 90, 130, 170, 210 }[level] + 1 * source.FlatPhysicalDamageMod + 1 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 300, 450, 600 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Shen", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 85, 120, 155, 190 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "Shyvana", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 80, 85, 90, 95, 100 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - per second new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 20, 35, 50, 65, 80 }[level] + 0.2 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 100, 140, 180, 220 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 175, 300, 425 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Singed", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 22, 34, 46, 58, 70 }[level] + 0.3 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 65, 80, 95, 110 }[level] + 0.75 * source.AbilityPower() + new double[] { 4, 5.5, 7, 8.5, 10 }[level] / 100 * target.MaxHealth }, }); Spells.Add( "Sion", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 40, 60, 80, 100 }[level] + 0.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 120, 180, 240, 300 }[level] + 1.8 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.4 * source.AbilityPower() + new double[] { 10, 11, 12, 13, 14 }[level] / 100 * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.4 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 70, 105, 140, 175, 210 }[level] + 0.4 * source.AbilityPower()) * 1.5 }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 150, 300, 450 }[level] + 0.4 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 150, 300, 450 }[level] + 0.4 * source.FlatPhysicalDamageMod) * 2 }, }); Spells.Add( "Sivir", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 25, 45, 65, 85, 105 }[level] + new double[] { 70, 80, 90, 100, 110 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.AbilityPower() }, //W - bounce new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 55, 60, 65, 70 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Skarner", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + 0.4 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 75, 110, 145, 180 }[level] + 0.4 * source.AbilityPower() }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 100, 150, 200 }[level] + 0.5 * source.AbilityPower()) * 2 }, }); Spells.Add( "Sona", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 80, 120, 160, 200 }[level] + 0.4 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "Soraka", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.35 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.4 * source.AbilityPower() }, }); Spells.Add( "Swain", new List<DamageSpell> { //Q - per second new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 25, 40, 55, 70, 85 }[level] + 0.3 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.7 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 0.8 * source.AbilityPower() }, //R - per draven new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 50, 70, 90 }[level] + 0.2 * source.AbilityPower() }, }); Spells.Add( "Syndra", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 50, 95, 140, 185, 230 }[level] + 0.6 * source.AbilityPower()) * ((level == 5 && target is AIHeroClient) ? 1.15 : 1) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.7 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.4 * source.AbilityPower() }, //R - min damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 270, 405, 540 }[level] + 0.6 * source.AbilityPower() }, //R - per sphere new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 135, 180 }[level] + 0.2 * source.AbilityPower() }, }); Spells.Add( "Talon", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 0.3 * source.FlatPhysicalDamageMod + ((target is AIHeroClient) ? (new double[] { 10, 20, 30, 40, 50 }[level] + 1 * source.FlatPhysicalDamageMod) : 0) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 55, 80, 105, 130 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 120, 170, 220 }[level] + 0.75 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Taric", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 80, 120, 160, 200 }[level] + 0.2 * source.Armor }, //E - min damage new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 70, 100, 130, 160 }[level] + 0.2 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "TahmKench", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.7 * source.AbilityPower() }, //W - Devour new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => target is Obj_AI_Minion ? new double[] { 400, 450, 500, 550, 600 }[level] : new double[] { 0.20, 0.23, 0.26, 0.29, 0.32 }[level] * 0.02 * source.AbilityPower() / 100 * target.MaxHealth }, //W - Regugitate new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 100, 150, 200, 250, 300 }[level] + 0.6 * source.AbilityPower() }, }); Spells.Add( "Teemo", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.8 * source.AbilityPower() }, //E - total new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 34, 68, 102, 136, 170 }[level] + 0.7 * source.AbilityPower() }, //E - onhit new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 20, 30, 40, 50 }[level] + 0.3 * source.AbilityPower() }, //R - total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 200, 325, 450 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "Thresh", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.5 * source.AbilityPower() }, //E - Active new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 65, 95, 125, 155, 185 }[level] + 0.4 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 400, 550 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Tristana", new List<DamageSpell> { //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 105, 130, 155, 180 }[level] + 0.5 * source.AbilityPower() }, //E - base damage new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 70, 80, 90, 100 }[level] + new double[] { 0.5, 0.65, 0.8, 0.95, 1.10 }[level] * source.FlatPhysicalDamageMod + 0.5 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 300, 400, 500 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Trundle", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 40, 60, 80, 100 }[level] + new[] { 0, 0.5, 0.1, 0.15, 0.2 }[level] * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - Total new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => (new double[] { 20, 24, 28 }[level] / 100 + 0.02 * source.AbilityPower() / 100) * target.MaxHealth }, }); Spells.Add( "Tryndamere", new List<DamageSpell> { //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 70, 100, 130, 160, 190 }[level] + 1.2 * source.FlatPhysicalDamageMod + 1 * source.AbilityPower() }, }); Spells.Add( "TwistedFate", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 110, 160, 210, 260 }[level] + 0.65 * source.AbilityPower() }, //W - Blue new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.AbilityPower() }, //W - Red new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 45, 60, 75, 90 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.AbilityPower() }, //W - Yellow new DamageSpell { Slot = SpellSlot.W, Stage = 2, DamageType = DamageType.Magical, Damage = (source, target, level) => new[] { 15, 22.5, 30, 37.5, 45 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.5 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 80, 105, 130, 155 }[level] + 0.5 * source.AbilityPower() }, }); Spells.Add( "Twitch", new List<DamageSpell> { //E - current stacks new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => target.GetVenomStacks() * (new double[] { 15, 20, 25, 30, 35 }[level] + 0.2 * source.AbilityPower() + 0.25 * source.FlatPhysicalDamageMod) + new double[] { 20, 35, 50, 65, 80 }[level] }, //E - per stack new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 15, 20, 25, 30, 35 }[level] + 0.2 * source.AbilityPower() + 0.25 * source.FlatPhysicalDamageMod + new double[] { 20, 35, 50, 65, 80 }[level] }, }); Spells.Add( "Udyr", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 80, 130, 180, 230 }[level] + (new double[] { 120, 130, 140, 150, 160 }[level] / 100) * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //R - per wave new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 25, 35, 45, 55 }[level] + 0.25 * source.AbilityPower() }, }); Spells.Add( "Urgot", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 40, 70, 100, 130 }[level] + 0.85 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 75, 130, 185, 240, 295 }[level] + 0.6 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Varus", new List<DamageSpell> { //Q - min new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 10, 47, 83, 120, 157 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //Q - max new DamageSpell { Slot = SpellSlot.Q, Stage = 1, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 15, 70, 125, 180, 235 }[level] + +1.6 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W - on hit new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 10, 14, 18, 22, 26 }[level] + 0.25 * source.AbilityPower() }, //W - per stack new DamageSpell { Slot = SpellSlot.W, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => (new[] { 2, 2.75, 3.5, 4.25, 5 }[level] / 100 + 0.02 * source.AbilityPower() / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 65, 100, 135, 170, 205 }[level] + 0.6 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 1 * source.AbilityPower() }, }); Spells.Add( "Vayne", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 35, 40, 45, 50 }[level] / 100 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.True, Damage = (source, target, level) => new double[] { 20, 30, 40, 50, 60 }[level] + (new double[] { 4, 5, 6, 7, 8 }[level] / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 45, 80, 115, 150, 185 }[level] + 0.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Veigar", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 125, 170, 215, 260 }[level] + 0.6 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 120, 170, 220, 270, 320 }[level] + 1 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 375, 500 }[level] + 0.8 * target.AbilityPower() + 1.0 * source.AbilityPower() }, }); Spells.Add( "Velkoz", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.6 * source.AbilityPower() }, //W - Max new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 30, 50, 70, 90, 110 }[level] + new double[] { 45, 75, 105, 135, 165 }[level] + 0.625 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 100, 130, 160, 190 }[level] + 0.5 * source.AbilityPower() }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 500, 700, 900 }[level] + 0.6 * source.AbilityPower() }, }); Spells.Add( "Vi", new List<DamageSpell> { //Q - min new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 50, 75, 100, 125, 150 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => (new[] { 4, 5.5, 7, 8.5, 10 }[level] / 100 + 0.01 * source.FlatPhysicalDamageMod / 35) * target.MaxHealth }, //E - extra new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 5, 20, 35, 50, 65 }[level] + 1.15 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) + 0.7 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 150, 300, 450 }[level] + 1.4 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Viktor", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 60, 80, 100, 120 }[level] + 0.2 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 115, 160, 205, 250 }[level] + 0.7 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 98, 161, 224, 287, 350 }[level] + 0.98 * source.AbilityPower() }, //R - summon damage new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.55 * source.AbilityPower() }, //R - per bolt new DamageSpell { Slot = SpellSlot.R, Stage = 1, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 15, 30, 45 }[level] + 0.1 * source.AbilityPower() }, }); Spells.Add( "Vladimir", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 125, 160, 195, 230 }[level] + 0.6 * source.AbilityPower() }, //W - max new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 135, 190, 245, 300 }[level] }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 85, 110, 135, 160 }[level] + 0.45 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 0.7 * source.AbilityPower() }, }); Spells.Add( "Volibear", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Physical, Damage = (source, target, level) => (new double[] { 80, 125, 170, 215, 260 }[level]) * ((target.MaxHealth - target.Health) / target.MaxHealth + 1) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 105, 150, 195, 240 }[level] + 0.6 * source.AbilityPower() }, //R - per bolt new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 115, 155 }[level] + 0.3 * source.AbilityPower() }, }); Spells.Add( "Warwick", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => Math.Max( new double[] { 75, 125, 175, 225, 275 }[level], new double[] { 8, 10, 12, 14, 16 }[level] / 100 * target.MaxHealth) + 1 * source.AbilityPower() }, //R - max new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 150, 250, 350 }[level] + 2 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Xerath", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 120, 160, 200, 240 }[level] + 0.75 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.6 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 110, 140, 170, 200 }[level] + 0.45 * source.AbilityPower() }, //R - per charge new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 190, 245, 300 }[level] + 0.43 * source.AbilityPower() }, }); Spells.Add( "XinZhao", new List<DamageSpell> { //Q - per attack new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 15, 30, 45, 60, 75 }[level] + 0.2 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 75, 175, 275 }[level] + 1 * source.FlatPhysicalDamageMod + 0.15 * target.Health }, }); Spells.Add( "Yasuo", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 20, 40, 60, 80, 100 }[level] + 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //E - min new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 90, 110, 130, 150 }[level] + 0.6 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 200, 300, 400 }[level] + 1.5 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Yorick", new List<DamageSpell> { //Q - extra new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 30, 60, 90, 120, 150 }[level] + 1.2 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 1 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 55, 85, 115, 145, 175 }[level] + 1 * source.FlatPhysicalDamageMod }, }); Spells.Add( "Zac", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 110, 150, 190, 230 }[level] + 0.5 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 55, 70, 85, 100 }[level] + (new double[] { 4, 5, 6, 7, 8 }[level] / 100 + 0.02 * source.AbilityPower() / 100) * target.MaxHealth }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 80, 130, 180, 230, 280 }[level] + 0.7 * source.AbilityPower() }, //R - per bounce new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 140, 210, 280 }[level] + 0.4 * source.AbilityPower() }, }); Spells.Add( "Zed", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 75, 115, 155, 195, 235 }[level] + 1 * source.FlatPhysicalDamageMod }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Physical, Damage = (source, target, level) => new double[] { 60, 90, 120, 150, 180 }[level] + 0.8 * source.FlatPhysicalDamageMod }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Physical, Damage = (source, target, level) => 1 * (source.BaseAttackDamage + source.FlatPhysicalDamageMod) }, }); Spells.Add( "Ziggs", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 75, 120, 165, 210, 255 }[level] + 0.65 * source.AbilityPower() }, //W new DamageSpell { Slot = SpellSlot.W, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.35 * source.AbilityPower() }, //E - per mine new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 40, 65, 90, 115, 140 }[level] + 0.3 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 250, 375, 500 }[level] + 0.9 * source.AbilityPower() }, }); Spells.Add( "Zilean", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 90, 145, 200, 260, 320 }[level] + 0.9 * source.AbilityPower() }, }); Spells.Add( "Zyra", new List<DamageSpell> { //Q new DamageSpell { Slot = SpellSlot.Q, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 70, 105, 140, 175, 210 }[level] + 0.65 * source.AbilityPower() }, //E new DamageSpell { Slot = SpellSlot.E, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 60, 95, 130, 165, 200 }[level] + 0.5 * source.AbilityPower() }, //R new DamageSpell { Slot = SpellSlot.R, DamageType = DamageType.Magical, Damage = (source, target, level) => new double[] { 180, 265, 350 }[level] + 0.7 * source.AbilityPower() }, }); #endregion }