/// <summary> /// Does KillSteal /// </summary> public static void KillSteal() { var useQ = Essentials.KillStealMenu["useQ"].Cast <CheckBox>().CurrentValue; var qPred = Essentials.KillStealMenu["qPred"].Cast <Slider>().CurrentValue; var manaManagerQ = Essentials.KillStealMenu["manaManagerQ"].Cast <Slider>().CurrentValue; if (useQ) { var target = EntityManager.Heroes.Enemies.Where( t => Program.Q.IsInRange(t) && t.IsValidTarget() && t.Health <= DamageLibrary.CalculateDamage(t, true, false, false, false)) .OrderByDescending(t => t.Health) .FirstOrDefault(); if (target != null && Program.Q.IsReady() && Player.Instance.ManaPercent >= manaManagerQ) { var pred = Program.Q.GetPrediction(target); if (pred != null && pred.HitChancePercent >= qPred) { Program.Q.Cast(pred.CastPosition); } } } }
/// <summary> /// Returns the card that should be picked in that scenario /// </summary> /// <param name="t">The Target</param> /// <returns>The Card that should be used.</returns> public static Cards MinionCardSelection(Obj_AI_Base t) { var card = Cards.None; var minionsaroundTarget = EntityManager.MinionsAndMonsters.EnemyMinions .Count( target => target.Distance(t) <= 200 && target.Health <= DamageLibrary.PredictWDamage(target, Cards.Red)); var monstersAroundTarget = EntityManager.MinionsAndMonsters.Monsters.Count( mob => mob.Distance(t) <= 200 && mob.Health <= DamageLibrary.PredictWDamage(mob, Cards.Red)); var enemyW = MiscMenu["enemyW"].Cast <Slider>().CurrentValue; var manaW = MiscMenu["manaW"].Cast <Slider>().CurrentValue; if (Player.Instance.ManaPercent < manaW) { card = Cards.Blue; return(card); } if (Player.Instance.ManaPercent >= manaW && t.IsMonster && monstersAroundTarget < enemyW) { card = Cards.Yellow; return(card); } if (Player.Instance.ManaPercent >= manaW && (minionsaroundTarget >= enemyW || monstersAroundTarget >= enemyW)) { card = Cards.Red; return(card); } return(card); }
/// <summary> /// Does LaneClear /// </summary> public static void LaneClear() { var useQ = Essentials.LaneClearMenu["useQ"].Cast <CheckBox>().CurrentValue; if (useQ) { var qMinion = EntityManager.MinionsAndMonsters.GetLaneMinions( EntityManager.UnitTeam.Enemy, Player.Instance.ServerPosition, Program.Q.Range).OrderBy(t => t.Health); var qPred = Essentials.LaneClearMenu["qPred"].Cast <Slider>().CurrentValue; var manaManagerQ = Essentials.LaneClearMenu["manaManagerQ"].Cast <Slider>().CurrentValue; if (Program.Q.IsReady() && Player.Instance.ManaPercent >= manaManagerQ) { var minionPrediction = EntityManager.MinionsAndMonsters.GetLineFarmLocation( qMinion, Program.Q.Width, (int)Program.Q.Range); if (minionPrediction.HitNumber >= qPred) { Program.Q.Cast(minionPrediction.CastPosition); } } } var useCard = Essentials.LaneClearMenu["useCard"].Cast <CheckBox>().CurrentValue; if (useCard) { var chooser = Essentials.LaneClearMenu["chooser"].Cast <ComboBox>().SelectedText; var minion = EntityManager.MinionsAndMonsters.GetLaneMinions( EntityManager.UnitTeam.Enemy, Player.Instance.ServerPosition, Player.Instance.AttackRange + 100).ToArray(); if (!minion.Any()) { return; } switch (chooser) { case "Smart": var redCardKillableMinions = minion.Count( target => target.Distance(minion.FirstOrDefault()) <= 200 && target.Health <= DamageLibrary.PredictWDamage(target, Cards.Red)); var selectedCard = Cards.None; if (selectedCard == Cards.None && Player.Instance.ManaPercent < Essentials.LaneClearMenu["manaW"].Cast <Slider>().CurrentValue) { selectedCard = Cards.Blue; } if (selectedCard == Cards.None && redCardKillableMinions >= Essentials.LaneClearMenu["enemyW"].Cast <Slider>().CurrentValue) { selectedCard = Cards.Red; } if (selectedCard != Cards.None) { SelectCard(minion.FirstOrDefault(), selectedCard); } break; case "Yellow": SelectCard(minion.FirstOrDefault(), Cards.Yellow); break; case "Red": SelectCard(minion.FirstOrDefault(), Cards.Red); break; case "Blue": SelectCard(minion.FirstOrDefault(), Cards.Blue); break; } } }