public static bool IsKillable(Obj_AI_Base target, bool check) { try { if (check) { if (target.Health < 100 && target is Obj_AI_Minion) { if (HealthPrediction.GetHealthPrediction(target, 250 + Game.Ping / 2) <= 0) { return(false); } } } var hero = target as Obj_AI_Hero; if (hero != null) { if (Invulnerable.HasBuff(hero, DamageType.Physical, false)) { return(false); } } return(GetDamage(target) > target.Health); // + target.AttackShield; } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } return(false); }
public static void Killsteal() { if (_menu == null || !_menu.Item(_menu.Name + ".enabled").GetValue <bool>()) { return; } try { var items = _menu.Item(_menu.Name + ".items").GetValue <bool>(); var summoners = _menu.Item(_menu.Name + ".summoners").GetValue <bool>(); if (!items && !summoners) { return; } foreach (var enemy in GameObjects.EnemyHeroes.Where( e => e.Distance(ObjectManager.Player) <= MaxRange && !Invulnerable.HasBuff(e))) { var itemDamage = items ? ItemManager.CalculateComboDamage(enemy) - 20 : 0; var summonerDamage = summoners ? SummonerManager.CalculateComboDamage(enemy) - 10 : 0; if (items && itemDamage > enemy.Health) { ItemManager.UseComboItems(enemy); } else if (summoners && summonerDamage > (enemy.Health + enemy.HPRegenRate * 3)) { SummonerManager.UseComboSummoners(enemy); } else if (items && summoners && (summonerDamage + itemDamage) > (enemy.Health + enemy.HPRegenRate * 3)) { ItemManager.UseComboItems(enemy); SummonerManager.UseComboSummoners(enemy); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
public static void UseFleeItems() { if (_menu == null || !_menu.Item(_menu.Name + ".enabled").GetValue <bool>()) { return; } try { foreach (var item in Items.Where( i => i.Flags.HasFlag(ItemFlags.Flee) && _menu.Item(_menu.Name + "." + i.Name + ".flee").GetValue <bool>() && i.Item.IsOwned() && i.Item.IsReady() && i.Item.IsOwned() && i.Item.IsReady() && ObjectManager.Player.CountEnemiesInRange(i.Range) >= _menu.Item(_menu.Name + "." + i.Name + ".min-enemies-range").GetValue <Slider>().Value&& ObjectManager.Player.HealthPercent <= _menu.Item(_menu.Name + "." + i.Name + ".player-health-below").GetValue <Slider>().Value&& ObjectManager.Player.HealthPercent >= _menu.Item(_menu.Name + "." + i.Name + ".player-health-above").GetValue <Slider>().Value)) { if (item.CastType != CastType.Self) { var lItem = item; var localItem = item; foreach (var enemy in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget() && !Invulnerable.HasBuff(t) && t.HealthPercent <= _menu.Item(_menu.Name + "." + lItem.Name + ".target-health-below") .GetValue <Slider>() .Value&& t.HealthPercent >= _menu.Item(_menu.Name + "." + lItem.Name + ".target-health-above") .GetValue <Slider>() .Value) .OrderByDescending( t => t.Position.Distance(ObjectManager.Player.Position, true) < Math.Pow(localItem.Range, 2))) { if (!Utils.IsStunned(enemy) && !Utils.IsSlowed(enemy)) { switch (localItem.CastType) { case CastType.Target: localItem.Item.Cast(enemy); break; case CastType.Position: var prediction = Prediction.GetPrediction( enemy, localItem.Delay, localItem.Radius, localItem.Speed); if (prediction.Hitchance >= HitChance.Medium) { localItem.Item.Cast(prediction.CastPosition); } break; } } } } else { if (ObjectManager.Player.CountEnemiesInRange(item.Range) > _menu.Item(_menu.Name + "." + item.Name + ".min-enemies-range").GetValue <Slider>().Value) { item.Item.Cast(); } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }