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.

511 lines
18 KiB

local AS = unpack(AddOnSkins)
function AS:Blizzard_Gossip()
AS:SkinBackdropFrame(GossipFrame)
GossipFrame.Backdrop:SetPoint('TOPLEFT', 11, -12)
GossipFrame.Backdrop:SetPoint('BOTTOMRIGHT', -26, 66)
AS:SkinCloseButton(GossipFrameCloseButton)
GossipFramePortrait:SetAlpha(0)
AS:StripTextures(GossipFrameGreetingPanel)
AS:SkinButton(GossipFrameGreetingGoodbyeButton)
AS:SkinFrame(GossipGreetingScrollFrame)
AS:SkinScrollBar(GossipGreetingScrollFrameScrollBar)
for i = 1, _G.NUMGOSSIPBUTTONS do
_G['GossipTitleButton'..i..'GossipIcon']:SetSize(16, 16)
_G['GossipTitleButton'..i..'GossipIcon']:SetPoint('TOPLEFT', 3, 1)
end
if AS.ParchmentEnabled then
GossipGreetingScrollFrame.Background = GossipGreetingScrollFrame:CreateTexture(nil, 'ARTWORK')
GossipGreetingScrollFrame.Background:SetTexture('Interface\\QuestFrame\\QuestBG')
AS:SetInside(GossipGreetingScrollFrame.Background)
GossipGreetingScrollFrame.Background:SetTexCoord(0, .585, 0.02, .655)
else
_G.GossipGreetingText:SetTextColor(1, 1, 1)
hooksecurefunc('GossipFrameUpdate', function()
for i = 1, _G.NUMGOSSIPBUTTONS do
local button = _G['GossipTitleButton'..i]
local icon = _G['GossipTitleButton'..i..'GossipIcon']
local text = button:GetFontString()
if text and text:GetText() then
local textString = gsub(text:GetText(), "|c[Ff][Ff]%x%x%x%x%x%x(.+)|r", "%1")
button:SetText(textString)
text:SetTextColor(1, 1, 1)
if button.type == 'Available' or button.type == 'Active' then
if button.type == 'Active' then
icon:SetDesaturation(1)
text:SetTextColor(.6, .6, .6)
else
icon:SetDesaturation(0)
text:SetTextColor(1, .8, .1)
end
local numEntries = GetNumQuestLogEntries()
for k = 1, numEntries, 1 do
local questLogTitleText, _, _, _, _, isComplete, _, questId = GetQuestLogTitle(k)
if strmatch(questLogTitleText, textString) then
if (isComplete == 1 or IsQuestComplete(questId)) then
icon:SetDesaturation(0)
button:GetFontString():SetTextColor(1, .8, .1)
break
end
end
end
end
end
end
end)
end
AS:SkinStatusBar(NPCFriendshipStatusBar)
end
function AS:Blizzard_Quest()
AS:SkinBackdropFrame(QuestFrame)
QuestFrame.Backdrop:SetPoint('TOPLEFT', 11, -12)
QuestFrame.Backdrop:SetPoint('BOTTOMRIGHT', -26, 66)
QuestFramePortrait:SetAlpha(0)
AS:SkinBackdropFrame(QuestLogFrame)
QuestLogFrame.Backdrop:SetPoint('TOPLEFT', 11, -12)
QuestLogFrame.Backdrop:SetPoint('BOTTOMRIGHT', -32, 45)
AS:SkinFrame(QuestLogListScrollFrame)
AS:SkinFrame(QuestLogDetailScrollFrame)
AS:SkinScrollBar(QuestLogDetailScrollFrameScrollBar)
AS:SkinScrollBar(QuestLogListScrollFrameScrollBar)
AS:SkinButton(QuestLogFrameAbandonButton)
AS:SkinButton(QuestFramePushQuestButton)
AS:SkinButton(QuestFrameExitButton)
AS:StripTextures(QuestFrameDetailPanel, true)
AS:StripTextures(QuestDetailScrollChildFrame, true)
AS:StripTextures(QuestFrameProgressPanel, true)
AS:StripTextures(QuestFrameGreetingPanel, true)
AS:StripTextures(QuestFrameRewardPanel, true)
AS:SkinFrame(QuestProgressScrollFrame)
AS:SkinFrame(QuestRewardScrollFrame)
AS:SkinBackdropFrame(QuestDetailScrollFrame, nil, nil, true)
QuestDetailScrollFrame.Backdrop:SetPoint("TOPLEFT", 0, 0)
QuestDetailScrollFrame.Backdrop:SetPoint("BOTTOMRIGHT", 4, 0)
AS:SkinFrame(QuestGreetingScrollFrame)
AS:SkinScrollBar(QuestDetailScrollFrameScrollBar)
AS:SkinScrollBar(QuestNPCModelTextScrollFrameScrollBar)
AS:SkinScrollBar(QuestGreetingScrollFrameScrollBar)
AS:SkinScrollBar(QuestProgressScrollFrameScrollBar)
AS:SkinScrollBar(QuestRewardScrollFrameScrollBar)
AS:SkinButton(QuestFrameAcceptButton)
AS:SkinButton(QuestFrameCancelButton)
AS:SkinButton(QuestFrameDeclineButton)
AS:SkinButton(QuestFrameCompleteButton)
AS:SkinButton(QuestFrameGoodbyeButton)
AS:SkinButton(QuestFrameGreetingGoodbyeButton)
AS:SkinButton(QuestFrameCompleteQuestButton)
AS:StripTextures(QuestInfoItemHighlight)
hooksecurefunc("QuestInfoItem_OnClick", function(self)
for _, Button in ipairs(QuestInfoRewardsFrame.RewardButtons) do
Button.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
Button.Name:SetTextColor(1, 1, 1)
end
self.Backdrop:SetBackdropBorderColor(1,.9,.1)
self.Name:SetTextColor(1, .8, .1)
end)
AS:SkinBackdropFrame(QuestInfoRewardsFrame.SkillPointFrame)
AS:SkinTexture(QuestInfoRewardsFrame.SkillPointFrame.Icon, true)
QuestInfoRewardsFrame.SkillPointFrame.Backdrop:SetPoint('TOPLEFT', QuestInfoRewardsFrame.SkillPointFrame.Icon, 'TOPRIGHT', 0, 0)
QuestInfoRewardsFrame.SkillPointFrame.Backdrop:SetPoint('BOTTOMLEFT', QuestInfoRewardsFrame.SkillPointFrame.Icon, 'BOTTOMRIGHT', 0, 0)
QuestInfoRewardsFrame.SkillPointFrame.Backdrop:SetPoint('RIGHT', QuestInfoRewardsFrame.SkillPointFrame.NameFrame, 'RIGHT', -12, 0)
QuestInfoRewardsFrame.SkillPointFrame.ValueText:SetDrawLayer('OVERLAY', 7)
for frame, numItems in pairs({['QuestLogItem'] = MAX_NUM_ITEMS, ['QuestProgressItem'] = MAX_REQUIRED_ITEMS}) do
for i = 1, numItems do
local Button = _G[frame..i]
AS:SkinBackdropFrame(Button)
if Button.Icon then
AS:SkinTexture(Button.Icon, true)
Button.Backdrop:SetPoint('TOPLEFT', Button.Icon, 'TOPRIGHT', 0, 0)
Button.Backdrop:SetPoint('BOTTOMLEFT', Button.Icon, 'BOTTOMRIGHT', 0, 0)
Button.Backdrop:SetPoint('RIGHT', Button, 'RIGHT', -5, 0)
end
end
end
local function HandleReward(frame)
if (not frame) then return end
if frame.Icon then
AS:SkinTexture(frame.Icon, true)
AS:CreateBackdrop(frame)
frame.Backdrop:SetPoint('TOPLEFT', frame.Icon, 'TOPRIGHT', -1, 0)
frame.Backdrop:SetPoint('BOTTOMLEFT', frame.Icon, 'BOTTOMRIGHT', -1, 0)
frame.Backdrop:SetPoint('RIGHT', frame, 'RIGHT', -5, 0)
if frame.Count then
frame.Count:ClearAllPoints()
frame.Count:SetPoint("BOTTOMRIGHT", frame.Icon, "BOTTOMRIGHT", 2, 0)
end
end
if frame.NameFrame then
frame.NameFrame:SetAlpha(0)
end
if (frame.CircleBackground) then
frame.CircleBackground:SetAlpha(0)
frame.CircleBackgroundGlow:SetAlpha(0)
end
end
local function QuestQualityColors(frame, text, link, quality)
local r, g, b
if link and not quality then
quality = select(3, GetItemInfo(link))
r, g, b = GetItemQualityColor(quality)
end
if quality and quality > 1 then
if frame and frame.Icon and frame.Icon.Backdrop then
frame.Icon.backdrop:SetBackdropBorderColor(r, g, b)
end
text:SetTextColor(r, g, b)
else
if frame and frame.Icon and frame.Icon.Backdrop then
frame.Icon.Backdrop:SetBackdropBorderColor(unpack(AS.BorderColor))
end
if text then
text:SetTextColor(1, 1, 1)
end
end
end
for _, frame in pairs({ 'MoneyFrame', 'HonorFrame', 'XPFrame', 'SpellFrame', 'SkillPointFrame' }) do
HandleReward(_G.MapQuestInfoRewardsFrame[frame])
HandleReward(_G.QuestInfoRewardsFrame[frame])
end
for i = 1, _G.QUESTS_DISPLAYED do
local questLogTitle = _G['QuestLogTitle'..i]
questLogTitle:SetNormalTexture(AS.Media.Textures.Plus)
questLogTitle.SetNormalTexture = AS.Noop
questLogTitle:GetNormalTexture():SetSize(16, 16)
questLogTitle:GetNormalTexture():SetPoint('LEFT', 5, 0)
questLogTitle:SetHighlightTexture('')
questLogTitle.SetHighlightTexture = AS.Noop
questLogTitle:SetWidth(300)
_G['QuestLogTitle'..i..'Highlight']:SetAlpha(0)
_G['QuestLogTitle'..i..'Tag']:SetPoint('RIGHT', -30, 0)
hooksecurefunc(questLogTitle, 'SetNormalTexture', function(self, texture)
local tex = self:GetNormalTexture()
if strfind(texture, 'MinusButton') then
tex:SetTexture(AS.Media.Textures.Minus)
elseif strfind(texture, 'PlusButton') then
tex:SetTexture(AS.Media.Textures.Plus)
else
tex:SetTexture()
end
end)
end
hooksecurefunc("QuestInfo_GetRewardButton", function(rewardsFrame, index)
local RewardButton = rewardsFrame.RewardButtons[index]
if (not RewardButton.Backdrop) then
HandleReward(RewardButton)
RewardButton.NameFrame:Hide()
else
RewardButton.Name:SetTextColor(1, 1, 1)
end
end)
--Spell Rewards
local spellRewards = {QuestInfoRewardsFrame, MapQuestInfoRewardsFrame}
for _, rewardFrame in pairs(spellRewards) do
local spellRewardFrame = rewardFrame.spellRewardPool:Acquire()
local icon = spellRewardFrame.Icon
local nameFrame = spellRewardFrame.NameFrame
AS:StripTextures(spellRewardFrame)
AS:SkinTexture(icon, true)
nameFrame:Hide()
-- bg:SetPoint("TOPLEFT", icon, "TOPRIGHT", 0, 2)
-- bg:SetPoint("BOTTOMRIGHT", icon, "BOTTOMRIGHT", 101, -1)
end
-- Title Reward
do
local frame = QuestInfoPlayerTitleFrame
local icon = frame.Icon
AS:SkinTexture(icon, true)
for i = 2, 4 do
select(i, frame:GetRegions()):Hide()
end
-- bg:SetPoint("TOPLEFT", icon, "TOPRIGHT", 0, 2)
-- bg:SetPoint("BOTTOMRIGHT", icon, "BOTTOMRIGHT", 220, -1)
end
local QuestLogCollapseAllButton = _G.QuestLogCollapseAllButton
AS:StripTextures(QuestLogCollapseAllButton)
QuestLogCollapseAllButton:SetNormalTexture(AS.Media.Textures.Plus)
QuestLogCollapseAllButton.SetNormalTexture = AS.Noop
QuestLogCollapseAllButton:GetNormalTexture():SetSize(16, 16)
QuestLogCollapseAllButton:SetHighlightTexture('')
QuestLogCollapseAllButton.SetHighlightTexture = AS.Noop
QuestLogCollapseAllButton:SetDisabledTexture(AS.Media.Textures.Plus)
QuestLogCollapseAllButton.SetDisabledTexture = AS.Noop
QuestLogCollapseAllButton:GetDisabledTexture():SetSize(16, 16)
QuestLogCollapseAllButton:GetDisabledTexture():SetTexture(AS.Media.Textures.Plus)
QuestLogCollapseAllButton:GetDisabledTexture():SetDesaturated(true)
hooksecurefunc(_G.QuestLogCollapseAllButton, 'SetNormalTexture', function(self, texture)
local tex = self:GetNormalTexture()
if strfind(texture, 'MinusButton') then
tex:SetTexture(AS.Media.Textures.Minus)
else
tex:SetTexture(AS.Media.Textures.Plus)
end
end)
if AS.ParchmentEnabled then
QuestDetailScrollFrame.Background = QuestDetailScrollFrame:CreateTexture(nil, 'ARTWORK')
QuestDetailScrollFrame.Background:SetTexture('Interface\\QuestFrame\\QuestBG')
AS:SetInside(QuestDetailScrollFrame.Background)
QuestDetailScrollFrame.Background:SetTexCoord(0, .585, 0.02, .655)
QuestGreetingScrollFrame.Background = QuestGreetingScrollFrame:CreateTexture(nil, 'ARTWORK')
QuestGreetingScrollFrame.Background:SetTexture('Interface\\QuestFrame\\QuestBG')
AS:SetInside(QuestGreetingScrollFrame.Background)
QuestGreetingScrollFrame.Background:SetTexCoord(0, .585, 0.02, .655)
QuestProgressScrollFrame.Background = QuestProgressScrollFrame:CreateTexture(nil, 'ARTWORK')
QuestProgressScrollFrame.Background:SetTexture('Interface\\QuestFrame\\QuestBG')
AS:SetInside(QuestProgressScrollFrame.Background)
QuestProgressScrollFrame.Background:SetTexCoord(0, .585, 0.02, .655)
QuestRewardScrollFrame.Background = QuestRewardScrollFrame:CreateTexture(nil, 'ARTWORK')
QuestRewardScrollFrame.Background:SetTexture('Interface\\QuestFrame\\QuestBG')
AS:SetInside(QuestRewardScrollFrame.Background)
QuestRewardScrollFrame.Background:SetTexCoord(0, .585, 0.02, .655)
QuestLogPopupDetailFrameScrollFrame.Backdrop.Background = QuestLogPopupDetailFrameScrollFrame.Backdrop:CreateTexture(nil, 'ARTWORK')
QuestLogPopupDetailFrameScrollFrame.Backdrop.Background:SetTexture('Interface\\QuestFrame\\QuestBG')
AS:SetInside(QuestLogPopupDetailFrameScrollFrame.Backdrop.Background)
QuestLogPopupDetailFrameScrollFrame.Backdrop.Background:SetTexCoord(0, .585, 0.02, .655)
else
for i = 1, MAX_NUM_QUESTS do
_G["QuestTitleButton"..i.."QuestIcon"]:SetPoint('TOPLEFT', 4, 2)
_G["QuestTitleButton"..i.."QuestIcon"]:SetSize(16, 16)
end
local function UpdateGreetingFrame()
_G.GreetingText:SetTextColor(1, 1, 1)
_G.CurrentQuestsText:SetTextColor(1, 0.80, 0.10)
_G.AvailableQuestsText:SetTextColor(1, 0.80, 0.10)
local i = 1
while _G["QuestTitleButton"..i]:IsVisible() do
local title = _G["QuestTitleButton"..i]
local icon = _G["QuestTitleButton"..i.."QuestIcon"]
local text = title:GetFontString()
local textString = gsub(title:GetText(), "|c[Ff][Ff]%x%x%x%x%x%x(.+)|r", "%1")
title:SetText(textString)
if (title.isActive == 1) then
icon:SetTexture(132048)
icon:SetDesaturation(1)
text:SetTextColor(.6, .6, .6)
else
icon:SetTexture(132049)
icon:SetDesaturation(0)
text:SetTextColor(1, .8, .1)
end
local numEntries = GetNumQuestLogEntries()
for k = 1, numEntries, 1 do
local questLogTitleText, _, _, _, _, isComplete, _, questId = GetQuestLogTitle(k)
if strmatch(questLogTitleText, textString) then
if (isComplete == 1 or IsQuestComplete(questId)) then
icon:SetDesaturation(0)
text:SetTextColor(1, .8, .1)
break
end
end
end
i = i + 1
end
end
QuestFrameGreetingPanel:HookScript('OnShow', UpdateGreetingFrame)
hooksecurefunc("QuestFrameGreetingPanel_OnShow", UpdateGreetingFrame)
local textColor = {1, 1, 1}
local titleTextColor = {1, .8, .1}
hooksecurefunc(_G, 'QuestLog_UpdateQuestDetails', function()
_G.QuestLogDescriptionTitle:SetTextColor(unpack(titleTextColor))
_G.QuestLogQuestTitle:SetTextColor(unpack(titleTextColor))
_G.QuestLogRewardTitleText:SetTextColor(unpack(titleTextColor))
_G.QuestLogItemChooseText:SetTextColor(unpack(textColor))
_G.QuestLogItemReceiveText:SetTextColor(unpack(textColor))
_G.QuestLogObjectivesText:SetTextColor(unpack(textColor))
_G.QuestLogQuestDescription:SetTextColor(unpack(textColor))
_G.QuestLogSpellLearnText:SetTextColor(unpack(textColor))
local numObjectives, numVisibleObjectives = GetNumQuestLeaderBoards(), 0
for i = 1, numObjectives do
local _, _, finished = GetQuestLogLeaderBoard(i)
if (type ~= 'spell' and type ~= 'log' and numVisibleObjectives < _G.MAX_OBJECTIVES) then
numVisibleObjectives = numVisibleObjectives + 1
local objective = _G['QuestLogObjective'..numVisibleObjectives]
if objective then
if finished then
objective:SetTextColor(1, .8, .1)
else
objective:SetTextColor(.63, .09, .09)
end
end
end
end
if _G.QuestLogRequiredMoneyText:GetTextColor() == 0 then
_G.QuestLogRequiredMoneyText:SetTextColor(.63, .09, .09)
else
_G.QuestLogRequiredMoneyText:SetTextColor(1, 0.8, 0.1)
end
end)
hooksecurefunc('QuestInfo_Display', function()
-- Headers
_G.QuestInfoTitleHeader:SetTextColor(unpack(titleTextColor))
_G.QuestInfoDescriptionHeader:SetTextColor(unpack(titleTextColor))
_G.QuestInfoObjectivesHeader:SetTextColor(unpack(titleTextColor))
_G.QuestInfoRewardsFrame.Header:SetTextColor(unpack(titleTextColor))
-- Other text
_G.QuestInfoDescriptionText:SetTextColor(unpack(textColor))
_G.QuestInfoObjectivesText:SetTextColor(unpack(textColor))
_G.QuestInfoGroupSize:SetTextColor(unpack(textColor))
_G.QuestInfoRewardText:SetTextColor(unpack(textColor))
-- Reward frame text
_G.QuestInfoRewardsFrame.ItemChooseText:SetTextColor(unpack(textColor))
_G.QuestInfoRewardsFrame.ItemReceiveText:SetTextColor(unpack(textColor))
_G.QuestInfoRewardsFrame.PlayerTitleText:SetTextColor(unpack(textColor))
_G.QuestInfoRewardsFrame.XPFrame.ReceiveText:SetTextColor(unpack(textColor))
_G.QuestInfoRewardsFrame.spellHeaderPool.textR, _G.QuestInfoRewardsFrame.spellHeaderPool.textG, _G.QuestInfoRewardsFrame.spellHeaderPool.textB = unpack(textColor)
if GetQuestLogRequiredMoney() > 0 then
if GetQuestLogRequiredMoney() > GetMoney() then
_G.QuestInfoRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6)
else
_G.QuestInfoRequiredMoneyText:SetTextColor(1, 0.80, 0.10)
end
end
for i = 1, _G.MAX_NUM_ITEMS do
local item = _G["QuestInfoRewardsFrameQuestInfoItem"..i]
if item then
local link = item.type and (_G.QuestInfoFrame.questLog and GetQuestLogItemLink or GetQuestItemLink)(item.type, item:GetID())
QuestQualityColors(item, item.Name, link)
end
end
end)
hooksecurefunc('QuestInfo_ShowRequiredMoney', function()
local requiredMoney = GetQuestLogRequiredMoney()
if requiredMoney > 0 then
if requiredMoney > GetMoney() then
QuestInfoRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6)
else
QuestInfoRequiredMoneyText:SetTextColor(1, .8, .1)
end
end
end)
hooksecurefunc("QuestFrameProgressItems_Update", function()
QuestProgressTitleText:SetTextColor(1, .8, .1)
QuestProgressText:SetTextColor(1, 1, 1)
QuestProgressRequiredItemsText:SetTextColor(1, .8, .1)
QuestProgressRequiredMoneyText:SetTextColor(1, .8, .1)
end)
for i = 1, C_QuestLog.GetMaxNumQuestsCanAccept() do
local button = _G['QuestTitleButton'..i]
if button then
hooksecurefunc(button, 'SetFormattedText', function()
if button:GetFontString() then
if button:GetFontString():GetText() and button:GetFontString():GetText():find('|cff000000') then
button:GetFontString():SetText(string.gsub(button:GetFontString():GetText(), '|cff000000', '|cffffe519'))
end
end
end)
end
end
if (QuestInfoRewardsFrame.spellHeaderPool) then
for _, pool in pairs({"followerRewardPool", "spellRewardPool"}) do
QuestInfoRewardsFrame[pool]._acquire = QuestInfoRewardsFrame[pool].Acquire
QuestInfoRewardsFrame[pool].Acquire = function(self)
local frame = QuestInfoRewardsFrame[pool]:_acquire()
frame.Name:SetTextColor(1, 1, 1)
return frame
end
end
QuestInfoRewardsFrame.spellHeaderPool._acquire = QuestInfoRewardsFrame.spellHeaderPool.Acquire
QuestInfoRewardsFrame.spellHeaderPool.Acquire = function(self)
local frame = self:_acquire()
frame:SetTextColor(1, 1, 1)
return frame
end
end
end
end
function AS:Blizzard_WorldMap()
local WorldMapFrame = _G.WorldMapFrame
AS:SkinBackdropFrame(WorldMapFrame)
AS:CreateShadow(WorldMapFrame.Backdrop)
AS:SkinCloseButton(WorldMapFrameCloseButton)
AS:SkinDropDownBox(WorldMapContinentDropDown)
AS:SkinDropDownBox(WorldMapZoneDropDown)
AS:SkinButton(WorldMapZoomOutButton)
end
AS:RegisterSkin('Blizzard_Gossip', AS.Blizzard_Gossip)
AS:RegisterSkin('Blizzard_Quest', AS.Blizzard_Quest)
AS:RegisterSkin('Blizzard_WorldMap', AS.Blizzard_WorldMap)