예제 #1
0
        public static AIHeroClient GetFSTarget(float range = 0)
        {
            if (TargetSelector.SelectedTarget != null && TargetSelector.SelectedTarget.IsValidTarget(range))
            {
                return(TargetSelector.SelectedTarget);
            }
            else
            {
                if (MenuClass.SecondMenu.Index == 0)
                {
                    return(TargetSelector.SelectedTarget);
                }
                if (MenuClass.SecondMenu.Index == 1)
                {
                    #region INDEX
                    if (MenuClass.GetWeight.Index == 0)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => i.Health).FirstOrDefault();
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 01)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => i.Armor).FirstOrDefault();
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 02)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => i.Mana).FirstOrDefault();
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 03)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => i.Health / ObjectManager.Player.GetAutoAttackDamage(i)).FirstOrDefault();
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 04)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).MaxOrDefault(i => i.Health);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 05)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).MaxOrDefault(i => i.Armor);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 06)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).MaxOrDefault(i => i.Mana);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 07)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).MaxOrDefault(i => i.Health / ObjectManager.Player.GetAutoAttackDamage(i));
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 08)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).FirstOrDefault(i => !i.CanMove);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 09)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).FirstOrDefault(i => i.CanMove);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 10)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).FirstOrDefault(i => !i.CanAttack);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 11)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).FirstOrDefault(i => i.CanAttack);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 12)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).FirstOrDefault(i => i.IsRanged);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    if (MenuClass.GetWeight.Index == 13)
                    {
                        var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).FirstOrDefault(i => i.IsMelee);
                        if (x != null)
                        {
                            return(x);
                        }
                        else
                        {
                            var aI = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                            if (aI != null)
                            {
                                return(x);
                            }
                            else
                            {
                                return(TargetSelector.GetTarget(range));
                            }
                        }
                    }
                    #endregion
                }
                if (MenuClass.SecondMenu.Index == 2)
                {
                    var x = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range)).OrderBy(i => MenuClass.GetSPriority(i).Value).LastOrDefault();
                    if (x != null)
                    {
                        return(x);
                    }
                    else
                    {
                        return(TargetSelector.GetTarget(range));
                    }
                }
            }

            return(null);
        }
예제 #2
0
        /// <summary>

        /*public static string[] TargetWeight = new string[]
         * {
         *      "Heath", //0
         *      "Armor", //1
         *      "Mana", //2
         *      "Auto Attack to die", //3
         *      "Ranged", //4
         *      "Melee", //5
         * };*/
        ///</summary>
        /// <param name="range"></param>
        /// <returns></returns>
        public static AIHeroClient GetFSTarget(float range = 0)
        {
            AIHeroClient        ThisTarget     = null;
            List <AIHeroClient> ThisTargetList = null;

            if (TargetSelector.SelectedTarget != null && TargetSelector.SelectedTarget.IsValidTarget(range))
            {
                return(TargetSelector.SelectedTarget);
            }
            else
            {
                if (MenuClass.SecondMenu.Index == 0)
                {
                    return(TargetSelector.SelectedTarget);
                }
                if (MenuClass.SecondMenu.Index == 1)
                {
                    switch (MenuClass.GetWeight.Index)
                    {
                    case 0:
                        ThisTargetList = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range) && !i.IsInvulnerableVisual).OrderBy(i => i.Health).ToList();
                        break;

                    case 1:
                        ThisTargetList = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range) && !i.IsInvulnerableVisual).OrderBy(i => i.Armor).ToList();
                        break;

                    case 2:
                        ThisTargetList = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range) && !i.IsInvulnerableVisual).OrderBy(i => i.Mana).ToList();
                        break;

                    case 3:
                        ThisTargetList = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range) && !i.IsInvulnerableVisual).OrderBy(i => i.Health / ObjectManager.Player.GetAutoAttackDamage(i)).ToList();
                        break;

                    case 4:
                        ThisTargetList = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range) && !i.IsInvulnerableVisual).OrderBy(i => i.CombatType == GameObjectCombatType.Ranged).ToList();
                        break;

                    case 5:
                        ThisTargetList = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range) && !i.IsInvulnerableVisual).OrderBy(i => i.CombatType == GameObjectCombatType.Melee).ToList();
                        break;

                    default:
                        return(TargetSelector.GetTarget(range));
                    }
                }
            }

            if (MenuClass.SecondMenu.Index == 2)
            {
                ThisTargetList = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(range) && !i.IsInvulnerableVisual).OrderByDescending(i => MenuClass.GetSPriority(i)).ToList();
            }

            if (MenuClass.OrderByNearMouse.Enabled)
            {
                var thetargets = ThisTargetList.OrderBy(i => i.Position.Distance(Game.CursorPos)).ToList();

                if (MenuClass.OrderByValue.Enabled)
                {
                    ThisTarget = thetargets.FirstOrDefault();
                }
                else
                {
                    ThisTarget = thetargets.LastOrDefault();
                }
            }
            else
            {
                if (MenuClass.OrderByValue.Enabled)
                {
                    ThisTarget = ThisTargetList.FirstOrDefault();
                }
                else
                {
                    ThisTarget = ThisTargetList.LastOrDefault();
                }
            }

            if (ThisTarget != null)
            {
                return(ThisTarget);
            }

            return(TargetSelector.GetTarget(range));
        }