parent
5d6668d038
commit
510a724bc2
@ -0,0 +1,154 @@ |
||||
local Unlocker, Caffeine = ... |
||||
|
||||
local OpenFury = Caffeine.Module:New('OpenFury') |
||||
|
||||
-- Units |
||||
local player = Caffeine.UnitManager:Get('player') |
||||
local target = Caffeine.UnitManager:Get('target') |
||||
local none = Caffeine.UnitManager:Get('none') |
||||
|
||||
-- Spells |
||||
local battle_shout = Caffeine.Globals.SpellBook:GetSpell(6673) |
||||
local berserker_stance = Caffeine.Globals.SpellBook:GetSpell(386196) |
||||
local charge = Caffeine.Globals.SpellBook:GetSpell(100) |
||||
local hamstring = Caffeine.Globals.SpellBook:GetSpell(1715) |
||||
local heroic_leap = Caffeine.Globals.SpellBook:GetSpell(6544) |
||||
local heroic_throw = Caffeine.Globals.SpellBook:GetSpell(57755) |
||||
local impending_victory = Caffeine.Globals.SpellBook:GetSpell(202168) |
||||
local pummel = Caffeine.Globals.SpellBook:GetSpell(6552) |
||||
local rallying_cry = Caffeine.Globals.SpellBook:GetSpell(97462) |
||||
local shield_block = Caffeine.Globals.SpellBook:GetSpell(2565) |
||||
local shield_slam = Caffeine.Globals.SpellBook:GetSpell(23922) |
||||
local slam = Caffeine.Globals.SpellBook:GetSpell(1464) |
||||
local spell_reflection = Caffeine.Globals.SpellBook:GetSpell(23920) |
||||
local taunt = Caffeine.Globals.SpellBook:GetSpell(355) |
||||
local avatar = Caffeine.Globals.SpellBook:GetSpell(107574) |
||||
local bloodthirst = Caffeine.Globals.SpellBook:GetSpell(23881) |
||||
local defensive_stance = Caffeine.Globals.SpellBook:GetSpell(386208) |
||||
local enraged_regeneration = Caffeine.Globals.SpellBook:GetSpell(184364) |
||||
local execute = Caffeine.Globals.SpellBook:GetSpell(280735) |
||||
local odyns_fury = Caffeine.Globals.SpellBook:GetSpell(385059) |
||||
local raging_blow = Caffeine.Globals.SpellBook:GetSpell(85288) |
||||
local rampage = Caffeine.Globals.SpellBook:GetSpell(184367) |
||||
local recklessness = Caffeine.Globals.SpellBook:GetSpell(1719) |
||||
local whirlwind = Caffeine.Globals.SpellBook:GetSpell(190411) |
||||
local spear_of_bastion = Caffeine.Globals.SpellBook:GetSpell(376079) |
||||
|
||||
|
||||
-- Auras |
||||
local enrage_buff = Caffeine.Globals.SpellBook:GetSpell(184362) |
||||
local whirlwind_buff = Caffeine.Globals.SpellBook:GetSpell(85739) |
||||
|
||||
-- APLs |
||||
local default_apl = Caffeine.APL:New('default') |
||||
|
||||
--[[ |
||||
Talents |
||||
BgEAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAChIoEARQICEFIhIQkESSaJRSkgQkkEpEgkIJBAAABEE |
||||
]] |
||||
|
||||
-- Whirlwind to maintain buff (if 2+ targets) |
||||
default_apl:AddSpell( |
||||
whirlwind:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and not Player:GetAuras():FindMy(whirlwind_buff):IsUp() and Player:GetEnemies(8) > 1 |
||||
end):SetTarget(None) |
||||
) |
||||
|
||||
-- If not Enraged, use Rampage if available or use Bloodthirst |
||||
default_apl:AddSpell( |
||||
rampage:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and not Player:GetAuras():FindMy(enrage_buff):IsUp() and Player:GetPower() >= 80 |
||||
end):SetTarget(Target) |
||||
) |
||||
|
||||
default_apl:AddSpell( |
||||
bloodthirst:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and not Player:GetAuras():FindMy(enrage_buff):IsUp() |
||||
end):SetTarget(Target) |
||||
) |
||||
|
||||
-- Recklessness/Avatar |
||||
default_apl:AddSpell( |
||||
recklessness:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and Player:GetAuras():FindMy(enrage_buff):IsUp() |
||||
end):SetTarget(None) |
||||
) |
||||
|
||||
default_apl:AddSpell( |
||||
avatar:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and Player:GetAuras():FindMy(enrage_buff):IsUp() |
||||
end):SetTarget(None) |
||||
) |
||||
|
||||
-- Spear of Bastion while enraged on CD |
||||
default_apl:AddSpell( |
||||
spear_of_bastion:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and Player:GetAuras():FindMy(enrage_buff):IsUp() |
||||
end):SetTarget(None):OnCast(function(self) |
||||
local loc = Caffeine.UnitManager:FindEnemiesCentroid(4, 20) |
||||
self:Click(loc) |
||||
end) |
||||
) |
||||
|
||||
-- Odyn's Fury while enraged on CD |
||||
default_apl:AddSpell( |
||||
odyns_fury:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and Player:GetAuras():FindMy(enrage_buff):IsUp() |
||||
end):SetTarget(Target) |
||||
) |
||||
|
||||
-- Rampage when available |
||||
default_apl:AddSpell( |
||||
rampage:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and Player:GetPower() >= 80 |
||||
end):SetTarget(Target) |
||||
) |
||||
|
||||
-- Execute when able |
||||
default_apl:AddSpell( |
||||
execute:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() and Target:GetHP() <= 35 |
||||
end):SetTarget(Target) |
||||
) |
||||
|
||||
-- Raging Blow if available |
||||
default_apl:AddSpell( |
||||
raging_blow:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() |
||||
end):SetTarget(Target) |
||||
) |
||||
|
||||
-- Bloodthirst filler |
||||
default_apl:AddSpell( |
||||
bloodthirst:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() |
||||
end):SetTarget(Target) |
||||
) |
||||
|
||||
-- Whirlwind filler |
||||
default_apl:AddSpell( |
||||
whirlwind:CastableIf(function(self) |
||||
return self:IsKnownAndUsable() |
||||
end):SetTarget(None) |
||||
) |
||||
|
||||
OpenFury:Sync(function() |
||||
if not player:IsFacing(target) and target:Exists() and not target:IsDead() then |
||||
Caffeine.Util:FaceUnit(target) |
||||
end |
||||
|
||||
if not player:InMelee(target) and target:Exists() and not target:IsDead() and target:IsHostile() then |
||||
local tx, ty, tz = ObjectPosition('target') |
||||
local px, py, pz = ObjectPosition('player') |
||||
if GetTime() - move_to_timer > 0.5 and FastDistance(px, py, pz, tx, ty, tz) > 5 then |
||||
MoveTo(tx, ty, tz) |
||||
move_to_timer = GetTime() |
||||
end |
||||
end |
||||
|
||||
if player:IsAffectingCombat() and target:Exists() and target:IsHostile() and not target:IsDead() and player:IsFacing(target) then |
||||
default_apl:Execute() |
||||
end |
||||
end) |
||||
|
||||
Caffeine:Register(OpenFury) |
Loading…
Reference in new issue