public static void OnEndScene(EventArgs args) { if (MenuHandler.Config.Item("drawHp").GetValue <bool>()) { foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(ene => !ene.IsDead && ene.IsEnemy && ene.IsVisible)) { unit = enemy; drawDmg(MathHandler.getDamageToTarget(enemy), enemy.Health < MathHandler.getRealDamage(enemy) ? Color.Red : Color.Yellow); } } }
public static void Init() { if (MenuHandler.Config.Item("smite").GetValue <KeyBind>().Active) { var mob = GetNearest(ObjectManager.Player.ServerPosition); if (mob != null && MenuHandler.Config.Item(mob.SkinName).GetValue <bool>()) { if (mob.Health < MathHandler.getRealDamage(mob)) { SkillHandler.E.Cast(Kalista.packetCast); } } } }
internal static void castMinionE(Obj_AI_Base target) { if (ObjectManager.Get <Obj_AI_Hero>().Any( hero => hero.IsValidTarget(SkillHandler.E.Range) && hero.Buffs.FirstOrDefault(b => b.Name.ToLower() == "kalistaexpungemarker").Count >= 1 )) { List <Obj_AI_Base> minions = MinionManager.GetMinions(ObjectManager.Player.Position, SkillHandler.E.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health); foreach (var minion in minions) { if (MathHandler.getRealDamage(minion) * 0.9 > minion.Health) { SkillHandler.E.Cast(Kalista.packetCast); break; } } } }
public static void OnCombo() { if (MenuHandler.Config.Item("useItems").GetValue <KeyBind>().Active) { ItemHandler.useItem(); } if (MenuHandler.Config.Item("UseQAC").GetValue <bool>() || (ObjectManager.Get <Obj_AI_Hero>().Any( hero => hero.IsValidTarget(SkillHandler.E.Range + 400) && hero.Health < (MathHandler.getRealDamage(hero) - SkillHandler.Q.GetDamage(hero)) ))) { customQCast(SimpleTs.GetTarget(SkillHandler.Q.Range, SimpleTs.DamageType.Physical)); } if (SkillHandler.E.IsReady() && ((ObjectManager.Get <Obj_AI_Hero>().Any(hero => hero.IsValidTarget(SkillHandler.E.Range) && hero.Buffs.FirstOrDefault(b => b.Name.ToLower() == "kalistaexpungemarker").Count >= MenuHandler.Config.Item("minE").GetValue <Slider>().Value ) && MenuHandler.Config.Item("minEE").GetValue <bool>()) // auto e || (MenuHandler.Config.Item("UseEAC").GetValue <bool>() && ObjectManager.Get <Obj_AI_Hero>().Any(hero => hero.IsValidTarget(SkillHandler.E.Range) && hero.Health < MathHandler.getRealDamage(hero))) || (SkillHandler.Q.IsReady() && MenuHandler.Config.Item("UseEACSlow").GetValue <bool>() && ObjectManager.Get <Obj_AI_Hero>().Any(hero => hero.IsValidTarget(SkillHandler.E.Range) && ObjectManager.Player.Distance(hero) > (SkillHandler.E.Range - 110) && ObjectManager.Player.Distance(hero) < SkillHandler.E.Range && hero.CountEnemysInRange((int)SkillHandler.E.Range) <= MenuHandler.Config.Item("UseEACSlowT").GetValue <Slider>().Value ) ))) { SkillHandler.E.Cast(); } if (SkillHandler.E.IsReady()) { MathHandler.castMinionE(SimpleTs.GetTarget(SkillHandler.E.Range, SimpleTs.DamageType.Physical)); } }
public static void OnDraw(EventArgs args) { if (Kalista.drawings) { if (MenuHandler.Config.Item("JumpTo").GetValue <KeyBind>().Active) { DrawingHandler.getAvailableJumpSpots(); } Spell[] spellList = { SkillHandler.Q, SkillHandler.W, SkillHandler.E, SkillHandler.R }; foreach (var spell in spellList) { var menuItem = MenuHandler.Config.Item(spell.Slot + "Range").GetValue <Circle>(); if (menuItem.Active && spell.Level > 0) { Utility.DrawCircle(ObjectManager.Player.Position, spell.Range, menuItem.Color); } } bool drawHp = MenuHandler.Config.Item("drawHp").GetValue <bool>(); bool drawStacks = MenuHandler.Config.Item("drawStacks").GetValue <bool>(); if (drawHp || drawStacks) { int stacks; foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(ene => !ene.IsDead && ene.IsEnemy && ene.IsVisible)) { if (drawHp) { unit = enemy; drawDmg(MathHandler.getDamageToTarget(enemy), enemy.Health < MathHandler.getRealDamage(enemy) ? Color.Red : Color.Yellow); } if (drawStacks) { stacks = enemy.Buffs.FirstOrDefault(b => b.Name.ToLower() == "kalistaexpungemarker").Count; if (stacks > 0) { Drawing.DrawText(enemy.HPBarPosition.X, enemy.HPBarPosition.Y - 5, Color.Red, "E:" + stacks + "H:" + (int)enemy.Health + "/D:" + (int)MathHandler.getRealDamage(enemy), enemy); } } } } if (MenuHandler.Config.Item("drawESlow").GetValue <bool>()) { Utility.DrawCircle(ObjectManager.Player.Position, SkillHandler.E.Range - 110, Color.Pink); } } }
/** * @author Hellsing * */ public static void OnLaneClear() { if (MenuHandler.Config.Item("enableClear").GetValue <bool>())// && MenuHandler.Config.Item("useEwc").GetValue<bool>() && SkillHandler.E.IsReady()) { if (MenuHandler.Config.Item("wcQ").GetValue <bool>() && SkillHandler.Q.IsReady()) { var minions = ObjectManager.Get <Obj_AI_Minion>().Where(m => m.BaseSkinName.Contains("Minion") && m.IsValidTarget(SkillHandler.Q.Range)).ToList(); if (minions.Count >= 3) { minions.Sort((m1, m2) => m2.Distance(ObjectManager.Player, true).CompareTo(m1.Distance(ObjectManager.Player, true))); int bestHitCount = 0; PredictionOutput bestResult = null; foreach (var minion in minions) { var prediction = SkillHandler.Q.GetPrediction(minion); var targets = prediction.CollisionObjects; targets.Sort((t1, t2) => t1.Distance(ObjectManager.Player, true).CompareTo(t2.Distance(ObjectManager.Player, true))); targets.Add(minion); for (int i = 0; i < targets.Count; i++) { if (ObjectManager.Player.GetSpellDamage(targets[i], SpellSlot.Q) * 0.9 < targets[i].Health || i == targets.Count) { if (i >= 3 && (bestResult == null || bestHitCount < i)) { bestHitCount = i; bestResult = prediction; } break; } } } if (bestResult != null) { SkillHandler.Q.Cast(bestResult.CastPosition); } } } if (MenuHandler.Config.Item("wcE").GetValue <bool>() && SkillHandler.E.IsReady()) { List <Obj_AI_Base> minions = MinionManager.GetMinions(ObjectManager.Player.Position, SkillHandler.E.Range); if (minions.Count >= 3) { int conditionMet = 0; foreach (var minion in minions) { if (MathHandler.getRealDamage(minion) * 0.9 > minion.Health) { conditionMet++; } } if (conditionMet >= 3) { SkillHandler.E.Cast(true); } } IEnumerable <Obj_AI_Base> minionsBig = MinionManager.GetMinions(ObjectManager.Player.Position, SkillHandler.E.Range).Where(m => m.BaseSkinName.Contains("MinionSiege")); foreach (var minion in minionsBig) { if (MathHandler.getRealDamage(minion) > minion.Health) { SkillHandler.E.Cast(true); break; } } } } }