private bool doKicks()
    {
        Vector3 lastPos = ObjectManager.Me.Position;

        if (OutlawSettings.CurrentSetting.EnableInterrupt)
        {
            WoWUnit toInterrupt = MyHelpers.InterruptableUnits();
            if (toInterrupt != null)
            {
                ObjectManager.Me.FocusGuid = toInterrupt.Guid;
                if (Kick.IsSpellUsable && Kick.KnownSpell && MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange())
                {
                    MovementManager.Face(toInterrupt.Position);
                    Kick.Launch(false, false, false, "focus");
                    MovementManager.Face(ObjectManager.Target.Position);
                    Lua.LuaDoString("dRotationFrame.text:SetText(\"Kick " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
                    return(true);
                }

                if (Blind.IsSpellUsable && Blind.KnownSpell && MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange())
                {
                    MovementManager.Face(toInterrupt.Position);
                    Blind.Launch(false, false, false, "focus");
                    MovementManager.Face(ObjectManager.Target.Position);
                    Lua.LuaDoString("dRotationFrame.text:SetText(\"Blind " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
                    return(true);
                }
            }
        }
        return(false);
    }
Exemple #2
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 #3
0
    private bool doFinishers()
    {
        if (OutlawSettings.CurrentSetting.EnableBetweenTheEyes &&
            BetweenTheEyes.KnownSpell &&
            BetweenTheEyes.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getDistanceRange() &&
            MyHelpers.getComboPoint() >= 6)
        {
            MyHelpers.castSpell(BetweenTheEyes.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Between the Eyes"")");
            return(true);
        }

        if (OutlawSettings.CurrentSetting.EnableRolltheBones &&
            RolltheBones.KnownSpell &&
            RolltheBones.IsSpellUsable &&
            !BetweenTheEyes.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            MyHelpers.getComboPoint() >= 6 &&
            MyHelpers.rtbReroll()
            )
        {
            MyHelpers.castSpell(RolltheBones.Name);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Roll the Bones"")");
            return(true);
        }

        if (OutlawSettings.CurrentSetting.EnableDispatch &&
            Dispatch.KnownSpell &&
            Dispatch.IsSpellUsable &&
            !BetweenTheEyes.IsSpellUsable &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            MyHelpers.getComboPoint() >= 6 - MyHelpers.cpReduction())
        {
            MyHelpers.castSpell(Dispatch.Name);
            Lua.LuaDoString("dRotationFrame.text:SetText(\"Dispatch " + MyHelpers.getTargetDistance() + " / " + MyHelpers.GetMeleeRangeWithTarget() + "\")");
            return(true);
        }

        return(false);
    }
    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;
        }
    }
