Пример #1
0
        public static async Task <bool> TrueNorthRiddleOfEarth()
        {
            if (!MonkSettings.Instance.UseTrueNorth && !MonkSettings.Instance.UseRiddleOfEarth)
            {
                return(false);
            }

            if (Core.Me.ClassLevel < 50)
            {
                return(false);
            }

            if (Core.Me.HasAura(Auras.RiddleOfEarth) || Core.Me.HasAura(Auras.TrueNorth))
            {
                return(false);
            }

            if (Casting.LastSpell == Spells.TrueNorth || Casting.LastSpell == Spells.RiddleofEarth)
            {
                return(false);
            }

            if (MonkSettings.Instance.UseTrueNorth && await PhysicalDps.TrueNorth(MonkSettings.Instance))
            {
                return(true);
            }
            if (MonkSettings.Instance.UseRiddleOfEarth && await Spells.RiddleofEarth.Cast(Core.Me))
            {
                return(true);
            }

            return(false);
        }
Пример #2
0
        public static async Task <bool> Execute()
        {
            if (BotManager.Current.IsAutonomous)
            {
                Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 3 + Core.Me.CurrentTarget.CombatReach);
            }

            if (!SpellQueueLogic.SpellQueue.Any())
            {
                SpellQueueLogic.InSpellQueue = false;
            }

            if (SpellQueueLogic.SpellQueue.Any())
            {
                if (await SpellQueueLogic.SpellQueueMethod())
                {
                    return(true);
                }
            }

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

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


            if (await PhysicalDps.Interrupt(NinjaSettings.Instance))
            {
                return(true);
            }

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

            if (Utilities.Routines.Ninja.OnGcd)
            {
                if (await PhysicalDps.SecondWind(NinjaSettings.Instance))
                {
                    return(true);
                }
                if (await PhysicalDps.Bloodbath(NinjaSettings.Instance))
                {
                    return(true);
                }
                if (await PhysicalDps.Feint(NinjaSettings.Instance))
                {
                    return(true);
                }

                if (Core.Me.HasAura(Auras.Suiton))
                {
                    if (await PhysicalDps.TrueNorth(NinjaSettings.Instance))
                    {
                        return(true);
                    }
                }

                if (await Buff.ShadeShift())
                {
                    return(true);
                }
                if (await Buff.Bunshin())
                {
                    return(true);
                }
                if (await SingleTarget.Assassinate())
                {
                    return(true);
                }
                if (await SingleTarget.Mug())
                {
                    return(true);
                }
                if (await Buff.Kassatsu())
                {
                    return(true);
                }
                if (await SingleTarget.TrickAttack())
                {
                    return(true);
                }
                if (await SingleTarget.DreamWithinADream())
                {
                    return(true);
                }
                if (await Aoe.HellfrogMedium())
                {
                    return(true);
                }
                if (await SingleTarget.Bhavacakra())
                {
                    return(true);
                }
                if (await Ninjutsu.TenChiJin())
                {
                    return(true);
                }
            }

            if (Ninjutsu.Huton())
            {
                return(true);
            }
            if (Ninjutsu.GokaMekkyaku())
            {
                return(true);
            }
            if (Ninjutsu.Doton())
            {
                return(true);
            }
            if (Ninjutsu.Katon())
            {
                return(true);
            }
            if (Ninjutsu.Suiton())
            {
                return(true);
            }
            if (Ninjutsu.HyoshoRanryu())
            {
                return(true);
            }
            if (Ninjutsu.Raiton())
            {
                return(true);
            }
            if (Ninjutsu.FumaShuriken())
            {
                return(true);
            }

            if (await Aoe.HakkeMujinsatsu())
            {
                return(true);
            }
            if (await Aoe.DeathBlossom())
            {
                return(true);
            }
            if (await SingleTarget.ShadowFang())
            {
                return(true);
            }
            if (await SingleTarget.ArmorCrush())
            {
                return(true);
            }
            if (await SingleTarget.AeolianEdge())
            {
                return(true);
            }
            if (await SingleTarget.GustSlash())
            {
                return(true);
            }
            return(await SingleTarget.SpinningEdge());
        }
