private void Game_OnUpdate(EventArgs args) { if (zedMenu.GetParamBool("koreanzed.miscmenu.pot.active") && ObjectManager.Player.HealthPercent < zedMenu.GetParamSlider("koreanzed.miscmenu.pot.when") && !ObjectManager.Player.HasBuff("RegenerationPotion") && !ObjectManager.Player.InShop()) { ItemData.Health_Potion.GetItem().Cast(); } }
public bool CanHarass(List <ZedSpell> spellList) { float total = 0F; foreach (ZedSpell zedSpell in spellList) { total += zedSpell.ManaCost; } return((((ObjectManager.Player.Mana - total) / ObjectManager.Player.MaxMana) * 100) > zedMenu.GetParamSlider("koreanzed.harasmenu.saveenergy")); }
private void Harass() { actionQueue.ExecuteNextAction(harasQueue); shadows.Harass(); float maxRange = float.MaxValue; if (!energy.ReadyToHaras) { return; } List <Obj_AI_Hero> blackList = zedMenu.GetBlockList(BlockListType.Harass); if ((w.UseOnHarass && w.IsReady() && w.Instance.ToggleState == 0) && (player.HealthPercent > zedMenu.GetParamSlider("koreanzed.harasmenu.wusage.dontuselowlife") && HeroManager.Enemies.Count( hero => !hero.IsDead && !hero.IsZombie && player.Distance(hero) < 2000F) < zedMenu.GetParamSlider("koreanzed.harasmenu.wusage.dontuseagainst"))) { if (q.UseOnHarass) { if (q.UseOnHarass && q.IsReady() && (player.Mana > q.ManaCost + w.ManaCost)) { switch ((ShadowHarassTrigger)zedMenu.GetParamStringList("koreanzed.harasmenu.wusage.trigger")) { case ShadowHarassTrigger.MaxRange: maxRange = Math.Min(maxRange, q.Range + w.Range); break; case ShadowHarassTrigger.MaxDamage: maxRange = Math.Min(maxRange, w.Range + e.Range); break; } Obj_AI_Hero target = TargetSelector.GetTarget(maxRange, q.DamageType, true, blackList); if (target != null) { shadows.Cast(target); actionQueue.EnqueueAction(harasQueue, () => true, () => shadows.Harass(), () => false); } } } if (e.UseOnHarass && e.IsReady() && (player.Mana > e.ManaCost + w.ManaCost)) { maxRange = Math.Min(maxRange, e.Range + w.Range); Obj_AI_Hero target = TargetSelector.GetTarget(maxRange, e.DamageType, true, blackList); if (target != null) { shadows.Cast(target); actionQueue.EnqueueAction(harasQueue, () => true, () => shadows.Harass(), () => false); } } } if (q.UseOnHarass && energy.ReadyToHaras) { maxRange = Math.Min(maxRange, q.Range); Obj_AI_Hero target = TargetSelector.GetTarget(maxRange, q.DamageType, true, blackList); if (target != null) { PredictionOutput predictionOutput = q.GetPrediction(target); bool checkColision = zedMenu.GetParamBool("koreanzed.harasmenu.checkcollisiononq"); if (predictionOutput.Hitchance >= HitChance.High && (!checkColision || !q.GetCollision( player.Position.To2D(), new List <Vector2>() { predictionOutput.CastPosition.To2D() }).Any())) { q.Cast(predictionOutput.CastPosition); } } } if (e.UseOnHarass && energy.ReadyToHaras) { if (TargetSelector.GetTarget(e.Range, e.DamageType) != null) { e.Cast(); } } LastHit(); }
public void LaneClear(ActionQueue actionQueue, ActionQueueList laneClearQueue) { Obj_AI_Base shadow = GetShadows().FirstOrDefault(); if (!energy.ReadyToLaneClear || shadow == null) { return; } if (e.UseOnLaneClear && e.IsReady()) { int extendedWillHit = MinionManager.GetMinions(shadow.Position, e.Range).Count(); int shortenWillHit = MinionManager.GetMinions(e.Range).Count; int param = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useeif"); if (extendedWillHit >= param || shortenWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => true, () => e.Cast(), () => !e.IsReady()); //Console.WriteLine("shadow lc e 1"); return; } } if (q.UseOnLaneClear && q.IsReady()) { int extendedWillHit = 0; Vector3 extendedFarmLocation = Vector3.Zero; foreach (Obj_AI_Base objAiBase in MinionManager.GetMinions(shadow.Position, q.Range)) { var colisionList = q.GetCollision( shadow.Position.To2D(), new List <Vector2>() { objAiBase.Position.To2D() }, w.Delay); if (colisionList.Count > extendedWillHit) { extendedFarmLocation = colisionList.OrderByDescending(c => c.Distance(shadow.Position)).FirstOrDefault().Position; extendedWillHit = colisionList.Count; } } var shortenFarmLocation = q.GetLineFarmLocation(MinionManager.GetMinions(q.Range)); int shortenWillHit = shortenFarmLocation.MinionsHit; int param = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useqif"); if (CanCast && shadow.Position != Vector3.Zero && extendedWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => CanCast, () => Cast(shadow.Position), () => !CanCast); //Console.WriteLine("shadow lc w 2"); actionQueue.EnqueueAction( laneClearQueue, () => w.Instance.ToggleState != 0, () => q.Cast(extendedFarmLocation), () => !q.IsReady()); //Console.WriteLine("shadow lc q 3"); return; } else if (shortenWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => q.IsReady(), () => q.Cast(shortenFarmLocation.Position), () => !q.IsReady()); //Console.WriteLine("shadow lc q 4"); return; } } }