--[[ ############################################################################## _____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_ # ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__ # __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____ # ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____ # ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____ # _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____ # __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ # _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_# ___\///////////___________\///___________\/////////_____\///////////_# ############################################################################## S U P E R - V I L L A I N - U I By: Munglunch # ############################################################################## --]] local SuperVillain, L = unpack(SVUI); local STYLE = _G.StyleVillain; --[[ ########################################################## HELPERS ########################################################## ]]-- local function BarStyleHelper(bar) bar:Formula409() bar:SetStatusBarTexture(SuperVillain.Media.bar.default) bar:SetStatusBarColor(4/255, 179/255, 30/255) bar:SetPanelTemplate("Default") if _G[bar:GetName().."Title"]then _G[bar:GetName().."Title"]:SetPoint("LEFT", 4, 0) end; if _G[bar:GetName().."Label"]then _G[bar:GetName().."Label"]:SetPoint("LEFT", 4, 0) end; if _G[bar:GetName().."Text"]then _G[bar:GetName().."Text"]:SetPoint("RIGHT", -4, 0) end end; --[[ ########################################################## ACHIEVEMENTFRAME STYLER ########################################################## ]]-- local function AchievementStyle() if SuperVillain.db.SVStyle.blizzard.enable ~= true or SuperVillain.db.SVStyle.blizzard.achievement ~= true then return end; local b = {"AchievementFrame", "AchievementFrameCategories", "AchievementFrameSummary", "AchievementFrameHeader", "AchievementFrameSummaryCategoriesHeader", "AchievementFrameSummaryAchievementsHeader", "AchievementFrameStatsBG", "AchievementFrameAchievements", "AchievementFrameComparison", "AchievementFrameComparisonHeader", "AchievementFrameComparisonSummaryPlayer", "AchievementFrameComparisonSummaryFriend"} for c, d in pairs(b)do _G[d]:Formula409(true) end; local e = {"AchievementFrameStats", "AchievementFrameSummary", "AchievementFrameAchievements", "AchievementFrameComparison"} for c, d in pairs(e)do for f = 1, _G[d]:GetNumChildren()do local g = select(f, _G[d]:GetChildren()) if g and not g:GetName()then g:SetBackdrop(nil) end end end; AchievementFrame:SetPanelTemplate("Halftone",false,2,2,4) AchievementFrameHeaderTitle:ClearAllPoints() AchievementFrameHeaderTitle:Point("TOPLEFT", AchievementFrame.Panel, "TOPLEFT", -30, -8) AchievementFrameHeaderPoints:ClearAllPoints() AchievementFrameHeaderPoints:Point("LEFT", AchievementFrameHeaderTitle, "RIGHT", 2, 0) AchievementFrameCategoriesContainer:SetPanelTemplate("Inset", true, 2, -2, 2) AchievementFrameAchievementsContainer:SetPanelTemplate("Default") AchievementFrameAchievementsContainer.Panel:Point("TOPLEFT", 0, 2) AchievementFrameAchievementsContainer.Panel:Point("BOTTOMRIGHT", -3, -3) STYLE:ApplyCloseButtonStyle(AchievementFrameCloseButton, AchievementFrame.Panel) STYLE:ApplyDropdownStyle(AchievementFrameFilterDropDown) AchievementFrameFilterDropDown:Point("TOPRIGHT", AchievementFrame, "TOPRIGHT", -44, 5) STYLE:ApplyScrollStyle(AchievementFrameCategoriesContainerScrollBar, 5) STYLE:ApplyScrollStyle(AchievementFrameAchievementsContainerScrollBar, 5) STYLE:ApplyScrollStyle(AchievementFrameStatsContainerScrollBar, 5) STYLE:ApplyScrollStyle(AchievementFrameComparisonContainerScrollBar, 5) STYLE:ApplyScrollStyle(AchievementFrameComparisonStatsContainerScrollBar, 5) for f = 1, 3 do STYLE:ApplyTabStyle(_G["AchievementFrameTab"..f]) _G["AchievementFrameTab"..f]:SetFrameLevel(_G["AchievementFrameTab"..f]:GetFrameLevel()+2) end; BarStyleHelper(AchievementFrameSummaryCategoriesStatusBar) BarStyleHelper(AchievementFrameComparisonSummaryPlayerStatusBar) BarStyleHelper(AchievementFrameComparisonSummaryFriendStatusBar) AchievementFrameComparisonSummaryFriendStatusBar.text:ClearAllPoints() AchievementFrameComparisonSummaryFriendStatusBar.text:SetPoint("CENTER") AchievementFrameComparisonHeader:Point("BOTTOMRIGHT", AchievementFrameComparison, "TOPRIGHT", 45, -20) for f = 1, 10 do local d = _G["AchievementFrameSummaryCategoriesCategory"..f] local i = _G["AchievementFrameSummaryCategoriesCategory"..f.."Button"] local j = _G["AchievementFrameSummaryCategoriesCategory"..f.."ButtonHighlight"] BarStyleHelper(d) i:Formula409() j:Formula409() _G[j:GetName().."Middle"]:SetTexture(1, 1, 1, 0.3) _G[j:GetName().."Middle"]:SetAllPoints(d) end; AchievementFrame:HookScript("OnShow", function(k) if k.containerStyleed then return end; for f = 1, 20 do local d = _G["AchievementFrameCategoriesContainerButton"..f] STYLE:ApplyLinkButtonStyle(d) end; k.containerStyleed = true end) hooksecurefunc("AchievementButton_DisplayAchievement", function(d) if d.accountWide and d.bg3 then d.bg3:SetTexture(ACHIEVEMENTUI_BLUEBORDER_R, ACHIEVEMENTUI_BLUEBORDER_G, ACHIEVEMENTUI_BLUEBORDER_B) elseif d.bg3 then d.bg3:SetTexture(0,0,0,1) end end) hooksecurefunc("AchievementFrameSummary_UpdateAchievements", function() for f = 1, ACHIEVEMENTUI_MAX_SUMMARY_ACHIEVEMENTS do local d = _G["AchievementFrameSummaryAchievement"..f] _G["AchievementFrameSummaryAchievement"..f.."Highlight"]:MUNG() _G["AchievementFrameSummaryAchievement"..f.."Description"]:SetTextColor(0.6, 0.6, 0.6) if not d.Panel then d:Formula409() d:SetFixedPanelTemplate("Inset") _G["AchievementFrameSummaryAchievement"..f.."IconBling"]:MUNG() _G["AchievementFrameSummaryAchievement"..f.."IconOverlay"]:MUNG() _G["AchievementFrameSummaryAchievement"..f.."Icon"]:SetFixedPanelTemplate("Default") _G["AchievementFrameSummaryAchievement"..f.."Icon"]:Height(_G["AchievementFrameSummaryAchievement"..f.."Icon"]:GetHeight()-14) _G["AchievementFrameSummaryAchievement"..f.."Icon"]:Width(_G["AchievementFrameSummaryAchievement"..f.."Icon"]:GetWidth()-14) _G["AchievementFrameSummaryAchievement"..f.."Icon"]:ClearAllPoints() _G["AchievementFrameSummaryAchievement"..f.."Icon"]:Point("LEFT", 6, 0) _G["AchievementFrameSummaryAchievement"..f.."IconTexture"]:SetTexCoord(0.1, 0.9, 0.1, 0.9) _G["AchievementFrameSummaryAchievement"..f.."IconTexture"]:FillInner() end; if d.accountWide then d:SetBackdropBorderColor(ACHIEVEMENTUI_BLUEBORDER_R, ACHIEVEMENTUI_BLUEBORDER_G, ACHIEVEMENTUI_BLUEBORDER_B)else d:SetBackdropBorderColor(0,0,0,1) end end end) --AchievementFrameAchievementsContainerScrollChild:SetFixedPanelTemplate("Button") for f = 1, 7 do local d = _G["AchievementFrameAchievementsContainerButton"..f] _G["AchievementFrameAchievementsContainerButton"..f.."Highlight"]:MUNG() d:Formula409(true) d.bg1 = d:CreateTexture(nil, "BACKGROUND", nil, 4) d.bg1:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) d.bg1:SetVertexColor(unpack(SuperVillain.Media.color.default)) d.bg1:Point("TOPLEFT", 1, -1) d.bg1:Point("BOTTOMRIGHT", -1, 1) d.bg3 = d:CreateTexture(nil, "BACKGROUND", nil, 2) d.bg3:SetTexture(SuperVillain.Media.color.button) d.bg3:WrapOuter(1); _G["AchievementFrameAchievementsContainerButton"..f.."Description"]:SetTextColor(0.6, 0.6, 0.6) hooksecurefunc(_G["AchievementFrameAchievementsContainerButton"..f.."Description"], "SetTextColor", function(k, m, n, o) if m ~= 0.6 or n ~= 0.6 or o ~= 0.6 then k:SetTextColor(0.6, 0.6, 0.6) end end) _G["AchievementFrameAchievementsContainerButton"..f.."HiddenDescription"]:SetTextColor(1, 1, 1) hooksecurefunc(_G["AchievementFrameAchievementsContainerButton"..f.."HiddenDescription"], "SetTextColor", function(k, m, n, o) if m ~= 1 or n ~= 1 or o ~= 1 then k:SetTextColor(1, 1, 1) end end) _G["AchievementFrameAchievementsContainerButton"..f.."IconBling"]:MUNG() _G["AchievementFrameAchievementsContainerButton"..f.."IconOverlay"]:MUNG() _G["AchievementFrameAchievementsContainerButton"..f.."IconTexture"]:SetTexCoord(0.1, 0.9, 0.1, 0.9) _G["AchievementFrameAchievementsContainerButton"..f.."IconTexture"]:FillInner() _G["AchievementFrameAchievementsContainerButton"..f.."Icon"]:SetFixedPanelTemplate("Default") _G["AchievementFrameAchievementsContainerButton"..f.."Icon"]:Height(_G["AchievementFrameAchievementsContainerButton"..f.."Icon"]:GetHeight()-14) _G["AchievementFrameAchievementsContainerButton"..f.."Icon"]:Width(_G["AchievementFrameAchievementsContainerButton"..f.."Icon"]:GetWidth()-14) _G["AchievementFrameAchievementsContainerButton"..f.."Icon"]:ClearAllPoints() _G["AchievementFrameAchievementsContainerButton"..f.."Icon"]:Point("LEFT", 6, 0) _G["AchievementFrameAchievementsContainerButton"..f.."Tracked"]:Formula409() _G["AchievementFrameAchievementsContainerButton"..f.."Tracked"]:SetCheckboxTemplate(true) _G["AchievementFrameAchievementsContainerButton"..f.."Tracked"]:ClearAllPoints() _G["AchievementFrameAchievementsContainerButton"..f.."Tracked"]:Point("BOTTOMLEFT", d, "BOTTOMLEFT", -1, -3) hooksecurefunc(_G["AchievementFrameAchievementsContainerButton"..f.."Tracked"], "SetPoint", function(k, p, q, r, s, t) if p ~= "BOTTOMLEFT" or q ~= d or r ~= "BOTTOMLEFT" or s ~= 5 or t ~= 5 then k:ClearAllPoints() k:Point("BOTTOMLEFT", d, "BOTTOMLEFT", 5, 5) end end) end; local u = {"Player", "Friend"} for c, v in pairs(u)do for f = 1, 9 do local d = "AchievementFrameComparisonContainerButton"..f..v;_G[d]:Formula409() _G[d.."Background"]:MUNG() if _G[d.."Description"]then _G[d.."Description"]:SetTextColor(0.6, 0.6, 0.6) hooksecurefunc(_G[d.."Description"], "SetTextColor", function(k, m, n, o) if m ~= 0.6 or n ~= 0.6 or o ~= 0.6 then k:SetTextColor(0.6, 0.6, 0.6) end end) end; _G[d].bg1 = _G[d]:CreateTexture(nil, "BACKGROUND") _G[d].bg1:SetDrawLayer("BACKGROUND", 4) _G[d].bg1:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) _G[d].bg1:SetVertexColor(unpack(SuperVillain.Media.color.default)) _G[d].bg1:Point("TOPLEFT", 4, -4) _G[d].bg1:Point("BOTTOMRIGHT", -4, 4) _G[d].bg2 = _G[d]:CreateTexture(nil, "BACKGROUND") _G[d].bg2:SetDrawLayer("BACKGROUND", 3) _G[d].bg2:SetTexture(0, 0, 0) _G[d].bg2:Point("TOPLEFT", 3, -3) _G[d].bg2:Point("BOTTOMRIGHT", -3, 3) _G[d].bg3 = _G[d]:CreateTexture(nil, "BACKGROUND") _G[d].bg3:SetDrawLayer("BACKGROUND", 2) _G[d].bg3:SetTexture(0,0,0,1) _G[d].bg3:Point("TOPLEFT", 2, -2) _G[d].bg3:Point("BOTTOMRIGHT", -2, 2) _G[d].bg4 = _G[d]:CreateTexture(nil, "BACKGROUND") _G[d].bg4:SetDrawLayer("BACKGROUND", 1) _G[d].bg4:SetTexture(0, 0, 0) _G[d].bg4:Point("TOPLEFT", 1, -1) _G[d].bg4:Point("BOTTOMRIGHT", -1, 1) if v == "Friend"then _G[d.."Shield"]:Point("TOPRIGHT", _G["AchievementFrameComparisonContainerButton"..f.."Friend"], "TOPRIGHT", -20, -3) end; _G[d.."IconBling"]:MUNG() _G[d.."IconOverlay"]:MUNG() _G[d.."Icon"]:SetFixedPanelTemplate("Default") _G[d.."Icon"]:Height(_G[d.."Icon"]:GetHeight()-14) _G[d.."Icon"]:Width(_G[d.."Icon"]:GetWidth()-14) _G[d.."Icon"]:ClearAllPoints() _G[d.."Icon"]:Point("LEFT", 6, 0) _G[d.."IconTexture"]:SetTexCoord(0.1, 0.9, 0.1, 0.9) _G[d.."IconTexture"]:FillInner() end end;hooksecurefunc("AchievementFrameComparison_DisplayAchievement", function(i) local w = i.player;local x = i.friend;w.titleBar:MUNG()x.titleBar:MUNG() if not w.bg3 or not x.bg3 then return end; if w.accountWide then w.bg3:SetTexture(ACHIEVEMENTUI_BLUEBORDER_R, ACHIEVEMENTUI_BLUEBORDER_G, ACHIEVEMENTUI_BLUEBORDER_B) else w.bg3:SetTexture(0,0,0,1) end; if x.accountWide then x.bg3:SetTexture(ACHIEVEMENTUI_BLUEBORDER_R, ACHIEVEMENTUI_BLUEBORDER_G, ACHIEVEMENTUI_BLUEBORDER_B) else x.bg3:SetTexture(0,0,0,1) end end) for f = 1, 20 do local d = _G["AchievementFrameStatsContainerButton"..f] _G["AchievementFrameStatsContainerButton"..f.."BG"]:SetTexture(1, 1, 1, 0.2) _G["AchievementFrameStatsContainerButton"..f.."HeaderLeft"]:MUNG() _G["AchievementFrameStatsContainerButton"..f.."HeaderRight"]:MUNG() _G["AchievementFrameStatsContainerButton"..f.."HeaderMiddle"]:MUNG() local d = "AchievementFrameComparisonStatsContainerButton"..f; _G[d]:Formula409() _G[d]:SetPanelTemplate("Default") _G[d.."BG"]:SetTexture(1, 1, 1, 0.2) _G[d.."HeaderLeft"]:MUNG() _G[d.."HeaderRight"]:MUNG() _G[d.."HeaderMiddle"]:MUNG() end; hooksecurefunc("AchievementButton_GetProgressBar", function(y) local d = _G["AchievementFrameProgressBar"..y] if d then if not d.styled then d:Formula409() d:SetStatusBarTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) d:SetStatusBarColor(4/255, 179/255, 30/255) d:SetFrameLevel(d:GetFrameLevel()+3) d:Height(d:GetHeight()-2) d.bg1 = d:CreateTexture(nil, "BACKGROUND") d.bg1:SetDrawLayer("BACKGROUND", 4) d.bg1:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) d.bg1:SetVertexColor(unpack(SuperVillain.Media.color.default)) d.bg1:SetAllPoints() d.bg3 = d:CreateTexture(nil, "BACKGROUND") d.bg3:SetDrawLayer("BACKGROUND", 2) d.bg3:SetTexture(0,0,0,1) d.bg3:Point("TOPLEFT", -1, 1) d.bg3:Point("BOTTOMRIGHT", 1, -1); d.text:ClearAllPoints() d.text:SetPoint("CENTER", d, "CENTER", 0, -1) d.text:SetJustifyH("CENTER") if y>1 then d:ClearAllPoints() d:Point("TOP", _G["AchievementFrameProgressBar"..y-1], "BOTTOM", 0, -5) hooksecurefunc(d, "SetPoint", function(k, p, q, r, s, t, z) if not z then k:ClearAllPoints()k:SetPoint("TOP", _G["AchievementFrameProgressBar"..y-1], "BOTTOM", 0, -5, true) end end) end; d.styled = true end end end) hooksecurefunc("AchievementObjectives_DisplayCriteria", function(A, B) local C = GetAchievementNumCriteria(B) local D, E = 0, 0; for f = 1, C do local F, G, H, I, J, K, L, M, N = GetAchievementCriteriaInfo(B, f) if G == CRITERIA_TYPE_ACHIEVEMENT and M then E = E+1; local O = AchievementButton_GetMeta(E) if A.completed and H then O.label:SetShadowOffset(0, 0) O.label:SetTextColor(1, 1, 1, 1) elseif H then O.label:SetShadowOffset(1, -1) O.label:SetTextColor(0, 1, 0, 1) else O.label:SetShadowOffset(1, -1) O.label:SetTextColor(.6, .6, .6, 1) end elseif G ~= 1 then D = D+1; local P = AchievementButton_GetCriteria(D) if A.completed and H then P.name:SetTextColor(1, 1, 1, 1) P.name:SetShadowOffset(0, 0) elseif H then P.name:SetTextColor(0, 1, 0, 1) P.name:SetShadowOffset(1, -1) else P.name:SetTextColor(.6, .6, .6, 1) P.name:SetShadowOffset(1, -1) end end end end) end; --[[ ########################################################## STYLE LOADING ########################################################## ]]-- STYLE:SaveBlizzardStyle("Blizzard_AchievementUI", AchievementStyle)