예제 #1
0
        public static async Task <bool> Combat()
        {
            await CombatBuff();

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

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

            if (Core.Me.CurrentTarget.HasAnyAura(Auras.Invincibility))
            {
                return(false);
            }

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

            //Utility
            if (await Tank.Interrupt(GunbreakerSettings.Instance))
            {
                return(true);
            }
            //if (await Buff.RoyalGuard()) return true;

            if (GunbreakerRoutine.GlobalCooldown.CanWeave())
            {
                //Defensive Buff
                if (await Defensive.Superbolide())
                {
                    return(true);
                }
                if (await Healing.Aurora())
                {
                    return(true);
                }
                if (await Defensive.Nebula())
                {
                    return(true);
                }
                if (await Defensive.Rampart())
                {
                    return(true);
                }
                if (await Defensive.Camouflage())
                {
                    return(true);
                }
                if (await Defensive.Reprisal())
                {
                    return(true);
                }
                if (await Defensive.HeartofLight())
                {
                    return(true);
                }
                if (await Defensive.HeartofCorundum())
                {
                    return(true);
                }
            }

            //oGCD to use with BurstStrike
            if (await SingleTarget.Hypervelocity())
            {
                return(true);
            }

            //oGCD to use inside Combo 2
            if (await SingleTarget.EyeGouge())
            {
                return(true);
            }
            if (await SingleTarget.AbdomenTear())
            {
                return(true);
            }
            if (await SingleTarget.JugularRip())
            {
                return(true);
            }

            if (GunbreakerRoutine.GlobalCooldown.CanWeave())
            {
                //oGCD - Buffs
                if (await Buff.NoMercy())
                {
                    return(true);
                }
                if (await Buff.Bloodfest())
                {
                    return(true);
                }

                //oGCD - Damage
                if (await SingleTarget.RoughDivide())
                {
                    return(true);
                }
                if (await SingleTarget.BlastingZone())
                {
                    return(true);
                }
                if (await Aoe.BowShock())
                {
                    return(true);
                }
            }

            //Pull or get back aggro with LightningShot
            if (await SingleTarget.LightningShotToPullOrAggro())
            {
                return(true);
            }
            if (await SingleTarget.LightningShotToDps())
            {
                return(true);
            }

            //Apply DOT / Burst
            if (await Aoe.DoubleDown())
            {
                return(true);
            }
            if (await SingleTarget.SonicBreak())
            {
                return(true);
            }

            //Combo 2
            if (await SingleTarget.SavageClaw())
            {
                return(true);
            }
            if (await SingleTarget.WickedTalon())
            {
                return(true);
            }
            if (await SingleTarget.GnashingFang())
            {
                return(true);
            }

            //Combo 3
            if (await SingleTarget.BurstStrike())
            {
                return(true);
            }

            //AOE
            if (await Aoe.FatedCircle())
            {
                return(true);
            }
            if (await Aoe.DemonSlaughter())
            {
                return(true);
            }
            if (await Aoe.DemonSlice())
            {
                return(true);
            }

            //Combo 1 Filler
            if (await SingleTarget.SolidBarrel())
            {
                return(true);
            }
            if (await SingleTarget.BrutalShell())
            {
                return(true);
            }

            return(await SingleTarget.KeenEdge());
        }
