---- ///////////////////// EXP BAR ///////////// ----
local Experience = CreateFrame("Frame", nil, UIParent)
local ExperienceBar = CreateFrame('StatusBar', nil, UIParent)
local ExperienceBarRested = CreateFrame('StatusBar', nil, UIParent)
local InvisFrame = CreateFrame("Frame", nil, ExperienceBar)
InvisFrame:SetFrameStrata("HIGH")
InvisFrame:SetFrameLevel(5)
InvisFrame:SetAllPoints()
local ExperienceFont = InvisFrame:CreateFontString(nil, 'OVERLAY')
local Current, Max = UnitXP("player"), UnitXPMax("player")
local CurLvl = UnitLevel("player")
local Rested = GetXPExhaustion()
local IsRested = GetRestState()
local function UpdateExp()
ExperienceBar:SetPoint('LEFT', oUF_AftermathhPlayer, -67, 52)
ExperienceBar:SetStatusBarTexture(AftermathhUI.media.texture)
ExperienceBar:SetSize(235, 18)
ExperienceBar:SetStatusBarColor(0.6, 0, 0.6)
ExperienceBar:SetBackdrop({
bgFile = AftermathhUI.media.blank,
insets = {top = -1, left = -1, bottom = -1, right = -1},
})
ExperienceBar:SetBackdropColor(unpack(AftermathhUI.media.backdropcolor))
CreateBorderLight(ExperienceBar, AftermathhUI.media.bordersize, AftermathhUI.bordercolor, AftermathhUI.bordercolor, AftermathhUI.bordercolor, 3)
ExperienceBar:EnableMouse()
ExperienceBar:SetScript("OnEnter", function(self)
GameTooltip:SetOwner(self, "ANCHOR_CURSOR")
GameTooltip:AddLine("|cffffd200Experience|r")
GameTooltip:AddDoubleLine("Current EXP", Current, 1, 1, 1, 1, 1, 1)
GameTooltip:AddDoubleLine("Remaining EXP", Max - Current, 1, 1, 1, 1, 1, 1)
if Rested == nil then
GameTooltip:AddDoubleLine("Rested EXP", "0", 1, 1, 1, 1, 1, 1)
else
GameTooltip:AddDoubleLine("Rested EXP", Rested, 1, 1, 1, 1, 1, 1)
end
GameTooltip:Show()
end)
ExperienceBar:SetScript("OnLeave", function()
if GameTooltip:IsShown() then
GameTooltip:Hide()
end
end)
ExperienceBarRested:SetSize(230, 18)
ExperienceBarRested:SetAlpha(0.5)
ExperienceBarRested:SetParent(ExperienceBar)
ExperienceBarRested:SetAllPoints(ExperienceBar)
ExperienceBarRested:SetStatusBarTexture(AftermathhUI.media.texture)
ExperienceBarRested:SetStatusBarColor(0, 144/255, 1)
ExperienceFont:SetFont(AftermathhUI.media.font, 12, AftermathhUI.media.fontflag)
if AftermathhUI.media.shadowoffset == true then
ExperienceFont:SetShadowOffset(1, -1)
ExperienceFont:SetShadowColor(0,0,0)
end
ExperienceBar:SetMinMaxValues(0, Max)
ExperienceBar:SetValue(Current)
if (IsRested == 1 and Rested) then
ExperienceBarRested:SetMinMaxValues(0, Max)
ExperienceBarRested:SetValue(Rested + Current)
ExperienceFont:SetText(""..Current.." / "..Max.."("..Rested..")")
else
ExperienceBar:SetValue(0)
ExperienceFont:SetText(""..Current.." / "..Max.."")
end
end
Experience:RegisterEvent("PLAYER_XP_UPDATE")
Experience:RegisterEvent("PLAYER_LEVEL_UP")
Experience:RegisterEvent("UPDATE_EXHAUSTION")
Experience:RegisterEvent("PLAYER_ENTERING_WORLD")
Experience:RegisterEvent("PLAYER_UPDATE_RESTING")
Experience:SetScript("OnEvent", UpdateExp)