private void InsecCombo() { CustomOrbwalk(targetObj); if (targetObj == null) { return; } if (GetInsecPos() != default(Vector3)) { if (SkillR.InRange(targetObj.Position) && (GetInsecPos(true).Distance(targetObj.Position) - GetInsecPos(true).Distance(Player.Position.To2D().Extend(targetObj.Position.To2D(), targetObj.Distance3D(Player) + 500).To3D())) / 500 > 0.7) { SkillR.CastOnUnit(targetObj, PacketCast()); return; } if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Position.Distance(GetInsecPos()) < 600 && (GetWardSlot() != null || GetWardSlot().Stacks > 0 || WardCasted)) { WardJump(GetInsecPos()); if (ItemBool("Insec", "Flash")) { InsecJumpCasted = true; } return; } if (ItemBool("Insec", "Flash") && FlashReady() && !InsecJumpCasted && !WardCasted) { var jumpObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillW.Range + i.BoundingRadius, false) && !(i is Obj_AI_Turret) && i.Position.Distance(GetInsecPos()) < 500).OrderBy(i => i.Position.Distance(GetInsecPos())); if (jumpObj.Count() > 0 && !JumpCasted) { foreach (var Obj in jumpObj) { if (Player.Position.Distance(GetInsecPos()) < Player.Distance3D(Obj) + Obj.Position.Distance(GetInsecPos()) && !FlyCasted) { if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne") { SkillW.CastOnUnit(Obj, PacketCast()); return; } } } } else if (Player.Position.Distance(GetInsecPos()) < 600 && !JumpCasted) { CastFlash(GetInsecPos()); return; } } } if (SkillQ.IsReady()) { if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position)) { var nearObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillQ.Range) && !(i is Obj_AI_Turret) && i.Position.Distance(GetInsecPos()) < 500 && !CanKill(i, SkillQ)).OrderBy(i => i.Position.Distance(GetInsecPos())); if (GetInsecPos() != default(Vector3) && nearObj.Count() > 0) { foreach (var Obj in nearObj) { SkillQ.CastIfHitchanceEquals(Obj, HitChance.VeryHigh, PacketCast()); } } else { if (ItemBool("Misc", "SmiteCol")) { if (!SmiteCollision(targetObj, SkillQ)) { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast()); } } else { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast()); } } } else if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && IsValid(targetObj, 1300) && (CanKill(targetObj, SkillQ, 1) || (!SkillR.IsReady() && !RCasted && KickCasted) || Player.Position.Distance((GetInsecPos() != default(Vector3)) ? GetInsecPos() : targetObj.Position) > 600 || !QCasted)) { SkillQ.Cast(PacketCast()); } else if (GetInsecPos() != default(Vector3) && ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => (i.HasBuff("BlindMonkQOne", true) || i.HasBuff("blindmonkqonechaos", true)) && IsValid(i, 1300) && i.Position.Distance(GetInsecPos()) < 500) != null) { SkillQ.Cast(PacketCast()); } } }
private void InsecCombo() { Orbwalk(targetObj); if (targetObj == null) { return; } Vector3 posJumpTo = default(Vector3); if (SkillR.IsReady() && (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex == 2 || (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2 && allyObj != null))) { var posKickTo = (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2) ? allyObj.Position : Game.CursorPos; posJumpTo = posKickTo + Vector3.Normalize(targetObj.Position - posKickTo) * (targetObj.Distance(posKickTo) + 250); if (SkillR.InRange(targetObj.Position)) { var posKick = Player.Position + Vector3.Normalize(targetObj.Position - Player.Position) * (targetObj.Distance(Player) + 250); var distKick = (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2) ? allyObj.Distance(targetObj) - allyObj.Distance(posKick) : Game.CursorPos.Distance(targetObj.Position) - Game.CursorPos.Distance(posKick); if (distKick > 0 && distKick / 250 > 0.7) { SkillR.CastOnUnit(targetObj, PacketCast); return; } } if (Config.Item(Name + "insecFlash").GetValue <bool>()) { if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Distance(posJumpTo) < 600 && GetWardSlot() != null) { WardJump(posJumpTo); InsecJumpCasted = true; return; } else if (FlashReady() && !InsecJumpCasted) { var Obj = ObjectManager.Get <Obj_AI_Base>().Where(i => !i.IsMe && i.IsAlly && !(i is Obj_AI_Turret) && i.Distance(Player) <= SkillW.Range + i.BoundingRadius && i.Distance(posJumpTo) < 550).OrderBy(i => i.Distance(posJumpTo)).FirstOrDefault(); if (Obj != null) { if (Player.Distance(posJumpTo) < 1000 && !FlyCasted) { if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && !JumpCasted) { SkillW.CastOnUnit(Obj, PacketCast); JumpCasted = true; Utility.DelayAction.Add(1000, () => JumpCasted = false); } if (SkillW.IsReady() && SkillW.Instance.Name != "BlindMonkWOne" && JumpCasted) { Utility.DelayAction.Add(400, () => { CastFlash(posJumpTo); SkillR.CastOnUnit(targetObj, PacketCast); }); return; } } } else if (!JumpCasted && Player.Distance(posJumpTo) < 600) { CastFlash(posJumpTo); return; } } } else if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Distance(posJumpTo) < 600) { WardJump(posJumpTo); return; } } if (SkillQ.IsReady()) { if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position)) { if (Config.Item(Name + "smite").GetValue <bool>() && SkillQ.GetPrediction(targetObj).Hitchance == HitChance.Collision) { if (!SmiteCollision(targetObj, SkillQ)) { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast); } } else { if (posJumpTo != default(Vector3) && SkillR.IsReady()) { var enemyObj = ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => i.IsValidTarget(SkillQ.Range) && i.Distance(posJumpTo) < 550 && SkillQ.GetPrediction(i).Hitchance >= HitChance.Medium && !CanKill(i, SkillQ)); SkillQ.CastIfHitchanceEquals((enemyObj != null) ? enemyObj : targetObj, (enemyObj != null) ? HitChance.Medium : HitChance.VeryHigh, PacketCast); } else { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast); } } } else { if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && targetObj.IsValidTarget(1300)) { if (CanKill(targetObj, SkillQ, 1) || (!SkillR.IsReady() && !RCasted && KickCasted) || Player.Distance(SkillR.IsReady() ? posJumpTo : targetObj.Position) > 600 || !QCasted) { SkillQ.Cast(PacketCast); } } else if (posJumpTo != default(Vector3) && SkillR.IsReady()) { if (ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(i => (i.HasBuff("BlindMonkQOne", true) || i.HasBuff("blindmonkqonechaos", true)) && i.IsValidTarget(1300) && i.Distance(posJumpTo) < 550) != null) { SkillQ.Cast(PacketCast); } } } } }
private void Harass() { if (targetObj == null) { CurHarassStage = HarassStage.Nothing; return; } switch (CurHarassStage) { case HarassStage.Nothing: CurHarassStage = HarassStage.Doing; break; case HarassStage.Doing: if (SkillQ.IsReady()) { if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position)) { if (ItemBool("Misc", "SmiteCol")) { if (!SmiteCollision(targetObj, SkillQ)) { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast()); } } else { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast()); } } else if ((targetObj.HasBuff("BlindMonkQOne", true) || targetObj.HasBuff("blindmonkqonechaos", true)) && IsValid(targetObj, 1300) && (CanKill(targetObj, SkillQ, 1) || (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne" && Player.Mana >= SkillW.Instance.ManaCost + (ItemBool("Harass", "E") && SkillE.IsReady() && SkillE.Instance.Name == "BlindMonkEOne" ? SkillQ.Instance.ManaCost + SkillE.Instance.ManaCost : SkillQ.Instance.ManaCost) && Player.Health * 100 / Player.MaxHealth >= ItemSlider("Harass", "Q2Above")))) { HarrasBackPos = Player.ServerPosition; SkillQ.Cast(PacketCast()); Utility.DelayAction.Add((int)((Player.Distance3D(targetObj) + (ItemBool("Harass", "E") && SkillE.IsReady() && SkillE.Instance.Name == "BlindMonkEOne" ? SkillE.Range : 0)) / SkillQ.Speed * 1000 - 100) * 2, () => CurHarassStage = HarassStage.Finish); } } if (ItemBool("Harass", "E") && SkillE.IsReady()) { if (SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position)) { SkillE.Cast(PacketCast()); } else if (targetObj.HasBuff("BlindMonkEOne", true) && IsValid(targetObj, 575)) { CurHarassStage = HarassStage.Finish; } } break; case HarassStage.Finish: if (SkillW.IsReady() && SkillW.Instance.Name == "BlindMonkWOne") { var jumpObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillW.Range + i.BoundingRadius, false) && !(i is Obj_AI_Turret)).OrderByDescending(i => i.Distance3D(Player)).OrderBy(i => ObjectManager.Get <Obj_AI_Turret>().Where(a => IsValid(a, float.MaxValue, false)).OrderBy(a => a.Distance3D(Player)).FirstOrDefault().Distance3D(i)); if (jumpObj.Count() > 0 && !JumpCasted) { foreach (var Obj in jumpObj) { SkillW.CastOnUnit(Obj, PacketCast()); } } else if (GetWardSlot() != null || GetWardSlot().Stacks > 0 || WardCasted) { WardJump(HarrasBackPos); } } else { if (HarrasBackPos != default(Vector3)) { HarrasBackPos = default(Vector3); } CurHarassStage = HarassStage.Nothing; } break; } }
private void NormalCombo() { if (targetObj == null) { return; } if (ItemBool("Combo", "Passive") && Player.HasBuff("BlindMonkFlurry") && Orbwalk.InAutoAttackRange(targetObj) && Orbwalk.CanAttack()) { return; } if (ItemBool("Combo", "E") && SkillE.IsReady()) { if (SkillE.Instance.Name == "BlindMonkEOne" && SkillE.InRange(targetObj.Position)) { SkillE.Cast(PacketCast()); } else if (targetObj.HasBuff("BlindMonkTempest") && SkillE2.InRange(targetObj.Position) && (Player.Distance3D(targetObj) > 450 || !ECasted)) { SkillE.Cast(PacketCast()); } } if (ItemBool("Combo", "Q") && SkillQ.IsReady()) { if (SkillQ.Instance.Name == "BlindMonkQOne" && SkillQ.InRange(targetObj.Position)) { if (ItemBool("Misc", "SmiteCol")) { if (!SmiteCollision(targetObj, SkillQ)) { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast()); } } else { SkillQ.CastIfHitchanceEquals(targetObj, HitChance.VeryHigh, PacketCast()); } } else if (targetObj.HasBuff("BlindMonkSonicWave") && SkillQ2.InRange(targetObj.Position)) { if (Player.Distance3D(targetObj) > 500 || CanKill(targetObj, SkillQ2, 1) || (targetObj.HasBuff("BlindMonkTempest") && SkillE.InRange(targetObj.Position) && !Orbwalk.InAutoAttackRange(targetObj)) || !QCasted) { SkillQ.Cast(PacketCast()); } } } if (ItemBool("Combo", "R") && ItemBool("Ultimate", targetObj.ChampionName) && SkillR.IsReady() && SkillR.InRange(targetObj.Position)) { if (CanKill(targetObj, SkillR) || (SkillR.GetHealthPrediction(targetObj) - SkillR.GetDamage(targetObj) + 5 <= GetQ2Dmg(targetObj, SkillR.GetDamage(targetObj)) && ItemBool("Combo", "Q") && SkillQ.IsReady() && targetObj.HasBuff("BlindMonkSonicWave"))) { SkillR.CastOnUnit(targetObj, PacketCast()); } } if (ItemBool("Combo", "W") && SkillW.IsReady()) { if (ItemBool("Combo", "WSurvive") || ItemBool("Combo", "WGap")) { if (SkillW.Instance.Name == "BlindMonkWOne") { if (ItemBool("Combo", "WSurvive") && Orbwalk.InAutoAttackRange(targetObj) && Player.HealthPercentage() <= ItemList("Combo", "WUnder")) { SkillW.Cast(PacketCast()); } else if (ItemBool("Combo", "WGap") && Player.Distance3D(targetObj) >= Orbwalk.GetAutoAttackRange() + 50) { var jumpObj = ObjectManager.Get <Obj_AI_Base>().Where(i => IsValid(i, SkillW.Range + i.BoundingRadius, false) && !(i is Obj_AI_Turret) && i.Distance3D(targetObj) <= Orbwalk.GetAutoAttackRange() + 50).OrderBy(i => i.Distance3D(targetObj)); if (jumpObj.Count() > 0 && !JumpCasted) { foreach (var Obj in jumpObj) { SkillW.CastOnUnit(Obj, PacketCast()); } } else if (ItemBool("Combo", "WGapWard") && Player.Distance3D(targetObj) <= SkillW.Range + Orbwalk.GetAutoAttackRange() + 50 && (GetWardSlot() != null || GetWardSlot().Stacks > 0 || WardCasted)) { WardJump(targetObj.Position); } } } else if (SkillE.InRange(targetObj.Position) && !Player.HasBuff("BlindMonkSafeguard") && !WCasted) { SkillW.Cast(PacketCast()); } } } if (ItemBool("Combo", "Item")) { UseItem(targetObj); } if (ItemBool("Combo", "Ignite")) { CastIgnite(targetObj); } }