Пример #3
0
        public static async Task <bool> Execute()
        {
            if (BotManager.Current.IsAutonomous)
            {
                Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 3 + Core.Me.CurrentTarget.CombatReach);
            }

            if (await Buff.FistsOf())
            {
                return(true);
            }

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

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

            var count = Utilities.Combat.Enemies.Count;

            if (2 >= count && count < 5)
            {
                //TODO: Add 2-4 target DPS rotation
            }
            else if (count >= 5)
            {
                //TODO: Add 5+ target DPS rotation
            }

            if (Utilities.Routines.Monk.OnGcd)
            {
                if (await SingleTarget.TheForbiddenChakra())
                {
                    return(true);
                }
                if (await SingleTarget.ShoulderTackle())
                {
                    return(true);
                }
                ///if (await Buff.PerfectBalance()) return true;
                if (await PhysicalDps.TrueNorth(MonkSettings.Instance))
                {
                    return(true);
                }
                if (await Buff.RiddleOfFire())
                {
                    return(true);
                }
                if (await Buff.RiddleOfEarth())
                {
                    return(true);
                }
                if (await Buff.Brotherhood())
                {
                    return(true);
                }
                if (await Aoe.ElixerField())
                {
                    return(true);
                }
            }
            if (await Aoe.Rockbreaker())
            {
                return(true);
            }
            if (await SingleTarget.Demolish())
            {
                return(true);
            }
            if (await SingleTarget.SnapPunch())
            {
                return(true);
            }
            if (await SingleTarget.TwinSnakes())
            {
                return(true);
            }
            if (await SingleTarget.TrueStrike())
            {
                return(true);
            }
            if (await SingleTarget.Bootshine())
            {
                return(true);
            }
            if (await SingleTarget.DragonKick())
            {
                return(true);
            }
            return(await Buff.FormShift());
        }
Пример #4
0
        public static async Task <bool> Execute()
        {
            if (BotManager.Current.IsAutonomous)
            {
                Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 3 + Core.Me.CurrentTarget.CombatReach);
            }

            Utilities.Routines.Monk.RefreshVars();

            if (!SpellQueueLogic.SpellQueue.Any())
            {
                SpellQueueLogic.InSpellQueue = false;
            }

            if (SpellQueueLogic.SpellQueue.Any())
            {
                if (await SpellQueueLogic.SpellQueueMethod())
                {
                    return(true);
                }
            }

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

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

            if (await Buff.FistsOf())
            {
                return(true);
            }

            if (await Buff.Meditate())
            {
                return(true);
            }

            //var count = Utilities.Combat.Enemies.Count;
            //if (2 >= count && count < 5)
            //{
            //    //TODO: Add 2-4 target DPS rotation
            //}
            //else if (count >= 5)
            //{
            //    //TODO: Add 5+ target DPS rotation
            //}
            if (!Core.Me.HasAura(Auras.Anatman) || MonkSettings.Instance.UseManualPB && Core.Me.HasAura(Auras.PerfectBalance))
            {
                if (Weaving.GetCurrentWeavingCounter() < 2 && Spells.Bootshine.Cooldown.TotalMilliseconds > 750 + BaseSettings.Instance.UserLatencyOffset)
                {
                    if (await PhysicalDps.SecondWind(MonkSettings.Instance))
                    {
                        return(true);
                    }
                    if (await PhysicalDps.Bloodbath(MonkSettings.Instance))
                    {
                        return(true);
                    }
                    if (await PhysicalDps.Feint(MonkSettings.Instance))
                    {
                        return(true);
                    }
                    if (await Buff.Brotherhood())
                    {
                        return(true);
                    }
                    if (await Aoe.Enlightenment())
                    {
                        return(true);
                    }
                    if (await SingleTarget.TheForbiddenChakra())
                    {
                        return(true);
                    }
                    if (await SingleTarget.ShoulderTackle())
                    {
                        return(true);
                    }
                    if (await Buff.PerfectBalance())
                    {
                        return(true);
                    }
                    if (!Core.Me.HasAura(Auras.RiddleOfEarth))
                    {
                        if (await PhysicalDps.TrueNorth(MonkSettings.Instance))
                        {
                            return(true);
                        }
                    }
                    if (await Buff.RiddleOfFire())
                    {
                        return(true);
                    }
                    if (await Buff.RiddleOfEarth())
                    {
                        return(true);
                    }
                    if (await SingleTarget.ElixerField())
                    {
                        return(true);
                    }
                }
                if (await SingleTarget.PerfectBalanceRoT())
                {
                    return(true);
                }
                if (await Aoe.Rockbreaker())
                {
                    return(true);
                }
                if (await Aoe.FourPointStrike())
                {
                    return(true);
                }
                if (await Aoe.ArmOfDestroyer())
                {
                    return(true);
                }
                if (await SingleTarget.Demolish())
                {
                    return(true);
                }
                if (await SingleTarget.SnapPunch())
                {
                    return(true);
                }
                if (await SingleTarget.TwinSnakes())
                {
                    return(true);
                }
                if (await SingleTarget.TrueStrike())
                {
                    return(true);
                }
                if (await SingleTarget.Bootshine())
                {
                    return(true);
                }
                if (await SingleTarget.DragonKick())
                {
                    return(true);
                }
                return(await Buff.FormShift());
            }
            else
            {
                return(false);
            }
        }