Ejemplo n.º 1
0
        public static async Task <bool> Combat()
        {
            if (Core.Me.IsCasting)
            {
                return(true);
            }

            if (await Casting.TrackSpellCast())
            {
                return(true);
            }

            await Casting.CheckForSuccessfulCast();

            Utilities.Routines.Reaper.RefreshVars();

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

            if (await CustomOpenerLogic.Opener())
            {
                return(true);
            }


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

            if (await Buff.FightLogic_ArcaneCrest())
            {
                return(true);
            }
            if (await Buff.FightLogic_Feint())
            {
                return(true);
            }

            if (Core.Me.HasAura(Auras.Enshrouded)) //Enshroud Mode
            {
                if (ReaperRoutine.GlobalCooldown.CanWeave(1))
                {
                    if (await Enshroud.AoE.LemuresScythe())
                    {
                        return(true);
                    }
                    if (await Enshroud.SingleTarget.LemuresSlice())
                    {
                        return(true);
                    }
                }

                if (await Enshroud.AoE.Communio())
                {
                    return(true);
                }
                if (await Enshroud.AoE.GrimReaping())
                {
                    return(true);
                }
                if (await Enshroud.SingleTarget.VoidReaping())
                {
                    return(true);
                }
                if (await Enshroud.SingleTarget.CrossReaping())
                {
                    return(true);
                }
                if (await Enshroud.SingleTarget.LemuresSliceOfFWeave())
                {
                    return(true);
                }
            }
            else
            {
                if (ReaperRoutine.GlobalCooldown.CanWeave())
                {
                    if (await PhysicalDps.Interrupt(ReaperSettings.Instance))
                    {
                        return(true);
                    }
                    if (await PhysicalDps.SecondWind(ReaperSettings.Instance))
                    {
                        return(true);
                    }
                    if (await PhysicalDps.Bloodbath(ReaperSettings.Instance))
                    {
                        return(true);
                    }
                    if (await Cooldown.ArcaneCircle())
                    {
                        return(true);
                    }
                    if (await Cooldown.Enshroud())
                    {
                        return(true);
                    }
                    if (await Cooldown.Gluttony())
                    {
                        return(true);
                    }
                    if (await AoE.GrimSwathe())
                    {
                        return(true);
                    }
                    if (await SingleTarget.BloodStalk())
                    {
                        return(true);
                    }
                    if (await Utility.TrueNorth())
                    {
                        return(true);
                    }
                }

                if (await Utility.Soulsow())
                {
                    return(true);
                }
                if (await AoE.WhorlofDeath())
                {
                    return(true);
                }
                if (await SingleTarget.ShadowOfDeath())
                {
                    return(true);
                }
                if (await AoE.HarvestMoon())
                {
                    return(true);
                }
                if (await AoE.PlentifulHarvest())
                {
                    return(true);
                }
                if (await AoE.Guillotine())
                {
                    return(true);
                }
                if (await SingleTarget.GibbetAndGallows())
                {
                    return(true);
                }
                if (await AoE.SoulScythe())
                {
                    return(true);
                }
                if (await SingleTarget.SoulSlice())
                {
                    return(true);
                }

                if (await AoE.NightmareScythe())
                {
                    return(true);
                }
                if (await SingleTarget.InfernalSlice())
                {
                    return(true);
                }
                if (await SingleTarget.WaxingSlice())
                {
                    return(true);
                }
                if (await AoE.WhorlofDeathIdle())
                {
                    return(true);
                }
                if (await AoE.SpinningScythe())
                {
                    return(true);
                }
                if (await SingleTarget.ShadowOfDeathIdle())
                {
                    return(true);
                }
                if (await SingleTarget.Slice())
                {
                    return(true);
                }
                if (await SingleTarget.HarvestMoon())
                {
                    return(true);
                }
                return(await SingleTarget.EnhancedHarpe());
            }

            return(false);
        }