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()); }
public static async Task <bool> Combat() { 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.Interrupt(MonkSettings.Instance)) { return(true); } 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.RiddleOfFire()) { return(true); } if (await Buff.Brotherhood()) { return(true); } if (await SingleTarget.TornadoKick()) { 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 (await Buff.TrueNorthRiddleOfEarth()) { return(true); } //if (await Buff.RiddleOfFire()) return true; //if (await Buff.Brotherhood()) return true; if (await SingleTarget.ElixirField()) { return(true); } } if (await Aoe.Rockbreaker()) { return(true); } if (await Aoe.FourPointStrike()) { return(true); } if (await Aoe.ArmOfDestroyer()) { 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.FormShiftIC()); } return(false); }