From cc3dd26f0e073e958c31cfab10f9d0b49cf8fbac Mon Sep 17 00:00:00 2001 From: shagu Date: Fri, 16 Dec 2016 20:26:44 +0100 Subject: [PATCH] infight: add glow effect for screen and unitframes --- img/glow.tga | Bin 0 -> 6990 bytes img/glow2.tga | Bin 0 -> 5366 bytes modules/config.lua | 4 ++ modules/gui.lua | 5 ++- modules/infight.lua | 88 ++++++++++++++++++++++++++++++++++++++++++++ pfUI.toc | 1 + 6 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 img/glow.tga create mode 100644 img/glow2.tga create mode 100644 modules/infight.lua diff --git a/img/glow.tga b/img/glow.tga new file mode 100644 index 0000000000000000000000000000000000000000..abf6b818530294d40350d4032df9420a025e9957 GIT binary patch literal 6990 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 J%9h8Xe*gurh%EpB literal 0 HcmV?d00001 diff --git a/modules/config.lua b/modules/config.lua index 9f077cbe..ca816ceb 100644 --- a/modules/config.lua +++ b/modules/config.lua @@ -12,6 +12,7 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("global", nil, "errors_hide", "0") pfUI:UpdateConfig("global", nil, "hidebuff", "0") pfUI:UpdateConfig("global", nil, "hidewbuff", "0") + pfUI:UpdateConfig("appearance", "border", "background", "0,0,0,1") pfUI:UpdateConfig("appearance", "border", "color", "0.3,0.3,0.3,1") pfUI:UpdateConfig("appearance", "border", "default", "3") @@ -29,6 +30,9 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("appearance", "castbar", "castbarcolor", ".7,.7,.9,.8") pfUI:UpdateConfig("appearance", "castbar", "channelcolor", ".9,.9,.7,.8") pfUI:UpdateConfig("appearance", "loot", "autoresize", "1") + pfUI:UpdateConfig("appearance", "infight", "screen", "0") + pfUI:UpdateConfig("appearance", "infight", "common", "1") + pfUI:UpdateConfig("appearance", "infight", "group", "0") pfUI:UpdateConfig("unitframes", nil, "disable", "0") pfUI:UpdateConfig("unitframes", nil, "pastel", "1") diff --git a/modules/gui.lua b/modules/gui.lua index 522af02d..b52c33f2 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -688,7 +688,10 @@ pfUI:RegisterModule("gui", function () pfUI.gui:CreateConfig(pfUI.gui.appearance, "Cooldown text threshold", pfUI_config.appearance.cd, "threshold") pfUI.gui:CreateConfig(pfUI.gui.appearance, "Castbar color", pfUI_config.appearance.castbar, "castbarcolor", "color") pfUI.gui:CreateConfig(pfUI.gui.appearance, "Castbar color (Channeling)", pfUI_config.appearance.castbar, "channelcolor", "color") - pfUI.gui:CreateConfig(pfUI.gui.appearance, "Auto-resize Lootframe)", pfUI_config.appearance.loot, "autoresize", "checkbox") + pfUI.gui:CreateConfig(pfUI.gui.appearance, "Auto-resize Lootframe", pfUI_config.appearance.loot, "autoresize", "checkbox") + pfUI.gui:CreateConfig(pfUI.gui.appearance, "Show combat glow effect on screen edges", pfUI_config.appearance.infight, "screen", "checkbox") + pfUI.gui:CreateConfig(pfUI.gui.appearance, "Show combat glow effect on common unit frames", pfUI_config.appearance.infight, "common", "checkbox") + pfUI.gui:CreateConfig(pfUI.gui.appearance, "Show combat glow effect on group frames", pfUI_config.appearance.infight, "group", "checkbox") -- modules pfUI.gui.modules = pfUI.gui:CreateConfigTab("Modules") diff --git a/modules/infight.lua b/modules/infight.lua new file mode 100644 index 00000000..35b33783 --- /dev/null +++ b/modules/infight.lua @@ -0,0 +1,88 @@ +pfUI:RegisterModule("loot", function () + local default_border = pfUI_config.appearance.border.default + if pfUI_config.appearance.border.unitframes ~= "-1" then + default_border = pfUI_config.appearance.border.unitframes + end + + -- build the frame + pfUI.infight = CreateFrame("Frame", "pfUICombat", UIParent) + + pfUI.infight.backdrop = { + edgeFile = "Interface\\AddOns\\pfUI\\img\\glow", edgeSize = 8, + insets = {left = 0, right = 0, top = 0, bottom = 0}, + } + + pfUI.infight.backdrop_outline = { + edgeFile = "Interface\\AddOns\\pfUI\\img\\glow2", edgeSize = 8, + insets = {left = 0, right = 0, top = 0, bottom = 0}, + } + + pfUI.infight.elements = {} + + function pfUI.infight:CreateGlow(unit, frame) + local anchor = pfUI.uf[unit] + if not pfUI.uf[unit] then anchor = frame end + pfUI.infight[unit] = CreateFrame("Frame", "pfUICombat" .. unit, anchor) + pfUI.infight[unit]:SetFrameStrata("BACKGROUND") + pfUI.infight[unit]:SetBackdrop(pfUI.infight.backdrop_outline) + pfUI.infight[unit]:SetPoint("TOPLEFT", anchor, "TOPLEFT", -7 - default_border,7 + default_border) + pfUI.infight[unit]:SetPoint("BOTTOMRIGHT", anchor, "BOTTOMRIGHT", 7 + default_border,-7 - default_border) + pfUI.infight[unit]:Hide() + table.insert(pfUI.infight.elements, unit) + end + + pfUI.infight:SetScript("OnUpdate",function(s,e) + if not pfUI.infight.clock then pfUI.infight.clock = GetTime() -0.1 end + if GetTime() >= pfUI.infight.clock + 0.1 then + pfUI.infight.clock = GetTime() + + if not pfUI.infight.fadeValue then pfUI.infight.fadeValue = 1 end + if pfUI.infight.fadeValue >= 0.3 then + pfUI.infight.fadeModifier = -0.1 + end + if pfUI.infight.fadeValue <= 0 then + pfUI.infight.fadeModifier = 0.1 + end + pfUI.infight.fadeValue = pfUI.infight.fadeValue + pfUI.infight.fadeModifier + + for _,unit in pairs (pfUI.infight.elements) do + if UnitAffectingCombat(unit) then + pfUI.infight[unit]:Show() + pfUI.infight[unit]:SetBackdropBorderColor(1,0.2+pfUI.infight.fadeValue, pfUI.infight.fadeValue, 1-pfUI.infight.fadeValue); + else + pfUI.infight[unit]:Hide() + end + end + + if pfUI_config.appearance.infight.screen == "1" and pfUI.infight.screen then + if UnitAffectingCombat("player") then + pfUI.infight.screen:Show() + pfUI.infight.screen:SetBackdropBorderColor(1,0.2+pfUI.infight.fadeValue, pfUI.infight.fadeValue, 1-pfUI.infight.fadeValue); + else + pfUI.infight.screen:Hide() + end + end + end + end) + + if pfUI_config.appearance.infight.screen == "1" then + pfUI.infight.screen = CreateFrame("Frame", "pfUICombatScreen", UIParent) + pfUI.infight.screen:SetFrameStrata("BACKGROUND") + pfUI.infight.screen:SetBackdrop(pfUI.infight.backdrop) + pfUI.infight.screen:SetAllPoints(WorldFrame) + pfUI.infight.screen:Hide() + end + + if pfUI_config.appearance.infight.common == "1" then + pfUI.infight:CreateGlow("player") + pfUI.infight:CreateGlow("target") + pfUI.infight:CreateGlow("targettarget") + pfUI.infight:CreateGlow("pet") + end + + if pfUI_config.appearance.infight.group == "1" then + for i=1,4 do + pfUI.infight:CreateGlow("party" .. i, getglobal("pfGroup" .. i)) + end + end +end) diff --git a/pfUI.toc b/pfUI.toc index fda967b2..d8b0d54c 100644 --- a/pfUI.toc +++ b/pfUI.toc @@ -51,3 +51,4 @@ modules\thirdparty.lua modules\buff.lua modules\nameplates.lua modules\loot.lua +modules\infight.lua