121 lines
4.1 KiB
Lua
121 lines
4.1 KiB
Lua
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local B = E:GetModule('Blizzard')
|
|
local Skins = E:GetModule('Skins')
|
|
local TT = E:GetModule('Tooltip')
|
|
|
|
local _G = _G
|
|
local CreateFrame = CreateFrame
|
|
local GetQuestLogRewardXP = GetQuestLogRewardXP
|
|
local GetRewardXP = GetRewardXP
|
|
local IsAddOnLoaded = IsAddOnLoaded
|
|
local UnitXP = UnitXP
|
|
local UnitXPMax = UnitXPMax
|
|
local hooksecurefunc = hooksecurefunc
|
|
local C_QuestLog_ShouldShowQuestRewards = C_QuestLog.ShouldShowQuestRewards
|
|
local C_QuestLog_GetSelectedQuest = C_QuestLog.GetSelectedQuest
|
|
|
|
--This changes the growth direction of the toast frame depending on position of the mover
|
|
local function PostBNToastMove(mover)
|
|
local x, y = mover:GetCenter();
|
|
local screenHeight = E.UIParent:GetTop();
|
|
local screenWidth = E.UIParent:GetRight()
|
|
|
|
local anchorPoint
|
|
if y > (screenHeight / 2) then
|
|
anchorPoint = (x > (screenWidth/2)) and 'TOPRIGHT' or 'TOPLEFT'
|
|
else
|
|
anchorPoint = (x > (screenWidth/2)) and 'BOTTOMRIGHT' or 'BOTTOMLEFT'
|
|
end
|
|
mover.anchorPoint = anchorPoint
|
|
|
|
_G.BNToastFrame:ClearAllPoints()
|
|
_G.BNToastFrame:Point(anchorPoint, mover)
|
|
end
|
|
|
|
function B:Initialize()
|
|
B.Initialized = true
|
|
|
|
B:EnhanceColorPicker()
|
|
B:KillBlizzard()
|
|
B:DisableHelpTip()
|
|
B:DisableNPE()
|
|
B:AlertMovers()
|
|
B:PositionCaptureBar()
|
|
B:PositionDurabilityFrame()
|
|
B:PositionGMFrames()
|
|
B:SkinBlizzTimers()
|
|
B:PositionVehicleFrame()
|
|
B:PositionTalkingHead()
|
|
B:Handle_LevelUpDisplay_BossBanner()
|
|
B:Handle_UIWidgets()
|
|
B:GarrisonDropDown()
|
|
|
|
if not IsAddOnLoaded('DugisGuideViewerZ') then
|
|
B:MoveObjectiveFrame()
|
|
end
|
|
|
|
if not IsAddOnLoaded('SimplePowerBar') then
|
|
B:PositionAltPowerBar()
|
|
B:SkinAltPowerBar()
|
|
end
|
|
|
|
E:CreateMover(_G.LossOfControlFrame, 'LossControlMover', L["Loss Control Icon"])
|
|
|
|
-- Battle.Net Frame
|
|
_G.BNToastFrame:Point('TOPRIGHT', _G.MMHolder or _G.Minimap, 'BOTTOMRIGHT', 0, -10)
|
|
E:CreateMover(_G.BNToastFrame, 'BNETMover', L["BNet Frame"], nil, nil, PostBNToastMove)
|
|
_G.BNToastFrame.mover:Size(_G.BNToastFrame:GetSize())
|
|
TT:SecureHook(_G.BNToastFrame, 'SetPoint', 'RepositionBNET')
|
|
|
|
-- Quick Join Bug
|
|
CreateFrame('Frame'):SetScript('OnUpdate', function()
|
|
if _G.LFRBrowseFrame.timeToClear then
|
|
_G.LFRBrowseFrame.timeToClear = nil
|
|
end
|
|
end)
|
|
|
|
--Add (+X%) to quest rewards experience text
|
|
hooksecurefunc('QuestInfo_Display', function()
|
|
local unitXP, unitXPMax = UnitXP('player'), UnitXPMax('player')
|
|
if _G.QuestInfoFrame.questLog then
|
|
local selectedQuest = C_QuestLog_GetSelectedQuest()
|
|
if C_QuestLog_ShouldShowQuestRewards(selectedQuest) then
|
|
local xp = GetQuestLogRewardXP()
|
|
if xp and xp > 0 then
|
|
local text = _G.MapQuestInfoRewardsFrame.XPFrame.Name:GetText()
|
|
if text then _G.MapQuestInfoRewardsFrame.XPFrame.Name:SetFormattedText('%s (|cff4beb2c+%.2f%%|r)', text, (((unitXP + xp) / unitXPMax) - (unitXP / unitXPMax))*100) end
|
|
end
|
|
end
|
|
else
|
|
local xp = GetRewardXP()
|
|
if xp and xp > 0 then
|
|
local text = _G.QuestInfoXPFrame.ValueText:GetText()
|
|
if text then _G.QuestInfoXPFrame.ValueText:SetFormattedText('%s (|cff4beb2c+%.2f%%|r)', text, (((unitXP + xp) / unitXPMax) - (unitXP / unitXPMax))*100) end
|
|
end
|
|
end
|
|
end)
|
|
|
|
-- MicroButton Talent Alert
|
|
local TalentMicroButtonAlert = _G.TalentMicroButtonAlert
|
|
if TalentMicroButtonAlert then -- why do we need to check this?
|
|
if E.global.general.showMissingTalentAlert then
|
|
TalentMicroButtonAlert:ClearAllPoints()
|
|
TalentMicroButtonAlert:Point('CENTER', E.UIParent, 'TOP', 0, -75)
|
|
TalentMicroButtonAlert:StripTextures()
|
|
TalentMicroButtonAlert.Arrow:Hide()
|
|
TalentMicroButtonAlert.Text:FontTemplate()
|
|
TalentMicroButtonAlert:CreateBackdrop('Transparent')
|
|
Skins:HandleCloseButton(TalentMicroButtonAlert.CloseButton)
|
|
|
|
TalentMicroButtonAlert.tex = TalentMicroButtonAlert:CreateTexture(nil, 'OVERLAY')
|
|
TalentMicroButtonAlert.tex:Point('RIGHT', -10, 0)
|
|
TalentMicroButtonAlert.tex:SetTexture([[Interface\DialogFrame\UI-Dialog-Icon-AlertNew]])
|
|
TalentMicroButtonAlert.tex:Size(32, 32)
|
|
else
|
|
TalentMicroButtonAlert:Kill() -- Kill it, because then the blizz default will show
|
|
end
|
|
end
|
|
end
|
|
|
|
E:RegisterModule(B:GetName())
|