local E, L, V, P, G, _ = unpack(ElvUI); --Inport: Engine, Locales, PrivateDB, ProfileDB, GlobalDB local displayString = "" local total, totalDurability, totalPerc = 0, 0, 0 local current, max, lastPanel local invDurability = {} local slots = { ["SecondaryHandSlot"] = L['Offhand'], ["MainHandSlot"] = L['Main Hand'], ["FeetSlot"] = L['Feet'], ["LegsSlot"] = L['Legs'], ["HandsSlot"] = L['Hands'], ["WristSlot"] = L['Wrist'], ["WaistSlot"] = L['Waist'], ["ChestSlot"] = L['Chest'], ["ShoulderSlot"] = L['Shoulder'], ["HeadSlot"] = L['Head'], } board[1].Status:SetScript("OnEvent", function( self, ...) lastPanel = self total = 0 totalDurability = 0 totalPerc = 0 for index, value in pairs(slots) do local slot = GetInventorySlotInfo(index) current, max = GetInventoryItemDurability(slot) if current then totalDurability = totalDurability + current invDurability[value] = (current/max)*100 totalPerc = totalPerc + (current/max)*100 total = total + 1 end end result = totalPerc/total if total > 0 then board[1].Text:SetFormattedText(displayString, result) end self:SetMinMaxValues(0, 100) self:SetValue(result) if( result >= 75 ) then self:SetStatusBarColor(30 / 255, 1, 30 / 255, .8) elseif result < 75 and result > 40 then self:SetStatusBarColor(1, 180 / 255, 0, .8) else self:SetStatusBarColor(1, 75 / 255, 75 / 255, 0.5, .8) end end) local function ValueColorUpdate(hex, r, g, b) displayString = string.join("", DURABILITY, ": ", hex, "%d%%|r") end E['valueColorUpdateFuncs'][ValueColorUpdate] = true board[1].Status:RegisterEvent("UPDATE_INVENTORY_DURABILITY") board[1].Status:RegisterEvent("MERCHANT_SHOW") board[1].Status:RegisterEvent("PLAYER_ENTERING_WORLD")