Ejemplo n.º 1
0
        public static async Task <bool> Combat()
        {
            await CombatBuff();

            if (Globals.InParty)
            {
                if (!AstrologianSettings.Instance.DoDamage)
                {
                    return(true);
                }

                if (Core.Me.CurrentManaPercent < AstrologianSettings.Instance.MinimumManaPercentToDoDamage && Core.Target.CombatTimeLeft() > AstrologianSettings.Instance.DoDamageIfTimeLeftLessThan)
                {
                    return(true);
                }
            }

            if (!GameSettingsManager.FaceTargetOnAction && !Core.Me.CurrentTarget.InView())
            {
                return(false);
            }

            if (BotManager.Current.IsAutonomous)
            {
                if (Core.Me.HasTarget)
                {
                    Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 20);
                }
            }

            if (!Core.Me.HasTarget || !Core.Me.CurrentTarget.ThoroughCanAttack())
            {
                return(false);
            }

            if (Globals.OnPvpMap)
            {
                if (await Pvp.Disable())
                {
                    return(true);            //Damage
                }
                return(await Pvp.Malefic()); //Damage
            }

            if (await Aoe.Gravity())
            {
                return(true);
            }
            if (await SingleTarget.Combust())
            {
                return(true);
            }
            if (await SingleTarget.CombustMultipleTargets())
            {
                return(true);
            }
            return(await SingleTarget.Malefic());
        }