private static void Killsteal() { if (Spells._q.IsReady()) { // R range because auto-gapclose! (Yes, i'm smart. Give Contrib pls) var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie); foreach (var target in targets) { if (target.Health < Spells._q.GetDamage(target) && Logic.InQRange(target)) { Spells._q.Cast(target); } } } if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR) { var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range + Spells._e.Range) && !x.IsZombie); foreach (var target in targets) { if (target.Health < Spells._r.GetDamage(target) && !target.IsInvulnerable && (Player.Distance(target.Position) <= 1870) && (Player.Distance(target.Position) >= 1600)) { Spells._e.Cast(target); Utility.DelayAction.Add(60, () => Spells._r.Cast(target)); } } } if (Spells._w.IsReady()) { var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie); foreach (var target in targets) { if (target.Health < Spells._w.GetDamage(target) && Logic.InWRange(target)) { Spells._w.Cast(); } } } if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR) { var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie); foreach (var target in targets) { if (target.Health < Dmg.Rdame(target, target.Health) && !target.IsInvulnerable) { Spells._r.Cast(target.Position); } } } if (Spells.Ignite.IsReady()) { var target = TargetSelector.GetTarget(600f, DamageType.True); if (target.IsValidTarget(600f) && Dmg.IgniteDamage(target) >= target.Health) { Player.Spellbook.CastSpell(Spells.Ignite, target); } } }
private static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { var spellName = args.SData.Name; if (!sender.IsMe || !Orbwalking.IsAutoAttack(spellName)) { return; } if (args.Target is Obj_AI_Minion) { Lane.LaneLogic(); } var @base = args.Target as Obj_AI_Turret; if (@base != null) { if (@base.IsValid && args.Target != null && Spells._q.IsReady() && MenuConfig.LaneQ && Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear)) { Spells._q.Cast(@base); } } var hero = args.Target as AIHeroClient; if (hero == null) { return; } var target = hero; if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR) { if (target.Health < Dmg.Rdame(target, target.Health) + Player.GetAutoAttackDamage(target) && target.Health > Player.GetAutoAttackDamage(target)) { Spells._r.Cast(target.Position); } } if (Spells._w.IsReady()) { if (target.Health < Spells._w.GetDamage(target) + Player.GetAutoAttackDamage(target) && target.Health > Player.GetAutoAttackDamage(target)) { Spells._w.Cast(); } } if (Spells._q.IsReady()) { if (target.Health < Spells._q.GetDamage(target) + Player.GetAutoAttackDamage(target) && target.Health > Player.GetAutoAttackDamage(target)) { Spells._q.Cast(target); } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { if (Spells._e.IsReady()) { Spells._e.Cast(target.Position); } if (Spells._w.IsReady() && Logic.InWRange(target)) { Spells._w.Cast(); } if (Spells._q.IsReady()) { Logic.ForceItem(); Utility.DelayAction.Add(0, () => Logic.ForceCastQ(target)); } } if (MenuConfig.fastHKey) { if (HasTitan()) { CastTitan(); return; } if (Spells._w.IsReady() && Logic.InWRange(target)) { Logic.ForceItem(); Utility.DelayAction.Add(1, Logic.ForceW); Utility.DelayAction.Add(2, () => Logic.ForceCastQ(target)); } else if (Spells._q.IsReady()) { Logic.ForceItem(); Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target)); } else if (Spells._e.IsReady() && !Orbwalking.InAutoAttackRange(target) && !Logic.InWRange(target)) { Spells._e.Cast(target.Position); } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass)) { if (HasTitan()) { CastTitan(); return; } if (_qstack == 2 && Spells._q.IsReady()) { Logic.ForceItem(); Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target)); } } if (!MenuConfig.burstKey) { if (HasTitan()) { CastTitan(); return; } if (Spells._w.IsReady()) { Spells._w.Cast(target.Position); } if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR) { Logic.ForceItem(); Utility.DelayAction.Add(1, Logic.ForceR2); } else if (Spells._q.IsReady()) { Logic.ForceItem(); Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target)); } } }