예제 #2
0
        public static async Task <bool> Combat()
        {
            if (BotManager.Current.IsAutonomous)
            {
                if (Core.Me.HasTarget)
                {
                    Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 3 + Core.Me.CurrentTarget.CombatReach);
                }
            }

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

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

            if (await Tank.Interrupt(DarkKnightSettings.Instance))
            {
                return(true);
            }

            if (DarkKnightRoutine.GlobalCooldown.CountOGCDs() < 2 &&
                Spells.HardSlash.Cooldown.TotalMilliseconds > 650 + BaseSettings.Instance.UserLatencyOffset)
            {
                if (await Tank.Provoke(DarkKnightSettings.Instance))
                {
                    return(true);
                }
                if (await Defensive.Execute())
                {
                    return(true);
                }
                if (await Defensive.Oblation(true))
                {
                    return(true);
                }
                if (await Defensive.Reprisal())
                {
                    return(true);
                }
                if (await SingleTarget.CarveAndSpit())
                {
                    return(true);
                }
                if (await Aoe.SaltedEarth())
                {
                    return(true);
                }
                if (await Aoe.AbyssalDrain())
                {
                    return(true);
                }
                if (await Aoe.FloodofDarknessShadow())
                {
                    return(true);
                }
                if (await SingleTarget.EdgeofDarknessShadow())
                {
                    return(true);
                }
                if (await SingleTarget.Plunge())
                {
                    return(true);
                }
                if (await Buff.Delirium())
                {
                    return(true);
                }
                if (await Buff.BloodWeapon())
                {
                    return(true);
                }
                if (await Buff.LivingShadow())
                {
                    return(true);
                }
                if (await SingleTarget.Shadowbringer())
                {
                    return(true);
                }
            }

            if (await SingleTarget.UnmendForAggro())
            {
                return(true);
            }
            if (await Aoe.Quietus())
            {
                return(true);
            }
            if (await Aoe.StalwartSoul())
            {
                return(true);
            }
            if (await Aoe.Unleash())
            {
                return(true);
            }

            if (await SingleTarget.Bloodspiller())
            {
                return(true);
            }
            if (await SingleTarget.SoulEater())
            {
                return(true);
            }
            if (await SingleTarget.SyphonStrike())
            {
                return(true);
            }
            if (await SingleTarget.HardSlash())
            {
                return(true);
            }
            if (await SingleTarget.Unmend())
            {
                return(true);
            }

            return(false);
        }
예제 #3
0
        public static async Task <bool> Combat()
        {
            if (BotManager.Current.IsAutonomous)
            {
                if (Core.Me.HasTarget)
                {
                    Movement.NavigateToUnitLos(Core.Me.CurrentTarget, 3 + Core.Me.CurrentTarget.CombatReach);
                }
            }

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

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


            //Utility
            if (await Tank.Interrupt(WarriorSettings.Instance))
            {
                return(true);
            }
            if (await Buff.Defiance())
            {
                return(true);
            }

            if (WarriorRoutine.GlobalCooldown.CanWeave())
            {
                //Defensive Buff
                if (await Defensive.Holmgang())
                {
                    return(true);
                }
                if (await Healing.Equilibrium())
                {
                    return(true);
                }
                if (await Healing.ThrillOfBattle())
                {
                    return(true);
                }
                if (await Defensive.BloodWhetting())
                {
                    return(true);
                }
                if (await Defensive.Reprisal())
                {
                    return(true);
                }
                if (await Defensive.Rampart())
                {
                    return(true);
                }
                if (await Defensive.Vengeance())
                {
                    return(true);
                }
                if (await Defensive.ShakeItOff())
                {
                    return(true);
                }
                if (await Buff.NascentFlash())
                {
                    return(true);
                }

                //Cooldowns
                if (await Buff.InnerRelease())
                {
                    return(true);
                }
                if (await Buff.Infuriate())
                {
                    return(true);
                }

                //oGCD
                if (await Aoe.Orogeny())
                {
                    return(true);
                }
                if (await SingleTarget.Upheaval())
                {
                    return(true);
                }
                if (await SingleTarget.Onslaught())
                {
                    return(true);
                }
            }

            //Spell to use with Nascent Chaos
            if (await Aoe.ChaoticCyclone())
            {
                return(true);
            }
            if (await SingleTarget.InnerChaos())
            {
                return(true);
            }

            //Spell to spam inside Inner Release
            if (await Aoe.PrimalRend())
            {
                return(true);
            }
            if (await Aoe.Decimate())
            {
                return(true);
            }
            if (await SingleTarget.FellCleave())
            {
                return(true);
            }

            //Use On CD
            if (await SingleTarget.TomahawkOnLostAggro())
            {
                return(true);
            }
            if (await Aoe.MythrilTempest())
            {
                return(true);
            }
            if (await Aoe.Overpower())
            {
                return(true);
            }

            //Storm Eye Combo + Filler
            if (await SingleTarget.StormsEye())
            {
                return(true);
            }
            if (await SingleTarget.StormsPath())
            {
                return(true);
            }
            if (await SingleTarget.Maim())
            {
                return(true);
            }
            if (await SingleTarget.HeavySwing())
            {
                return(true);
            }

            return(await SingleTarget.Tomahawk());
        }