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.

121 lines
3.8 KiB

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local B = E:GetModule('Blizzard')
local _G = _G
local hooksecurefunc = hooksecurefunc
function S:PlayerChoice_SetupButtons(buttons)
if buttons and buttons.buttonPool then
for button in buttons.buttonPool:EnumerateActive() do
if not button.isSkinned then
S:HandleButton(button)
end
end
end
end
function S:PlayerChoice_SetupRewards(rewards)
if rewards and rewards.rewardsPool then
local parchmentRemover = E.private.skins.parchmentRemoverEnable
for reward in rewards.rewardsPool:EnumerateActive() do
if parchmentRemover and reward.Name then
reward.Name:SetTextColor(1, 1, 1)
end
local item = reward.itemButton
if item and not item.isSkinned then
S:HandleItemButton(item)
S:HandleIconBorder(item.IconBorder)
end
end
end
end
S.PlayerChoice_TextureKits = {
jailerstower = true,
cypherchoice = true,
genericplayerchoice = true,
}
function S:PlayerChoice_SetupOptions()
if not self.IsSkinned then
self.BlackBackground:SetAlpha(0)
self.Background:SetAlpha(0)
self.NineSlice:SetAlpha(0)
self.Title:DisableDrawLayer('BACKGROUND')
self.Title.Text:SetTextColor(1, .8, 0)
S:HandleCloseButton(self.CloseButton)
self.IsSkinned = true
end
if self.CloseButton.Border then -- dont exist in jailer
self.CloseButton.Border:SetAlpha(0)
end
local kit = S.PlayerChoice_TextureKits[self.uiTextureKit]
self:SetTemplate(kit and 'NoBackdrop' or 'Transparent')
if self.optionFrameTemplate and self.optionPools then
local parchmentRemover = E.private.skins.parchmentRemoverEnable
local noParchment = not kit and parchmentRemover
for option in self.optionPools:EnumerateActiveByTemplate(self.optionFrameTemplate) do
local header = option.Header
local contents = header and header.Contents
if parchmentRemover then
if contents and contents.Text then contents.Text:SetTextColor(1, .8, 0) end -- Normal Header Text
if header and header.Text then header.Text:SetTextColor(1, .8, 0) end -- Torghast Header Text
if option.OptionText then option.OptionText:SetTextColor(1, 1, 1) end -- description text
end
if noParchment then
if option.Background then option.Background:SetAlpha(0) end
if header and header.Ribbon then header.Ribbon:SetAlpha(0) end -- Normal only
end
if option.Artwork and kit then option.Artwork:Size(64) end -- fix size from icon replacements in tower
S:PlayerChoice_SetupRewards(option.rewards)
S:PlayerChoice_SetupButtons(option.buttons)
end
end
end
function S:TorghastButton_StartEffect(effectID)
local controller = self.effectController
if not controller then return end
if effectID == 98 then -- anima orb
controller:SetDynamicOffsets(-5, -10, -1.33)
end
end
local function SetupTorghastMover()
B:BuildWidgetHolder('TorghastChoiceToggleHolder', 'TorghastChoiceToggle', 'CENTER', L["Torghast Choice Toggle"], _G.TorghastPlayerChoiceToggleButton, 'CENTER', E.UIParent, 'CENTER', 0, -200, 300, 40, 'ALL,GENERAL')
-- whole area is clickable which is pretty big; keep an eye on this
_G.TorghastPlayerChoiceToggleButton:SetHitRectInsets(70, 70, 40, 40)
-- this fixes the trajectory of the anima orb to stay in correct place
hooksecurefunc(_G.TorghastPlayerChoiceToggleButton, 'StartEffect', S.TorghastButton_StartEffect)
end
function S:Blizzard_PlayerChoice()
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.playerChoice) then return end
SetupTorghastMover()
if _G.GenericPlayerChoiceToggleButton then
S:HandleButton(_G.GenericPlayerChoiceToggleButton)
end
hooksecurefunc(_G.PlayerChoiceFrame, 'SetupOptions', S.PlayerChoice_SetupOptions)
end
S:AddCallbackForAddon('Blizzard_PlayerChoice')