From d248e3f0420bcecad990ff650f05b81597b5ca78 Mon Sep 17 00:00:00 2001 From: praxis <889+praxis@noreply.octowow.st> Date: Sun, 13 Sep 2026 09:53:48 +0000 Subject: [PATCH] Add skins/blizzard/readycheck.lua --- skins/blizzard/readycheck.lua | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 skins/blizzard/readycheck.lua diff --git a/skins/blizzard/readycheck.lua b/skins/blizzard/readycheck.lua new file mode 100644 index 0000000..51ec176 --- /dev/null +++ b/skins/blizzard/readycheck.lua @@ -0,0 +1,55 @@ +pfUI:RegisterSkin("Readycheck", "vanilla:tbc", function () + HookAddonOrVariable("Blizzard_RaidUI", function() + -- Compatibility + local update_func + if ReadyCheckFrame_OnUpdate then -- tbc + update_func = "ReadyCheckFrame_OnUpdate" + else -- vanilla + update_func = "ReadyCheck_OnUpdate" + end + + StripTextures(ReadyCheckFrame, true) + CreateBackdrop(ReadyCheckFrame, nil, nil, .75) + CreateBackdropShadow(ReadyCheckFrame) + + SkinButton(ReadyCheckFrameYesButton) + ReadyCheckFrameYesButton:ClearAllPoints() + ReadyCheckFrameYesButton:SetPoint("RIGHT", ReadyCheckFrame, "BOTTOM", -8, 24) + + SkinButton(ReadyCheckFrameNoButton) + ReadyCheckFrameNoButton:ClearAllPoints() + ReadyCheckFrameNoButton:SetPoint("LEFT", ReadyCheckFrame, "BOTTOM", 8, 24) + + ReadyCheckFrameText:ClearAllPoints() + ReadyCheckFrameText:SetPoint("TOP", ReadyCheckFrame, "TOP", 0, -12) + + local frame = CreateFrame("Button", nil, ReadyCheckFrame) + frame:SetPoint("TOP", ReadyCheckFrameText, "BOTTOM", 0, -6) + frame:SetWidth(220) + frame:SetHeight(10) + + frame.bar = CreateFrame("StatusBar", "ReadyCheckFrameStatusBar", ReadyCheckFrame) + frame.bar:SetStatusBarTexture(pfUI.media["img:bar"]) + frame.bar:SetAllPoints(frame) + + frame.bar.text = frame.bar:CreateFontString("Status", "DIALOG", "GameFontNormal") + frame.bar.text:SetFontObject(GameFontWhite) + frame.bar.text:SetFont(pfUI.font_default, 12, "OUTLINE") + frame.bar.text:SetPoint("CENTER", 0, 0) + + local max + hooksecurefunc("ShowReadyCheck", function() + max = ReadyCheckFrame.timer + frame.bar:SetMinMaxValues(0, max) + end) + + hooksecurefunc(update_func, function() + if not ReadyCheckFrame.timer then return end + + local perc = ReadyCheckFrame.timer/max + frame.bar:SetStatusBarColor(GetColorGradient(perc)) + frame.bar:SetValue(ReadyCheckFrame.timer) + frame.bar.text:SetText(round(ReadyCheckFrame.timer, 2)) + end) + end) +end)