local function Update(self, event, unit) local reputation = self.Reputation if(not GetWatchedFactionInfo()) then return reputation:Hide() else reputation:Show() end local name, standing, min, max, value = GetWatchedFactionInfo() reputation:SetMinMaxValues(min, max) reputation:SetValue(value) if(reputation.PostUpdate) then return reputation:PostUpdate(unit, name, standing, min, max, value) end end local function Path(self, ...) return (self.Reputation.Override or Update) (self, ...) end local function ForceUpdate(element) return Path(element.__owner, 'ForceUpdate', element.__owner.unit) end local function Enable(self, unit) local reputation = self.Reputation if(reputation) then reputation.__owner = self reputation.ForceUpdate = ForceUpdate self:RegisterEvent('UPDATE_FACTION', Path) if(not reputation:GetStatusBarTexture()) then reputation:SetStatusBarTexture([=[Interface\TargetingFrame\UI-StatusBar]=]) end return true end end local function Disable(self) if(self.Reputation) then self:UnregisterEvent('UPDATE_FACTION', Path) end end oUF:AddElement('Reputation', Path, Enable, Disable)