private static void PostAttack(object sender, PostAttackEventArgs Args) { if (E.Ready) { if (Orbwalker.Mode == OrbwalkingMode.Combo && ComboOption.UseE && ComboOption.GetBool("ComboEReset").Enabled) { var target = Args.Target as Obj_AI_Hero; if (target != null && !target.IsDead && target.IsValidTarget()) { ELogic(target); } } else if (Orbwalker.Mode == OrbwalkingMode.Laneclear && JungleClearOption.HasEnouguMana() && Args.Target.Type == GameObjectType.obj_AI_Minion && Args.Target.IsMob()) { if (JungleClearOption.UseE) { var mobs = GameObjects.EnemyMinions.Where(x => x.IsValidSpellTarget(800) && x.IsMob()) .Where(x => !x.Name.ToLower().Contains("mini")) .ToArray(); if (mobs.Any() && mobs.FirstOrDefault() != null) { ELogic(mobs.FirstOrDefault()); } } } } }
/// <summary> /// Called on do-cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Weaving(object sender, PostAttackEventArgs args) { var heroTarget = args.Target as Obj_AI_Hero; if (heroTarget == null) { return; } /// <summary> /// The Q Weaving Logic. /// </summary> if (SpellClass.Q.Ready && MenuClass.Spells["q"]["combo"].As <MenuBool>().Enabled) { SpellClass.Q.CastOnUnit(heroTarget); //SpellClass.Q.Cast(heroTarget); return; } /// <summary> /// The W Weaving Logic. /// </summary> if (SpellClass.W.Ready && !GameObjects.AllyHeroes.Any(a => !a.IsMe && a.SpellBook.IsAutoAttacking && a.IsValidTarget(SpellClass.W.Range, true)) && MenuClass.Spells["w"]["combo"].As <MenuBool>().Enabled) { SpellClass.W.Cast(heroTarget); } }
internal override void PostAttack(object sender, PostAttackEventArgs e) { var heroTarget = e.Target as Obj_AI_Hero; if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Combo)) { if (!RootMenu["combo"]["useQAA"].Enabled) { return; } Obj_AI_Hero hero = e.Target as Obj_AI_Hero; if (hero == null || !hero.IsValid || !hero.IsEnemy) { return; } Q.Cast(); } if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Mixed)) { if (!RootMenu["harass"]["useQAA"].Enabled) { return; } Obj_AI_Hero hero = e.Target as Obj_AI_Hero; if (hero == null || !hero.IsValid || !hero.IsEnemy) { return; } Q.Cast(); } }
public static void PostAttack(object sender, PostAttackEventArgs args) { if (!SpellManager.Q.Ready || Global.Player.ManaPercent() <= 35 || MenuConfig.LaneClear["Q"].Value == 2) { return; } if (Global.Player.CountEnemyHeroesInRange(900) == 0 && MenuConfig.LaneClear["Turret"].Enabled) { var t = args.Target as Obj_AI_Base; if (t != null && (t.Type == GameObjectType.obj_AI_Turret || t.Type == GameObjectType.obj_AI_Base)) { SpellManager.CastQ(t); } } if (MenuConfig.LaneClear["Q"].Value == 1) { return; } var minion = GameObjects.EnemyMinions.FirstOrDefault(x => x != Global.Orbwalker.GetOrbwalkingTarget() && x.Health <Global.Player.GetAutoAttackDamage(x) + Global.Player.GetSpellDamage(x, SpellSlot.Q) && x.Health> Global.Player.GetAutoAttackDamage(x) && x.IsValidAutoRange()); if (minion == null) { return; } SpellManager.Q.Cast(Game.CursorPos); }
/// <summary> /// Called OnPostAttack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Weaving(object sender, PostAttackEventArgs args) { var heroTarget = args.Target as Obj_AI_Hero; if (heroTarget == null || Invulnerable.Check(heroTarget)) { return; } /// <summary> /// The W Combo Weaving Logic. /// </summary> if (SpellClass.W.Ready && MenuClass.Spells["w"]["combo"].As <MenuBool>().Enabled) { SpellClass.W.Cast(); } /// <summary> /// The Q Combo Weaving Logic. /// </summary> if (SpellClass.Q.Ready && MenuClass.Spells["q"]["combo"].As <MenuBool>().Enabled) { SpellClass.Q.Cast(); } }
private static void PostAttack(object sender, PostAttackEventArgs Args) { if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0 || Orbwalker.Mode == OrbwalkingMode.None) { return; } switch (Args.Target.Type) { case GameObjectType.obj_AI_Hero: { if (Orbwalker.Mode == OrbwalkingMode.Combo) { if (ComboOption.UseW && W.Ready) { var target = (Obj_AI_Hero)Args.Target; if (!target.IsDead && target.IsValidAutoRange()) { var wPred = W.GetPrediction(target); if (wPred.HitChance >= HitChance.High) { W.Cast(wPred.UnitPosition); } } } } } break; } }
/// <summary> /// Called on post attack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Jungleclear(object sender, PostAttackEventArgs args) { var jungleTarget = args.Target as Obj_AI_Minion; if (jungleTarget == null || !Extensions.GetGenericJungleMinionsTargets().Contains(jungleTarget) || jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 2) { return; } /// <summary> /// The E Jungleclear Logic. /// </summary> if (SpellClass.E.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) && MenuClass.Spells["e"]["laneclear"].As <MenuSliderBool>().Enabled) { UtilityClass.CastOnUnit(SpellClass.E, jungleTarget); return; } /// <summary> /// The Q Jungleclear Logic. /// </summary> if (SpellClass.Q.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) && MenuClass.Spells["q"]["laneclear"].As <MenuSliderBool>().Enabled) { SpellClass.Q.Cast(jungleTarget); } }
private void OnPostAttack(object sender, PostAttackEventArgs args) { try { switch (Global.Orbwalker.Mode) { case OrbwalkingMode.Combo: Combo.PostAttack(sender, args); break; case OrbwalkingMode.Mixed: Harass.PostAttack(sender, args); break; case OrbwalkingMode.Laneclear: LaneClear.PostAttack(sender, args); JungleClear.PostAttack(sender, args); break; } } catch (Exception e) { Console.WriteLine(e); throw; } }
/// <summary> /// Called on post attack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Weaving(object sender, PostAttackEventArgs args) { var heroTarget = args.Target as Obj_AI_Hero; if (heroTarget == null) { return; } /// <summary> /// The Q Weaving Logic. /// </summary> if (SpellClass.Q.Ready && MenuClass.Spells["q"]["combo"].As <MenuBool>().Enabled) { SpellClass.Q.Cast(heroTarget); return; } /// <summary> /// The E Weaving Logic. /// </summary> if (SpellClass.E.Ready && MenuClass.Spells["e"]["combo"].As <MenuBool>().Enabled) { SpellClass.E.Cast(heroTarget); } }
public static void Orbwalker_OnPostAttack(Object sender, PostAttackEventArgs args) { //For post attack. If none, return. if (IOrbwalker.Mode == OrbwalkingMode.None) { return; } var dashPosition = Player.Position.Extend(Game.CursorPos, 350); if (!Q.Ready) // || !target.IsValidTarget(Player.AttackRange { return; } if (IOrbwalker.Mode == OrbwalkingMode.Laneclear) { if (!Champions.Kindred.MenuClass.JungleClearq["useq"].Enabled || Player.ManaPercent() < Champions.Kindred.MenuClass.JungleClearq["useqmana"].Value) { return; } } if (IOrbwalker.Mode == OrbwalkingMode.Mixed) { if (!Champions.Kindred.MenuClass.harassqmenu["useq"].Enabled || Player.ManaPercent() < Champions.Kindred.MenuClass.harassqmenu["useqmana"].Value) { return; } } //First Q logic - just Q to mouse Q.Cast(dashPosition); DelayAction.Queue(100 + Game.Ping, Orbwalker.ResetAutoAttackTimer); }
private static void ImplementationOnPostAttack(object enemy, PostAttackEventArgs events) { if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Combo) && Setup.Combo["W"].As <MenuBool>().Enabled&& Spells.W.Ready) { Obj_AI_Hero target = events.Target as Obj_AI_Hero; var pred = Spells.W.GetPrediction(target); if (target != null) { Spells.W.Cast(pred.CastPosition); } } if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Combo) && Setup.Combo["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready) { Spells.Q.Cast(); } if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Mixed) && Setup.Harass["W"].As <MenuBool>().Enabled&& Spells.W.Ready) { Obj_AI_Hero target = events.Target as Obj_AI_Hero; var pred = Spells.W.GetPrediction(target); if (target != null) { Spells.W.Cast(pred.CastPosition); } } if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Mixed) && Setup.Harass["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready) { Spells.Q.Cast(); } }
public void OnPostAttack(object sender, PostAttackEventArgs args) { var heroTarget = args.Target as Obj_AI_Hero; if (Orbwalker.Mode.Equals(OrbwalkingMode.Combo)) { if (!Menu["combo"]["procq"].Enabled) { return; } Obj_AI_Hero hero = args.Target as Obj_AI_Hero; if (hero == null || !hero.IsValid || !hero.IsEnemy) { return; } if (!Orbwalker.IsWindingUp) { if (hero.IsValidTarget(E.Range)) { E.Cast(); } } } }
public void OnPostAttack(object sender, PostAttackEventArgs args) { var heroTarget = args.Target as Obj_AI_Hero; if (Orbwalker.Mode.Equals(OrbwalkingMode.Combo)) { if (delayyyyyyyyyyyyyyyyyyy > Game.TickCount) { return; } if (!Menu["combo"]["waa"].Enabled) { return; } Obj_AI_Hero hero = args.Target as Obj_AI_Hero; if (hero == null || !hero.IsValid || !hero.IsEnemy) { return; } if (W.Cast()) { Orbwalker.ResetAutoAttackTimer(); } } }
/// <summary> /// Called on post attack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Weaving(object sender, PostAttackEventArgs args) { var heroTarget = args.Target as Obj_AI_Hero; if (heroTarget == null) { return; } /// <summary> /// The W Weaving Logic. /// </summary> if (SpellClass.W.Ready && heroTarget.GetRealBuffCount("TwitchDeadlyVenom") <= MenuClass.Spells["w"]["combo"].As <MenuSliderBool>().Value&& MenuClass.Spells["w"]["combo"].As <MenuSliderBool>().Enabled) { SpellClass.W.Cast(heroTarget); } /// <summary> /// The Q Weaving Logic. /// </summary> if (SpellClass.Q.Ready && MenuClass.Spells["q"]["combo"].As <MenuBool>().Enabled) { SpellClass.Q.Cast(); } }
/// <summary> /// Called on do-cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Buildingclear(object sender, PostAttackEventArgs args) { var target = args.Target; if (!target.IsBuilding()) { return; } /// <summary> /// The E BuildingClear Logic. /// </summary> if (SpellClass.E.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["buildings"]) && MenuClass.Spells["e"]["buildings"].As <MenuSliderBool>().Enabled) { SpellClass.E.Cast(UtilityClass.Player.Position.Extend(Game.CursorPos, 25f)); return; } /// <summary> /// The W BuildingClear Logic. /// </summary> if (SpellClass.W.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["buildings"]) && MenuClass.Spells["w"]["buildings"].As <MenuSliderBool>().Enabled) { SpellClass.W.Cast(Game.CursorPos); } }
/* public void OnInterruptableTarget(object sender, Events.InterruptableTargetEventArgs args) * { * if (Player.IsDead || !args.Sender.IsValidTarget()) * { * return; * } * if (args.Sender.IsValidTarget(Q.Range) * && Menu["misc"]["InterruptQ"].Enabled) * { * Q.CastOnUnit(args.Sender); * } * }*/ public void OnPostAttack(object sender, PostAttackEventArgs args) { var heroTarget = args.Target as Obj_AI_Hero; if (Orbwalker.Mode.Equals(OrbwalkingMode.Combo)) { if (!Menu["combo"]["waa"].Enabled) { return; } Obj_AI_Hero hero = args.Target as Obj_AI_Hero; if (hero == null || !hero.IsValid || !hero.IsEnemy) { return; } W.Cast(); } if (Orbwalker.Mode.Equals(OrbwalkingMode.Mixed)) { if (!Menu["harass"]["waa"].Enabled) { return; } Obj_AI_Hero hero = args.Target as Obj_AI_Hero; if (hero == null || !hero.IsValid || !hero.IsEnemy) { return; } W.Cast(); } }
public static void Orbwalker_OnPostAttack(Object sender, PostAttackEventArgs args) { //For post attack. If none, return. if (IOrbwalker.Mode == OrbwalkingMode.None) { return; } }
private static void PostAttack(object sender, PostAttackEventArgs Args) { if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0) { return; } switch (Args.Target.Type) { case GameObjectType.obj_AI_Hero: { var target = Args.Target as Obj_AI_Hero; if (target != null && target.IsValidTarget()) { if (Orbwalker.Mode == OrbwalkingMode.Combo) { if (ComboOption.UseQ && Q.Ready && target.IsValidTarget(Q.Range)) { Q.CastOnUnit(target); } else if (ComboOption.UseW && ComboOption.GetBool("ComboWAA").Enabled&& W.Ready && target.IsValidTarget(W.Range) && HasPassive(target)) { var wPred = W.GetPrediction(target); if (wPred.HitChance >= HitChance.High) { W.Cast(wPred.UnitPosition); } } } else if (Orbwalker.Mode == OrbwalkingMode.Mixed || Orbwalker.Mode == OrbwalkingMode.Laneclear && MyManaManager.SpellHarass) { if (HarassOption.HasEnouguMana()) { if (HarassOption.UseQ && Q.Ready && target.IsValidTarget(Q.Range)) { Q.CastOnUnit(target); } else if (HarassOption.UseW && W.Ready && target.IsValidTarget(W.Range) && HasPassive(target)) { var wPred = W.GetPrediction(target); if (wPred.HitChance >= HitChance.High) { W.Cast(wPred.UnitPosition); } } } } } } break; } }
/// <summary> /// Called on post attack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Jungleclear(object sender, PostAttackEventArgs args) { var jungleTarget = args.Target as Obj_AI_Minion; if (jungleTarget == null || !Extensions.GetGenericJungleMinionsTargets().Contains(jungleTarget) || jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 2) { return; } /// <summary> /// The E Jungleclear Logic. /// </summary> if (SpellClass.E.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) && MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled) { const int condemnPushDistance = 410; var playerPos = UtilityClass.Player.ServerPosition; var targetPos = jungleTarget.ServerPosition; var predPosition = SpellClass.E.GetPrediction(jungleTarget).CastPosition; for (var i = 60; i < condemnPushDistance; i += 10) { if (!targetPos.Extend(playerPos, -i).IsWall(true) || !targetPos.Extend(playerPos, -i - 60).IsWall(true)) { continue; } if (MenuClass.Spells["e"]["emode"].As <MenuList>().Value == 0) { if (!predPosition.Extend(playerPos, -i).IsWall(true) || !predPosition.Extend(playerPos, -i - 60).IsWall(true)) { continue; } } UtilityClass.CastOnUnit(SpellClass.E, jungleTarget); } } /// <summary> /// The Q Jungleclear Logic. /// </summary> if (SpellClass.Q.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) && MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled) { SpellClass.Q.Cast(Game.CursorPos); } }
private static void PostAttack(object sender, PostAttackEventArgs Args) { if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0) { return; } switch (Args.Target.Type) { case GameObjectType.obj_AI_Hero: { var target = Args.Target as Obj_AI_Hero; if (target != null && target.IsValidTarget()) { if (Orbwalker.Mode == OrbwalkingMode.Combo) { if (ComboOption.UseQ && Q.Ready) { if (!isWActive) { var qPred = Q.GetPrediction(target); if (qPred.HitChance >= HitChance.High) { Q.Cast(qPred.CastPosition); } } } if (ComboOption.UseW && W.Ready) { W.Cast(); } } else if (Orbwalker.Mode == OrbwalkingMode.Mixed || Orbwalker.Mode == OrbwalkingMode.Laneclear && MyManaManager.SpellHarass) { if (HarassOption.HasEnouguMana() && HarassOption.GetHarassTargetEnabled(target.ChampionName)) { if (HarassOption.UseQ && Q.Ready) { var qPred = Q.GetPrediction(target); if (qPred.HitChance >= HitChance.High) { Q.Cast(qPred.CastPosition); } } } } } } break; } }
/// <summary> /// Fires the Post Attack Event /// </summary> protected PostAttackEventArgs FirePostAttack(AttackableUnit target) { var args = new PostAttackEventArgs { Target = target }; this.PostAttack?.Invoke(Player, args); return(args); }
public void OnPostAttack(object sender, PostAttackEventArgs args) { switch (Global.Orbwalker.Mode) { case OrbwalkingMode.Laneclear: _jungleClear.OnPostAttack(args.Target); _laneClear.OnPostAttack(); break; } }
private static void Implementation_PostAttack(object sender, PostAttackEventArgs e) { if (sender is Obj_AI_Hero hero && e.Target is Obj_AI_Hero target) { if (hero.IsMe && target.GetPassiveMarks() == 1 && AutoIsCharged && SpellManager.W.Ready) { DelayAction.Queue(25, () => SpellManager.W.Cast()); } } }
private static void PostAttack(object sender, PostAttackEventArgs Args) { if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0) { return; } switch (Args.Target.Type) { case GameObjectType.obj_AI_Hero: { var target = Args.Target as Obj_AI_Hero; if (target != null && target.IsValidTarget()) { if (Orbwalker.Mode == OrbwalkingMode.Combo) { if (ComboOption.UseQ && Q.Ready) { Q.CastOnUnit(target); } else if (ComboOption.UseW && W.Ready) { W.Cast(); } } } } break; case GameObjectType.obj_AI_Minion: { var mob = Args.Target as Obj_AI_Minion; if (mob != null && mob.IsValidTarget() && mob.IsMob()) { if (Orbwalker.Mode == OrbwalkingMode.Laneclear) { if (JungleClearOption.HasEnouguMana()) { if (JungleClearOption.UseQ && Q.Ready) { Q.CastOnUnit(mob); } else if (JungleClearOption.UseW && W.Ready) { W.Cast(); } } } } } break; } }
/// <summary> /// Called on post attack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public void Jungleclear(object sender, PostAttackEventArgs args) { var jungleTarget = args.Target as Obj_AI_Minion; if (jungleTarget == null || !Extensions.GetGenericJungleMinionsTargets().Contains(jungleTarget) || jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 2) { return; } /// <summary> /// The E Jungleclear Logic. /// </summary> if (SpellClass.E.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["jungleclear"]) && MenuClass.Spells["e"]["jungleclear"].As <MenuSliderBool>().Enabled) { if (UtilityClass.JungleList.Contains(jungleTarget.UnitSkinName) && !Extensions.GetLegendaryJungleMinionsTargets().Contains(jungleTarget)) { var playerPos = UtilityClass.Player.ServerPosition; const int CondemnPushDistance = 410 / 10; for (var i = 1; i < 10; i++) { var predictedPos = SpellClass.E.GetPrediction(jungleTarget).UnitPosition; var targetPosition = jungleTarget.ServerPosition.Extend(playerPos, -CondemnPushDistance * i); var targetPositionExtended = jungleTarget.ServerPosition.Extend(playerPos, (-CondemnPushDistance + 1) * i); var predPosition = predictedPos.Extend(playerPos, -CondemnPushDistance * i); var predPositionExtended = predictedPos.Extend(playerPos, (-CondemnPushDistance + 1) * i); if (targetPosition.IsWall(true) && targetPositionExtended.IsWall(true) && predPosition.IsWall(true) && predPositionExtended.IsWall(true)) { SpellClass.E.CastOnUnit(jungleTarget); } } } } /// <summary> /// The Q Jungleclear Logic. /// </summary> if (SpellClass.Q.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) && MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled) { SpellClass.Q.Cast(Game.CursorPos); } }
private static void ImplementationOnPostAttack(object enemy, PostAttackEventArgs events) { if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Combo) && Setup.Combo["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready) { Obj_AI_Hero target = events.Target as Obj_AI_Hero; if (target != null) { var mode = Setup.Misc["Qm"].As <MenuList>().Value; if (mode == 0) { Spells.Q.Cast(TumbleLogic.SideQ(Player.Position.To2D(), target.Position.To2D(), 65).To3D()); } if (mode == 1) { Spells.Q.Cast(TumbleLogic.SafeQ(Player.Position.To2D(), target.Position.To2D(), 65).To3D()); } if (mode == 2) { Spells.Q.Cast(TumbleLogic.AggresiveQ(Player.Position.To2D(), target.Position.To2D(), 65).To3D()); } if (mode == 3) { Spells.Q.Cast(Game.CursorPos); } } } if (Orbwalker.Implementation.Mode.Equals(OrbwalkingMode.Mixed) && Setup.Harass["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready && Player.ManaPercent() < Setup.Harass["M"].As <MenuSlider>().Value) { Obj_AI_Hero target = events.Target as Obj_AI_Hero; if (target != null) { var mode = Setup.Misc["Qm"].As <MenuList>().Value; if (mode == 0) { Spells.Q.Cast(TumbleLogic.SideQ(Player.Position.To2D(), target.Position.To2D(), 65).To3D()); } if (mode == 1) { Spells.Q.Cast(TumbleLogic.SafeQ(Player.Position.To2D(), target.Position.To2D(), 65).To3D()); } if (mode == 2) { Spells.Q.Cast(TumbleLogic.AggresiveQ(Player.Position.To2D(), target.Position.To2D(), 65).To3D()); } if (mode == 3) { Spells.Q.Cast(Game.CursorPos); } } } }
private static void PostAttack(object sender, PostAttackEventArgs Args) { Orbwalker.ForceTarget(null); if (Args.Target == null || Args.Target.IsDead || !Args.Target.IsValidTarget() || Args.Target.Health <= 0) { return; } switch (Args.Target.Type) { case GameObjectType.obj_AI_Hero: { if (Orbwalker.Mode == OrbwalkingMode.Combo) { var target = Args.Target as Obj_AI_Hero; if (target != null && target.IsValidTarget(E.Range)) { if (ComboOption.UseE && E.Ready && ComboOption.GetBool("ComboEOnlyAfterAA").Enabled) { E.CastOnUnit(target); } } } } break; case GameObjectType.obj_AI_Turret: case GameObjectType.obj_HQ: case GameObjectType.obj_Barracks: case GameObjectType.obj_BarracksDampener: case GameObjectType.obj_Building: { if (Orbwalker.Mode == OrbwalkingMode.Laneclear && MyManaManager.SpellFarm && LaneClearOption.HasEnouguMana(true)) { if (Me.CountEnemyHeroesInRange(800) == 0) { if (LaneClearOption.UseE && E.Ready) { E.CastOnUnit(Args.Target as Obj_AI_Base); if (LaneClearOption.UseQ && Q.Ready) { Q.Cast(); } } } } } break; } }
private static void ImplementationOnPostAttack(object o, PostAttackEventArgs e) { if (e.Target == null || !e.Target.IsValid) { return; } if (e.Target.Name == "Barrel") { var barrel = (Barrel)e.Target; barrel?.Decay(); } }
/// <summary> /// Called on postattack. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PostAttackEventArgs" /> instance containing the event data.</param> public static void OnPostAttack(object sender, PostAttackEventArgs args) { if (args.Target.IsBuilding()) { return; } if (MenuClass.Hydra != null) { switch (ImplementationClass.IOrbwalker.Mode) { case OrbwalkingMode.Combo: if (!MenuClass.Hydra["combo"].As <MenuBool>().Enabled) { return; } break; case OrbwalkingMode.Mixed: if (!MenuClass.Hydra["mixed"].As <MenuBool>().Enabled) { return; } break; case OrbwalkingMode.Laneclear: if (!MenuClass.Hydra["laneclear"].As <MenuBool>().Enabled) { return; } break; case OrbwalkingMode.Lasthit: if (!MenuClass.Hydra["lasthit"].As <MenuBool>().Enabled) { return; } break; } var hydraItems = new[] { ItemId.TitanicHydra, ItemId.RavenousHydra, ItemId.Tiamat }; var hydraSlot = UtilityClass.Player.Inventory.Slots.FirstOrDefault(s => hydraItems.Contains(s.ItemId)); if (hydraSlot != null) { var hydraSpellSlot = hydraSlot.SpellSlot; if (hydraSpellSlot != SpellSlot.Unknown && UtilityClass.Player.SpellBook.GetSpell(hydraSpellSlot).State == SpellState.Ready) { UtilityClass.Player.SpellBook.CastSpell(hydraSpellSlot); } } } }
public static void PostAttack(object sender, PostAttackEventArgs args) { switch (Global.Orbwalker.Mode) { case OrbwalkingMode.Combo: Combo.OnPostAttack(args.Target); break; case OrbwalkingMode.Laneclear: JungleClear.OnPostAttack(); break; } }