public bool needAzshara()
 {
     return(!MyHelpers.haveBuff("Latent Arcana") &&
            MyHelpers.itemIsUsable("Notorious Gladiator's Badge") &&
            doBurst &&
            ObjectManager.Me.SpeedMoving == 0);
 }
Exemple #2
0
    public static bool rtbReroll()
    {
        int[] reroll = rollTheBonesCount();

        if ((getAttackers(18) < 3 &&
             reroll[0] < 2 &&
             !MyHelpers.haveBuff(MyHelpers.RuthlessPrecision)) ||
            reroll[1] < 5)
        {
            return(true);
        }

        if ((getAttackers(18) >= 3 &&
             reroll[0] < 2 &&
             !MyHelpers.haveBuff(MyHelpers.RuthlessPrecision) &&
             !MyHelpers.haveBuff(MyHelpers.GrandMelee)) ||
            reroll[1] < 5 ||
            (getAttackers(18) > 1 &&
             reroll[0] == 2 &&
             MyHelpers.haveBuff(MyHelpers.SkullAndCrossbones) &&
             (MyHelpers.haveBuff(MyHelpers.TrueBearing) || MyHelpers.haveBuff(MyHelpers.BuriedTreasure))))
        {
            return(true);
        }

        return(false);
    }
    /* Rotation() */
    public void Rotation()
    {
        Logging.Write(name + ": Started.");

        while (_isRunning)
        {
            try
            {
                if (Products.InPause)
                {
                    Lua.LuaDoString(@"dRotationFrame.text:SetText(""dRotation Paused!"")");
                }
                else if (!ObjectManager.Me.IsDeadMe && ObjectManager.Me.Target.IsNotZero())
                {
                    CombatRotation();
                }
                else if (!MyHelpers.haveBuff("Deadly Poison"))
                {
                    DeadlyPoison.Launch();
                }
                else if (!MyHelpers.haveBuff("Crippling Poison"))
                {
                    CripplingPoison.Launch();
                }
            }
            catch (Exception e)
            {
                Logging.WriteError(name + " ERROR: " + e);
            }

            Thread.Sleep(50); // Pause 10 ms to reduce the CPU usage.
        }
        Logging.Write(name + ": Stopped.");
    }
