public override void OnLoad() { Q1 = new Spell.Skillshot(SpellSlot.Q, 400, SkillShotType.Circular, 0, 3000, 50, DamageType.Physical) { AllowedCollisionCount = int.MaxValue }; Q2 = new Spell.Skillshot(SpellSlot.Q, 700, SkillShotType.Circular, 0, 3000, 50, DamageType.Physical) { AllowedCollisionCount = int.MaxValue }; W = new Spell.Skillshot(SpellSlot.W, 750, SkillShotType.Linear, 500, 3200, 70, DamageType.Magical) { AllowedCollisionCount = int.MaxValue }; E = new Spell.Active(SpellSlot.E, 275, DamageType.Physical); R = new Spell.Targeted(SpellSlot.R, 500, DamageType.True); Q1.AddRawDamage(new RawDamage { PreCalculatedDamage = (() => { if (!Q1.IsLearned) { return(0); } var index = Q1.Level - 1; var dmg = new[] { 65f, 75f, 85f, 95f, 105f }[index]; var bonus = new[] { 0.95f, 1f, 1.05f, 1.1f, 1.15f }[index] *Player.Instance.FlatPhysicalDamageMod; return(dmg + bonus); }), Source = Player.Instance, Spell = Q1, Stage = 1 }); Q2.AddRawDamage(new RawDamage { PreCalculatedDamage = (() => { if (!Q1.IsLearned) { return(0); } var index = Q1.Level - 1; var dmg = new[] { 65f, 75f, 85f, 95f, 105f }[index]; var bonus = new[] { 0.95f, 1f, 1.05f, 1.1f, 1.15f }[index] *Player.Instance.FlatPhysicalDamageMod; return(dmg + bonus); }), Source = Player.Instance, Spell = Q2, Stage = 1 }); W.AddRawDamage(new RawDamage { PreCalculatedDamage = (() => { if (!W.IsLearned) { return(0); } var index = W.Level - 1; var dmg = new[] { 90f, 130f, 170f, 210f, 250f }[index]; var bonus = Player.Instance.TotalMagicalDamage; return(dmg + bonus); }), Source = Player.Instance, Spell = W, Stage = 1 }); E.AddRawDamage(new RawDamage { PreCalculatedDamage = (() => { if (!E.IsLearned) { return(0); } var index = E.Level - 1; var mod = new[] { 1.4f, 1.55f, 1.7f, 1.85f, 2f }[index]; var dmg = Player.Instance.TotalAttackDamage; return(dmg * mod); }), Source = Player.Instance, Spell = E, Stage = 1 }); Config.Init(); VitalManager.Init(); SpellBlocker.Init(); Orbwalker.OverrideOrbwalkPosition += this.OverrideOrbwalkPosition; Orbwalker.OnPostAttack += this.Orbwalker_OnPostAttack; Orbwalker.OnUnkillableMinion += this.Orbwalker_OnUnkillableMinion; Drawing.OnEndScene += Drawing_OnDraw; Player.OnIssueOrder += Player_OnIssueOrder; Spellbook.OnCastSpell += Spellbook_OnCastSpell; }
public override void OnLoad() { Q = new Spell.Active(SpellSlot.Q, 425, DamageType.Physical) { CastDelay = 750 }; W = new Spell.Active(SpellSlot.W, 100, DamageType.Physical) { CastDelay = 300 }; E = new Spell.Skillshot(SpellSlot.E, 510, SkillShotType.Cone, 250, int.MaxValue, 80, DamageType.Physical) { ConeAngleDegrees = 50 }; R = new Spell.Targeted(SpellSlot.R, 460, DamageType.True) { CastDelay = 250 }; new Config(); Q.AddRawDamage(new RawDamage { PreCalculatedDamage = () => { var dmgs = new[] { 20f, 35f, 50f, 65f, 80f }; var mods = new[] { 0.5f, 0.55f, 0.6f, 0.65f, 0.7f }; var scale = Player.Instance.TotalAttackDamage; var currentDmg = dmgs.GetCurrentDamage(mods, SpellSlot.Q, scale); return(currentDmg); }, Spell = Q, Source = Player.Instance, Stage = 1 }); W.AddRawDamage(new RawDamage { PreCalculatedDamage = () => Player.Instance.TotalAttackDamage * 0.4f, Spell = W, Source = Player.Instance, Stage = 1 }); R.AddRawDamage(new RawDamage { PreCalculatedDamage = () => { var index = R.Level - 1; if (index < 0) { return(0); } var baseDmg = new[] { 100f, 200f, 300f }[index]; var mod = 0.75f; var scale = Player.Instance.FlatPhysicalDamageMod; var currentDamage = baseDmg + (scale * mod); return(currentDamage); }, Spell = R, Source = Player.Instance, Stage = 1 }); Drawing.OnEndScene += this.Drawing_OnEndScene; Obj_AI_Base.OnProcessSpellCast += this.Obj_AI_Base_OnProcessSpellCast; Orbwalker.OverrideOrbwalkPosition += this.OverrideOrbwalkPosition; Orbwalker.OnPostAttack += this.Orbwalker_OnPostAttack; Gapcloser.OnGapcloser += this.Gapcloser_OnGapcloser; Dash.OnDash += this.Dash_OnDash; Interrupter.OnInterruptableSpell += this.Interrupter_OnInterruptableSpell; Spellbook.OnStopCast += this.Spellbook_OnStopCast; Obj_AI_Base.OnBuffGain += this.Obj_AI_Base_OnBuffGain; Orbwalker.OnUnkillableMinion += this.Orbwalker_OnUnkillableMinion; }