static void JungleClear_Human() { var Jungle_Q = Config.Item("Jungle.Q").GetValue <bool>(); var Jungle_W = Config.Item("Jungle.W").GetValue <bool>(); var Jungle_R = Config.Item("Jungle.R").GetValue <bool>(); var QLocation = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead && m.Distance(ObjectManager.Player.Position) < W2.Range).ToList(); var Qminion = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead && m.Distance(ObjectManager.Player.Position) < W2.Range).OrderBy(m => m.MaxHealth).LastOrDefault(); if (Qminion == null) { return; } if (Q.IsReady() && Jungle_Q) { Q.Cast(Qminion); } if (W.IsReady() && Jungle_W && Qminion.HealthPercent > 35 && !Qminion.IsMoving) { W.Cast(Qminion); } if (ObjectManager.Player.HealthPercent < 85 && E.IsReady()) { E.Cast(ObjectManager.Player); } if (ObjectManager.Player.HealthPercent < 85 && E.IsReady()) { return; } if (R.IsReady() && R_Manager.IsHunted(Qminion) && !Q.IsReady()) { R.Cast(); } if (R.IsReady() && !R_Manager.IsHunted(Qminion) && !Q.IsReady()) { R.Cast(); } var killableminions = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.Health < 1); killableminions.FirstOrDefault(); var closestminion = ObjectManager.Get <Obj_AI_Minion>().OrderBy(m => m.Distance(ObjectManager.Player.Position)).FirstOrDefault(); }
public static double Cougar_Q_Damage(Obj_AI_Base target) { if (Mighty.Q.Level == 0) { return(0); } var dmg = ObjectManager.Player.CalcDamage(target, Damage.DamageType.Magical, new[] { 4, 20, 50, 90 }[Mighty.R.Level - 1] +(float)(0.36 * ObjectManager.Player.FlatMagicDamageMod) + (float)(0.75 * (ObjectManager.Player.BaseAttackDamage + ObjectManager.Player.FlatPhysicalDamageMod))) * ((target.MaxHealth - target.Health) / target.MaxHealth * 1.5 + 1); if (R_Manager.IsHunted(target)) { dmg += dmg * 0.33; } return(dmg); }
static void Combo_Cougar() { //Main Target Selector, Use Spell with Highest Range for Range. var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); if (target == null || !target.IsValid) { return; //Important! Without checking if target is null it will spamm console errors. } var combo_Q = Config.Item("combat.Q2").GetValue <bool>(); var combo_W = Config.Item("combat.W2").GetValue <bool>(); var combo_E = Config.Item("combat.E2").GetValue <bool>(); var combo_R = Config.Item("combat.R2").GetValue <bool>(); if (Q2.IsReady() && target.IsValidTarget(ObjectManager.Player.AttackRange + 50) && combo_Q && !W.IsReady() && !E.IsReady()) { if (W.IsReady() && target.IsValidTarget(W2.Range / 2) && ObjectManager.Player.Distance(target) > 70 && Damages.Cougar_W_Damage(target) > target.Health && combo_W) { return; } if (E.IsReady() && target.IsValidTarget(E2.Range - 25) && combo_E && target.Health < Damages.Cougar_E_Damage(target)) { return; } if (Q2.IsReady() && target.Health < Damages.Cougar_Q_Damage(target)) { Q2.Cast(); Printconsole("Casted Takedown! - Reason: Targets gonna die yo"); } if (Q2.IsReady() && !W.IsReady() && !E.IsReady()) { Q2.Cast(); Printconsole("Casted Takedown! - Reason: No Spells CD's left"); } } if (target.IsValidTarget(W2.Range) && combo_W) { if (Q2.IsReady() && target.Health < Damages.Cougar_Q_Damage(target) && target.IsValidTarget(ObjectManager.Player.AttackRange)) { return; } if (R_Manager.IsHunted(target) && target.IsValidTarget(W2.Range)) { W2.Cast(target); Printconsole("Casted Pounce! - Reason: Target is Hunted and in Pounce [W] Range"); } if (target.IsValidTarget(W2.Range / 2) && !R_Manager.IsHunted(target) && ObjectManager.Player.Distance(target) > 150) { W2.Cast(target); Printconsole("Casted Pounce! - Reason: in Pounce [W] Range"); } if (target.Health > Damages.Cougar_W_Damage(target) && target.Health < Damages.Cougar_W_Damage(target) + Damages.Cougar_Q_Damage(target) && R_Manager.IsHunted(target) && Q.IsReady() && W.IsReady() && combo_Q && combo_W && ObjectManager.Player.Distance(target) > 150) { W2.Cast(target); Printconsole("Casted Pounce! - Reason: in Pounce [W+Q Combo]"); } } if (E2.IsReady() && target.IsValidTarget(E2.Range - 25) && combo_E) { if (E2.IsReady() && !W.IsReady()) { E2.Cast(target); Printconsole("Casted Swipe! - Reason: Target is Valid and in [E] Range"); } if (target.Health > Damages.Cougar_E_Damage(target) && target.Health < Damages.Cougar_E_Damage(target) + Damages.Cougar_Q_Damage(target) && Q.IsReady() && E.IsReady() && combo_Q && combo_E) { E2.Cast(target); Printconsole("Casted Swipe! Reason: [E/Q] Combo"); } } if (R.IsReady() && target.IsValidTarget(R.Range) && combo_R) { var qprediction = Q.GetPrediction(target); if (R_Manager.QhumanReady && qprediction.Hitchance >= QPrediction()) { if (W.IsReady() && R_Manager.IsHunted(target) && target.IsValidTarget(W2.Range) || Q.IsReady() && ObjectManager.Player.HasBuff("Takedown") && target.IsValidTarget(ObjectManager.Player.AttackRange + 20) || E2.IsReady() && target.Health < Damages.Cougar_E_Damage(target) && target.IsValidTarget(E2.Range - 25)) { return; } R.Cast(); Printconsole("Switched to Human Form! - Reason: Q is Ready && Prediction equals hitchance"); if (!W.IsReady() && !Q.IsReady() && !E.IsReady() && ObjectManager.Player.HealthPercent < 35) { R.Cast(); } } } }
//Main Combo Logic static void Combo_Human() { //Main Target Selector, Use Spell with Highest Range for Range. var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); if (target == null || !target.IsValid) { return; //Important! Without checking if target is null it will spamm console errors. } var combo_Q = Config.Item("combat.Q").GetValue <bool>(); var combo_W = Config.Item("combat.W").GetValue <bool>(); var combo_E = Config.Item("combat.E").GetValue <bool>(); var combo_R = Config.Item("combat.R").GetValue <bool>(); if (Q.IsReady() && target.IsValidTarget(Q.Range) && combo_Q) { var qprediction = Q.GetPrediction(target); if (Q.IsReady() && qprediction.Hitchance >= QPrediction()) { Q.Cast(target); Printconsole("Human [Q] Casted! Reason: Prediction equals Hitchance"); } } if (E.IsReady() && target.IsValidTarget(E.Range) && combo_E) { if (ObjectManager.Player.HealthPercent < 50) { E.Cast(ObjectManager.Player); } } if (R.IsReady() && target.IsValidTarget(W2.Range) && combo_R) { var qpred = Q.GetPrediction(target); if (ObjectManager.Player.HealthPercent < 90 && E.IsReady()) { E.Cast(ObjectManager.Player); } if (ObjectManager.Player.HealthPercent < 90 && E.IsReady()) { return; } if (R_Manager.IsHunted(target) && target.IsValidTarget(W2.Range) && W.Level >= 1) { R.Cast(); Printconsole("Switched to Cougar, Reason: W! - HUNTED"); } if (!R_Manager.IsHunted(target) && R_Manager.WcougarReady && target.IsValidTarget(W2.Range / 2 + target.BoundingRadius) && !Q.IsReady() && W.Level >= 1) { R.Cast(); Printconsole("Switched to Cougar, Reason: W! - Q AINT READY"); } if (!R_Manager.IsHunted(target) && R_Manager.WcougarReady && target.IsValidTarget(W2.Range / 2 + target.BoundingRadius) && W.Level >= 1) { R.Cast(); Printconsole("Switched to Cougar, Reason: W! - Q CAN'T HIT"); } if (W.Level < 1 && ObjectManager.Player.Distance(target.Position) < 150 && !Q.IsReady()) { R.Cast(); } } }
static void JungleClear_Cougar() { var jungle_Q2 = Config.Item("Jungle.Q2").GetValue <bool>(); var jungle_W2 = Config.Item("Jungle.W2").GetValue <bool>(); var jungle_E2 = Config.Item("Jungle.E2").GetValue <bool>(); var Jungle_R = Config.Item("Jungle.R").GetValue <bool>(); var Qminion = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead && m.Distance(ObjectManager.Player.Position) < W2.Range).OrderBy(m => m.MaxHealth).LastOrDefault(); var Minions = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead); var GetKillableMinions = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).Where(m => !m.IsDead && m != null && m.Distance(ObjectManager.Player.Position) < ObjectManager.Player.AttackRange + m.BoundingRadius && m.Health < ObjectManager.Player.GetAutoAttackDamage(m)); if (Q2.IsReady() && jungle_Q2) { foreach (var min in Minions.Where(m => m.Distance(ObjectManager.Player.Position) <= ObjectManager.Player.AttackRange + m.BoundingRadius && m != null)) { if (min == null) { return; } if (min.Health < Damages.Cougar_Q_Damage(min) && min.Health > ObjectManager.Player.GetAutoAttackDamage(min)) { Q2.Cast(); EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, min); } if (!W.IsReady() && !E.IsReady()) { Q2.Cast(); EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, min); } } } if (W2.IsReady() && jungle_W2) { if (Qminion.IsValidTarget(W2.Range / 2)) { W2.Cast(Qminion); } if (R_Manager.IsHunted(Qminion) && Qminion.IsValidTarget(W2.Range)) { W2.Cast(Qminion); } } if (E2.IsReady() && jungle_E2) { if (E2.IsReady() && Qminion.IsValidTarget(E2.Range)) { E2.Cast(Qminion); } } if (R.IsReady() && Jungle_R) { if (W2.IsReady() && Qminion.IsValidTarget(W2.Range / 2) || E2.IsReady() && Qminion.IsValidTarget(E2.Range) || Q.IsReady() && Qminion.IsValidTarget(ObjectManager.Player.AttackRange) || R_Manager.IsHunted(Qminion) && Qminion.IsValidTarget(W2.Range) && W.IsReady()) { return; } var qpred = Q.GetPrediction(Qminion); if (R_Manager.QhumanReady && Qminion.IsValidTarget(Q.Range)) { R.Cast(); } } }