View Single Post
08-27-16, 12:04 PM   #22
Aftermathhqt
A Molten Giant
 
Aftermathhqt's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2009
Posts: 784
There's still something wrong with the timers´

Lua Code:
  1. hooksecurefunc("AuraButton_Update", function(self, index, filter)
  2.     local ABuffFrame = _G[self..index]
  3.     if ABuffFrame then
  4.         ABuffFrame:SetSize(BuffSize, BuffSize)
  5.         A.CreateBorder(ABuffFrame, true, BuffSize, BuffSize)
  6.  
  7.         local BuffStatusBar = ABuffFrame.StatusBar
  8.         if not BuffStatusBar then
  9.             BuffStatusBar = CreateFrame("StatusBar", nil, ABuffFrame)
  10.             BuffStatusBar:SetFrameStrata("HIGH")
  11.             BuffStatusBar:SetSize(32, 6)
  12.             BuffStatusBar:SetPoint("BOTTOM", ABuffFrame, 0, -8)
  13.             BuffStatusBar:SetStatusBarTexture(C.Media.Texture)
  14.             BuffStatusBar:SetStatusBarColor(A.ClassColor.r, A.ClassColor.g, A.ClassColor.b)
  15.            
  16.             local _, _, _, _, _, duration, expirationTime = UnitAura(PlayerFrame.unit, index, filter)
  17.             if duration > 0 and expirationTime then
  18.                 BuffStatusBar:SetMinMaxValues(expirationTime - duration, expirationTime)
  19.             else
  20.                 BuffStatusBar:SetMinMaxValues(0, 1)
  21.                 BuffStatusBar:SetValue(1)
  22.             end
  23.            
  24.             A.Skin(BuffStatusBar)
  25.    
  26.             ABuffFrame.StatusBar = BuffStatusBar  
  27.         end
  28.     end
  29.    
  30.     local ABuffFrameIcon = _G[self..index.."Icon"]
  31.     if ABuffFrameIcon then
  32.         ABuffFrameIcon:SetTexCoord(0.03, 0.97, 0.03, 0.97)
  33.     end
  34.    
  35.     local ABuffFrameDuration = _G[self..index.."Duration"]
  36.     if ABuffFrameDuration then
  37.         ABuffFrameDuration:SetDrawLayer("OVERLAY")
  38.         ABuffFrameDuration:ClearAllPoints()
  39.         ABuffFrameDuration:SetPoint("BOTTOM", ABuffFrame, "BOTTOM", 1, -15.5)
  40.         ABuffFrameDuration:SetFont(C.Media.Font, 12, "THINOUTLINE")
  41.         ABuffFrameDuration:SetShadowOffset(1, -1)
  42.         ABuffFrameDuration:SetShadowColor(0, 0, 0)
  43.         ABuffFrameDuration:SetAlpha(0)
  44.     end
  45.    
  46.     local ABuffFrameCount = _G[self..index.."Count"]
  47.     if ABuffFrameCount then
  48.         ABuffFrameCount:SetDrawLayer("OVERLAY")
  49.         ABuffFrameCount:ClearAllPoints()
  50.         ABuffFrameCount:SetPoint("BOTTOMRIGHT", ABuffFrame, 1, 1)
  51.         ABuffFrameCount:SetFont(C.Media.Font, 12.5, "THINOUTLINE")
  52.         ABuffFrameCount:SetShadowOffset(1, -1)
  53.         ABuffFrameCount:SetShadowColor(0, 0, 0)
  54.     end
  55.    
  56.     local ABuffFrameBorder = _G[self..index.."Border"]
  57.     if ABuffFrameBorder then
  58.         local R, G, B = ABuffFrameBorder:GetVertexColor()
  59.         ABuffFrameBorder:Hide()
  60.         ABuffFrameBorder:SetTexture(nil)
  61.         A.ColorBorder(ABuffFrame, R, G, B)     
  62.     end
  63. end)
  64.  
  65. BuffFrame:HookScript("OnUpdate", function()
  66.     local GetDurationTime = GetTime()
  67.  
  68.     for i = 1, BUFF_ACTUAL_DISPLAY do
  69.         local button = _G["BuffButton"..i]
  70.         if button.timeLeft then
  71.             button.StatusBar:SetValue(GetDurationTime)
  72.         end
  73.     end
  74.  
  75.     for i = 1, DEBUFF_ACTUAL_DISPLAY do
  76.         local button = _G["DebuffButton"..i]
  77.         if button.timeLeft then
  78.             button.StatusBar:SetValue(GetDurationTime)
  79.         end
  80.     end
  81. end)
  Reply With Quote