local AS = unpack(AddOnSkins) function AS:Blizzard_PVPUI(event, addon) if addon ~= "Blizzard_PVPUI" then return end AS:StripTextures(PVPUIFrame) AS:StripTextures(PVPQueueFrame.HonorInset) for i = 1, 3 do local Button = PVPQueueFrame['CategoryButton'..i] AS:SkinBackdropFrame(Button, nil, true) Button.Background:SetTexture('') Button.Ring:SetTexture('') Button.Icon:SetSize(45, 45) AS:SkinTexture(Button.Icon, true) Button.Name:SetTextColor(1, 1, 1) Button:SetHighlightTexture('') Button:HookScript('OnEnter', function(self) self.Backdrop:SetBackdropBorderColor(1, .82, 0) self.Icon.Backdrop:SetBackdropBorderColor(1, .82, 0) end) Button:HookScript('OnLeave', function(self) if self:GetID() == self.isSelected then self.Backdrop:SetBackdropBorderColor(unpack(AS.Color)) self.Icon.Backdrop:SetBackdropBorderColor(unpack(AS.Color)) else self.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor)) self.Icon.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor)) end end) end hooksecurefunc('PVPQueueFrame_SelectButton', function(index) for i = 1, 3 do local Button = PVPQueueFrame["CategoryButton"..i] Button.isSelected = index if ( i == index ) then Button.Backdrop:SetBackdropBorderColor(unpack(AS.Color)) Button.Icon.Backdrop:SetBackdropBorderColor(unpack(AS.Color)) else Button.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor)) Button.Icon.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor)) end end end) AS:SkinDropDownBox(HonorFrameTypeDropDown) AS:SkinScrollBar(HonorFrameSpecificFrameScrollBar) AS:SkinButton(HonorFrameQueueButton, true) AS:StripTextures(HonorFrame.BonusFrame) AS:StripTextures(HonorFrame.BonusFrame.ShadowOverlay) local Buttons = { ['RandomBGButton'] = HonorFrame.BonusFrame, ['RandomEpicBGButton'] = HonorFrame.BonusFrame, ['Arena1Button'] = HonorFrame.BonusFrame, ['BrawlButton'] = HonorFrame.BonusFrame, ['RatedBG'] = ConquestFrame, ['Arena2v2'] = ConquestFrame, ['Arena3v3'] = ConquestFrame } for Section, Parent in pairs(Buttons) do local Button = Parent[Section] AS:SkinButton(Button) Button.SelectedTexture:SetTexture('') Button.SelectedTexture:Hide() AS:SkinTexture(Button.Reward.Icon, true) Button.Reward.Border:Hide() Button.Reward.CircleMask:Hide() AS:StripTextures(Button.Reward.EnlistmentBonus) AS:SetTemplate(Button.Reward.EnlistmentBonus) Button.Reward.EnlistmentBonus:SetSize(20, 20) Button.Reward.EnlistmentBonus:SetPoint("TOPRIGHT", 2, 2) local EnlistmentBonusIcon = Button.Reward.EnlistmentBonus:CreateTexture() EnlistmentBonusIcon:SetPoint("TOPLEFT", Button.Reward.EnlistmentBonus, "TOPLEFT", 2, -2) EnlistmentBonusIcon:SetPoint("BOTTOMRIGHT", Button.Reward.EnlistmentBonus, "BOTTOMRIGHT", -2, 2) EnlistmentBonusIcon:SetTexture("Interface\\Icons\\achievement_guildperk_honorablemention_rank2") EnlistmentBonusIcon:SetTexCoord(0.1, 0.9, 0.1, 0.9) Button:HookScript('OnEnter', function(self) self:SetBackdropBorderColor(1, .82, 0) end) Button:HookScript('OnLeave', function(self) if self.SelectedTexture:IsShown() then self:SetBackdropBorderColor(unpack(AS.Color)) else self:SetBackdropBorderColor(unpack(AS.BorderColor)) end end) end hooksecurefunc('PVPUIFrame_ConfigureRewardFrame', function(rewardFrame, honor, experience, itemRewards, currencyRewards) local rewardTexture, rewardQuaility, _ = nil, 1 if currencyRewards then for _, reward in ipairs(currencyRewards) do local name, _, texture, _, _, _, _, quality = GetCurrencyInfo(reward.id) if quality == LE_ITEM_QUALITY_ARTIFACT then _, rewardTexture, _, rewardQuaility = CurrencyContainerUtil.GetCurrencyContainerInfo(reward.id, reward.quantity, name, texture, quality) end end end if not rewardTexture and itemRewards then local reward = itemRewards[1] if reward then _, _, rewardQuaility, _, _, _, _, _, _, rewardTexture = GetItemInfo(reward.id) end end if rewardTexture then rewardFrame.Icon:SetTexture(rewardTexture) if rewardFrame.Icon.Backdrop then rewardFrame.Icon.Backdrop:SetBackdropBorderColor(GetItemQualityColor(rewardQuaility)) end end end) for _, func in pairs({ 'ConquestFrame_UpdateJoinButton', 'HonorFrame_UpdateQueueButtons' }) do hooksecurefunc(func, function() for Section, Parent in pairs(Buttons) do local Button = Parent[Section] if Button.SelectedTexture:IsShown() then Button:SetBackdropBorderColor(unpack(AS.Color)) else Button:SetBackdropBorderColor(unpack(AS.BorderColor)) end end end) end PVPQueueFrame.CategoryButton1.Icon:SetTexture([[Interface\Icons\achievement_bg_winwsg]]) PVPQueueFrame.CategoryButton2.Icon:SetTexture([[Interface\Icons\achievement_bg_killxenemies_generalsroom]]) PVPQueueFrame.CategoryButton3.Icon:SetTexture([[Interface\Icons\ability_warrior_offensivestance]]) AS:SkinButton(ConquestJoinButton, true) AS:StripTextures(ConquestFrame.ShadowOverlay) AS:SkinFrame(ConquestTooltip) for _, Frame in pairs({ HonorFrame, ConquestFrame }) do AS:StripTextures(Frame) AS:StripTextures(Frame.Inset) AS:SkinCheckBox(Frame.DPSIcon.checkButton, true) AS:SkinCheckBox(Frame.TankIcon.checkButton, true) AS:SkinCheckBox(Frame.HealerIcon.checkButton, true) AS:SkinStatusBar(Frame.ConquestBar, AS.Faction == "Alliance" and {0.05, 0.15, 0.36} or {0.63, 0.09, 0.09}) Frame.ConquestBar.Reward.Ring:Hide() Frame.ConquestBar.Reward.CircleMask:Hide() AS:SkinTexture(Frame.ConquestBar.Reward.Icon, true) Frame.ConquestBar.Reward:SetPoint("LEFT", Frame.ConquestBar, "RIGHT", -8, 0) hooksecurefunc(Frame.ConquestBar.Reward.Icon, 'SetTexture', function(self) -- Code taken from :GetConquestLevelInfo the function isn't returning the correct id somehow. local Quality for _, questID in ipairs(C_QuestLine.GetQuestLineQuests(782)) do if not IsQuestFlaggedCompleted(questID) and not C_QuestLog.IsOnQuest(questID) then break end if HaveQuestRewardData(questID) then local itemID = select(6, GetQuestLogRewardInfo(1, questID)) Quality = select(3, GetItemInfo(itemID)) else C_TaskQuest.RequestPreloadRewardData(questID) -- Taken from WorldMapFrame end end if Quality then self.Backdrop:SetBackdropBorderColor(GetItemQualityColor(Quality)) else self.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor)) end end) end AS:UnregisterSkinEvent(addon, event) end function AS:Blizzard_BattlefieldMap(event, addon) if addon ~= 'Blizzard_BattlefieldMap' then return end local function GetOpacity() return 1 - (BattlefieldMapOptions and BattlefieldMapOptions.opacity or 1) end local oldAlpha = GetOpacity() AS:SkinBackdropFrame(BattlefieldMapFrame) AS:SetOutside(BattlefieldMapFrame.Backdrop, BattlefieldMapFrame.ScrollContainer) BattlefieldMapFrame.Backdrop:SetBackdropColor(0, 0, 0, oldAlpha) BattlefieldMapFrame:SetClampedToScreen(true) BattlefieldMapFrame:EnableMouse(true) BattlefieldMapFrame:SetMovable(true) BattlefieldMapFrame:SetFrameStrata('LOW') BattlefieldMapFrame.BorderFrame.CloseButton:SetFrameLevel(BattlefieldMapFrame.BorderFrame.CloseButton:GetFrameLevel()+1) AS:SkinCloseButton(BattlefieldMapFrame.BorderFrame.CloseButton) AS:Kill(BattlefieldMapTab) local function InitializeOptionsDropDown() BattlefieldMapTab:InitializeOptionsDropDown() end BattlefieldMapFrame.ScrollContainer:HookScript("OnMouseUp", function(_, btn) if btn == "LeftButton" then BattlefieldMapTab:StopMovingOrSizing() BattlefieldMapTab:SetUserPlaced(true) elseif btn == "RightButton" then UIDropDownMenu_Initialize(BattlefieldMapTab.OptionsDropDown, InitializeOptionsDropDown, "MENU") ToggleDropDownMenu(1, nil, BattlefieldMapTab.OptionsDropDown, BattlefieldMapFrame:GetName(), 0, -4) end if OpacityFrame:IsShown() then OpacityFrame:Hide() end end) BattlefieldMapFrame.ScrollContainer:HookScript("OnMouseDown", function(_, btn) if btn == "LeftButton" and (BattlefieldMapOptions and not BattlefieldMapOptions.locked) then BattlefieldMapTab:StartMoving() end end) local function setBackdropAlpha() if BattlefieldMapFrame.Backdrop then BattlefieldMapFrame.Backdrop:SetBackdropColor(0, 0, 0, GetOpacity()) end end hooksecurefunc(BattlefieldMapFrame, "SetGlobalAlpha", setBackdropAlpha) hooksecurefunc(BattlefieldMapFrame, "RefreshAlpha", function() oldAlpha = GetOpacity() end) local function setOldAlpha() if oldAlpha then BattlefieldMapFrame:SetGlobalAlpha(oldAlpha) oldAlpha = nil end end local function setRealAlpha() oldAlpha = GetOpacity() BattlefieldMapFrame:SetGlobalAlpha(1) end BattlefieldMapFrame:HookScript('OnShow', setBackdropAlpha) BattlefieldMapFrame.ScrollContainer:HookScript('OnLeave', setOldAlpha) BattlefieldMapFrame.ScrollContainer:HookScript('OnEnter', setRealAlpha) BattlefieldMapFrame.BorderFrame.CloseButton:HookScript('OnLeave', setOldAlpha) BattlefieldMapFrame.BorderFrame.CloseButton:HookScript('OnEnter', setRealAlpha) AS:UnregisterSkinEvent(addon, event) end function AS:Blizzard_PVPMatch() -- Macro to show the PVPMatchScoreboard: /run PVPMatchScoreboard:Show() -- Macro to show the PVPMatchResults: /run PVPMatchResults:Show() local PVPMatchScoreboard = _G.PVPMatchScoreboard AS:SkinFrame(PVPMatchScoreboard) AS:SkinCloseButton(PVPMatchScoreboard.CloseButton) AS:StripTextures(PVPMatchScoreboard.Content) AS:SkinScrollBar(PVPMatchScoreboard.Content.ScrollFrame.ScrollBar) for _, tab in pairs({PVPMatchScoreboard.Content.TabContainer.TabGroup:GetChildren()}) do AS:SkinTab(tab) end local PVPMatchResults = _G.PVPMatchResults AS:SkinFrame(PVPMatchResults) AS:StripTextures(PVPMatchResults.content) AS:StripTextures(PVPMatchResults.content.tabContainer) AS:SkinScrollBar(PVPMatchResults.content.scrollFrame.scrollBar) AS:SkinCloseButton(PVPMatchResults.CloseButton) AS:SkinButton(PVPMatchResults.buttonContainer.leaveButton) for _, tab in pairs({PVPMatchResults.content.tabContainer.tabGroup:GetChildren()}) do AS:SkinTab(tab) end end AS:RegisterSkin("Blizzard_PVPUI", AS.Blizzard_PVPUI, 'ADDON_LOADED') AS:RegisterSkin("Blizzard_PVPMatch", AS.Blizzard_PVPMatch) AS:RegisterSkin("Blizzard_BattlefieldMap", AS.Blizzard_BattlefieldMap, 'ADDON_LOADED')