public override void HarasMode() { AIHeroClient target; if (Q.UseOnHaras && Q.IsReady() && champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytoharas")) { target = TargetSelector.GetTarget(Q.Range, Q.DamageType); if (target != null) { Q.Cast(target); } } if (E.UseOnHaras && E.IsReady() && champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytoharas")) { target = TargetSelector.GetTarget(E.Range, E.DamageType); if (target != null) { E.Cast(); } } LastHitMode(); }
public override void LaneClearMode() { if (CheckPassive()) { return; } lock (lockObject) { if (Q.UseOnLaneClear && Q.IsReady() && Q.CanCast() && !CheckPassive() && HaveManaToLaneclear() && champion.CastExtendedQToLaneClear()) { ProcessSpell(); } if (W.UseOnLaneClear && W.IsReady() && W.CanCast() && !CheckPassive() && HaveManaToHaras()) { List <Obj_AI_Base> minions = MinionManager.GetMinions(W.Range).ToList(); MinionManager.FarmLocation farmLocation = W.GetCircularFarmLocation(minions); int minMinions = KoreanUtils.GetParamSlider(champion.MainMenu, "wcounthit"); if (farmLocation.MinionsHit >= minMinions && minions.Count >= minMinions) { if (W.Cast(farmLocation.Position)) { ProcessSpell(); } } } if (E.UseOnLaneClear && lucian.semiAutomaticE.Holding && E.IsReady() && E.CanCast() && !CheckPassive() && (E.Instance.SData.Mana.Equals(0) || (E.Instance.SData.Mana > 0 && HaveManaToHaras()))) { Obj_AI_Base target = MinionManager.GetMinions(E.Range + Orbwalking.GetRealAutoAttackRange(champion.Player)) .FirstOrDefault( minion => champion.Player.Distance(minion) > Orbwalking.GetRealAutoAttackRange(champion.Player) && Game.CursorPos.Distance(minion.Position) < champion.Player.Distance(minion)); if (target != null && lucian.semiAutomaticE.Cast(target)) { ProcessSpell(); champion.Orbwalker.ForceTarget(target); } } } if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear")) { HarasMode(); } }
public override void LaneClearMode() { if (E.IsReady() && E.UseOnLaneClear) { if (MinionManager.GetMinions(E.Range).Count >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoe")) { E.Cast(); } if (E.IsReady()) { if (MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral).Count > 0) { E.Cast(); } } } if (KoreanUtils.GetParamBool(champion.MainMenu, "saveqtofarm") && KoreanUtils.GetParamBool(champion.MainMenu, "useqtofarm")) { LastHitMode(); } else if (Q.IsReady() && Q.UseOnLaneClear) { Obj_AI_Base minion = MinionManager.GetMinions(Q.Range).OrderByDescending(x => x.MaxHealth).FirstOrDefault(); if (minion != null) { Q.Cast(minion); } } if (Q.IsReady() && Q.UseOnLaneClear) { Obj_AI_Base jungleMob = MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth) .FirstOrDefault(); if (jungleMob != null) { Q.Cast(jungleMob); } } if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear")) { HarasMode(); } }
private void LoadLambdaExpressions() { ParamName = s => KoreanUtils.ParamName(MainMenu, s); GetParamBool = s => KoreanUtils.GetParamBool(MainMenu, s); SetValueBool = (s, b) => KoreanUtils.SetValueBool(MainMenu, s, b); GetParamSlider = s => KoreanUtils.GetParamSlider(MainMenu, s); GetParamKeyBind = s => KoreanUtils.GetParamKeyBind(MainMenu, s); CanFarm = () => (!GetParamBool("supportmode")) || ((GetParamBool("supportmode")) && (Player.CountAlliesInRange(1500f) == 1)); CheckStun = () => Player.HasBuff("pyromania_particle"); SaveStun = () => (CheckStun() && (GetParamBool("savestunforcombo"))); }
public override void LaneClearMode() { if (!HaveManaToLaneclear()) { return; } if (spells.Q.UseOnLaneClear && spells.Q.IsReady() && spells.Q.CanCast()) { List <AIBaseClient> minions = MinionManager.GetMinions(champion.Player.Position, spells.Q.Range); MinionManager.FarmLocation farmLocation = spells.Q.GetCircularFarmLocation(minions); if (farmLocation.MinionsHit >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoq")) { spells.Q.Cast(farmLocation.Position); } } if (!HaveManaToLaneclear()) { return; } if (spells.W.UseOnLaneClear && spells.W.IsReady() && spells.W.CanCast()) { List <AIBaseClient> minions = MinionManager.GetMinions(champion.Player.Position, spells.W.Range); MinionManager.FarmLocation wFarmLocation = spells.W.GetCircularFarmLocation(minions); if (wFarmLocation.MinionsHit >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstow")) { spells.W.Cast(wFarmLocation.Position); } } if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear")) { HarasMode(); } }
public override void LaneClearMode() { if (Q.UseOnLaneClear && Q.IsReady() && champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytolaneclear")) { if (KoreanUtils.GetParamBool(champion.MainMenu, "saveqtofarm")) { LastHitMode(); } else { Q.Cast(MinionManager.GetMinions(Q.Range).FirstOrDefault()); } } if (E.UseOnLaneClear && E.IsReady() && champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytolaneclear") && MinionManager.GetMinions(E.Range).Count >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoe")) { E.Cast(); } }
public static bool CastExtendedQToLaneClear(this CommonChampion lucian) { if (!ExtendedQIsReady(lucian, true) || !lucian.Spells.Q.UseOnLaneClear) { return(false); } AdvancedQ.SetSkillshot(0.55f, 75f, float.MaxValue, false, SkillshotType.SkillshotLine); List <Obj_AI_Base> minionsBase = MinionManager.GetMinions( lucian.Player.Position, AdvancedQ.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth); if (minionsBase.Count == 0) { return(false); } Spell q = lucian.Spells.Q; foreach (Obj_AI_Base minion in minionsBase.Where(x => q.IsInRange(x))) { if (AdvancedQ.CountHits(minionsBase, minion.Position) >= KoreanUtils.GetParamSlider(lucian.MainMenu, "qcounthit")) { q.CastOnUnit(minion); Orbwalking.ResetAutoAttackTimer(); return(true); } } return(false); }
private void Game_OnUpdate(EventArgs args) { if (!KoreanUtils.GetParamBool(Vladimir.MainMenu, "autostackeactive")) { return; } if (Vladimir.Player.IsRecalling() || Vladimir.Player.InFountain()) { return; } if (Vladimir.Player.HealthPercent < KoreanUtils.GetParamSlider(Vladimir.MainMenu, "autostackelimit") || Math.Round(Vladimir.Player.HPRegenRate * 5, 0) < KoreanUtils.GetParamSlider(Vladimir.MainMenu, "autostackehealthregen")) { return; } if (NextCicleOn <= Game.Time) { Utility.DelayAction.Add(100, () => E.Cast()); } }
public bool HaveManaToLaneclear() { return(champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "manalimittolaneclear")); }
//Maybe next feature //private bool IsJungleMob(Obj_AI_Base target) //{ // return (target.BaseSkinName.ToLowerInvariant() == "sru_blue" // || target.BaseSkinName.ToLowerInvariant() == "sru_gromp" // || target.BaseSkinName.ToLowerInvariant() == "sru_murkwolf" // || target.BaseSkinName.ToLowerInvariant() == "sru_razorbeak" // || target.BaseSkinName.ToLowerInvariant() == "sru_baron" // || target.BaseSkinName.ToLowerInvariant() == "sru_dragon" // || target.BaseSkinName.ToLowerInvariant() == "sru_red" // || target.BaseSkinName.ToLowerInvariant() == "sru_crab" // || target.BaseSkinName.ToLowerInvariant() == "sru_krug"); //} public bool HaveManaToHaras() { return(champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "manalimittoharas")); }
public override void ComboMode() { Obj_AI_Hero target; if (R.IsReady() && R.UseOnCombo) { int minEnemiesToR = KoreanUtils.GetParamSlider(champion.MainMenu, "minenemiestor"); if (minEnemiesToR == 1) { target = TargetSelector.GetTarget(R.Range, R.DamageType); if (target != null) { spells.R.Cast(target.Position); } } else { foreach (PredictionOutput pred in ObjectManager.Get <Obj_AI_Hero>() .Where(x => x.IsValidTarget(spells.R.Range)) .Select(x => spells.R.GetPrediction(x, true)) .Where(pred => pred.Hitchance >= HitChance.High && pred.AoeTargetsHitCount >= minEnemiesToR) ) { spells.R.Cast(pred.CastPosition); } } if (R.IsReady() && ((Q.UseOnCombo && Q.IsReady()) || !Q.UseOnCombo)) { target = TargetSelector.GetTarget(R.Range, R.DamageType); if (target != null) { float totalDamage = R.GetDamage(target) + Q.GetDamage(target) * 1.12f + E.GetDamage(target) * 1.25f * (E.Instance.Ammo + 1) * 1.12f; if (totalDamage > target.Health && totalDamage * 0.7f < target.Health) { R.Cast(target.Position); } } } } if (E.IsReady() && E.UseOnCombo) { target = TargetSelector.GetTarget(E.Range, E.DamageType); if (target != null) { E.Cast(); } } if (Q.IsReady() && Q.UseOnCombo) { target = TargetSelector.GetTarget(Q.Range, Q.DamageType); if (target != null) { Q.Cast(target); } } if (W.IsReady() && W.UseOnCombo) { if (HeroManager.Enemies.Any(enemy => enemy.Distance(champion.Player) < 180 && !enemy.IsDead)) { W.Cast(); } } }