Exemple #4
0
    private bool doBuilders()
    {
        if (OutlawSettings.CurrentSetting.EnablePistolShot &&
            PistolShot.KnownSpell &&
            PistolShot.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getDistanceRange() &&
            ((MyHelpers.haveBuff("Opportunity") && MyHelpers.getComboPoint() <= 4) ||
             (MyHelpers.getTargetDistance() > MyHelpers.getMeleeRange() && !(BetweenTheEyes.IsSpellUsable && MyHelpers.getComboPoint() == 6)) ||
             (MyHelpers.haveBuff("Deadshot") && MyHelpers.haveBuff("Seething Rage") && !BetweenTheEyes.IsSpellUsable)
            )
            )
        {
            MyHelpers.castSpell(PistolShot.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Pistol Shot"")");
            return(true);
        }

        if (OutlawSettings.CurrentSetting.EnableSinisterStrike &&
            SinisterStrike.KnownSpell &&
            SinisterStrike.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            MyHelpers.getComboPoint() <= 5)
        {
            MyHelpers.castSpell(SinisterStrike.Name);

            Lua.LuaDoString("dRotationFrame.text:SetText(\"Sinister Strike " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
            return(true);
        }
        return(false);
    }
Exemple #5
0
 public static int cpReduction()
 {
     if (MyHelpers.haveBuff(MyHelpers.Broadside))
     {
         return(1);
     }
     return(0);
 }
 public bool needAzshara()
 {
     return(Fireball.IsSpellUsable &&
            !MyHelpers.haveBuff("Latent Arcana") &&
            MemoryofLucidDreams.IsSpellUsable &&
            Combustion.IsSpellUsable &&
            doBurst &&
            ObjectManager.Me.SpeedMoving == 0);
 }
 private bool needRune()
 {
     return(MyHelpers.spellCharges(RuneofPower.Name) > 0 &&
            (MyHelpers.haveBuff(MemoryofLucidDreams.Name) || (MyHelpers.GetSpellCooldown(Combustion.Name) > 10 && MyHelpers.spellCharges(FireBlast.Name) == 0)) &&
            !MyHelpers.haveBuff(RuneofPower.Name) &&
            !MyHelpers.haveBuff(Combustion.Name) &&
            RuneofPower.IsSpellUsable &&
            ObjectManager.Me.SpeedMoving == 0 &&
            (MyHelpers.haveBuff(MemoryofLucidDreams.Name)
             ||
             ((MyHelpers.spellCharges(RuneofPower.Name) == 2) ||
              (MyHelpers.spellCharges(RuneofPower.Name) == 1 &&
               MyHelpers.GetSpellCooldownCharges(RuneofPower.Name) + 10 < MyHelpers.GetSpellCooldown(Combustion.Name)))));
 }
    public void Buffs()
    {
        if (!MyHelpers.haveBuff(ArcaneIntellect.Name))
        {
            MyHelpers.castSpell(ArcaneIntellect.Name);
            return;
        }
        if (needAzshara())
        {
            burstPrepare();
            return;
        }

        if (needRune())
        {
            MyHelpers.castSpell(RuneofPower.Name);
            return;
        }
    }
    public void Damage()
    {
        if (Meteor.IsSpellUsable &&
            MyHelpers.haveBuff(RuneofPower.Name) &&
            (MyHelpers.haveBuffStack("Blaster Master") == 3 || (!MyHelpers.haveBuff(Combustion.Name) || MyHelpers.spellCharges(FireBlast.Name) == 0)) &&
            MyHelpers.getTargetDistance() <= 40.0f
            )
        {
            MyHelpers.castSpell(Meteor.Name);
            ClickOnTerrain.Pulse(ObjectManager.Target.Position);

            return;
        }
        if (MyHelpers.haveBuff("Hot Streak!") && !buffTime)
        {
            while (MyHelpers.haveBuff(Combustion.Name))
            {
                if (MyHelpers.haveBuff("Hot Streak!"))
                {
                    Pyroblast.Launch();
                    Thread.Sleep(200);
                    if (MyHelpers.spellCharges(FireBlast.Name) == 0)
                    {
                        Thread.Sleep(200);
                    }

                    canBlast = true;
                    continue;
                }
                if (!ObjectManager.Me.IsCast && MyHelpers.spellCharges(FireBlast.Name) > 0 && MyHelpers.haveBuff("Heating Up"))
                {
                    canBlast = false;
                    MyHelpers.castSpell(FireBlast.Name);
                    continue;
                }
                if (MyHelpers.itemIsUsable("Hyperthread Wristwraps") && MyHelpers.spellCharges(FireBlast.Name) == 0 && !ObjectManager.Me.IsCast)
                {
                    ItemsManager.UseItem(ItemsManager.GetIdByName("Hyperthread Wristwraps"));
                    continue;
                }
                if (MyHelpers.spellCharges(FireBlast.Name) == 0 &&
                    !MyHelpers.haveBuff("Hot Streak!") && !ObjectManager.Me.IsCast)
                {
                    Thread.Sleep(400);

                    if (MyHelpers.spellCharges(FireBlast.Name) == 0 &&
                        !MyHelpers.haveBuff("Hot Streak!") && !ObjectManager.Me.IsCast)
                    {
                        MyHelpers.castSpell(Scorch.Name);
                        while (ObjectManager.Me.IsCast)
                        {
                            Thread.Sleep(50);
                        }

                        continue;
                    }
                    else
                    {
                        continue;
                    }
                }
            }
            if (MyHelpers.haveBuff("Hot Streak!"))
            {
                MyHelpers.castSpell(Pyroblast.Name);
            }
            return;
        }
        if (MyHelpers.spellCharges(FireBlast.Name) > 0 && !buffTime && MyHelpers.haveBuff("Heating Up") && !MyHelpers.haveBuff(Combustion.Name))
        {
            MyHelpers.castSpell(FireBlast.Name);
            return;
        }
        if (BlazingBarrier.IsSpellUsable)
        {
            MyHelpers.castSpell(BlazingBarrier.Name);
        }

        if (!MyHelpers.haveBuff("Hot Streak!") &&
            Scorch.IsSpellUsable &&
            !buffTime &&
            (ObjectManager.Me.SpeedMoving > 0 || ObjectManager.Target.HealthPercent < 30))


        {
            Thread.Sleep(100);
            if (!MyHelpers.haveBuff("Hot Streak!") &&
                Scorch.IsSpellUsable &&
                !buffTime &&
                (ObjectManager.Me.SpeedMoving > 0 || ObjectManager.Target.HealthPercent < 30))
            {
                MyHelpers.castSpell(Scorch.Name);
            }

            return;
        }


        if (!MyHelpers.haveBuff("Hot Streak!") && !buffTime && !MyHelpers.haveBuff(Combustion.Name) && !(ObjectManager.Me.SpeedMoving > 0 || ObjectManager.Target.HealthPercent < 30))
        {
            MyHelpers.castSpell(Fireball.Name);
            return;
        }
    }
    public void burstPrepare()
    {
        buffTime = true;
        doBurst  = false;

        while (!MyHelpers.itemIsUsable("Azshara's Font of Power") || ObjectManager.Me.IsCast)
        {
            Thread.Sleep(100);
        }
        while (MyHelpers.itemIsUsable("Azshara's Font of Power"))
        {
            ItemsManager.UseItem(ItemsManager.GetIdByName("Azshara's Font of Power"));
        }

        Thread.Sleep(4020);

        if (!MyHelpers.inCombat())
        {
            if (MyHelpers.itemIsEquiped("Notorious Gladiator's Badge"))
            {
                Thread.Sleep(13000);
            }

            if (!MyHelpers.haveBuff("Hot Streak!") && !MyHelpers.haveBuff("Heating Up"))
            {
                MyHelpers.castSpell(Fireball.Name);
                Thread.Sleep(2300);
            }
        }
        if (MyHelpers.itemIsEquiped("Notorious Gladiator's Badge"))
        {
            while (!MyHelpers.itemIsUsable("Notorious Gladiator's Badge"))
            {
                if (MyHelpers.inCombat())
                {
                    if (ObjectManager.Target.HealthPercent < 30 || ObjectManager.Me.SpeedMoving > 0)
                    {
                        if (!MyHelpers.haveBuff("Hot Streak!") &&
                            Scorch.IsSpellUsable &&
                            (ObjectManager.Me.SpeedMoving > 0 || ObjectManager.Target.HealthPercent < 30))


                        {
                            Thread.Sleep(100);
                            if (!MyHelpers.haveBuff("Hot Streak!") &&
                                Scorch.IsSpellUsable &&
                                (ObjectManager.Me.SpeedMoving > 0 || ObjectManager.Target.HealthPercent < 30))
                            {
                                MyHelpers.castSpell(Scorch.Name);
                            }

                            continue;
                        }
                        if (ObjectManager.Target.HealthPercent < 30 && MyHelpers.haveBuff("Hot Streak!"))
                        {
                            MyHelpers.castSpell(Pyroblast.Name);
                            continue;
                        }
                    }
                    else
                    {
                        if (MyHelpers.haveBuff("Hot Streak!") && MyHelpers.BuffTimeLeft("Hot Streak!") < 10)
                        {
                            MyHelpers.castSpell(Pyroblast.Name);
                            continue;
                        }
                        else if (MyHelpers.spellCharges(FireBlast.Name) > 0 && MyHelpers.haveBuff("Heating Up"))
                        {
                            MyHelpers.castSpell(FireBlast.Name);
                            continue;
                        }
                        else
                        {
                            MyHelpers.castSpell(Fireball.Name);
                            continue;
                        }
                    }
                }
            }
            ;

            while (!MyHelpers.itemIsUsable("Notorious Gladiator's Badge") || ObjectManager.Me.IsCast)
            {
                Thread.Sleep(10);
            }
            while (MyHelpers.itemIsUsable("Notorious Gladiator's Badge"))
            {
                ItemsManager.UseItem(ItemsManager.GetIdByName("Notorious Gladiator's Badge"));
            }
        }

        if (!MyHelpers.haveBuff("Hot Streak!") && !MyHelpers.haveBuff("Heating Up"))
        {
            needBlast = true;
        }

        while (!MemoryofLucidDreams.IsSpellUsable || ObjectManager.Me.IsCast)
        {
            Thread.Sleep(10);
        }
        while (!MyHelpers.haveBuff(MemoryofLucidDreams.Name))
        {
            MyHelpers.castSpell(MemoryofLucidDreams.Name);
        }

        Thread.Sleep(100);

        if (!MyHelpers.haveBuff("Hot Streak!"))
        {
            MyHelpers.castSpell(FireBlast.Name);
        }


        while (Berserking.IsSpellUsable)
        {
            MyHelpers.castSpell(Berserking.Name);
        }



        while (!RuneofPower.IsSpellUsable)
        {
            Thread.Sleep(10);
        }
        while (!MyHelpers.haveBuff(RuneofPower.Name))
        {
            MyHelpers.castSpell(RuneofPower.Name);
        }



        while (!Meteor.IsSpellUsable || ObjectManager.Me.IsCast)
        {
            Thread.Sleep(10);
        }
        while (Meteor.IsSpellUsable)
        {
            MyHelpers.castSpell(Meteor.Name);
            ClickOnTerrain.Pulse(ObjectManager.Target.Position);
        }


        while (!Combustion.IsSpellUsable || ObjectManager.Me.IsCast)
        {
            Thread.Sleep(10);
        }
        while (!MyHelpers.haveBuff(Combustion.Name))
        {
            MyHelpers.castSpell(Combustion.Name);
        }

        if (needBlast && !MyHelpers.haveBuff("Hot Streak!"))
        {
            MyHelpers.castSpell(FireBlast.Name);
        }
        needBlast = false;
        buffTime  = false;
        return;
    }
 public bool needCombustion()
 {
     return(Combustion.IsSpellUsable && !MyHelpers.haveBuff(Combustion.Name) && MyHelpers.haveBuff(MemoryofLucidDreams.Name));
 }
 public static bool rtbReroll()
 {
     return(MyHelpers.rollTheBonesCount() < 2 &&
            !MyHelpers.haveBuff(MyHelpers.RuthlessPrecision) &&
            !MyHelpers.haveBuff(MyHelpers.GrandMelee));
 }
Exemple #13
0
    /*
     * CombatRotation()
     */
    public void CombatRotation()
    {
        if (OutlawSettings.CurrentSetting.EnableInterrupt)
        {
            WoWUnit toInterrupt = MyHelpers.InterruptableUnits();
            if (toInterrupt != null)
            {
                ObjectManager.Me.FocusGuid = toInterrupt.Guid;

                if (Kick.IsSpellUsable && Kick.KnownSpell)
                {
                    MovementManager.Face(toInterrupt.Position);
                    Kick.Launch(false, false, false, "focus");
                    Lua.LuaDoString("dRotationFrame.text:SetText(\"Kick " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
                    return;
                }
                if (Gouge.IsSpellUsable && Gouge.KnownSpell)
                {
                    MovementManager.Face(toInterrupt.Position);
                    Gouge.Launch(false, false, false, "focus");
                    Lua.LuaDoString("dRotationFrame.text:SetText(\"Gouge " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
                    return;
                }
                if (Blind.IsSpellUsable && Blind.KnownSpell)
                {
                    MovementManager.Face(toInterrupt.Position);
                    Blind.Launch(false, false, false, "focus");
                    Lua.LuaDoString("dRotationFrame.text:SetText(\"Blind " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
                    return;
                }
            }
        }

        if (ObjectManager.Me.Health < ObjectManager.Me.MaxHealth * 0.7)
        {
            if (CrimsonVial.KnownSpell && CrimsonVial.IsSpellUsable)
            {
                CrimsonVial.Launch();
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Crimson Vial"")");
                return;
            }


            if (Feint.KnownSpell && Feint.IsSpellUsable)
            {
                Feint.Launch();
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Feint"")");
                return;
            }
        }

        if (ObjectManager.Me.Health < ObjectManager.Me.MaxHealth * 0.3)
        {
            if (SmokeBomb.KnownSpell && SmokeBomb.IsSpellUsable)
            {
                SmokeBomb.Launch();
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Smoke Bomb"")");
                return;
            }

            if (Riposte.KnownSpell && Riposte.IsSpellUsable)
            {
                Riposte.Launch();
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Riposte"")");
                return;
            }
        }

        if (ObjectManager.Me.IsStunned || ObjectManager.Me.Rooted || ObjectManager.Me.Confused)
        {
            if (GladiatorsMedallion.KnownSpell && GladiatorsMedallion.IsSpellUsable)
            {
                GladiatorsMedallion.Launch();
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Gladiators Medallion"")");
                return;
            }
        }

        if (ObjectManager.Me.SpeedMoving < 8.05 && ObjectManager.Me.SpeedMoving > 0)
        {
            if (OutlawSettings.CurrentSetting.EnableCloakOfShadows &&
                CloakOfShadows.KnownSpell && CloakOfShadows.IsSpellUsable)
            {
                CloakOfShadows.Launch();
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Cloak Of Shadows"")");
                return;
            }
        }
        if (OutlawSettings.CurrentSetting.EnableRazorCoral &&
            EquippedItems.GetEquippedItems().Find(x => x.GetItemInfo.ItemName == ItemsManager.GetNameById(169311)) != null &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            Lua.LuaDoString("result = \"\";  local cooldown = GetItemCooldown(169311) if (cooldown == 0 ) then     result = true else     result = false end ", "result") == "true" &&
            (!ObjectManager.Target.BuffCastedByAll("Razor Coral").Contains(ObjectManager.Me.Guid) || ObjectManager.Target.BuffStack("Razor Coral") >= 10))
        {
            ItemsManager.UseItem(169311);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Razor Coral"")");
            return;
        }

        if (OutlawSettings.CurrentSetting.EnableBladeFlurry &&
            BladeFlurry.KnownSpell && !MyHelpers.haveBuff("Blade Flurry") && BladeFlurry.IsSpellUsable && (MyHelpers.getAttackers(10) > 1))
        {
            BladeFlurry.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Blade Flurry"")");
            return;
        }

        if (OutlawSettings.CurrentSetting.EnableBloodoftheEnemy &&
            BloodoftheEnemy.KnownSpell &&
            BloodoftheEnemy.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            !MyHelpers.rtbReroll() &&
            BetweenTheEyes.IsSpellUsable &&
            (ObjectManager.Target.IsLocalPlayer || ObjectManager.Target.Type == WoWObjectType.Player)

            )
        {
            BloodoftheEnemy.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Bloodof the Enemy"")");
            return;
        }



        if (OutlawSettings.CurrentSetting.EnableGrapplingHook &&
            !ObjectManager.Me.IsMounted &&
            GrapplingHook.KnownSpell &&
            GrapplingHook.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= 20.0f &&
            MyHelpers.getTargetDistance() > MyHelpers.getMeleeRange()
            )
        {
            ClickOnTerrain.Spell(195457, ObjectManager.Target.Position);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Grappling Hook"")");
            return;
        }

        if (OutlawSettings.CurrentSetting.EnableSprint &&
            !ObjectManager.Me.IsMounted &&
            Sprint.KnownSpell &&
            Sprint.IsSpellUsable &&
            MyHelpers.getTargetDistance() > 20.0f
            )
        {
            Sprint.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Sprint"")");
            return;
        }

        if (OutlawSettings.CurrentSetting.EnableRolltheBones &&
            RolltheBones.KnownSpell &&
            RolltheBones.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            MyHelpers.getComboPoint() >= 4 &&
            MyHelpers.rtbReroll()
            )
        {
            RolltheBones.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Roll the Bones"")");
            return;
        }
        if (OutlawSettings.CurrentSetting.EnableAdrenalineRush &&
            AdrenalineRush.KnownSpell &&
            AdrenalineRush.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            (ObjectManager.Target.IsBoss ||
             ObjectManager.Target.IsElite ||
             ObjectManager.Target.IsLocalPlayer ||
             ObjectManager.Target.Type == WoWObjectType.Player ||
             MyHelpers.getAttackers(10) > 3))
        {
            AdrenalineRush.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Adrenaline Rush"")");
            return;
        }

        if (BladeRush.KnownSpell &&
            BladeRush.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= 20.0f &&
            MyHelpers.getTargetDistance() > MyHelpers.getMeleeRange() &&
            !ObjectManager.Me.IsMounted
            )
        {
            BladeRush.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Blade Rush"")");
            return;
        }

        if (OutlawSettings.CurrentSetting.EnablePistolShot &&
            PistolShot.KnownSpell &&
            PistolShot.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= 20.0f &&
            ((MyHelpers.haveBuff("Opportunity") && MyHelpers.getComboPoint() <= 4) ||
             (MyHelpers.getTargetDistance() > MyHelpers.getMeleeRange() && !(BetweenTheEyes.IsSpellUsable && MyHelpers.getComboPoint() == 6)) ||
             (MyHelpers.haveBuff("Deadshot") && MyHelpers.haveBuff("Seething Rage") && !BetweenTheEyes.IsSpellUsable)
            ))
        {
            PistolShot.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Pistol Shot"")");
            return;
        }

        if (OutlawSettings.CurrentSetting.EnableSinisterStrike &&
            SinisterStrike.KnownSpell &&
            SinisterStrike.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            MyHelpers.getComboPoint() <= 5)
        {
            SinisterStrike.Launch();
            Lua.LuaDoString("dRotationFrame.text:SetText(\"Sinister Strike " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
            return;
        }



        if (OutlawSettings.CurrentSetting.EnableBetweenTheEyes &&
            BetweenTheEyes.KnownSpell &&
            BetweenTheEyes.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= 20.0f &&
            MyHelpers.getComboPoint() == 6)
        {
            BetweenTheEyes.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Between the Eyes"")");

            return;
        }

        if (OutlawSettings.CurrentSetting.EnableDispatch &&
            Dispatch.KnownSpell &&
            Dispatch.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            MyHelpers.getComboPoint() == 6)
        {
            Dispatch.Launch();
            Lua.LuaDoString("dRotationFrame.text:SetText(\"Dispatch " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
            return;
        }
    }
    /*
     * CombatRotation()
     */
    public void CombatRotation()
    {
        if (doKicks())
        {
            return;
        }

        if (doResist())
        {
            return;
        }

        if (Garrote.KnownSpell && Garrote.IsSpellUsable &&
            (!ObjectManager.Target.HaveBuff("Garrote") || MyHelpers.TargetDebuffTimeLeft("Garrote") < 2))
        {
            MyHelpers.castSpell(Garrote.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Garrote"")");
            return;
        }
        if (EquippedItems.GetEquippedItems().Find(x => x.GetItemInfo.ItemName == ItemsManager.GetNameById(169311)) != null &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            ObjectManager.Target.IsAttackable &&
            Lua.LuaDoString <bool>(@"if GetItemCooldown(169311) == 0  then return true; else return false; end") &&
            (!ObjectManager.Target.BuffCastedByAll("Razor Coral").Contains(ObjectManager.Me.Guid) || ObjectManager.Target.BuffCastedByAll("Vendetta").Contains(ObjectManager.Me.Guid)))
        {
            ItemsManager.UseItem(169311);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Razor Coral"")");
            return;
        }

        if (Rupture.KnownSpell && Rupture.IsSpellUsable &&
            MyHelpers.getComboPoint() > 4 &&
            (!ObjectManager.Target.HaveBuff("Rupture") || MyHelpers.TargetDebuffTimeLeft("Rupture") < 2))
        {
            MyHelpers.castSpell(Rupture.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Rupture"")");
            return;
        }

        if (Vendetta.KnownSpell && Vendetta.IsSpellUsable && (MyHelpers.haveOP() > 20 || MyHelpers.haveBL()))
        {
            MyHelpers.castSpell(Vendetta.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Vendetta"")");
            return;
        }
        if (Berserking.KnownSpell && Berserking.IsSpellUsable && ObjectManager.Target.BuffCastedByAll("Vendetta").Contains(ObjectManager.Me.Guid))
        {
            MyHelpers.castSpell(Berserking.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""GuardianofAzeroth"")");
            return;
        }

        if (GuardianofAzeroth.KnownSpell && GuardianofAzeroth.IsSpellUsable && ObjectManager.Target.BuffCastedByAll("Vendetta").Contains(ObjectManager.Me.Guid))
        {
            MyHelpers.castSpell(GuardianofAzeroth.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""GuardianofAzeroth"")");
            return;
        }
        if (ToxicBlade.KnownSpell && ToxicBlade.IsSpellUsable && ((!Vendetta.IsSpellUsable && ObjectManager.Target.HaveBuff("Rupture") && MyHelpers.haveBuff("Envenom")) || ObjectManager.Target.BuffCastedByAll("Vendetta").Contains(ObjectManager.Me.Guid)))
        {
            MyHelpers.castSpell(ToxicBlade.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Toxic Blade"")");
            return;
        }
        if (Vanish.KnownSpell && Vanish.IsSpellUsable && Garrote.IsSpellUsable && ObjectManager.Target.BuffCastedByAll("Vendetta").Contains(ObjectManager.Me.Guid))
        {
            MyHelpers.castSpell(Vanish.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Garrote"")");
            return;
        }

        if (Envenom.KnownSpell && Envenom.IsSpellUsable &&
            MyHelpers.getComboPoint() > 4)
        {
            MyHelpers.castSpell(Envenom.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Envenom"")");
            return;
        }

        if (Mutilate.KnownSpell && Mutilate.IsSpellUsable &&
            MyHelpers.getComboPoint() <= 4)
        {
            MyHelpers.castSpell(Mutilate.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Mutilate"")");
            return;
        }
    }
