private void LaneJungClear() { var minionObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillE.Range) && (i is Obj_AI_Turret || i is Obj_AI_Minion)).OrderBy(i => i.MaxHealth); foreach (var Obj in minionObj) { if (SmiteReady() && Obj.Team == GameObjectTeam.Neutral) { if ((ItemBool("SmiteMob", "Baron") && Obj.Name.StartsWith("SRU_Baron")) || (ItemBool("SmiteMob", "Dragon") && Obj.Name.StartsWith("SRU_Dragon")) || (!Obj.Name.Contains("Mini") && ( (ItemBool("SmiteMob", "Red") && Obj.Name.StartsWith("SRU_Red")) || (ItemBool("SmiteMob", "Blue") && Obj.Name.StartsWith("SRU_Blue")) || (ItemBool("SmiteMob", "Krug") && Obj.Name.StartsWith("SRU_Krug")) || (ItemBool("SmiteMob", "Gromp") && Obj.Name.StartsWith("SRU_Gromp")) || (ItemBool("SmiteMob", "Raptor") && Obj.Name.StartsWith("SRU_Razorbeak")) || (ItemBool("SmiteMob", "Wolf") && Obj.Name.StartsWith("SRU_Murkwolf"))))) { CastSmite(Obj); } } if (ItemBool("Clear", "E") && SkillE.IsReady() && minionObj.Count(i => i is Obj_AI_Minion) > 0) { var posEFarm = SkillE.GetCircularFarmLocation(minionObj.Where(i => i is Obj_AI_Minion).ToList()); SkillE.Cast(posEFarm.MinionsHit >= 2 ? posEFarm.Position : minionObj.First(i => i is Obj_AI_Minion).Position.To2D(), PacketCast()); } if (ItemBool("Clear", "Q") && SkillQ.IsReady() && Player.Distance3D(Obj) <= Orbwalk.GetAutoAttackRange() + 50) { var DmgAA = Player.GetAutoAttackDamage(Obj) * Math.Floor(SkillQ.Instance.Cooldown / (1 / (Player.PercentMultiplicativeAttackSpeedMod * 0.638))); if (SkillQ.GetHealthPrediction(Obj) + 5 <= GetBonusDmg(targetObj) || SkillQ.GetHealthPrediction(Obj) + 5 > DmgAA + GetBonusDmg(Obj)) { Orbwalk.SetAttack(false); Player.IssueOrder(GameObjectOrder.AttackUnit, Obj); Orbwalk.SetAttack(true); break; } } } }
private void NormalCombo(string Mode) { if (targetObj == null) { return; } if (ItemBool(Mode, "W") && SkillW.IsReady() && SkillW.InRange(targetObj.Position) && (Mode == "Combo" || Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 100)) { SkillW.CastOnUnit(targetObj, PacketCast()); } if (ItemBool(Mode, "E") && SkillE.IsReady() && SkillE.InRange(targetObj.Position) && (Mode == "Combo" || Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 100)) { SkillE.Cast(targetObj.Position, PacketCast()); } if (ItemBool(Mode, "Q") && SkillQ.IsReady() && Player.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 50) { var DmgAA = Player.GetAutoAttackDamage(targetObj) * Math.Floor(SkillQ.Instance.Cooldown / (1 / (Player.PercentMultiplicativeAttackSpeedMod * 0.638))); if (SkillQ.GetHealthPrediction(targetObj) + 5 <= GetBonusDmg(targetObj) || SkillQ.GetHealthPrediction(targetObj) + 5 > DmgAA + GetBonusDmg(targetObj)) { Orbwalk.SetAttack(false); Player.IssueOrder(GameObjectOrder.AttackUnit, targetObj); Orbwalk.SetAttack(true); } } if (ItemBool(Mode, "Item") && Mode == "Combo" && Items.CanUseItem(Randuin) && Player.CountEnemysInRange(450) >= 1) { Items.UseItem(Randuin); } if (ItemBool(Mode, "Ignite") && Mode == "Combo") { CastIgnite(targetObj); } }
private void KillStealMob() { var Obj = ObjectManager.Get <Obj_AI_Minion>().Where(i => IsValid(i, SkillQ2.Range) && i.Team == GameObjectTeam.Neutral).FirstOrDefault(i => new string[] { "SRU_Baron", "SRU_Dragon", "SRU_Blue", "SRU_Red" }.Any(a => i.Name.StartsWith(a) && !i.Name.StartsWith(a + "Mini"))); CustomOrbwalk(Obj); if (Obj == null) { return; } if (SkillQ.IsReady() && SkillQ.GetHealthPrediction(Obj) - (SkillQ.Instance.Name == "BlindMonkQOne" ? SkillQ.GetDamage(Obj) : 0) - (SmiteReady() ? Player.GetSummonerSpellDamage(Obj, Damage.SummonerSpell.Smite) : 0) + 5 <= GetQ2Dmg(Obj, ((SkillQ.Instance.Name == "BlindMonkQOne") ? SkillQ.GetDamage(Obj) : 0) + (SmiteReady() ? Player.GetSummonerSpellDamage(Obj, Damage.SummonerSpell.Smite) : 0))) { if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(Obj.Position)) { SkillQ.CastIfHitchanceEquals(Obj, HitChance.Medium, PacketCast()); } else if (Obj.HasBuff("BlindMonkSonicWave")) { SkillQ.Cast(PacketCast()); if (SmiteReady()) { Utility.DelayAction.Add((int)((Player.Distance3D(Obj) - 760) / SkillQ.Speed * 1000 + 300), () => CastSmite(Obj, false)); } } } var nearObj = ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => IsValid(i, SkillQ2.Range) && !(i is Obj_AI_Turret) && i.HasBuff("BlindMonkSonicWave") && i.Distance3D(Obj) <= 760); if (SkillQ.IsReady() && SkillQ.Instance.Name != "BlindMonkQOne" && SmiteReady() && SkillQ.GetHealthPrediction(Obj) + 100 <= Player.GetSummonerSpellDamage(Obj, Damage.SummonerSpell.Smite) && nearObj != null) { SkillQ.Cast(PacketCast()); Utility.DelayAction.Add((int)((Player.Distance3D(nearObj) - 760) / SkillQ.Speed * 1000 + 300), () => CastSmite(Obj)); } if (SmiteReady()) { CastSmite(Obj); } }
private void LastHit() { if (!ItemBool("Misc", "QLastHit") || !SkillQ.IsReady()) { return; } foreach (var Obj in ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, Orbwalk.GetAutoAttackRange() + 50) && SkillQ.GetHealthPrediction(i) + 5 <= GetBonusDmg(i) && (i is Obj_AI_Minion || i is Obj_AI_Turret)).OrderBy(i => i.MaxHealth).OrderBy(i => i.Distance3D(Player))) { Orbwalk.SetAttack(false); Player.IssueOrder(GameObjectOrder.AttackUnit, Obj); Orbwalk.SetAttack(true); break; } }
private void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (Player.IsDead) { return; } if (sender.IsMe && Orbwalk.IsAutoAttack(args.SData.Name) && IsValid((Obj_AI_Base)args.Target) && SkillQ.IsReady()) { var Obj = (Obj_AI_Base)args.Target; var DmgAA = Player.GetAutoAttackDamage(Obj) * Math.Floor(SkillQ.Instance.Cooldown / (1 / (Player.PercentMultiplicativeAttackSpeedMod * 0.638))); if (Orbwalk.CurrentMode == Orbwalk.Mode.LastHit && ItemBool("Misc", "QLastHit") && SkillQ.GetHealthPrediction(Obj) + 5 <= GetBonusDmg(Obj) && (args.Target is Obj_AI_Minion || args.Target is Obj_AI_Turret)) { SkillQ.Cast(PacketCast()); } else if ((((Orbwalk.CurrentMode == Orbwalk.Mode.LaneClear || Orbwalk.CurrentMode == Orbwalk.Mode.LaneFreeze) && ItemBool("Clear", "Q") && (args.Target is Obj_AI_Minion || args.Target is Obj_AI_Turret)) || ((Orbwalk.CurrentMode == Orbwalk.Mode.Combo || Orbwalk.CurrentMode == Orbwalk.Mode.Harass) && ItemBool(Orbwalk.CurrentMode.ToString(), "Q") && args.Target is Obj_AI_Hero)) && (SkillQ.GetHealthPrediction(Obj) + 5 <= GetBonusDmg(Obj) || (!(args.Target is Obj_AI_Turret) && SkillQ.GetHealthPrediction(Obj) + 5 > DmgAA + GetBonusDmg(Obj)))) { SkillQ.Cast(PacketCast()); } } else if (sender.IsEnemy && ItemBool("Ultimate", "RSurvive") && SkillR.IsReady()) { if (args.Target.IsMe && ((Orbwalk.IsAutoAttack(args.SData.Name) && (Player.Health - sender.GetAutoAttackDamage(Player, true)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder")) || (args.SData.Name == "summonerdot" && (Player.Health - (sender as Obj_AI_Hero).GetSummonerSpellDamage(Player, Damage.SummonerSpell.Ignite)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder")))) { SkillR.Cast(PacketCast()); } else if ((args.Target.IsMe || (Player.Position.Distance(args.Start) <= args.SData.CastRange[0] && Player.Position.Distance(args.End) <= Orbwalk.GetAutoAttackRange())) && Damage.Spells.ContainsKey((sender as Obj_AI_Hero).ChampionName)) { for (var i = 3; i > -1; i--) { if (Damage.Spells[(sender as Obj_AI_Hero).ChampionName].FirstOrDefault(a => a.Slot == (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name, false) && a.Stage == i) != null) { if ((Player.Health - (sender as Obj_AI_Hero).GetSpellDamage(Player, (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name, false), i)) * 100 / Player.MaxHealth <= ItemSlider("Ultimate", "RUnder")) { SkillR.Cast(PacketCast()); } } } } } }
private void KillSteal() { if (Player.Mana < SkillQ.Instance.ManaCost + SkillW.Instance.ManaCost) { return; } foreach (var Obj in ObjectManager.Get <Obj_AI_Hero>().Where(i => IsValid(i, SkillQ.Range) && SkillQ.GetHealthPrediction(i) + 5 <= SkillQ.GetDamage(i) + GetBonusDmg(i) && i != targetObj).OrderBy(i => i.Health).OrderByDescending(i => i.Distance3D(Player))) { if (SkillW.IsReady()) { SkillW.Cast(PacketCast()); } if (SkillQ.IsReady() && Player.HasBuff("JaxEmpowerTwo")) { SkillQ.CastOnUnit(Obj, PacketCast()); } } }