private static void CastR(Obj_AI_Base target) { if (SpellSlot.R.IsReady() && target.IsValidTarget(SpellManager.R.Range) && Extensions.Distance(Util.myHero, ExpectedEndPosition, true) > Extensions.Distance(target, ExpectedEndPosition, true)) { var extended = ExpectedEndPosition + (ExpectedEndPosition - target.Position).Normalized() * SpellManager.RKick.Range * 0.5f; var realendpos = target.Position + (target.Position - Util.myHero.Position).Normalized() * SpellManager.RKick.Range; var info = realendpos.To2D().ProjectOn(target.Position.To2D(), extended.To2D()); if (info.IsOnSegment && Extensions.Distance(info.SegmentPoint, ExpectedEndPosition.To2D(), true) <= Math.Pow(SpellManager.RKick.Range * 0.5f, 2)) { SpellManager.CastR(target); } } }
private static void Interrupter_OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs e) { if (sender.IsValidTarget(TargetSelector.Range) && sender.IsEnemy && sender is AIHeroClient) { if (MenuManager.MiscMenu.GetCheckBoxValue("Interrupter")) { if (SpellSlot.R.IsReady()) { SpellManager.CastQ(sender); SpellManager.CastR(sender); GapCloseWithWard(sender); } } } }
private static void RFlash(AIHeroClient target) { if (SpellManager.FlashIsReady) { if (target.Distance(Util.MyHero, true) <= SpellManager.R.RangeSquared) { _allySelected = null; _positionSelected = EndPosition; _lastSetPositionTime = Game.Time; _lastRFlashInsec = Game.Time; TargetSelector.ForcedTarget = target; SpellManager.CastR(target); } } }
public static void Execute() { foreach (AIHeroClient enemy in EntityManager.Heroes.Enemies.Where(m => m.IsValidTarget(TargetSelector.Range) && m.HealthPercent < 40)) { var result = enemy.GetBestCombo(); if (result.IsKillable) { if (Menu.GetCheckBoxValue("Q") && result.CanKillWith(SpellSlot.Q)) { SpellManager.CastQ(enemy); } if (Menu.GetCheckBoxValue("E") && result.CanKillWith(SpellSlot.E)) { SpellManager.CastE(enemy); } if (Menu.GetCheckBoxValue("R") && SpellSlot.R.GetSpellDamage(enemy) >= enemy.TotalShieldHealth()) { SpellManager.CastR(enemy); } var custom = (Menu.GetCheckBoxValue("Q") && result.CanKillWith(SpellSlot.Q)) || (Menu.GetCheckBoxValue("E") && result.CanKillWith(SpellSlot.E)) || (Menu.GetCheckBoxValue("R") && result.CanKillWith(SpellSlot.R)); if (Menu.GetCheckBoxValue("W") && custom) { if (Menu.GetCheckBoxValue("Ward")) { Champion.GapCloseWithWard(enemy); } else { Champion.GapCloseWithoutWard(enemy); } } } if (Menu.GetCheckBoxValue("Ignite") && SpellManager.IgniteIsReady && Util.MyHero.GetSummonerSpellDamage(enemy, DamageLibrary.SummonerSpells.Ignite) >= enemy.Health) { SpellManager.Ignite.Cast(enemy); } if (Menu.GetCheckBoxValue("Smite") && SpellManager.CanUseSmiteOnHeroes && enemy.IsInSmiteRange() && Util.MyHero.GetSummonerSpellDamage(enemy, DamageLibrary.SummonerSpells.Smite) >= enemy.Health) { Util.MyHero.Spellbook.CastSpell(SpellManager.Smite.Slot, enemy); } } }
private static void Game_OnTick(EventArgs args) { TargetSelector.Range = 1000f; if (SpellSlot.Q.IsReady() && SpellSlot.Q.IsFirstSpell()) { TargetSelector.Range = 1300f; } if (SpellSlot.Q.IsReady() && !SpellSlot.Q.IsFirstSpell() && _Q.Target != null) { TargetSelector.Range = 1500f; } if (!Insec.IsActive) { var t = _R.BestHitR(MenuManager.MiscMenu.GetSliderValue("R.Hit")); if (MenuManager.MiscMenu.GetSliderValue("R.Hit") <= t.Item1) { SpellManager.CastR(t.Item2); } } }
public static void Execute() { if (IsReady || _R.IsRecentKick) { var target = TargetSelector.Target; if (target.IsValidTarget(WardManager.WardRange)) { if (Util.MyHero.IsInAutoAttackRange(target) && Champion.PassiveStack > 2 - Menu.GetSliderValue("Star.Stack")) { return; } if (Mode == 0 && Menu.GetCheckBoxValue("W") && Menu.GetCheckBoxValue("Star.Ward") && WardManager.CanWardJump && Insec.IsReady) { Insec.Execute(); } if (WardManager.IsTryingToJump) { return; } if (Menu.GetCheckBoxValue("Q") && SpellSlot.Q.IsReady()) { if (SpellSlot.Q.IsFirstSpell()) { switch (Mode) { case 0: SpellManager.CastQ1(target); break; case 1: if (target.HaveR()) { var pred = SpellManager.Q1.GetPrediction(target); if (!pred.CollisionObjects.Any()) { SpellManager.Q1.Cast(pred.CastPosition); } } break; } } else { if (!_R.IsRecentKick && !SpellSlot.R.IsReady()) { SpellManager.CastQ2(target); } } } if (Menu.GetCheckBoxValue("E") && SpellSlot.E.IsReady()) { if (!SpellSlot.R.IsReady()) { SpellManager.CastE(target); } } if (SpellSlot.R.IsReady()) { switch (Mode) { case 0: if (target.HaveQ() || _Q.WillHit(target)) { SpellManager.CastR(target); } break; case 1: if (SpellManager.CanCastQ1) { var endpos = target.Position + (target.Position - Util.MyHero.Position).Normalized() * SpellManager.RKick.Range; SpellManager.Q1.SourcePosition = endpos; SpellManager.Q1.RangeCheckSource = endpos; var pred = SpellManager.Q1.GetPrediction(target); if (pred.HitChancePercent >= 5) { SpellManager.CastR(target); } } break; } } } } else { NormalCombo.Execute(); } }
public static void Execute() { var target = TargetSelector.Target; if (target.IsValidTarget()) { if (Util.MyHero.HealthPercent <= Menu.GetSliderValue("Normal.W") && SpellSlot.W.IsReady()) { if (SpellSlot.W.IsFirstSpell()) { if (target.IsInAutoAttackRange(Util.MyHero) || Util.MyHero.IsInAutoAttackRange(target)) { SpellManager.CastW1(Util.MyHero); } } else { if (Util.MyHero.IsInAutoAttackRange(target)) { SpellManager.CastW2(); } } } if (Util.MyHero.IsInAutoAttackRange(target) && Champion.PassiveStack > 2 - Menu.GetSliderValue("Normal.Stack")) { return; } if (Menu.GetCheckBoxValue("Normal.R")) { SpellManager.CastR(target); } var t = _R.BestHitR(Menu.GetSliderValue("Normal.R.Hit")); if (Menu.GetSliderValue("Normal.R.Hit") <= t.Item1) { SpellManager.CastR(t.Item2); } if (Menu.GetCheckBoxValue("E")) { SpellManager.CastE(target); } if (Menu.GetCheckBoxValue("Q") && SpellSlot.Q.IsReady()) { if (SpellSlot.Q.IsFirstSpell()) { SpellManager.CastQ1(target); } else if (!target.HaveR()) { SpellManager.CastQ2(target); } } if (Menu.GetCheckBoxValue("W") && SpellSlot.W.IsReady() && !SpellSlot.W.IsFirstSpell() && Util.MyHero.IsInAutoAttackRange(target)) { SpellManager.CastW2(); } if (_Q.IsDashing || _Q.IsWaitingMissile || _Q.HasQ2Buff) { return; } if (Util.MyHero.Distance(target, true) > Math.Pow(500, 2) && Menu.GetCheckBoxValue("W") && SpellManager.CanCastW1) { if (Menu.GetCheckBoxValue("Normal.Ward")) { Champion.GapCloseWithWard(target); } else { Champion.GapCloseWithoutWard(target); } } } }