|
|
|
@ -1,4 +1,8 @@ |
|
|
|
|
local Tinkr, Bastion = ... |
|
|
|
|
local Tinkr = ... |
|
|
|
|
|
|
|
|
|
---@class Bastion |
|
|
|
|
local Bastion = ... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local ProtModule = Bastion.Module:New('prot_paladin') |
|
|
|
|
local Evaluator = Tinkr.Util.Evaluator |
|
|
|
@ -10,51 +14,62 @@ local DevoAura = Bastion.SpellBook:GetSpell(465) |
|
|
|
|
|
|
|
|
|
local PlayerSelfWOGPercent = 40 |
|
|
|
|
|
|
|
|
|
-- local WOGTarget = Bastion.UnitManager:CreateCustomUnit('wogtarget', function(unit) |
|
|
|
|
-- local lowest = nil |
|
|
|
|
-- local lowestHP = math.huge |
|
|
|
|
local WOGTarget = Bastion.UnitManager:CreateCustomUnit('wogtarget', function(unit) |
|
|
|
|
local lowest = nil |
|
|
|
|
local lowestHP = math.huge |
|
|
|
|
|
|
|
|
|
Bastion.UnitManager:EnumFriends(function(unit) |
|
|
|
|
if unit:IsDead() then |
|
|
|
|
return false |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- Bastion.UnitManager:EnumFriends(function(unit) |
|
|
|
|
-- if unit:IsDead() then |
|
|
|
|
-- return false |
|
|
|
|
-- end |
|
|
|
|
if Player:GetDistance(unit) > 40 then |
|
|
|
|
return false |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- if Player:GetDistance(unit) > 40 then |
|
|
|
|
-- return false |
|
|
|
|
-- end |
|
|
|
|
if not Player:CanSee(unit) then |
|
|
|
|
return false |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- if not Player:CanSee(unit) then |
|
|
|
|
-- return false |
|
|
|
|
-- end |
|
|
|
|
local hp = unit:GetHP() |
|
|
|
|
if hp < lowestHP then |
|
|
|
|
lowest = unit |
|
|
|
|
lowestHP = hp |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- local hp = unit:GetHP() |
|
|
|
|
-- if hp < lowestHP then |
|
|
|
|
-- lowest = unit |
|
|
|
|
-- lowestHP = hp |
|
|
|
|
-- end |
|
|
|
|
-- end) |
|
|
|
|
return false |
|
|
|
|
end) |
|
|
|
|
|
|
|
|
|
-- if not lowest or Player:GetHP() < lowest or Player:GetHealthPercent() <= PlayerSelfWOGPercent then |
|
|
|
|
-- lowest = Player |
|
|
|
|
-- end |
|
|
|
|
if not lowest or Player:GetHP() < lowest then |
|
|
|
|
lowest = Player |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- return lowest |
|
|
|
|
-- end) |
|
|
|
|
return lowest |
|
|
|
|
end) |
|
|
|
|
|
|
|
|
|
local isRunning = false |
|
|
|
|
|
|
|
|
|
ProtModule:Sync(function() |
|
|
|
|
if not isRunning then |
|
|
|
|
Bastion:Print('Running Prot Pally Routine') |
|
|
|
|
Bastion:Print('Prot Pally Started') |
|
|
|
|
isRunning = true |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- Cast Crusader Aura if talented and the player is mounted. |
|
|
|
|
if Player:IsMounted() and CrusaderAura:IsKnownAndUsable() and not Player:GetAuras():FindMy(CrusaderAura):IsUp() and not Player:IsCastingOrChanneling() then |
|
|
|
|
return CrusaderAura:Cast(Player) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
-- Cast Devo Aura if the player is not mounted. |
|
|
|
|
if not Player:IsMounted() and DevoAura:IsKnownAndUsable() and not Player:GetAuras():FindMy(DevoAura):IsUp() and not Player:IsCastingOrChanneling() then |
|
|
|
|
return DevoAura:Cast(Player) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if Player:IsAffectingCombat() then |
|
|
|
|
-- Combat Rotation |
|
|
|
|
else |
|
|
|
|
-- Out Of Combat Rotation |
|
|
|
|
end |
|
|
|
|
end) |
|
|
|
|
|
|
|
|
|
Bastion:Register(ProtModule) |
|
|
|
|