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