e5fe597 - Add priest TMW
[wowui.git] / OmaCD / Bres.lua
1 -- Bres.lua
2 local _;
3 local min, ceil = math.min, math.ceil;
4 local GetSpellCharges = GetSpellCharges;
5 local GetTime = GetTime;
6 local CTimerAfter = C_Timer.After;
7
8 local frame = CreateFrame("Frame", "OmaBres", UIParent);
9
10 local function tick()
11     local charges, maxCharges, start, duration = GetSpellCharges(20484); -- Rebirth
12     if charges then
13         frame:Show();
14         local remain = duration - (GetTime() - start);
15         frame.charge:SetText(charges);
16         frame.cd:SetCooldown(start, duration);
17         CTimerAfter(min(ceil(remain), 5), tick);
18     else
19         frame:Hide();
20         CTimerAfter(5, tick);
21     end
22 end
23
24 local function bres()
25     frame:SetPoint("BOTTOMLEFT", UIParent, "BOTTOMLEFT", 580, 0);
26     frame:SetWidth(48);
27     frame:SetHeight(48);
28     frame.base = frame:CreateTexture(nil, "BACKGROUND");
29     frame.base:SetAllPoints();
30     frame.base:SetColorTexture(0, 0, 0, 0.5);
31     frame.icon = frame:CreateTexture(nil, "BORDER");
32     frame.icon:SetPoint("TOPLEFT", frame.base, "TOPLEFT", 1, -1);
33     frame.icon:SetPoint("BOTTOMRIGHT", frame.base, "BOTTOMRIGHT", -1, 1);
34     frame.icon:SetTexCoord(0.07, 0.93, 0.07, 0.93);
35     frame.icon:SetTexture(136080); -- Rebirth
36     frame.charge = frame:CreateFontString(nil, "OVERLAY", "NumberFontNormalLarge");
37     frame.charge:SetPoint("BOTTOMRIGHT");
38     frame.cd = CreateFrame("Cooldown", "OmaBresCD", frame, "CooldownFrameTemplate");
39     frame.cd:SetAllPoints();
40     frame:UnregisterAllEvents();
41     tick();
42 end
43
44 frame:SetScript("OnEvent", function(self, event)
45     return bres();
46 end);
47 frame:RegisterEvent("PLAYER_LOGIN");