5
5
-- Status = Limited
6
6
-- Readiness = PVE Leveling
7
7
---- ---------------------------------------------------
8
- local rotationName = " BrewFuryLeveling" -- Change to name of profile listed in options drop down
8
+ local rotationName = " BrewFuryLeveling"
9
9
10
10
local colors = {
11
11
blue = " |cff4285F4" ,
@@ -21,34 +21,45 @@ local colors = {
21
21
orange = " |cffff8000"
22
22
}
23
23
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
+ }
24
43
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 ()
31
45
local RotationModes = {
32
46
[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 },
33
47
[2 ] = { mode = " Mult" , value = 2 , overlay = " Multiple Target Rotation" , tip = " Multiple target rotation used." , highlight = 0 , icon = br .player .spell .bladestorm },
34
48
[3 ] = { mode = " Sing" , value = 3 , overlay = " Single Target Rotation" , tip = " Single target rotation used." , highlight = 0 , icon = br .player .spell .ragingBlow },
35
49
[4 ] = { mode = " Off" , value = 4 , overlay = " DPS Rotation Disabled" , tip = " Disable DPS Rotation" , highlight = 0 , icon = br .player .spell .enragedRegeneration }
36
50
};
37
51
br .ui :createToggle (RotationModes ," Rotation" ,1 ,0 )
38
- -- Cooldown Button
39
52
local CooldownModes = {
40
53
[1 ] = { mode = " Auto" , value = 1 , overlay = " Cooldowns Automated" , tip = " Automatic Cooldowns - Boss Detection." , highlight = 1 , icon = br .player .spell .recklessness },
41
54
[2 ] = { mode = " On" , value = 2 , overlay = " Cooldowns Enabled" , tip = " Cooldowns used regardless of target." , highlight = 0 , icon = br .player .spell .recklessness },
42
55
[3 ] = { mode = " Off" , value = 3 , overlay = " Cooldowns Disabled" , tip = " No Cooldowns will be used." , highlight = 0 , icon = br .player .spell .recklessness }
43
56
};
44
57
br .ui :createToggle (CooldownModes ," Cooldown" ,2 ,0 )
45
- -- Defensive Button
46
58
local DefensiveModes = {
47
59
[1 ] = { mode = " On" , value = 1 , overlay = " Defensive Enabled" , tip = " Includes Defensive Cooldowns." , highlight = 1 , icon = br .player .spell .enragedRegeneration },
48
60
[2 ] = { mode = " Off" , value = 2 , overlay = " Defensive Disabled" , tip = " No Defensives will be used." , highlight = 0 , icon = br .player .spell .enragedRegeneration }
49
61
};
50
62
br .ui :createToggle (DefensiveModes ," Defensive" ,3 ,0 )
51
- -- Interrupt Button
52
63
local InterruptModes = {
53
64
[1 ] = { mode = " On" , value = 1 , overlay = " Interrupts Enabled" , tip = " Includes Basic Interrupts." , highlight = 1 , icon = br .player .spell .pummel },
54
65
[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
59
70
[2 ] = { mode = " OFF" , value = 0 , overlay = " Debugs Off" , tip = " Debug Messages Off" , highlight = 0 , icon = 200733 },
60
71
}
61
72
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 )
62
83
end
63
84
64
- ---- -----------
65
- --- OPTIONS ---
66
- ---- -----------
85
+
67
86
local function createOptions ()
68
87
local optionTable
69
88
@@ -73,40 +92,26 @@ local function createOptions()
73
92
--- GENERAL OPTIONS --- -- Define General Options
74
93
---- -------------------
75
94
section = br .ui :createSection (br .ui .window .profile , " General" )
76
-
77
95
br .ui :checkSectionState (section )
78
- ---- --------------------
79
- --- COOLDOWN OPTIONS --- -- Define Cooldown Options
80
- ---- --------------------
81
- section = br .ui :createSection (br .ui .window .profile , " Cooldowns" )
82
96
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 )
83
101
br .ui :checkSectionState (section )
84
- ---- ---------------------
85
- --- DEFENSIVE OPTIONS --- -- Define Defensive Options
86
- ---- ---------------------
87
- section = br .ui :createSection (br .ui .window .profile , " Defensive" )
88
102
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." )
89
108
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
+
100
110
section = br .ui :createSection (br .ui .window .profile , " Toggle Keys" )
101
- -- Single/Multi Toggle
102
111
br .ui :createDropdown (section , " Rotation Mode" , br .dropOptions .Toggle , 4 )
103
- -- Cooldown Key Toggle
104
112
br .ui :createDropdown (section , " Cooldown Mode" , br .dropOptions .Toggle , 3 )
105
- -- Defensive Key Toggle
106
113
br .ui :createDropdown (section , " Defensive Mode" , br .dropOptions .Toggle , 6 )
107
- -- Interrupts Key Toggle
108
114
br .ui :createDropdown (section , " Interrupt Mode" , br .dropOptions .Toggle , 6 )
109
- -- Pause Toggle
110
115
br .ui :createDropdown (section , " Pause Mode" , br .dropOptions .Toggle , 6 )
111
116
br .ui :checkSectionState (section )
112
117
end
@@ -171,6 +176,12 @@ end -- End Action List - Extra
171
176
172
177
-- Action List - Defensive
173
178
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
174
185
175
186
end -- End Action List - Defensive
176
187
@@ -209,8 +220,8 @@ actionList.PreCombat = function()
209
220
end
210
221
end
211
222
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
214
225
and cast .able .heroicLeap (" target" )
215
226
and not cast .last .heroicLeap ()
216
227
and not cast .last .charge ()
@@ -223,7 +234,8 @@ actionList.PreCombat = function()
223
234
debugMessage (" Failed to Heroic Leap" )
224
235
end
225
236
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
227
239
and cast .able .charge (" target" )
228
240
and not cast .last .heroicLeap ()
229
241
and not cast .last .charge ()
@@ -236,21 +248,7 @@ actionList.PreCombat = function()
236
248
debugMessage (" Failed to Charge" )
237
249
end
238
250
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
+
254
252
if unit .distance (" target" ) <= 5 then
255
253
if cast .able .autoAttack (" target" ) then
256
254
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
284
282
285
283
286
284
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" ]
288
288
289
289
-- Explanations on the Units and Enemies functions can be found in System/API/Units.lua and System/API/Enemies.lua
290
290
---- ---------
@@ -340,14 +340,22 @@ local function runRotation() -- This is the main profile loop, any below this po
340
340
--- Main ---
341
341
---- --------
342
342
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
344
344
if cast .victoryRush (" target" ) then
345
345
debugMessage (" Casting Victory Rush" )
346
346
return true
347
347
else
348
348
debugMessage (" Failed to Victory Rush" )
349
349
end
350
350
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
351
359
-- if cast.able.victoryRush("target") and unit.gcd()<= 0 then
352
360
-- if cast.victoryRush("target") then
353
361
-- debugMessage("Casting Victory Rush")
0 commit comments