Skip to content

Commit c42c7f4

Browse files
committed
Fury Options Update
1 parent e1edaa2 commit c42c7f4

File tree

1 file changed

+65
-57
lines changed

1 file changed

+65
-57
lines changed

Diff for: Rotations/Warrior/Fury/BrewFuryLeveling.lua

+65-57
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
-- Status = Limited
66
-- Readiness = PVE Leveling
77
-------------------------------------------------------
8-
local rotationName = "BrewFuryLeveling" -- Change to name of profile listed in options drop down
8+
local rotationName = "BrewFuryLeveling"
99

1010
local colors = {
1111
blue = "|cff4285F4",
@@ -21,34 +21,45 @@ local colors = {
2121
orange = "|cffff8000"
2222
}
2323

24+
local text = {
25+
options={
26+
onlyUseConsumablesInRaids = "Only use consumables in raids",
27+
28+
},
29+
cooldowns={
30+
cooldowns = colors.purple .. "Cooldowns",
31+
useCooldowns = colors.purple .. "Use cooldowns",
32+
numberOfMobs = colors.purple .. "Number of mobs",
33+
enragedRegeneration = colors.purple .. "Enraged Regeneration",
34+
},
35+
defensive={
36+
defensive = colors.orange .. "Defensive",
37+
useSpellReflection = colors.orange .. "Use Spell Reflection if can't interrupt",
38+
usePummel = colors.orange .. "Use Pummel as interrupt",
39+
beserkerRage = colors.orange .. "Use Beserker Rage",
40+
41+
}
42+
}
2443

25-
26-
---------------
27-
--- Toggles ---
28-
---------------
29-
local function createToggles() -- Define custom toggles, these are the buttons from the toggle bar
30-
-- Rotation Button
44+
local function createToggles()
3145
local RotationModes = {
3246
[1] = { mode = "Auto", value = 1 , overlay = "Automatic Rotation", tip = "Swaps between Single and Multiple based on number of #enemies.yards8 in range.", highlight = 1, icon = br.player.spell.whirlwind },
3347
[2] = { mode = "Mult", value = 2 , overlay = "Multiple Target Rotation", tip = "Multiple target rotation used.", highlight = 0, icon = br.player.spell.bladestorm },
3448
[3] = { mode = "Sing", value = 3 , overlay = "Single Target Rotation", tip = "Single target rotation used.", highlight = 0, icon = br.player.spell.ragingBlow },
3549
[4] = { mode = "Off", value = 4 , overlay = "DPS Rotation Disabled", tip = "Disable DPS Rotation", highlight = 0, icon = br.player.spell.enragedRegeneration}
3650
};
3751
br.ui:createToggle(RotationModes,"Rotation",1,0)
38-
-- Cooldown Button
3952
local CooldownModes = {
4053
[1] = { mode = "Auto", value = 1 , overlay = "Cooldowns Automated", tip = "Automatic Cooldowns - Boss Detection.", highlight = 1, icon = br.player.spell.recklessness },
4154
[2] = { mode = "On", value = 2 , overlay = "Cooldowns Enabled", tip = "Cooldowns used regardless of target.", highlight = 0, icon = br.player.spell.recklessness },
4255
[3] = { mode = "Off", value = 3 , overlay = "Cooldowns Disabled", tip = "No Cooldowns will be used.", highlight = 0, icon = br.player.spell.recklessness }
4356
};
4457
br.ui:createToggle(CooldownModes,"Cooldown",2,0)
45-
-- Defensive Button
4658
local DefensiveModes = {
4759
[1] = { mode = "On", value = 1 , overlay = "Defensive Enabled", tip = "Includes Defensive Cooldowns.", highlight = 1, icon = br.player.spell.enragedRegeneration },
4860
[2] = { mode = "Off", value = 2 , overlay = "Defensive Disabled", tip = "No Defensives will be used.", highlight = 0, icon = br.player.spell.enragedRegeneration }
4961
};
5062
br.ui:createToggle(DefensiveModes,"Defensive",3,0)
51-
-- Interrupt Button
5263
local InterruptModes = {
5364
[1] = { mode = "On", value = 1 , overlay = "Interrupts Enabled", tip = "Includes Basic Interrupts.", highlight = 1, icon = br.player.spell.pummel },
5465
[2] = { mode = "Off", value = 2 , overlay = "Interrupts Disabled", tip = "No Interrupts will be used.", highlight = 0, icon = br.player.spell.pummel }
@@ -59,11 +70,19 @@ local function createToggles() -- Define custom toggles, these are the buttons f
5970
[2] = { mode = "OFF", value = 0 , overlay = "Debugs Off", tip = "Debug Messages Off", highlight = 0, icon =200733 },
6071
}
6172
br.ui:createToggle(DebugModes,"Debugs",5,0)
73+
local HeroicLeap = {
74+
[1] = { mode = "ON", value = 1 , overlay = "Heroic Leap On", tip = "Heroic Leap On", highlight = 1, icon=br.player.spell.heroicLeap },
75+
[2] = { mode = "OFF", value = 0 , overlay = "Heroic Leap Off", tip = "Heroic Leap Off", highlight = 0, icon=br.player.spell.heroicLeap },
76+
}
77+
br.ui:createToggle(HeroicLeap,"HeroicLeap",4,1)
78+
local Charge = {
79+
[1] = { mode = "ON", value = 1 , overlay = "Charge On", tip = "Charge On", highlight = 1, icon=br.player.spell.charge },
80+
[2] = { mode = "OFF", value = 0 , overlay = "Charge Off", tip = "Charge Off", highlight = 0, icon=br.player.spell.charge },
81+
}
82+
br.ui:createToggle(Charge,"Charge",3,1)
6283
end
6384

64-
---------------
65-
--- OPTIONS ---
66-
---------------
85+
6786
local function createOptions()
6887
local optionTable
6988

@@ -73,40 +92,26 @@ local function createOptions()
7392
--- GENERAL OPTIONS --- -- Define General Options
7493
-----------------------
7594
section = br.ui:createSection(br.ui.window.profile, "General")
76-
7795
br.ui:checkSectionState(section)
78-
------------------------
79-
--- COOLDOWN OPTIONS --- -- Define Cooldown Options
80-
------------------------
81-
section = br.ui:createSection(br.ui.window.profile, "Cooldowns")
8296

97+
section = br.ui:createSection(br.ui.window.profile, text.cooldowns.cooldowns)
98+
br.ui:createCheckbox(section, text.cooldowns.useCooldowns)
99+
br.ui:createSpinner(section, text.cooldowns.numberOfMobs, 2, 2, 10, 1, "|cffFFBB00Number of enemies to use cooldowns on.")
100+
br.ui:createCheckbox(section, text.cooldowns.enragedRegeneration)
83101
br.ui:checkSectionState(section)
84-
-------------------------
85-
--- DEFENSIVE OPTIONS --- -- Define Defensive Options
86-
-------------------------
87-
section = br.ui:createSection(br.ui.window.profile, "Defensive")
88102

103+
section = br.ui:createSection(br.ui.window.profile, text.defensive.defensive)
104+
br.ui:createCheckbox(section, text.defensive.useSpellReflection)
105+
br.ui:createCheckbox(section, text.defensive.usePummel)
106+
br.ui:createCheckbox(section, text.defensive.beserkerRage)
107+
br.ui:createSpinner(section, colors.orange .. "Interrupt At", 0, 0, 95, 5, "|cffFFBB00Cast Percentage to use at.")
89108
br.ui:checkSectionState(section)
90-
-------------------------
91-
--- INTERRUPT OPTIONS --- -- Define Interrupt Options
92-
-------------------------
93-
section = br.ui:createSection(br.ui.window.profile, "Interrupts")
94-
-- Interrupt Percentage
95-
br.ui:createSpinner(section, "Interrupt At", 0, 0, 95, 5, "|cffFFBB00Cast Percentage to use at.")
96-
br.ui:checkSectionState(section)
97-
----------------------
98-
--- TOGGLE OPTIONS --- -- Degine Toggle Options
99-
----------------------
109+
100110
section = br.ui:createSection(br.ui.window.profile, "Toggle Keys")
101-
-- Single/Multi Toggle
102111
br.ui:createDropdown(section, "Rotation Mode", br.dropOptions.Toggle, 4)
103-
--Cooldown Key Toggle
104112
br.ui:createDropdown(section, "Cooldown Mode", br.dropOptions.Toggle, 3)
105-
--Defensive Key Toggle
106113
br.ui:createDropdown(section, "Defensive Mode", br.dropOptions.Toggle, 6)
107-
-- Interrupts Key Toggle
108114
br.ui:createDropdown(section, "Interrupt Mode", br.dropOptions.Toggle, 6)
109-
-- Pause Toggle
110115
br.ui:createDropdown(section, "Pause Mode", br.dropOptions.Toggle, 6)
111116
br.ui:checkSectionState(section)
112117
end
@@ -171,6 +176,12 @@ end -- End Action List - Extra
171176

172177
-- Action List - Defensive
173178
actionList.Defensive = function()
179+
-- for i=1, #enemies.yards5 do
180+
-- local name,_,_,startTime,endTime,_,_,notInterruptable,spellId = br._G.UnitCastingInfo(enemies.yards5[i])
181+
-- if name ~= nil then
182+
-- if notInterruptable or (not notInterruptable and )
183+
-- end
184+
-- end
174185

175186
end -- End Action List - Defensive
176187

@@ -209,8 +220,8 @@ actionList.PreCombat = function()
209220
end
210221
end
211222
if unit.valid("target") then -- Abilities below this only used when target is valid
212-
-- Start Attack
213-
if unit.distance("target") >=8 and unit.distance("target") <= 40
223+
224+
if ui.mode.HeroicLeap==1 and unit.distance("target") >=8 and unit.distance("target") <= 40
214225
and cast.able.heroicLeap("target")
215226
and not cast.last.heroicLeap()
216227
and not cast.last.charge()
@@ -223,7 +234,8 @@ actionList.PreCombat = function()
223234
debugMessage("Failed to Heroic Leap")
224235
end
225236
end
226-
if unit.distance("target") >=8 and unit.distance("target") <= 25
237+
238+
if ui.mode.Charge==1 and unit.distance("target") >=8 and unit.distance("target") <= 25
227239
and cast.able.charge("target")
228240
and not cast.last.heroicLeap()
229241
and not cast.last.charge()
@@ -236,21 +248,7 @@ actionList.PreCombat = function()
236248
debugMessage("Failed to Charge")
237249
end
238250
end
239-
if not unit.moving("player") and unit.distance("target") >=8 and unit.distance("target") <= 30
240-
and cast.able.heroicThrow("target")
241-
and not cast.last.heroicLeap()
242-
and not cast.last.charge()
243-
and not cast.last.heroicThrow()
244-
then
245-
if cast.heroicThrow("target")
246-
then
247-
debugMessage("Casting Heroic Throw")
248-
return true
249-
else
250-
debugMessage("Failed to Heroic Throw")
251-
end
252-
end
253-
251+
254252
if unit.distance("target") <= 5 then
255253
if cast.able.autoAttack("target") then
256254
if cast.autoAttack("target") then debugMessage("Casting Auto Attack [Pre-Combat]") return true end
@@ -284,7 +282,9 @@ local function runRotation() -- This is the main profile loop, any below this po
284282

285283

286284
if var.lastCast == nil then var.lastCast=ui.time() end
287-
ui.mode.Debug = br.data.settings[br.selectedSpec].toggles["Debugs"]
285+
ui.mode.Debug = br.data.settings[br.selectedSpec].toggles["Debugs"]
286+
ui.mode.Charge = br.data.settings[br.selectedSpec].toggles["Charge"]
287+
ui.mode.HeroicLeap = br.data.settings[br.selectedSpec].toggles["HeroicLeap"]
288288

289289
-- Explanations on the Units and Enemies functions can be found in System/API/Units.lua and System/API/Enemies.lua
290290
-------------
@@ -340,14 +340,22 @@ local function runRotation() -- This is the main profile loop, any below this po
340340
--- Main ---
341341
------------
342342

343-
if buff.victorious.exists() and cast.able.victoryRush("target") and unit.gcd()<= 0 then
343+
if not talent.impendingVictory and buff.victorious.exists() and cast.able.victoryRush("target") and unit.gcd()<= 0 then
344344
if cast.victoryRush("target") then
345345
debugMessage("Casting Victory Rush")
346346
return true
347347
else
348348
debugMessage("Failed to Victory Rush")
349349
end
350350
end
351+
if talent.impendingVictory and cast.able.impendingVictory("target") and unit.gcd()<= 0 then
352+
if cast.impendingVictory("target") then
353+
debugMessage("Casting Impending Victory")
354+
return true
355+
else
356+
debugMessage("Failed to Impending Victory")
357+
end
358+
end
351359
-- if cast.able.victoryRush("target") and unit.gcd()<= 0 then
352360
-- if cast.victoryRush("target") then
353361
-- debugMessage("Casting Victory Rush")

0 commit comments

Comments
 (0)