From 05904f17fc1ab3c43e2787660cb31da08469b5b9 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Mon, 1 Jun 2015 23:40:08 +0400 Subject: [PATCH] Sick exp/rep update --- ElvUI_SLE/modules/exprepbar.lua | 101 +++++++++++++-------------------------- 1 file changed, 34 insertions(+), 67 deletions(-) diff --git a/ElvUI_SLE/modules/exprepbar.lua b/ElvUI_SLE/modules/exprepbar.lua index 00e3065..fdc4df2 100644 --- a/ElvUI_SLE/modules/exprepbar.lua +++ b/ElvUI_SLE/modules/exprepbar.lua @@ -21,28 +21,17 @@ tinsert(strGuildChangeMatch, (gsub(FACTION_STANDING_CHANGED_GUILDNAME,"%%%d?%$?s local collapsed = {} local guildName -function M:UpdateExperience(event) +local function UpdateExperience(self, event) + if not E.db.sle.exprep.explong then return end local bar = self.expBar - if(UnitLevel('player') == MAX_PLAYER_LEVEL) or IsXPUserDisabled() then - bar:Hide() - else - bar:Show() - + if not UnitLevel('player') == MAX_PLAYER_LEVEL or not IsXPUserDisabled() then local cur, max = self:GetXP('player') - bar.statusBar:SetMinMaxValues(0, max) - bar.statusBar:SetValue(cur - 1 >= 0 and cur - 1 or 0) - bar.statusBar:SetValue(cur) - local rested = GetXPExhaustion() local text = '' local textFormat = E.db.general.experience.textFormat if rested and rested > 0 then - bar.rested:SetMinMaxValues(0, max) - bar.rested:SetValue(math.min(cur + rested, max)) - - if E.db.sle.exprep.explong then if textFormat == 'PERCENT' then text = format('%d%% '..L['Rested:']..' %d%%', cur / max * 100, rested / max * 100) elseif textFormat == 'CURMAX' then @@ -50,60 +39,38 @@ function M:UpdateExperience(event) elseif textFormat == 'CURPERC' then text = format('%s - %d%% '..L['Rested:']..' %s [%d%%]', cur, cur / max * 100, rested, rested / max * 100) end - else - if textFormat == 'PERCENT' then - text = format('%d%% R:%d%%', cur / max * 100, rested / max * 100) - elseif textFormat == 'CURMAX' then - text = format('%s - %s R:%s', E:ShortValue(cur), E:ShortValue(max), E:ShortValue(rested)) - elseif textFormat == 'CURPERC' then - text = format('%s - %d%% R:%s [%d%%]', E:ShortValue(cur), cur / max * 100, E:ShortValue(rested), rested / max * 100) - end - end else - bar.rested:SetMinMaxValues(0, 1) - bar.rested:SetValue(0) - - if E.db.sle.exprep.explong then if textFormat == 'PERCENT' then text = format('%d%%', cur / max * 100) elseif textFormat == 'CURMAX' then text = format('%s - %s', cur, max) elseif textFormat == 'CURPERC' then text = format('%s - %d%%', cur, cur / max * 100) - end - else - if textFormat == 'PERCENT' then - text = format('%d%%', cur / max * 100) - elseif textFormat == 'CURMAX' then - text = format('%s - %s', E:ShortValue(cur), E:ShortValue(max)) - elseif textFormat == 'CURPERC' then - text = format('%s - %d%%', E:ShortValue(cur), cur / max * 100) - end - end + end end - + bar.text:SetText(text) end end -function M:UpdateReputation(event) +local backupColor = FACTION_BAR_COLORS[1] +local FactionStandingLabelUnknown = UNKNOWN +local function UpdateReputation(self, event) + if not E.db.sle.exprep.replong then return end local bar = self.repBar - local ID = 100 + local ID + local isFriend, friendText, standingLabel local name, reaction, min, max, value = GetWatchedFactionInfo() local numFactions = GetNumFactions(); - if not name then - bar:Hide() - else - bar:Show() - + if name then local text = '' - local textFormat = E.db.general.reputation.textFormat - local color = FACTION_BAR_COLORS[reaction] - bar.statusBar:SetStatusBarColor(color.r, color.g, color.b) + local textFormat = E.db.general.reputation.textFormat + local color = FACTION_BAR_COLORS[reaction] or backupColor + bar.statusBar:SetStatusBarColor(color.r, color.g, color.b) - bar.statusBar:SetMinMaxValues(0, max - min) - bar.statusBar:SetValue(value - min) + bar.statusBar:SetMinMaxValues(min, max) + bar.statusBar:SetValue(value) for i=1, numFactions do local factionName, _, standingID,_,_,_,_,_,_,_,_,_,_, factionID = GetFactionInfo(i); @@ -118,24 +85,21 @@ function M:UpdateReputation(event) end end - if E.db.sle.exprep.replong then - if textFormat == 'PERCENT' then - text = format('%d%% [%s]', ((value - min) / (max - min) * 100), isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) - elseif textFormat == 'CURMAX' then - text = format('%s - %s [%s]', value - min, max - min, isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) - elseif textFormat == 'CURPERC' then - text = format('%s - %d%% [%s]', value - min, ((value - min) / (max - min) * 100), isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) - end + if ID then + standingLabel = _G['FACTION_STANDING_LABEL'..ID] else - if textFormat == 'PERCENT' then - text = format('%s: %d%% [%s]', name, ((value - min) / (max - min) * 100), isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) - elseif textFormat == 'CURMAX' then - text = format('%s: %s - %s [%s]', name, E:ShortValue(value - min), E:ShortValue(max - min), isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) - elseif textFormat == 'CURPERC' then - text = format('%s: %s - %d%% [%s]', name, E:ShortValue(value - min), ((value - min) / (max - min) * 100), isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) - end + standingLabel = FactionStandingLabelUnknown end - bar.text:SetText(text) + + if textFormat == 'PERCENT' then + text = format('%s: %d%% [%s]', name, ((value - min) / (max - min) * 100), isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) + elseif textFormat == 'CURMAX' then + text = format('%s: %s - %s [%s]', name, value - min, max - min, isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) + elseif textFormat == 'CURPERC' then + text = format('%s: %s - %d%% [%s]', name, value - min, ((value - min) / (max - min) * 100), isFriend and friendText or _G['FACTION_STANDING_LABEL'..ID]) + end + + bar.text:SetText(text) end end @@ -263,4 +227,7 @@ hooksecurefunc(M, "Initialize", function(self,...) M:RegisterEvent("CHAT_MSG_SYSTEM", 'ChatMsgSys') M:RegisterEvent("PLAYER_LOGIN", 'PlayerRepLogin') M:RegisterEvent("PLAYER_GUILD_UPDATE", 'PlayerGuildRepUdate') -end) \ No newline at end of file +end) + +hooksecurefunc(M, "UpdateExperience", UpdateExperience) +hooksecurefunc(M, "UpdateReputation", UpdateReputation) \ No newline at end of file -- 1.7.9.5