Exemple #15
0
    private bool doBuffs()
    {
        if (ObjectManager.Me.HealthPercent < 30)
        {
            if (OutlawSettings.CurrentSetting.EnableCrimsonVial && CrimsonVial.KnownSpell && CrimsonVial.IsSpellUsable)
            {
                MyHelpers.castSpell(CrimsonVial.Name);
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Crimson Vial"")");
                return(true);
            }

            if (OutlawSettings.CurrentSetting.EnableFeint && Feint.KnownSpell && Feint.IsSpellUsable)
            {
                MyHelpers.castSpell(Feint.Name);
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Feint"")");
                return(true);
            }


            if (OutlawSettings.CurrentSetting.EnableRiposte && Riposte.KnownSpell && Riposte.IsSpellUsable)
            {
                MyHelpers.castSpell(Riposte.Name);
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Riposte"")");
                return(true);
            }
        }


        if (OutlawSettings.CurrentSetting.EnableRazorCoral &&
            EquippedItems.GetEquippedItems().Find(x => x.GetItemInfo.ItemName == ItemsManager.GetNameById(169311)) != null &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            ObjectManager.Target.IsAttackable &&
            Lua.LuaDoString("result = \"\";  local cooldown = GetItemCooldown(169311) if (cooldown == 0 ) then     result = true else     result = false end ", "result") == "true" &&
            (!ObjectManager.Target.BuffCastedByAll("Razor Coral").Contains(ObjectManager.Me.Guid) || ObjectManager.Target.BuffStack("Razor Coral") >= 10))
        {
            ItemsManager.UseItem(169311);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Razor Coral"")");
            return(true);
        }

        if (OutlawSettings.CurrentSetting.EnableBladeFlurry &&
            BladeFlurry.KnownSpell &&
            !MyHelpers.haveBuff("Blade Flurry") &&
            BladeFlurry.IsSpellUsable &&
            !MyHelpers.rtbReroll() &&
            (MyHelpers.getAttackers(18) > 2))
        {
            MyHelpers.castSpell(BladeFlurry.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Blade Flurry"")");
            return(true);
        }


        if (OutlawSettings.CurrentSetting.EnableAdrenalineRush &&
            AdrenalineRush.KnownSpell &&
            AdrenalineRush.IsSpellUsable &&
            !MyHelpers.rtbReroll() &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange())
        {
            MyHelpers.castSpell(AdrenalineRush.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Adrenaline Rush"")");
            return(true);
        }

        if (Berserking.KnownSpell &&
            Berserking.IsSpellUsable &&
            !MyHelpers.rtbReroll() &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange())
        {
            MyHelpers.castSpell(Berserking.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Berserking"")");
            return(true);
        }

        if (OutlawSettings.CurrentSetting.EnableBloodoftheEnemy &&
            BloodoftheEnemy.KnownSpell &&
            BloodoftheEnemy.IsSpellUsable &&
            BetweenTheEyes.IsSpellUsable &&
            MyHelpers.haveBuff(MyHelpers.RuthlessPrecision) &&
            MyHelpers.getComboPoint() >= 6 &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            (ObjectManager.Target.IsBoss ||
             ObjectManager.Target.IsElite ||
             MyHelpers.getAttackers(18) > 3 ||
             ObjectManager.Target.Name.Contains("Training"))
            )
        {
            BloodoftheEnemy.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Bloodof the Enemy"")");
            return(true);
        }

        if (FocusedAzeriteBeam.KnownSpell &&
            FocusedAzeriteBeam.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            MyHelpers.getAttackers(10) > 3
            )
        {
            FocusedAzeriteBeam.Launch(false, true, false, "target");
            Thread.Sleep(3000);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Bloodof the Enemy"")");
            return(true);
        }


        return(false);
    }
    public void burstPrepare()
    {
        buffTime = true;
        doBurst  = false;
        while (ObjectManager.Me.IsCast)
        {
            ;
        }
        Thread.Sleep(1000);
        if (MyHelpers.itemIsUsable("Azshara's Font of Power"))
        {
            ItemsManager.UseItem(ItemsManager.GetIdByName("Azshara's Font of Power"));
            Thread.Sleep(4020);
        }

        if (MyHelpers.itemIsEquiped("Notorious Gladiator's Badge"))
        {
            Thread.Sleep(13000);
        }

        if (!MyHelpers.haveBuff("Hot Streak!") && !MyHelpers.haveBuff("Heating Up"))
        {
            MyHelpers.castSpell(Fireball.Name);
            Thread.Sleep(2300);
        }
        if (MyHelpers.itemIsEquiped("Notorious Gladiator's Badge"))
        {
            while (!MyHelpers.itemIsUsable("Notorious Gladiator's Badge"))
            {
                ;
            }

            while (MyHelpers.itemIsUsable("Notorious Gladiator's Badge"))
            {
                ItemsManager.UseItem(ItemsManager.GetIdByName("Notorious Gladiator's Badge"));
            }
        }

        if (!MyHelpers.haveBuff("Hot Streak!") && !MyHelpers.haveBuff("Heating Up"))
        {
            needBlast = true;
        }
        while (!needLucid() || ObjectManager.Me.IsCast)
        {
            ;
        }


        MyHelpers.castSpell(MemoryofLucidDreams.Name);
        Thread.Sleep(100);

        if (!MyHelpers.haveBuff("Hot Streak!"))
        {
            MyHelpers.castSpell(FireBlast.Name);
        }
        MyHelpers.castSpell(Berserking.Name);
        while (!needRune() || ObjectManager.Me.IsCast)
        {
            ;
        }

        MyHelpers.castSpell(RuneofPower.Name);
        while (!needCombustion() || ObjectManager.Me.IsCast)
        {
            ;
        }

        MyHelpers.castSpell(Combustion.Name);

        if (needBlast && !MyHelpers.haveBuff("Hot Streak!"))
        {
            MyHelpers.castSpell(FireBlast.Name);
        }
        needBlast = false;
        buffTime  = false;
        return;
    }