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.

321 lines
11 KiB

local AS = unpack(AddOnSkins)
function AS:Blizzard_EncounterJournal(event, addon)
if addon ~= 'Blizzard_EncounterJournal' then return end
AS:SkinBackdropFrame(EncounterJournal)
AS:SkinBackdropFrame(EncounterJournal.navBar, nil, nil, true)
EncounterJournal.navBar.Backdrop:SetPoint("TOPLEFT", -2, 0)
EncounterJournal.navBar.Backdrop:SetPoint("BOTTOMRIGHT")
AS:StripTextures(EncounterJournal.navBar.overlay, true)
AS:SkinButton(EncounterJournal.navBar.homeButton, true)
EncounterJournal.navBar.homeButton.xoffset = 1
AS:SkinEditBox(EncounterJournal.searchBox)
AS:SkinCloseButton(EncounterJournal.CloseButton)
AS:CreateBackdrop(EncounterJournal.encounter.info)
for _, Tab in pairs({ EncounterJournal.encounter.info.bossTab, EncounterJournal.encounter.info.lootTab, EncounterJournal.encounter.info.modelTab, EncounterJournal.encounter.info.overviewTab }) do
Tab:GetNormalTexture():SetTexture()
Tab:GetPushedTexture():SetTexture()
Tab:GetDisabledTexture():SetTexture()
Tab:GetHighlightTexture():SetTexture()
AS:SkinBackdropFrame(Tab, nil, true)
Tab.Backdrop:SetPoint('TOPLEFT', 11, -8)
Tab.Backdrop:SetPoint('BOTTOMRIGHT', -6, 8)
Tab:HookScript('OnEnter', function(self) self.Backdrop:SetBackdropBorderColor(unpack(AS.Color)) end)
Tab:HookScript('OnLeave', function(self) self.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor)) end)
end
EncounterJournal.encounter.info.overviewTab:SetPoint('TOPLEFT', EncounterJournal.encounter.info, 'TOPRIGHT', AS:AdjustForTheme(-2), -35)
EncounterJournal.encounter.info.overviewTab.SetPoint = AS.Noop
AS:StripTextures(EncounterJournal.instanceSelect)
AS:SkinFrame(EncounterJournal.suggestFrame)
AS:SkinFrame(EncounterJournal.instanceSelect.scroll)
AS:SkinScrollBar(EncounterJournal.instanceSelect.scroll.ScrollBar)
AS:SkinButton(EncounterJournal.instanceSelect.dungeonsTab, true)
AS:SkinButton(EncounterJournal.instanceSelect.raidsTab, true)
AS:SkinButton(EncounterJournal.instanceSelect.suggestTab, true)
AS:SkinButton(EncounterJournal.instanceSelect.LootJournalTab, true)
AS:SkinScrollBar(EncounterJournal.encounter.info.lootScroll.scrollBar)
AS:SkinScrollBar(EncounterJournal.encounter.info.detailsScroll.ScrollBar)
AS:SkinScrollBar(EncounterJournal.encounter.info.bossesScroll.ScrollBar)
AS:SkinScrollBar(EncounterJournal.encounter.instance.loreScroll.ScrollBar)
AS:StripTextures(EncounterJournal.encounter.info)
EncounterJournal.encounter.instance.loreScroll.child.lore:SetTextColor(1, 1, 1)
EncounterJournal.encounter.info.detailsScroll.child.description:SetTextColor(1, 1, 1)
EncounterJournal.encounter.info.overviewScroll.child.loreDescription:SetTextColor(1, 1, 1)
EncounterJournal.encounter.info.overviewScroll.child.header:Hide()
_G.EncounterJournalEncounterFrameInfoOverviewScrollFrameScrollChildTitle:SetFontObject("GameFontNormalLarge")
_G.EncounterJournalEncounterFrameInfoOverviewScrollFrameScrollChildTitle:SetTextColor(1, 1, 1)
EncounterJournal.instanceSelect.suggestTab:SetPoint('BOTTOMLEFT', '$parent', 'TOPLEFT', 25, -49)
EncounterJournal.encounter.info.overviewScroll.child.overviewDescription.Text:SetTextColor(1, 1, 1)
AS:SkinFrame(EncounterJournal.LootJournal)
AS:StripTextures(EncounterJournal.LootJournal.ItemSetsFrame.ClassButton)
AS:SkinButton(EncounterJournal.LootJournal.ItemSetsFrame.ClassButton, true)
AS:SkinScrollBar(EncounterJournal.LootJournal.ItemSetsFrame.scrollBar)
EncounterJournal.instanceSelect.bg:SetAlpha(0)
AS:Delay(0, function() AS:SkinDropDownBox(EncounterJournalInstanceSelectTierDropDown) end) -- Apparently Spawned but not all elements until the frame is shown.
for i = 1, AJ_MAX_NUM_SUGGESTIONS do
local suggestion = EncounterJournal.suggestFrame["Suggestion"..i]
local centerDisplay = suggestion.centerDisplay
local reward = suggestion.reward
suggestion.bg:SetAlpha(0)
AS:CreateBackdrop(suggestion.bg)
AS:CreateBackdrop(suggestion.icon)
centerDisplay.title.text:SetTextColor(1, 1, 1)
centerDisplay.description.text:SetTextColor(.9, .9, .9)
AS:CreateBackdrop(reward.icon)
reward.iconRing:Hide()
reward.iconRingHighlight:SetTexture("")
if i == 1 then
reward.text:SetTextColor(.9, .9, .9)
suggestion.icon:SetPoint("TOPLEFT", 135, -15)
AS:SkinButton(suggestion.button)
AS:SkinArrowButton(suggestion.prevButton)
AS:SkinArrowButton(suggestion.nextButton)
else
reward:SetFrameLevel(suggestion:GetFrameLevel() + 3)
AS:SkinButton(suggestion.centerDisplay.button)
suggestion.bg:SetPoint('TOPLEFT', -16, 4)
end
end
AS:SkinButton(EncounterJournal.encounter.info.lootScroll.lootSlotFilter, true)
AS:SkinButton(EncounterJournal.encounter.info.lootScroll.filter, true)
AS:SkinButton(EncounterJournal.encounter.info.lootScroll.slotFilter, true)
AS:StripTextures(EncounterJournal.encounter.info.lootScroll.classClearFilter, true)
EncounterJournal.encounter.info.lootScroll.classClearFilter.text:SetTextColor(1, 1, 1)
AS:SkinButton(EncounterJournal.encounter.info.reset)
AS:SkinButton(EncounterJournal.encounter.info.difficulty, true)
for i, Button in pairs(EncounterJournal.encounter.info.lootScroll.buttons) do
Button.bossTexture:SetAlpha(0)
Button.bosslessTexture:SetAlpha(0)
Button.icon:SetSize(32, 32)
Button.icon:SetPoint("TOPLEFT", AS:AdjustForTheme(3), AS:AdjustForTheme(-7))
AS:SkinTexture(Button.icon, true)
Button.name:SetPoint("TOPLEFT", Button.icon, "TOPRIGHT", 6, -2)
Button.boss:SetTextColor(1, 1, 1)
Button.boss:SetPoint("BOTTOMLEFT", 4, 6)
Button.slot:SetPoint("TOPLEFT", Button.name, "BOTTOMLEFT", 0, -3)
Button.slot:SetTextColor(1, 1, 1)
Button.armorType:SetTextColor(1, 1, 1)
Button.armorType:SetPoint("RIGHT", Button, "RIGHT", -10, 0)
hooksecurefunc(Button.IconBorder, "SetVertexColor", function(self, r, g, b)
self:GetParent().icon.Backdrop:SetBackdropBorderColor(r, g, b)
self:SetTexture("")
end)
AS:CreateBackdrop(Button)
Button.Backdrop:SetPoint("TOPLEFT", 0, -4)
Button.Backdrop:SetPoint("BOTTOMRIGHT", 0, AS.PixelMode and 3 or 0)
if i == 1 then
Button:ClearAllPoints()
Button:SetPoint("TOPLEFT", EncounterJournal.encounter.info.lootScroll.scrollChild, "TOPLEFT", 5, 0)
end
end
AS:SkinTooltip(EncounterJournalTooltip)
hooksecurefunc('AdventureJournal_Reward_OnEnter', function(self)
local rewardData = self.data
if ( rewardData ) then
local frame = EncounterJournalTooltip
if ( rewardData.itemLink or rewardData.currencyType ) then
local _, _, quality = GetItemInfo(rewardData.itemLink)
AS:SkinTexture(frame.Item1.icon, true)
frame.Item1.icon.Backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
frame.Item1.IconBorder:SetAlpha(0)
frame.Item1.tooltip:SetBackdrop(nil)
end
end
end)
hooksecurefunc("EncounterJournal_ListInstances", function()
local instanceSelect = EncounterJournal.instanceSelect
local scrollFrame = instanceSelect.scroll.child
local index = 1
local Button = scrollFrame["instance"..index]
while Button do
AS:SkinButton(Button)
scrollFrame["instance"..index].bgImage:SetTexCoord(.08, .6, .08, .6)
scrollFrame["instance"..index].bgImage:SetDrawLayer('ARTWORK')
AS:SetInside(scrollFrame["instance"..index].bgImage)
index = index + 1
Button = scrollFrame["instance"..index]
end
end)
hooksecurefunc("EncounterJournal_DisplayInstance", function()
local bossIndex = 1
local bossButton = _G["EncounterJournalBossButton"..bossIndex]
while bossButton do
AS:SkinButton(bossButton)
bossButton.creature:ClearAllPoints()
bossButton.creature:SetPoint("TOPLEFT", 1, -4)
bossIndex = bossIndex + 1
bossButton = _G["EncounterJournalBossButton"..bossIndex]
end
end)
hooksecurefunc("EncounterJournal_SetUpOverview", function(self, _, index)
local header = self.overviews[index]
if not header.isSkinned then
header.descriptionBG:SetAlpha(0)
AS:CreateBackdrop(header.descriptionBG)
header.descriptionBG.Backdrop:SetAllPoints()
header.descriptionBGBottom:SetAlpha(0)
for i = 4, 18 do
select(i, header.button:GetRegions()):SetTexture("")
end
AS:SkinButton(header.button)
header.button.title:SetTextColor(unpack(AS.Color))
header.button.title.SetTextColor = AS.Noop
header.button.expandedIcon:SetTextColor(1, 1, 1)
header.button.expandedIcon.SetTextColor = AS.Noop
header.isSkinned = true
end
end)
hooksecurefunc("EncounterJournal_SetBullets", function(object)
local parent = object:GetParent()
if parent.Bullets then
for _, bullet in pairs(parent.Bullets) do
if not bullet.styled then
bullet.Text:SetTextColor(1, 1, 1)
bullet.styled = true
end
end
end
end)
hooksecurefunc("EncounterJournal_ToggleHeaders", function()
local index = 1
local header = _G["EncounterJournalInfoHeader"..index]
while header do
if not header.isSkinned then
header.flashAnim.Play = AS.Noop
header.descriptionBG:SetAlpha(0)
header.descriptionBGBottom:SetAlpha(0)
for i = 4, 18 do
select(i, header.button:GetRegions()):SetTexture("")
end
header.description:SetTextColor(1, 1, 1)
header.button.title:SetTextColor(unpack(AS.Color))
header.button.title.SetTextColor = AS.Noop
header.button.expandedIcon:SetTextColor(1, 1, 1)
header.button.expandedIcon.SetTextColor = AS.Noop
AS:SkinButton(header.button)
AS:SkinTexture(header.button.abilityIcon, true)
header.isSkinned = true
end
index = index + 1
header = _G["EncounterJournalInfoHeader"..index]
end
end)
hooksecurefunc("EJSuggestFrame_RefreshDisplay", function()
for i = 1, 3 do
local Suggestion = EncounterJournal.suggestFrame['Suggestion'..i]
local Data = EncounterJournal.suggestFrame.suggestions[i]
if Suggestion and Data then
Suggestion.iconRing:Hide()
Suggestion.icon:SetMask("")
Suggestion.icon:SetTexture(Data.iconPath or QUESTION_MARK_ICON)
AS:SkinTexture(Suggestion.icon)
end
end
end)
hooksecurefunc("EJSuggestFrame_UpdateRewards", function(suggestion)
local rewardData = suggestion.reward.data
if rewardData then
local texture = rewardData.itemIcon or rewardData.currencyIcon or [[Interface\Icons\achievement_guildperk_mobilebanking]]
suggestion.reward.icon:SetMask("")
suggestion.reward.icon:SetTexture(texture)
AS:SkinTexture(suggestion.reward.icon)
local r, g, b = unpack(AS.BorderColor)
if rewardData.itemID then
local quality = select(3, GetItemInfo(rewardData.itemID))
if quality and quality > 1 then
r, g, b = GetItemQualityColor(quality)
end
end
suggestion.reward.icon.Backdrop:SetBackdropBorderColor(r, g, b)
end
end)
hooksecurefunc(EncounterJournal.LootJournal.ItemSetsFrame, "UpdateList", function(self)
for _, Button in pairs(self.buttons) do
Button.ItemLevel:SetTextColor(1, 1, 1)
Button.Background:Hide()
AS:SkinFrame(Button)
for _, Item in pairs(Button.ItemButtons) do
Item.Border:Hide()
Item.Icon:SetPoint("TOPLEFT", 1, -1)
AS:SkinTexture(Item.Icon, true)
end
end
end)
hooksecurefunc(EncounterJournal.LootJournal.ItemSetsFrame, 'ConfigureItemButton', function(self, button)
local r, g, b = unpack(AS.BorderColor)
if button.itemID then
local _, _, itemQuality = GetItemInfo(button.itemID)
if itemQuality and itemQuality > 1 then
r, g, b = GetItemQualityColor(itemQuality)
end
end
if button.Icon.Backdrop then
button.Icon.Backdrop:SetBackdropBorderColor(r, g, b)
end
end)
AS:UnregisterSkinEvent(addon, event)
end
AS:RegisterSkin("Blizzard_EncounterJournal", AS.Blizzard_EncounterJournal, 'ADDON_LOADED')