Exemple #5
0
    /*
     * CombatRotation()
     */
    public void CombatRotation()
    {
        if (lastTarget != ObjectManager.Target)
        {
            lastTarget = ObjectManager.Target;
            isCheap    = true;
        }

        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 (Evasion.KnownSpell && Evasion.IsSpellUsable)
            {
                Evasion.Launch();
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Evasion"")");
                return;
            }

            if (EquippedItems.GetEquippedItems().Find(x => x.GetItemInfo.ItemName == ItemsManager.GetNameById(167378)) != null &&
                MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
                Lua.LuaDoString("result = \"\";  local cooldown = GetItemCooldown(167378) if (cooldown == 0 ) then     result = true else     result = false end ", "result") == "true")
            {
                ItemsManager.UseItem(167378);
                Lua.LuaDoString(@"dRotationFrame.text:SetText(""Emblem"")");
                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 (MyHelpers.sealthed() &&
            ColdBlood.KnownSpell &&
            ColdBlood.IsSpellUsable &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            ColdBlood.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""ColdBlood"")");
            return;
        }

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

        if (MyHelpers.sealthed() &&
            ShadowBlades.KnownSpell &&
            ShadowBlades.IsSpellUsable &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            ShadowBlades.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""ShadowBlades"")");
            return;
        }
        if (SymbolsofDeath.KnownSpell &&
            SymbolsofDeath.IsSpellUsable &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            SymbolsofDeath.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""SymbolsofDeath"")");
            return;
        }
        if (MyHelpers.sealthed() &&
            isCheap &&
            CheapShot.KnownSpell &&
            CheapShot.IsSpellUsable &&
            !ObjectManager.Target.HaveBuff("Cheap Shot") &&
            !ObjectManager.Target.HaveBuff("Kidney Shot") &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            CheapShot.Launch();
            Thread newThread = new Thread(runCheap);
            newThread.Start();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""CheapShot"")");
            return;
        }
        if (EquippedItems.GetEquippedItems().Find(x => x.GetItemInfo.ItemName == ItemsManager.GetNameById(167383)) != null &&
            MyHelpers.getTargetDistance() <= MyHelpers.getMeleeRange() &&
            Lua.LuaDoString("result = \"\";  local cooldown = GetItemCooldown(167383) if (cooldown == 0 ) then     result = true else     result = false end ", "result") == "true"
            )
        {
            ItemsManager.UseItem(167383);
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""maledict"")");
            return;
        }
        if (MarkedforDeath.KnownSpell &&
            MarkedforDeath.IsSpellUsable &&
            MyHelpers.getComboPoint() == 0 &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            MarkedforDeath.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""MarkedforDeath"")");
            return;
        }
        if (MyHelpers.sealthed() &&
            Nightblade.KnownSpell &&
            Nightblade.IsSpellUsable &&
            MyHelpers.getComboPoint() >= 4 &&
            !ObjectManager.Target.HaveBuff("Nightblade") &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            Nightblade.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Nightblade"")");
            return;
        }

        if (MyHelpers.sealthed() &&
            Shadowstrike.KnownSpell &&
            Shadowstrike.IsSpellUsable &&
            MyHelpers.getComboPoint() < 4 &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            Shadowstrike.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Shadowstrike"")");
            return;
        }
        if (ShadowStep.KnownSpell &&
            ShadowStep.IsSpellUsable &&
            MyHelpers.getTargetDistance() > MyHelpers.getMeleeRange() &&
            MyHelpers.getTargetDistance() < 25.0f
            )
        {
            ShadowStep.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""ShadowStep"")");
            return;
        }
        if (!MyHelpers.sealthed() &&
            ShadowDance.KnownSpell &&
            ShadowDance.IsSpellUsable &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            ShadowDance.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""ShadowDance"")");
            return;
        }
        if (!MyHelpers.sealthed() &&
            KidneyShot.KnownSpell &&
            KidneyShot.IsSpellUsable &&
            MyHelpers.getComboPoint() >= 4 &&
            !ObjectManager.Target.HaveBuff("Cheap Shot") &&
            !ObjectManager.Target.HaveBuff("Kidney Shot") &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            KidneyShot.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""ShadowDance"")");
            return;
        }

        if (Eviscerate.KnownSpell &&
            Eviscerate.IsSpellUsable &&
            MyHelpers.getComboPoint() >= 4 &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            Eviscerate.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Eviscerate"")");
            return;
        }
        if (ConcentratedFlame.KnownSpell &&
            ConcentratedFlame.IsSpellUsable
            )
        {
            ConcentratedFlame.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Concentrated Flame"")");
            return;
        }
        if (!MyHelpers.sealthed() &&
            Backstab.KnownSpell &&
            Backstab.IsSpellUsable &&
            MyHelpers.getComboPoint() < 4 &&
            MyHelpers.getTargetDistance() < MyHelpers.getMeleeRange()
            )
        {
            Backstab.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""ShadowDance"")");
            return;
        }
    }
Exemple #6
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.6)
        {
            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.EnableSprint &&
            !ObjectManager.Me.IsMounted &&
            Sprint.KnownSpell &&
            Sprint.IsSpellUsable &&
            MyHelpers.getTargetDistance() > 20.0f
            )
        {
            Sprint.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Sprint"")");
            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 (Garrote.KnownSpell && Garrote.IsSpellUsable &&
            !ObjectManager.Target.HaveBuff("Garrote"))
        {
            Garrote.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Garrote"")");
            return;
        }

        if (Rupture.KnownSpell && Rupture.IsSpellUsable &&
            MyHelpers.getComboPoint() >= 4 &&
            !ObjectManager.Target.HaveBuff("Rupture"))
        {
            Rupture.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Rupture"")");
            return;
        }
        if (ToxicBlade.KnownSpell && ToxicBlade.IsSpellUsable &&
            ObjectManager.Target.HaveBuff("Rupture"))
        {
            ToxicBlade.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Toxic Blade"")");
            return;
        }
        if (Vendetta.KnownSpell && Vendetta.IsSpellUsable &&
            ObjectManager.Target.HaveBuff("Rupture"))
        {
            Vendetta.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Vendetta"")");
            return;
        }
        if (Envenom.KnownSpell && Envenom.IsSpellUsable &&
            MyHelpers.getComboPoint() >= 4 &&
            ObjectManager.Target.HaveBuff("Rupture"))
        {
            Envenom.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Envenom"")");
            return;
        }
        if (Mutilate.KnownSpell && Mutilate.IsSpellUsable &&
            MyHelpers.getComboPoint() < 4)
        {
            Mutilate.Launch();
            Lua.LuaDoString(@"dRotationFrame.text:SetText(""Mutilate"")");
            return;
        }
    }
Exemple #7
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 #9
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);
    }