Exemplo n.º 1
0
 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);
         }
     }
 }
Exemplo n.º 2
0
 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);
             }
         }
     }
 }
Exemplo n.º 3
0
 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;
             }
         }
     }
 }
Exemplo n.º 4
0
        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));
            }
        }
Exemplo n.º 5
0
        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);
                }
            }
        }
Exemplo n.º 6
0
        /**
         * @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;
                        }
                    }
                }
            }
        }