local Tinkr = ... ---@class Bastion local Bastion = ... local ProtModule = Bastion.Module:New('prot_paladin') local Evaluator = Tinkr.Util.Evaluator local Player = Bastion.UnitManager:Get('player') local Target = Bastion.UnitManager:Get('target') local CrusaderAura = Bastion.SpellBook:GetSpell(32223) local DevoAura = Bastion.SpellBook:GetSpell(465) local PlayerSelfWOGPercent = 40 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 if Player:GetDistance(unit) > 40 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 return false end) if not lowest or Player:GetHP() < lowest then lowest = Player end return lowest end) local isRunning = false ProtModule:Sync(function() if not isRunning then 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)