You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

287 lines
10 KiB

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')