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.
265 lines
8.7 KiB
265 lines
8.7 KiB
local AS = unpack(AddOnSkins)
|
|
|
|
function AS:Blizzard_TalentUI(event, addon)
|
|
if addon ~= 'Blizzard_TalentUI' then return end
|
|
|
|
AS:SkinFrame(PlayerTalentFrame, nil, nil, true)
|
|
AS:SkinCloseButton(PlayerTalentFrame.CloseButton)
|
|
|
|
for _, Button in pairs({ PlayerTalentFrameTalentsTutorialButton, PlayerTalentFrameSpecializationTutorialButton, PlayerTalentFramePetSpecializationTutorialButton }) do
|
|
Button.Ring:Hide()
|
|
Button:SetPoint("TOPLEFT", PlayerTalentFrame, "TOPLEFT", -12, 12)
|
|
-- AS:Kill(Button)
|
|
end
|
|
|
|
AS:SkinButton(PlayerTalentFrameActivateButton, true)
|
|
AS:SkinButton(PlayerTalentFrameSpecializationLearnButton, true)
|
|
|
|
for i = 1, NUM_TALENT_FRAME_TABS do
|
|
AS:SkinTab(_G["PlayerTalentFrameTab"..i])
|
|
end
|
|
|
|
for _, Frame in pairs({ PlayerTalentFrameSpecialization, PlayerTalentFramePetSpecialization }) do
|
|
AS:StripTextures(Frame, true)
|
|
|
|
for _, Child in pairs({Frame:GetChildren()}) do
|
|
if Child:IsObjectType("Frame") and not Child:GetName() then
|
|
AS:StripTextures(Child)
|
|
end
|
|
end
|
|
|
|
for i = 1, 4 do
|
|
local Button = Frame['specButton'..i]
|
|
local _, _, _, icon = GetSpecializationInfo(i, false, Frame.isPet)
|
|
|
|
AS:Kill(_G["PlayerTalentFrameSpecializationSpecButton"..i.."Glow"])
|
|
|
|
AS:SkinBackdropFrame(Button, nil, true)
|
|
Button.Backdrop:SetPoint("TOPLEFT", 70, 2)
|
|
Button.Backdrop:SetPoint("BOTTOMRIGHT", 4, -2)
|
|
|
|
Button.bg:SetAlpha(0)
|
|
Button.ring:SetAlpha(0)
|
|
Button.learnedTex:SetAlpha(0)
|
|
Button.selectedTex:SetAlpha(0)
|
|
Button.specIcon:SetTexture(icon)
|
|
AS:SkinTexture(Button.specIcon, true)
|
|
Button:SetHighlightTexture(nil)
|
|
|
|
Button:HookScript('OnEnter', function(self)
|
|
self.Backdrop:SetBackdropBorderColor(1, .82, 0)
|
|
self.specIcon.Backdrop:SetBackdropBorderColor(1, .82, 0)
|
|
end)
|
|
Button:HookScript('OnLeave', function(self)
|
|
if self.selected then
|
|
self.Backdrop:SetBackdropBorderColor(unpack(AS.Color))
|
|
self.specIcon.Backdrop:SetBackdropBorderColor(unpack(AS.Color))
|
|
else
|
|
self.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
self.specIcon.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
end
|
|
end)
|
|
end
|
|
|
|
AS:CreateBackdrop(Frame.spellsScroll)
|
|
AS:Kill(Frame.spellsScroll.child.gradient)
|
|
Frame.spellsScroll.child.scrollwork_topleft:SetAlpha(0)
|
|
Frame.spellsScroll.child.scrollwork_topright:SetAlpha(0)
|
|
Frame.spellsScroll.child.scrollwork_bottomleft:SetAlpha(0)
|
|
Frame.spellsScroll.child.scrollwork_bottomright:SetAlpha(0)
|
|
Frame.spellsScroll.child.ring:SetAlpha(0)
|
|
Frame.spellsScroll.child.Seperator:SetAlpha(0)
|
|
|
|
AS:SetOutside(Frame.spellsScroll.Backdrop, Frame.spellsScroll.child.specIcon)
|
|
end
|
|
|
|
for i = 1, MAX_TALENT_TIERS do
|
|
local Row = PlayerTalentFrameTalents['tier'..i]
|
|
AS:StripTextures(Row, true)
|
|
AS:Kill(Row.GlowFrame)
|
|
|
|
for j = 1, NUM_TALENT_COLUMNS do
|
|
local Button = Row['talent'..j]
|
|
|
|
AS:SkinBackdropFrame(Button)
|
|
AS:CreateShadow(Button.Backdrop, true)
|
|
|
|
if Button.Backdrop.Shadow then
|
|
Button.Backdrop.Shadow:SetBackdropBorderColor(unpack(AS.Color))
|
|
|
|
Button.GlowFrame.TopGlowLine = Button.Backdrop.Shadow
|
|
Button.GlowFrame.TopGlowLine:Hide()
|
|
AS:Kill(Button.GlowFrame.BottomGlowLine)
|
|
|
|
Button.GlowFrame:HookScript('OnShow', function(self) self.TopGlowLine:Show() Button.Backdrop.Shadow:Show() end)
|
|
Button.GlowFrame:HookScript('OnHide', function(self) self.TopGlowLine:Hide() Button.Backdrop.Shadow:Hide() end)
|
|
end
|
|
|
|
Button:SetFrameLevel(Button:GetFrameLevel() + 2)
|
|
Button.Backdrop:SetPoint("TOPLEFT", 15, -1)
|
|
Button.Backdrop:SetPoint("BOTTOMRIGHT", -10, 1)
|
|
|
|
Button.knownSelection:SetAlpha(0)
|
|
|
|
AS:CreateBackdrop(Button.icon)
|
|
AS:SkinTexture(Button.icon)
|
|
|
|
Button.icon:SetSize(32, 32)
|
|
|
|
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.knownSelection:IsShown() 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
|
|
end
|
|
|
|
hooksecurefunc("TalentFrame_Update", function(self)
|
|
for i = 1, MAX_TALENT_TIERS do
|
|
for j = 1, NUM_TALENT_COLUMNS do
|
|
local Talent = self['tier'..i]['talent'..j]
|
|
if Talent.knownSelection:IsShown() then
|
|
Talent.Backdrop:SetBackdropBorderColor(unpack(AS.Color))
|
|
Talent.icon.Backdrop:SetBackdropBorderColor(unpack(AS.Color))
|
|
else
|
|
Talent.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
Talent.icon.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
hooksecurefunc("PlayerTalentFrame_UpdateSpecFrame", function(self, spec)
|
|
local playerTalentSpec = GetSpecialization(nil, self.isPet, PlayerSpecTab2:GetChecked() and 2 or 1)
|
|
local shownSpec = spec or playerTalentSpec or 1
|
|
local sex = self.isPet and UnitSex("pet") or UnitSex("player")
|
|
local id, _, _, icon = GetSpecializationInfo(shownSpec, nil, self.isPet, nil, sex)
|
|
local scrollChild = self.spellsScroll.child
|
|
scrollChild.specIcon:SetTexture(icon)
|
|
AS:SkinTexture(scrollChild.specIcon)
|
|
|
|
local index = 1
|
|
local bonuses
|
|
local bonusesIncrement = 1
|
|
if self.isPet then
|
|
bonuses = {GetSpecializationSpells(shownSpec, nil, self.isPet, true)}
|
|
bonusesIncrement = 2
|
|
elseif id then
|
|
bonuses = C_SpecializationInfo.GetSpellsDisplay(id)
|
|
end
|
|
|
|
for i = 1, 4 do
|
|
local Button = self['specButton'..i]
|
|
if Button.selected then
|
|
Button.Backdrop:SetBackdropBorderColor(unpack(AS.Color))
|
|
Button.specIcon.Backdrop:SetBackdropBorderColor(unpack(AS.Color))
|
|
else
|
|
Button.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
Button.specIcon.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
end
|
|
end
|
|
|
|
if bonuses then
|
|
for i = 1, #bonuses, bonusesIncrement do
|
|
local frame = scrollChild["abilityButton"..index]
|
|
|
|
if frame then
|
|
local _, spellTex = GetSpellTexture(bonuses[i])
|
|
if spellTex then
|
|
frame.icon:SetTexture(spellTex)
|
|
end
|
|
|
|
AS:SkinTexture(frame.icon, true)
|
|
|
|
frame.ring:Hide()
|
|
frame.icon:SetSize(60, 60)
|
|
frame.subText:SetTextColor(1, .8, .1)
|
|
end
|
|
|
|
index = index + 1
|
|
end
|
|
end
|
|
end)
|
|
|
|
AS:StripTextures(PlayerTalentFrameTalents, true)
|
|
PlayerTalentFrameTalents.PvpTalentButton:HookScript("OnShow", function(self) AS:SkinArrowButton(self, self.currentlyExpanded and 'left' or 'right') end)
|
|
PlayerTalentFrameTalents.PvpTalentButton:HookScript("PostClick", function(self) AS:SkinArrowButton(self, self.currentlyExpanded and 'left' or 'right') end)
|
|
|
|
local PvpTalentFrame = PlayerTalentFrameTalents.PvpTalentFrame
|
|
AS:StripTextures(PvpTalentFrame)
|
|
|
|
for _, Button in pairs(PvpTalentFrame.Slots) do
|
|
AS:CreateBackdrop(Button.Texture)
|
|
|
|
Button.Arrow:SetAlpha(0)
|
|
Button.Border:Hide()
|
|
|
|
hooksecurefunc(Button, "Update", function(self)
|
|
local slotInfo = C_SpecializationInfo.GetPvpTalentSlotInfo(self.slotIndex)
|
|
if (not slotInfo) then
|
|
return
|
|
end
|
|
|
|
if (slotInfo.enabled) then
|
|
AS:SkinTexture(self.Texture)
|
|
if (not slotInfo.selectedTalentID) then
|
|
self.Texture:SetTexture([[Interface\Icons\INV_Misc_QuestionMark]])
|
|
self.Texture.Backdrop:SetBackdropBorderColor(1, 1, 0, 1)
|
|
else
|
|
self.Texture.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
end
|
|
else
|
|
self.Texture:SetTexture([[Interface\PetBattles\PetBattle-LockIcon]])
|
|
self.Texture:SetTexCoord(0, 1, 0, 1)
|
|
self.Texture:SetDesaturated(true)
|
|
self.Texture:Show()
|
|
self.Texture.Backdrop:SetBackdropBorderColor(1, 0, 0, 1)
|
|
end
|
|
end)
|
|
end
|
|
|
|
PvpTalentFrame.Swords:SetSize(72, 67)
|
|
PvpTalentFrame.OrbModelScene:SetAlpha(0)
|
|
PvpTalentFrame.Orb:Hide()
|
|
PvpTalentFrame.Ring:Hide()
|
|
|
|
AS:SkinBackdropFrame(PvpTalentFrame.TalentList)
|
|
|
|
PvpTalentFrame.TalentList:SetPoint("BOTTOMLEFT", PlayerTalentFrame, "BOTTOMRIGHT", 5, 26)
|
|
|
|
AS:SkinButton(AS:FindChildFrameBySize(PlayerTalentFrameTalents.PvpTalentFrame.TalentList, 'Button', 100, 22), true)
|
|
|
|
for _, Button in pairs(PvpTalentFrame.TalentList.ScrollFrame.buttons) do
|
|
Button:DisableDrawLayer("BACKGROUND")
|
|
AS:SkinTexture(Button.Icon)
|
|
AS:StyleButton(Button)
|
|
AS:CreateBackdrop(Button)
|
|
Button.Selected:SetTexture("")
|
|
Button.Backdrop:SetAllPoints()
|
|
end
|
|
|
|
hooksecurefunc(PvpTalentFrame.TalentList, "Update", function(self)
|
|
for _, Button in pairs(PvpTalentFrame.TalentList.ScrollFrame.buttons) do
|
|
if Button.Selected:IsShown() then
|
|
Button.Backdrop:SetBackdropBorderColor(unpack(AS.Color))
|
|
else
|
|
Button.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
|
|
end
|
|
end
|
|
end)
|
|
|
|
AS:SkinScrollBar(PvpTalentFrame.TalentList.ScrollFrame.ScrollBar)
|
|
|
|
AS:UnregisterSkinEvent(addon, event)
|
|
end
|
|
|
|
AS:RegisterSkin('Blizzard_TalentUI', AS.Blizzard_TalentUI, 'ADDON_LOADED')
|
|
|