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.

271 lines
9.2 KiB

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local TT = E:GetModule('Tooltip')
local _G = _G
local ipairs, pairs, unpack, next = ipairs, pairs, unpack, next
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local hooksecurefunc = hooksecurefunc
local ITEMQUALITY_ARTIFACT = Enum.ItemQuality.Artifact
local CurrencyContainerUtil_GetCurrencyContainerInfo = CurrencyContainerUtil.GetCurrencyContainerInfo
local C_CurrencyInfo_GetCurrencyInfo = C_CurrencyInfo.GetCurrencyInfo
local function HandleRoleChecks(button, ...)
button:StripTextures()
button:DisableDrawLayer('ARTWORK')
button:DisableDrawLayer('OVERLAY')
button.bg = button:CreateTexture(nil, 'BACKGROUND', nil, -7)
button.bg:SetTexture(E.Media.Textures.RolesHQ)
button.bg:SetTexCoord(...)
button.bg:Point('CENTER')
button.bg:Size(40, 40)
button.bg:SetAlpha(0.6)
S:HandleCheckBox(button.checkButton)
end
function S:Blizzard_PVPUI()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.pvp) then return end
_G.PVPUIFrame:StripTextures()
for i = 1, 2 do
S:HandleTab(_G['PVPUIFrameTab'..i])
end
for i = 1, 3 do
local bu = _G['PVPQueueFrameCategoryButton'..i]
bu.Ring:Kill()
bu.Background:Kill()
S:HandleButton(bu)
bu.Icon:Size(45)
bu.Icon:ClearAllPoints()
bu.Icon:Point('LEFT', 10, 0)
S:HandleIcon(bu.Icon, true)
end
local PVPQueueFrame = _G.PVPQueueFrame
PVPQueueFrame.HonorInset:StripTextures()
PVPQueueFrame.CategoryButton1.Icon:SetTexture(236396) -- interface/icons/achievement_bg_winwsg.blp
PVPQueueFrame.CategoryButton2.Icon:SetTexture(236368) -- interface/icons/achievement_bg_killxenemies_generalsroom.blp
PVPQueueFrame.CategoryButton3.Icon:SetTexture(464820) -- interface/icons/achievement_general_stayclassy.blp
local SeasonReward = PVPQueueFrame.HonorInset.RatedPanel.SeasonRewardFrame
SeasonReward:CreateBackdrop()
SeasonReward.Icon:SetInside(SeasonReward.backdrop)
SeasonReward.Icon:SetTexCoord(unpack(E.TexCoords))
SeasonReward.CircleMask:Hide()
SeasonReward.Ring:Hide()
-- Honor Frame
local HonorFrame = _G.HonorFrame
HonorFrame:StripTextures()
S:HandleTrimScrollBar(_G.HonorFrame.SpecificScrollBar)
S:HandleDropDownBox(_G.HonorFrameTypeDropDown, 230)
S:HandleButton(_G.HonorFrameQueueButton)
local BonusFrame = HonorFrame.BonusFrame
BonusFrame:StripTextures()
BonusFrame.ShadowOverlay:Hide()
BonusFrame.WorldBattlesTexture:Hide()
for _, bonusButton in pairs({'RandomBGButton', 'Arena1Button', 'RandomEpicBGButton', 'BrawlButton', 'BrawlButton2'}) do
local bu = BonusFrame[bonusButton]
local reward = bu.Reward
S:HandleButton(bu)
bu.SelectedTexture:SetInside()
bu.SelectedTexture:SetColorTexture(1, 1, 0, 0.1)
reward.Border:Hide()
reward.CircleMask:Hide()
S:HandleIcon(reward.Icon, true)
reward.EnlistmentBonus:StripTextures()
reward.EnlistmentBonus:SetTemplate()
reward.EnlistmentBonus:Size(20, 20)
reward.EnlistmentBonus:Point('TOPRIGHT', 2, 2)
local EnlistmentBonusIcon = reward.EnlistmentBonus:CreateTexture()
EnlistmentBonusIcon:Point('TOPLEFT', reward.EnlistmentBonus, 'TOPLEFT', 2, -2)
EnlistmentBonusIcon:Point('BOTTOMRIGHT', reward.EnlistmentBonus, 'BOTTOMRIGHT', -2, 2)
EnlistmentBonusIcon:SetTexture([[Interface\Icons\achievement_guildperk_honorablemention_rank2]])
EnlistmentBonusIcon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
end
-- Honor Frame Specific Buttons
hooksecurefunc(HonorFrame.SpecificScrollBox, 'Update', function (box)
for _, bu in next, { box.ScrollTarget:GetChildren() } do
if not bu.IsSkinned then
bu.Bg:Hide()
bu.Border:Hide()
bu:StripTextures()
bu:CreateBackdrop()
bu.backdrop:Point('TOPLEFT', 2, 0)
bu.backdrop:Point('BOTTOMRIGHT', -1, 2)
bu:StyleButton(nil, true)
bu.SelectedTexture:SetInside(bu.backdrop)
bu.SelectedTexture:SetColorTexture(1, 1, 0, 0.1)
bu.Icon:SetTexCoord(unpack(E.TexCoords))
bu.Icon:Point('TOPLEFT', 5, -3)
bu.IsSkinned = true
end
end
end)
hooksecurefunc('LFG_PermanentlyDisableRoleButton', function(s)
if s.bg then s.bg:SetDesaturated(true) end
end)
-- New tiny Role icons in Bfa
HandleRoleChecks(HonorFrame.TankIcon, _G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
HandleRoleChecks(HonorFrame.HealerIcon, _G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
HandleRoleChecks(HonorFrame.DPSIcon, _G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
-- Conquest Frame
local ConquestFrame = _G.ConquestFrame
ConquestFrame:StripTextures()
ConquestFrame.ShadowOverlay:Hide()
S:HandleButton(_G.ConquestJoinButton)
HandleRoleChecks(ConquestFrame.TankIcon, _G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
HandleRoleChecks(ConquestFrame.HealerIcon, _G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
HandleRoleChecks(ConquestFrame.DPSIcon, _G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
for _, bu in pairs({ConquestFrame.RatedSoloShuffle, ConquestFrame.Arena2v2, ConquestFrame.Arena3v3, ConquestFrame.RatedBG}) do
local reward = bu.Reward
S:HandleButton(bu)
bu.SelectedTexture:SetInside()
bu.SelectedTexture:SetColorTexture(1, 1, 0, 0.1)
reward.Border:Hide()
reward.CircleMask:Hide()
S:HandleIcon(reward.Icon, true)
end
ConquestFrame.Arena3v3:Point('TOP', ConquestFrame.Arena2v2, 'BOTTOM', 0, -2)
-- Item Borders for HonorFrame & ConquestFrame
hooksecurefunc('PVPUIFrame_ConfigureRewardFrame', function(rewardFrame, _, _, itemRewards, currencyRewards)
local rewardTexture, rewardQuaility, _ = nil, 1
if currencyRewards then
for _, reward in ipairs(currencyRewards) do
local info = C_CurrencyInfo_GetCurrencyInfo(reward.id)
if info and info.quality == ITEMQUALITY_ARTIFACT then
_, rewardTexture, _, rewardQuaility = CurrencyContainerUtil_GetCurrencyContainerInfo(reward.id, reward.quantity, info.name, info.iconFileID, info.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
local r, g, b = GetItemQualityColor(rewardQuaility)
rewardFrame.Icon:SetTexture(rewardTexture)
rewardFrame.Icon.backdrop:SetBackdropBorderColor(r, g, b)
end
end)
if E.private.skins.blizzard.tooltip then
TT:SetStyle(_G.ConquestTooltip)
end
-- PvP StatusBars
for _, Frame in pairs({ HonorFrame, ConquestFrame }) do
Frame.ConquestBar.Border:Hide()
Frame.ConquestBar.Background:Hide()
Frame.ConquestBar.Reward.Ring:Hide()
Frame.ConquestBar.Reward.CircleMask:Hide()
Frame.ConquestBar:SetTemplate('Transparent')
Frame.ConquestBar.Reward:ClearAllPoints()
Frame.ConquestBar.Reward:Point('LEFT', Frame.ConquestBar, 'RIGHT', 0, 0)
S:HandleIcon(Frame.ConquestBar.Reward.Icon, true)
end
-- New Season Frame
local NewSeasonPopup = _G.PVPQueueFrame.NewSeasonPopup
S:HandleButton(NewSeasonPopup.Leave)
NewSeasonPopup:StripTextures()
NewSeasonPopup:SetTemplate()
NewSeasonPopup:SetFrameLevel(5)
local RewardFrame = NewSeasonPopup.SeasonRewardFrame
RewardFrame:CreateBackdrop()
RewardFrame.CircleMask:Hide()
RewardFrame.Ring:Hide()
RewardFrame.Icon:SetTexCoord(unpack(E.TexCoords))
RewardFrame.backdrop:SetOutside(RewardFrame.Icon)
if NewSeasonPopup.NewSeason then
NewSeasonPopup.NewSeason:SetTextColor(1, .8, 0)
NewSeasonPopup.NewSeason:SetShadowOffset(1, -1)
end
if NewSeasonPopup.SeasonRewardText then
NewSeasonPopup.SeasonRewardText:SetTextColor(1, .8, 0)
NewSeasonPopup.SeasonRewardText:SetShadowOffset(1, -1)
end
if NewSeasonPopup.SeasonDescriptionHeader then
NewSeasonPopup.SeasonDescriptionHeader:SetTextColor(1, 1, 1)
NewSeasonPopup.SeasonDescriptionHeader:SetShadowOffset(1, -1)
end
NewSeasonPopup:HookScript('OnShow', function(popup)
if popup.SeasonDescriptions then
for _, text in next, popup.SeasonDescriptions do
text:SetTextColor(1, 1, 1)
text:SetShadowOffset(1, -1)
end
end
end)
end
function S:PVPReadyDialog()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.pvp) then return end
--PVP QUEUE FRAME
_G.PVPReadyDialog:StripTextures()
_G.PVPReadyDialog:SetTemplate('Transparent')
S:HandleButton(_G.PVPReadyDialogEnterBattleButton)
S:HandleButton(_G.PVPReadyDialogLeaveQueueButton)
S:HandleCloseButton(_G.PVPReadyDialogCloseButton)
_G.PVPReadyDialogRoleIcon.texture:SetTexture(E.Media.Textures.RolesHQ)
_G.PVPReadyDialogRoleIcon.texture:SetAlpha(0.5)
hooksecurefunc('PVPReadyDialog_Display', function(s, _, _, _, queueType, _, role)
if role == 'DAMAGER' then
_G.PVPReadyDialogRoleIcon.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
elseif role == 'TANK' then
_G.PVPReadyDialogRoleIcon.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
elseif role == 'HEALER' then
_G.PVPReadyDialogRoleIcon.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
end
if queueType == 'ARENA' then
s:Height(100)
end
s.background:Hide()
end)
end
S:AddCallback('PVPReadyDialog')
S:AddCallbackForAddon('Blizzard_PVPUI')