private static void Evading(Obj_AI_Base sender) { var skillshot = Evade.SkillshotAboutToHit(sender, 50) .Where(i => i.CanDodge) .OrderByDescending(i => i.DangerLevel) .ToList(); if (skillshot.Count == 0) { return; } var zedW2 = EvadeSpellDatabase.Spells.FirstOrDefault(i => i.Enable && i.IsReady && i.Slot == SpellSlot.W); if (zedW2 != null && wShadow.IsValid() && !Evade.IsAboutToHit(wShadow, 30) && (!wShadow.IsUnderEnemyTurret() || MainMenu["Evade"]["Spells"][zedW2.Name]["WTower"]) && skillshot.Any(i => i.DangerLevel >= zedW2.DangerLevel)) { sender.Spellbook.CastSpell(zedW2.Slot); return; } var zedR2 = EvadeSpellDatabase.Spells.FirstOrDefault( i => i.Enable && i.IsReady && i.Slot == SpellSlot.R && i.CheckSpellName == "zedr2"); if (zedR2 != null && rShadow.IsValid() && !Evade.IsAboutToHit(rShadow, 30) && (!rShadow.IsUnderEnemyTurret() || MainMenu["Evade"]["Spells"][zedR2.Name]["RTower"]) && skillshot.Any(i => i.DangerLevel >= zedR2.DangerLevel)) { sender.Spellbook.CastSpell(zedR2.Slot); } }
private static void Evading(Obj_AI_Base sender) { var skillshot = Evade.SkillshotAboutToHit(sender, 100).OrderByDescending(i => i.DangerLevel).ToList(); if (skillshot.Count == 0) { return; } var zedW2 = EvadeSpellDatabase.Spells.FirstOrDefault(i => i.Enable && i.IsReady && i.Slot == SpellSlot.W); if (zedW2 != null && wShadow.LSIsValid() && !Evade.IsAboutToHit(wShadow, 30) && (!wShadow.IsUnderEnemyTurret() || getCheckBoxItem(Config.evadeMenu, zedW2.Name + "Tower")) && skillshot.Any(i => i.DangerLevel >= zedW2.DangerLevel) && W.Cast()) { return; } var zedR2 = EvadeSpellDatabase.Spells.FirstOrDefault( i => i.Enable && i.IsReady && i.Slot == SpellSlot.R && i.CheckSpellName == "zedr2"); if (zedR2 != null && rShadow.LSIsValid() && !Evade.IsAboutToHit(rShadow, 30) && (!rShadow.IsUnderEnemyTurret() || getCheckBoxItem(Config.evadeMenu, zedR2.Name + "Tower")) && skillshot.Any(i => i.DangerLevel >= zedR2.DangerLevel)) { R.Cast(); } }
private static void TryEvading(List <Skillshot> hitBy, Vector2 to) { var dangerLevel = hitBy.Select(i => i.DangerLevel).Concat(new[] { 0 }).Max(); var zedR = EvadeSpellDatabase.Spells.FirstOrDefault( i => i.Enable && i.DangerLevel <= dangerLevel && i.IsReady && i.Slot == SpellSlot.R); if (zedR == null) { return; } if (Evade.IsAboutToHit(Player, zedR.Delay - MainMenu["Evade"]["Spells"][zedR.Name]["RDelay"])) { Player.Spellbook.CastSpell(zedR.Slot); } }