/// <summary> /// Initializes a new instance of the <see cref="IreliaQ" /> class. /// </summary> /// <param name="graphGenerator"> /// The graph generator. /// </param> /// <param name="pathfinderModule"> /// The pathfinder module. /// </param> public IreliaQ( IGraphGenerator <AStarNode, AStarEdge <AStarNode> > graphGenerator, PathfinderModule pathfinderModule) { this.GraphGenerator = graphGenerator; this.PathfinderModule = pathfinderModule; }
/// <summary> /// Loads this instance. /// </summary> public override void Load() { var superParent = new SuperParent(this.DisplayName); var orbwalkerModule = new OrbwalkerModule(); orbwalkerModule.Load(); var graphGeneratorModule = new GraphGeneratorModule(null); var pathfinderModule = new PathfinderModule(); var damageCalculator = new DamageCalculatorParent(); //var ireliaP = new IreliaP(); var ireliaQ = new IreliaQ(graphGeneratorModule, pathfinderModule); graphGeneratorModule.IreliaQ = ireliaQ; var ireliaW = new IreliaW(); var ireliaE = new IreliaE(); var ireliaR = new IreliaR(); var aa = new AutoAttacks(); damageCalculator.Add(aa); damageCalculator.Add(ireliaQ); damageCalculator.Add(ireliaW); damageCalculator.Add(ireliaE); damageCalculator.Add(ireliaR); graphGeneratorModule.IreliaQ = ireliaQ; var spellInterrupterModule = new SpellInterrupterModule(new SpellInterrupter(ireliaE.Spell, sender => ireliaE.CanStun(sender))); var dashToMouseModule = new PathfindToMouseModule(ireliaQ); var spellParent = new SpellParent.SpellParent(); spellParent.Add(new List <Base> { ireliaQ, ireliaW, ireliaE, ireliaR, }); spellParent.Load(); var comboParent = new OrbwalkingParent( "Combo", orbwalkerModule.OrbwalkerInstance, Orbwalking.OrbwalkingMode.Combo); var laneClearParent = new OrbwalkingParent( "LaneClear", orbwalkerModule.OrbwalkerInstance, Orbwalking.OrbwalkingMode.LaneClear); var lastHitParent = new OrbwalkingParent( "LastHit", orbwalkerModule.OrbwalkerInstance, Orbwalking.OrbwalkingMode.LastHit, Orbwalking.OrbwalkingMode.Mixed, Orbwalking.OrbwalkingMode.LaneClear); var mixedParent = new OrbwalkingParent( "Mixed", orbwalkerModule.OrbwalkerInstance, Orbwalking.OrbwalkingMode.Mixed); var drawingParent = new Parent("Drawings"); comboParent.Add( new List <Base> { new Q(ireliaQ, damageCalculator).Guardian(new SpellMustBeReady(SpellSlot.Q)), new W(ireliaW, ireliaQ).Guardian(new SpellMustBeReady(SpellSlot.W)), new E(ireliaE).Guardian(new SpellMustBeReady(SpellSlot.E)).Guardian(new PlayerMustNotBeWindingUp()), new R(ireliaR, ireliaQ, damageCalculator).Guardian(new SpellMustBeReady(SpellSlot.R)) .Guardian(new PlayerMustNotBeWindingUp()) }); laneClearParent.Add( new List <Base> { new LaneClear.W(ireliaW).Guardian(new SpellMustBeReady(SpellSlot.W)), new LaneClear.E(ireliaE).Guardian(new SpellMustBeReady(SpellSlot.E)) .Guardian(new PlayerMustNotBeWindingUp()) }); lastHitParent.Add( new List <Base> { new LastHit.Q(ireliaQ).Guardian(new SpellMustBeReady(SpellSlot.Q)), new LastHit.E(ireliaE).Guardian(new SpellMustBeReady(SpellSlot.E)) .Guardian(new PlayerMustNotBeWindingUp()) }); mixedParent.Add( new List <Base> { new Q(ireliaQ, damageCalculator).Guardian(new SpellMustBeReady(SpellSlot.Q)), new W(ireliaW, ireliaQ).Guardian(new SpellMustBeReady(SpellSlot.W)), new Mixed.E(ireliaE).Guardian(new SpellMustBeReady(SpellSlot.E)) .Guardian(new PlayerMustNotBeWindingUp()) }); var module = new DamageDrawingParent("Damage Drawings"); const byte defaultAlpha = 50 * 255 / 100; module.Add( new List <IDamageDrawing> { new DamageDrawingChild("Auto-Attacks", aa.GetDamage) { Color = new Color(40, 175, 175) { A = defaultAlpha }, }, new DamageDrawingChild("Q", ireliaQ.GetDamage) { Color = new Color(25, 100, 125) { A = defaultAlpha } }, new DamageDrawingChild("W", ireliaW.GetDamage) { Color = new Color(40, 175, 175) { A = defaultAlpha } }, new DamageDrawingChild("E", ireliaE.GetDamage) { Color = new Color(255, 210, 95) { A = defaultAlpha } }, new DamageDrawingChild("R", ireliaR.GetDamage) { Color = new Color(240, 150, 75) { A = defaultAlpha } } }); var spellRangeParent = new Parent("Ranges"); spellRangeParent.Add( new List <Base> { new RangeDrawingChild(ireliaQ.Spell, "Q"), new RangeDrawingChild(ireliaE.Spell, "E"), new RangeDrawingChild(ireliaR.Spell, "R", true), }); drawingParent.Add(new List <Base> { spellRangeParent, module }); superParent.Add( new List <Base> { orbwalkerModule, spellParent, damageCalculator, pathfinderModule, graphGeneratorModule, comboParent, laneClearParent, lastHitParent, mixedParent, dashToMouseModule, spellInterrupterModule, drawingParent }); superParent.Load(); superParent.Menu.Style = FontStyle.Bold; superParent.Menu.Color = Color.Firebrick; }