Ejemplo n.º 1
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana())
            {
                if (JungleClearOption.UseQ && Q.IsReady())
                {
                    var mobs = GameObjects.Jungle.Where(x => x.IsValidTarget(Q.Range) && x.GetJungleType() != JungleType.Unknown).ToList();

                    if (mobs.Any())
                    {
                        var qFarm = Q.GetLineFarmLocation(mobs, 60);

                        if (qFarm.MinionsHit >= 2 || mobs.Any(x => x.GetJungleType() != JungleType.Small) && qFarm.MinionsHit >= 1)
                        {
                            Q.Cast(qFarm.Position);
                        }
                    }
                }

                if (JungleClearOption.UseW && W.IsReady())
                {
                    var Mob = GameObjects.Jungle.Where(x => x.IsValidTarget(Me.AttackRange + Me.BoundingRadius + 80) && x.GetJungleType() != JungleType.Unknown).ToList();

                    if (Mob.Count > 0)
                    {
                        if (Me.Mana >= W.Mana * 2 + Q.Mana * 2)
                        {
                            HumanizerCardSelect.StartSelecting(Mob.Count >= 2
                                ? HumanizerCards.Red
                                : HumanizerCards.Blue);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private static void JungleClear()
        {
            if (JungleClearOption.HasEnouguMana())
            {
                if (JungleClearOption.UseQ && Q.Ready)
                {
                    var mobs = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) && x.IsMob()).ToArray();

                    if (mobs.Any())
                    {
                        var qFarm = Q.GetSpellFarmPosition(mobs);

                        if (qFarm.HitCount >= 2 || mobs.Any(x => MobsName.Contains(x.UnitSkinName.ToLower())) && qFarm.HitCount >= 1)
                        {
                            Q.Cast(qFarm.CastPosition);
                        }
                    }
                }

                if (JungleClearOption.UseW && W.Ready)
                {
                    var Mob = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Me.AttackRange + Me.BoundingRadius + 80) && x.IsMob()).ToArray();

                    if (Mob.Length > 0)
                    {
                        if (Me.Mana >= W.GetBasicSpell().Cost * 2 + Q.GetBasicSpell().Cost * 2)
                        {
                            HumanizerCardSelect.StartSelecting(Mob.Length >= 2
                                ? HumanizerCards.Red
                                : HumanizerCards.Blue);
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private static void LaneClear()
        {
            if (LaneClearOption.HasEnouguMana())
            {
                if (LaneClearOption.UseQ && Q.IsReady())
                {
                    var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) && x.IsMinion()).ToList();

                    if (minions.Any())
                    {
                        var qFarm = Q.GetLineFarmLocation(minions, 60);

                        if (qFarm.MinionsHit >= LaneClearOption.GetSlider("LaneClearQCount").Value)
                        {
                            Q.Cast(qFarm.Position);
                        }
                    }
                }

                if (LaneClearOption.UseW && W.IsReady())
                {
                    var minions =
                        GameObjects.EnemyMinions.Where(
                            x => x.IsValidTarget(Me.AttackRange + Me.BoundingRadius + 80) && x.IsMinion()).ToList();

                    if (minions.Any())
                    {
                        var wFarm = FarmPrediction.GetBestCircularFarmLocation(minions.Select(x => x.Position.ToVector2()).ToList(),
                                                                               Me.AttackRange + Me.BoundingRadius + 80, 280);

                        if (LaneClearOption.GetBool("LaneClearWRed").Enabled&& wFarm.MinionsHit >= 3)
                        {
                            var min = minions.FirstOrDefault(x => x.Distance(wFarm.Position) <= 80);

                            if (min != null)
                            {
                                HumanizerCardSelect.StartSelecting(HumanizerCards.Red);

                                Orbwalker.ForceTarget = min;
                                LastForcusTime        = Variables.GameTimeTickCount;
                            }
                        }
                        else if (LaneClearOption.GetBool("LaneClearWBlue").Enabled)
                        {
                            var min = minions.FirstOrDefault(x => x.Health < Me.GetSpellDamage(x, SpellSlot.W) + Me.GetAutoAttackDamage(x));

                            if (min != null && min.InAutoAttackRange())
                            {
                                HumanizerCardSelect.StartSelecting(HumanizerCards.Blue);

                                Orbwalker.ForceTarget = min;
                                LastForcusTime        = Variables.GameTimeTickCount;
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 4
0
        private static void Auto()
        {
            if (Q.IsReady())
            {
                if (MiscOption.GetKey("Q", "SemiQ").Active)
                {
                    var target = MyTargetSelector.GetTarget(Q.Range);

                    if (target != null && target.IsValidTarget(Q.Range))
                    {
                        var qPred = Q.GetPrediction(target);

                        if (qPred.Hitchance >= HitChance.High)
                        {
                            Q.Cast(qPred.CastPosition);
                        }
                    }
                }

                if (MiscOption.GetBool("Q", "AutoQImmobile").Enabled)
                {
                    var target = GameObjects.EnemyHeroes.FirstOrDefault(x => x.IsValidTarget(Q.Range) && !x.CanMoveMent());

                    if (target != null && target.IsValidTarget(Q.Range))
                    {
                        Q.Cast(target.PreviousPosition);
                    }
                }
            }

            if (W.IsReady())
            {
                if (MiscOption.GetKey("CardSelect", "CardSelectYellow").Active)
                {
                    HumanizerCardSelect.Select = HumanizerCards.Yellow;
                    HumanizerCardSelect.StartSelecting(HumanizerCards.Yellow);
                }

                if (MiscOption.GetKey("CardSelect", "CardSelectBlue").Active)
                {
                    HumanizerCardSelect.Select = HumanizerCards.Blue;
                    HumanizerCardSelect.StartSelecting(HumanizerCards.Blue);
                }

                if (MiscOption.GetKey("CardSelect", "CardSelectRed").Active)
                {
                    HumanizerCardSelect.Select = HumanizerCards.Red;
                    HumanizerCardSelect.StartSelecting(HumanizerCards.Red);
                }
            }
        }
Ejemplo n.º 5
0
        //private static void OnGapcloser(AIHeroClient target, GapcloserArgs Args)
        //{
        //    if (target != null && target.IsValidTarget() && W.IsReady())
        //    {
        //        if (W.IsReady() && target.IsValidTarget(W.Range))
        //        {
        //            switch (Args.Type)
        //            {
        //                case SpellType.Melee:
        //                    if (target.IsValidTarget(target.AttackRange + target.BoundingRadius + 100) && !Args.HaveShield)
        //                    {
        //                        HumanizerCardSelect.StartSelecting(HumanizerCards.Yellow);

        //                        if (Me.HasBuff("goldcardpreattack") && target.InAutoAttackRange())
        //                        {
        //                            Me.IssueOrder(GameObjectOrder.AttackUnit, target);
        //                        }
        //                    }
        //                    break;
        //                case SpellType.Dash:
        //                case SpellType.SkillShot:
        //                case SpellType.Targeted:
        //                    {
        //                        if (target.InAutoAttackRange() && !Args.HaveShield)
        //                        {
        //                            HumanizerCardSelect.StartSelecting(HumanizerCards.Yellow);

        //                            if (Me.HasBuff("goldcardpreattack") && target.InAutoAttackRange())
        //                            {
        //                                Me.IssueOrder(GameObjectOrder.AttackUnit, target);
        //                            }
        //                        }
        //                    }
        //                    break;
        //            }
        //        }
        //    }
        //}

        private static void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args)
        {
            if (sender.IsMe)
            {
                if (args.Slot == SpellSlot.R && args.SData.Name.Equals("Gate", StringComparison.InvariantCultureIgnoreCase))
                {
                    if (MiscOption.GetBool("R", "UltYellow").Enabled)
                    {
                        if (W.IsReady())
                        {
                            HumanizerCardSelect.StartSelecting(HumanizerCards.Yellow);
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
        private static void OnGapcloser(Obj_AI_Hero target, GapcloserArgs Args)
        {
            if (target != null && target.IsValidTarget() && W.Ready)
            {
                if (W.Ready && target.IsValidTarget(W.Range))
                {
                    switch (Args.Type)
                    {
                    case SpellType.Melee:
                        if (target.IsValidTarget(target.AttackRange + target.BoundingRadius + 100) && !Args.HaveShield)
                        {
                            HumanizerCardSelect.StartSelecting(HumanizerCards.Yellow);

                            if (Me.HasBuff("goldcardpreattack") && target.IsValidAutoRange())
                            {
                                Me.IssueOrder(OrderType.AttackUnit, target);
                            }
                        }
                        break;

                    case SpellType.Dash:
                    case SpellType.SkillShot:
                    case SpellType.Targeted:
                    {
                        if (target.IsValidAutoRange() && !Args.HaveShield)
                        {
                            HumanizerCardSelect.StartSelecting(HumanizerCards.Yellow);

                            if (Me.HasBuff("goldcardpreattack") && target.IsValidAutoRange())
                            {
                                Me.IssueOrder(OrderType.AttackUnit, target);
                            }
                        }
                    }
                    break;
                    }
                }
            }
        }
Ejemplo n.º 7
0
        private static void Combo()
        {
            if (ComboOption.UseQ && Q.IsReady())
            {
                var target = MyTargetSelector.GetTarget(Q.Range);

                if (target != null && target.IsValidTarget(Q.Range))
                {
                    if (ComboOption.GetBool("ComboSaveMana").Enabled)
                    {
                        if (Me.Mana >= W.Mana + Q.Mana)
                        {
                            var qPred = Q.GetPrediction(target);

                            if (qPred.Hitchance >= HitChance.High)
                            {
                                Q.Cast(qPred.CastPosition);
                            }
                        }
                    }
                    else
                    {
                        var qPred = Q.GetPrediction(target);

                        if (qPred.Hitchance >= HitChance.High)
                        {
                            Q.Cast(qPred.CastPosition);
                        }
                    }
                }
            }

            if (ComboOption.UseW && W.IsReady())
            {
                var target = MyTargetSelector.GetTarget(W.Range);

                if (target != null && target.IsValidTarget())
                {
                    if (ComboOption.GetList("ComboWSmartKS").Index != 2 &&
                        target.Health <= Me.GetSpellDamage(target, SpellSlot.W) + Me.GetAutoAttackDamage(target) &&
                        target.IsValidTarget(Me.GetRealAutoAttackRange(target) + 80))
                    {
                        if (ComboOption.GetList("ComboWSmartKS").Index == 0)
                        {
                            W.Cast();
                            W.Cast();
                            W.Cast();

                            if (HumanizerCardSelect.IsSelect && target.InAutoAttackRange() && Orbwalker.CanAttack())
                            {
                                Me.IssueOrder(GameObjectOrder.AttackUnit, target);
                            }
                        }
                        else
                        {
                            HumanizerCardSelect.StartSelecting(HumanizerCards.Blue);

                            if (HumanizerCardSelect.IsSelect && target.InAutoAttackRange() && Orbwalker.CanAttack())
                            {
                                Me.IssueOrder(GameObjectOrder.AttackUnit, target);
                            }
                        }
                    }
                    else
                    {
                        HumanizerCardSelect.StartSelecting(Me.Mana + W.Mana >=
                                                           Q.Mana + W.Mana
                            ? HumanizerCards.Yellow
                            : HumanizerCards.Blue);
                    }
                }
            }
        }