/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { /// <summary> /// The W Combo Logic. /// </summary> if (Vars.W.IsReady() && GameObjects.EnemyHeroes.Any( t => t.IsValidTarget() && t.Distance((Vector2)Orianna.GetBallPosition) < Vars.W.Range) && Vars.Menu["spells"]["w"]["combo"].GetValue <MenuBool>().Value) { Vars.W.Cast(); } /// <summary> /// The E Combo Logic. /// </summary> if (Vars.E.IsReady() && GameObjects.Player.Mana - Vars.E.Instance.SData.Mana > Vars.Q.Instance.SData.Mana + Vars.W.Instance.SData.Mana && Vars.Menu["spells"]["e"]["combo"].GetValue <MenuBool>().Value) { foreach (var ally in GameObjects.AllyHeroes.OrderBy(o => o.Health).Where(t => t.IsValidTarget(Vars.E.Range, false))) { var polygon = new Geometry.Rectangle( ally.ServerPosition, ally.ServerPosition.Extend( (Vector2)Orianna.GetBallPosition, ally.Distance((Vector2)Orianna.GetBallPosition)), Vars.E.Width); if ( GameObjects.EnemyHeroes.Any( t => t.IsValidTarget() && !Invulnerable.Check(t, DamageType.Magical, false) && !polygon.IsOutside((Vector2)t.ServerPosition))) { Vars.E.CastOnUnit(ally); } } } if (Bools.HasSheenBuff() && Targets.Target.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) || !Targets.Target.IsValidTarget() || Invulnerable.Check(Targets.Target, DamageType.Magical, false)) { return; } /// <summary> /// The Combo Q Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.IsValidTarget(Vars.Q.Range) && Vars.Menu["spells"]["q"]["combo"].GetValue <MenuBool>().Value) { if ((Vector2)Orianna.GetBallPosition != (Vector2)GameObjects.Player.ServerPosition && ((Vector2)Orianna.GetBallPosition).Distance((Vector2)Targets.Target.ServerPosition) > ((Vector2)Orianna.GetBallPosition).Distance((Vector2)GameObjects.Player.ServerPosition)) { if (Vars.E.IsReady() && Vars.Menu["spells"]["e"]["logical"].GetValue <MenuBool>().Value) { Vars.E.Cast(GameObjects.Player); } } else { Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).CastPosition); } } }
/// <summary> /// Fired when the game is updated. /// </summary> public void Jungleclear() { if (BallPosition == null) { return; } /// <summary> /// The Jungleclear W Logic. /// </summary> if (SpellClass.W.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["jungleclear"]) && MenuClass.Spells["w"]["jungleclear"].As <MenuSliderBool>().Enabled) { if (Extensions.GetGenericJungleMinionsTargets().Any(m => m.IsValidTarget(SpellClass.W.Width, false, true, (Vector3)BallPosition))) { SpellClass.W.Cast(); } } var jungleTarget = ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(m => Extensions.GetGenericJungleMinionsTargets().Contains(m)); if (jungleTarget == null || jungleTarget.GetRealHealth() < UtilityClass.Player.GetAutoAttackDamage(jungleTarget) * 3) { return; } /// <summary> /// The Jungleclear E 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) { var polygon = new Geometry.Rectangle( (Vector2)UtilityClass.Player.ServerPosition, (Vector2)UtilityClass.Player.ServerPosition.Extend((Vector3)BallPosition, UtilityClass.Player.Distance((Vector3)BallPosition)), SpellClass.E.Width); if (!polygon.IsOutside((Vector2)jungleTarget.ServerPosition)) { SpellClass.E.CastOnUnit(UtilityClass.Player); } } /// <summary> /// The Jungleclear Q Logic. /// </summary> if (SpellClass.Q.Ready && jungleTarget.IsValidTarget(SpellClass.Q.Range) && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["jungleclear"]) && MenuClass.Spells["q"]["jungleclear"].As <MenuSliderBool>().Enabled) { SpellClass.Q.GetPredictionInput(jungleTarget).From = (Vector3)BallPosition; SpellClass.Q.Cast(SpellClass.Q.GetPrediction(jungleTarget).CastPosition); } }
/// <summary> /// Fired when the game is updated. /// </summary> public void Laneclear() { if (BallPosition == null) { return; } /// <summary> /// The Laneclear W Logic. /// </summary> if (SpellClass.W.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.W.Slot, MenuClass.Spells["w"]["laneclear"]) && MenuClass.Spells["w"]["laneclear"].As <MenuSliderBool>().Enabled) { if (Extensions.GetEnemyLaneMinionsTargets().Count(m => m.IsValidTarget(SpellClass.W.Width, false, true, (Vector3)BallPosition)) >= MenuClass.Spells["w"]["customization"]["laneclear"].As <MenuSlider>().Value) { SpellClass.W.Cast(); } } /// <summary> /// The Laneclear E Logic. /// </summary> if (SpellClass.E.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.E.Slot, MenuClass.Spells["e"]["laneclear"]) && MenuClass.Spells["e"]["laneclear"].As <MenuSliderBool>().Enabled) { var polygon = new Geometry.Rectangle( (Vector2)UtilityClass.Player.ServerPosition, (Vector2)UtilityClass.Player.ServerPosition.Extend((Vector3)BallPosition, UtilityClass.Player.Distance((Vector3)BallPosition)), SpellClass.E.Width); if (Extensions.GetEnemyLaneMinionsTargets().Count(t => t.IsValidTarget() && !polygon.IsOutside((Vector2)t.ServerPosition)) >= MenuClass.Spells["e"]["customization"]["laneclear"].As <MenuSlider>().Value) { SpellClass.E.CastOnUnit(UtilityClass.Player); } } /// <summary> /// The Q Farmhelper Logic. /// </summary> if (SpellClass.Q.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellSlot.Q, MenuClass.Spells["q"]["farmhelper"]) && MenuClass.Spells["q"]["farmhelper"].As <MenuSliderBool>().Enabled) { foreach (var minion in Extensions.GetEnemyLaneMinionsTargetsInRange(SpellClass.Q.Range).Where(m => !m.IsValidTarget(UtilityClass.Player.GetFullAttackRange(m)))) { if (minion.GetRealHealth() < UtilityClass.Player.GetSpellDamage(minion, SpellSlot.Q)) { SpellClass.Q.GetPredictionInput(minion).From = (Vector3)BallPosition; SpellClass.Q.Cast(SpellClass.Q.GetPrediction(minion).CastPosition); } } } /// <summary> /// The Laneclear Q Logic. /// </summary> if (SpellClass.Q.Ready && UtilityClass.Player.ManaPercent() > ManaManager.GetNeededMana(SpellClass.Q.Slot, MenuClass.Spells["q"]["laneclear"]) && MenuClass.Spells["q"]["laneclear"].As <MenuSliderBool>().Enabled) { /* * var farmLocation = SpellClass.Q.GetLinearFarmLocation(Extensions.GetEnemyLaneMinionsTargets(), SpellClass.Q.Width); * if (farmLocation.MinionsHit >= MenuClass.Spells["q"]["customization"]["laneclear"].As<MenuSlider>().Value) * { * SpellClass.Q.Cast(farmLocation.Position); * } */ } }