internal static void PetManager()
    {
        if (!Me.IsDeadMe || !Me.IsMounted)
        {
            // Call Pet
            if (!ObjectManager.Pet.IsValid && CallPet.KnownSpell && !Me.IsMounted && CallPet.IsSpellUsable)
            {
                CallPet.Launch();
                Thread.Sleep(Usefuls.Latency + 1000);
            }

            // Revive Pet
            if (ObjectManager.Pet.IsDead && RevivePet.KnownSpell && !Me.IsMounted && RevivePet.IsSpellUsable)
            {
                RevivePet.Launch();
                Thread.Sleep(Usefuls.Latency + 1000);
                Usefuls.WaitIsCasting();
            }

            // Mend Pet
            if (ObjectManager.Pet.IsAlive && ObjectManager.Pet.IsValid && !ObjectManager.Pet.HaveBuff("Mend Pet") &&
                Me.IsAlive && MendPet.KnownSpell && MendPet.IsDistanceGood && ObjectManager.Pet.HealthPercent <= 60 &&
                MendPet.IsSpellUsable)
            {
                MendPet.Launch();
                Thread.Sleep(Usefuls.Latency + 1000);
            }
        }
    }
示例#2
0
    internal static void CombatRotation()
    {
        WoWUnit Target = ObjectManager.Target;

        if (Target.GetDistance < 10f && !_isBackingUp)
        {
            ToolBox.CheckAutoAttack(Attack);
        }

        if (Target.GetDistance > 10f && !_isBackingUp)
        {
            ReenableAutoshot();
        }

        // Aspect of the viper
        if (AspectViper.KnownSpell && AspectViper.IsSpellUsable && !Me.HaveBuff("Aspect of the Viper") &&
            Me.ManaPercentage < 30)
        {
            AspectViper.Launch();
        }

        // Aspect of the Hawk
        if (AspectHawk.KnownSpell && AspectHawk.IsSpellUsable && !Me.HaveBuff("Aspect of the Hawk") &&
            (Me.ManaPercentage > 90 || Me.HaveBuff("Aspect of the Cheetah")))
        {
            AspectHawk.Launch();
        }

        // Aspect of the Monkey
        if (AspectMonkey.KnownSpell && AspectMonkey.IsSpellUsable && !Me.HaveBuff("Aspect of the Monkey") &&
            !AspectHawk.KnownSpell)
        {
            AspectMonkey.Launch();
        }

        // Disengage
        if (Disengage.KnownSpell && Disengage.IsSpellUsable && ObjectManager.Pet.Target == Me.Target &&
            Target.Target == Me.Guid && Target.GetDistance < 10 && !_isBackingUp)
        {
            Disengage.Launch();
        }

        // Bestial Wrath
        if (BestialWrath.KnownSpell && BestialWrath.IsSpellUsable && Target.GetDistance < 34f &&
            Target.HealthPercent >= 60 && Me.ManaPercentage > 10 && BestialWrath.IsSpellUsable &&
            ((_settings.BestialWrathOnMulti && ObjectManager.GetUnitAttackPlayer().Count > 1) || !_settings.BestialWrathOnMulti))
        {
            BestialWrath.Launch();
        }

        // Rapid Fire
        if (RapidFire.KnownSpell && RapidFire.IsSpellUsable && Target.GetDistance < 34f &&
            Target.HealthPercent >= 80.0 &&
            ((_settings.RapidFireOnMulti && ObjectManager.GetUnitAttackPlayer().Count > 1) || !_settings.RapidFireOnMulti))
        {
            RapidFire.Launch();
        }

        // Kill Command
        if (KillCommand.KnownSpell && KillCommand.IsSpellUsable)
        {
            KillCommand.Launch();
        }

        // Raptor Strike
        if (RaptorStrike.KnownSpell && RaptorStrike.IsSpellUsable && Target.GetDistance < 6f && !RaptorStrikeOn())
        {
            RaptorStrike.Launch();
        }

        // Mongoose Bite
        if (MongooseBite.KnownSpell && MongooseBite.IsSpellUsable && Target.GetDistance < 6f)
        {
            MongooseBite.Launch();
        }

        // Feign Death
        if (FeignDeath.KnownSpell && FeignDeath.IsSpellUsable && Me.HealthPercent < 20)
        {
            FeignDeath.Launch();
            Fight.StopFight();
        }

        // Freezing Trap
        if (FreezingTrap.KnownSpell && FreezingTrap.IsSpellUsable && ObjectManager.Pet.HaveBuff("Mend Pet") &&
            ObjectManager.GetUnitAttackPlayer().Count > 1 && _settings.UseFreezingTrap)
        {
            FreezingTrap.Launch();
        }

        // Mend Pet
        if (ObjectManager.Pet.IsValid && MendPet.KnownSpell && MendPet.IsSpellUsable && ObjectManager.Pet.HealthPercent <= 30.0 &&
            !ObjectManager.Pet.HaveBuff("Mend Pet"))
        {
            MendPet.Launch();
        }

        // Hunter's Mark
        if (HuntersMark.KnownSpell && HuntersMark.IsSpellUsable && ObjectManager.Pet.IsValid && !HuntersMark.TargetHaveBuff &&
            Target.GetDistance > 13f && Target.IsAlive)
        {
            HuntersMark.Launch();
        }

        // Steady Shot
        if (SteadyShot.KnownSpell && SteadyShot.IsSpellUsable && Me.ManaPercentage > 30 && SteadyShot.IsDistanceGood && !_isBackingUp)
        {
            SteadyShot.Launch();
            Thread.Sleep(_steadyShotSleep);
        }

        // Serpent Sting
        if (SerpentSting.KnownSpell && SerpentSting.IsSpellUsable && !Target.HaveBuff("Serpent Sting") &&
            Target.GetDistance < 34f && ToolBox.CanBleed(Me.TargetObject) &&
            Target.HealthPercent >= 80 && Me.ManaPercentage > 50u && !SteadyShot.KnownSpell &&
            Target.GetDistance > 13f)
        {
            SerpentSting.Launch();
        }

        // Intimidation
        if (Intimidation.KnownSpell && Intimidation.IsSpellUsable && Target.GetDistance < 34f &&
            Target.GetDistance > 10f && Target.HealthPercent >= 20 && Me.ManaPercentage > 10 &&
            Intimidation.IsSpellUsable)
        {
            Intimidation.Launch();
        }

        // Arcane Shot
        if (ArcaneShot.KnownSpell && ArcaneShot.IsSpellUsable && Target.GetDistance < 34f &&
            Target.HealthPercent >= 30 && Me.ManaPercentage > 80 &&
            !SteadyShot.KnownSpell)
        {
            ArcaneShot.Launch();
        }
    }