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.

139 lines
4.0 KiB

4 years ago
local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local TT = E:GetModule('Tooltip')
local _G = _G
local unpack = unpack
local CreateFrame = CreateFrame
local hooksecurefunc = hooksecurefunc
local function StyleTooltip(frame)
if not frame then return end
TT:SetStyle(frame)
end
local function AbilityTooltip(frame)
if not frame then return end
frame.Icon:SetTexCoord(unpack(E.TexCoords))
S:HandleIcon(frame.Icon, true)
TT:SetStyle(frame)
end
function S:GarrisonShipyardTooltip()
local tt = _G.GarrisonShipyardMapMissionTooltip
TT:SetStyle(tt)
local reward = tt.ItemTooltip
local icon = reward and reward.Icon
if icon then
S:HandleIcon(icon)
if reward.IconBorder then
reward.IconBorder:SetAlpha(0)
end
end
local bonusIcon = tt.BonusReward and tt.BonusReward.Icon
if bonusIcon then
S:HandleIcon(bonusIcon)
end
-- other tooltips
StyleTooltip(_G.GarrisonBuildingFrame and _G.GarrisonBuildingFrame.BuildingLevelTooltip)
StyleTooltip(_G.GarrisonMissionMechanicFollowerCounterTooltip)
StyleTooltip(_G.GarrisonMissionMechanicTooltip)
end
function S:GarrisonTooltip()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.tooltip then return end
StyleTooltip(_G.GarrisonFollowerTooltip)
StyleTooltip(_G.FloatingGarrisonFollowerTooltip)
StyleTooltip(_G.FloatingGarrisonMissionTooltip)
StyleTooltip(_G.FloatingGarrisonShipyardFollowerTooltip)
StyleTooltip(_G.GarrisonShipyardFollowerTooltip)
AbilityTooltip(_G.GarrisonFollowerAbilityTooltip)
AbilityTooltip(_G.FloatingGarrisonFollowerAbilityTooltip)
AbilityTooltip(_G.GarrisonFollowerMissionAbilityWithoutCountersTooltip)
AbilityTooltip(_G.GarrisonFollowerAbilityWithoutCountersTooltip)
S:HandleCloseButton(_G.FloatingGarrisonFollowerTooltip.CloseButton)
S:HandleCloseButton(_G.FloatingGarrisonFollowerAbilityTooltip.CloseButton)
S:HandleCloseButton(_G.FloatingGarrisonMissionTooltip.CloseButton)
S:HandleCloseButton(_G.FloatingGarrisonShipyardFollowerTooltip.CloseButton)
hooksecurefunc('GarrisonFollowerTooltipTemplate_SetGarrisonFollower', function(tooltipFrame)
-- Abilities
if tooltipFrame.numAbilitiesStyled == nil then
tooltipFrame.numAbilitiesStyled = 1
end
local numAbilitiesStyled = tooltipFrame.numAbilitiesStyled
local abilities = tooltipFrame.Abilities
local ability = abilities[numAbilitiesStyled]
while ability do
local icon = ability.Icon
icon:SetTexCoord(unpack(E.TexCoords))
if not ability.border then
ability.border = CreateFrame('Frame', nil, ability)
S:HandleIcon(ability.Icon, ability.border)
end
numAbilitiesStyled = numAbilitiesStyled + 1
ability = abilities[numAbilitiesStyled]
end
tooltipFrame.numAbilitiesStyled = numAbilitiesStyled
-- Traits
if tooltipFrame.numTraitsStyled == nil then
tooltipFrame.numTraitsStyled = 1
end
local numTraitsStyled = tooltipFrame.numTraitsStyled
local traits = tooltipFrame.Traits
local trait = traits[numTraitsStyled]
while trait do
local icon = trait.Icon
icon:SetTexCoord(unpack(E.TexCoords))
if not trait.border then
trait.border = CreateFrame('Frame', nil, trait)
S:HandleIcon(trait.Icon, trait.border)
end
numTraitsStyled = numTraitsStyled + 1
trait = traits[numTraitsStyled]
end
tooltipFrame.numTraitsStyled = numTraitsStyled
end)
hooksecurefunc('GarrisonFollowerTooltipTemplate_SetShipyardFollower', function(tooltipFrame)
if tooltipFrame.numPropertiesStyled == nil then
tooltipFrame.numPropertiesStyled = 1
end
local numPropertiesStyled = tooltipFrame.numPropertiesStyled
local properties = tooltipFrame.Properties
local property = properties[numPropertiesStyled]
while property do
property.Icon:SetTexCoord(unpack(E.TexCoords))
if not property.border then
property.border = CreateFrame('Frame', nil, property)
S:HandleIcon(property.Icon, property.border)
end
numPropertiesStyled = numPropertiesStyled + 1
property = properties[numPropertiesStyled]
end
tooltipFrame.numPropertiesStyled = numPropertiesStyled
end)
end
S:AddCallback('GarrisonTooltip')