From f346f06bef08f5911ee408a01ddabde46e739d19 Mon Sep 17 00:00:00 2001 From: d87 Date: Sat, 28 Dec 2019 02:21:58 +0700 Subject: [PATCH] Unhealable & MC frame and textures --- Aptechka.lua | 2 +- config.lua | 4 +++ frame.lua | 76 +++++++++++++++++++++++++++++++++++++++++++++++++- innerglow.tga | Bin 0 -> 16428 bytes swirl.tga | Bin 0 -> 16428 bytes 5 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 innerglow.tga create mode 100644 swirl.tga diff --git a/Aptechka.lua b/Aptechka.lua index bc4f1f5..ba03c59 100644 --- a/Aptechka.lua +++ b/Aptechka.lua @@ -270,7 +270,7 @@ Aptechka:RegisterEvent("PLAYER_LOGOUT") function Aptechka.PLAYER_LOGIN(self,event,arg1) Aptechka:UpdateRangeChecker() local uir2 = function(unit) - if UnitIsDeadOrGhost(unit) then --IsSpellInRange doesn't work with dead people + if UnitIsDeadOrGhost(unit) or UnitIsEnemy(unit, "player") then --IsSpellInRange doesn't work with dead people return UnitInRange(unit) else return uir(unit) diff --git a/config.lua b/config.lua index 9bfb7c6..0ef6a50 100644 --- a/config.lua +++ b/config.lua @@ -90,6 +90,10 @@ config.SummonPending = { name = "SUMMON_PENDING", assignto = { "text2" }, color config.SummonAccepted = { name = "SUMMON_ACCEPTED", assignto = { "text2" }, color = {0,1,0}, text = "ACCEPTED", priority = 51 } config.SummonDeclined = { name = "SUMMON_DECLINED", assignto = { "text2" }, color = {1,0,0}, text = "DECLINED", priority = 52 } +-- config.MindControl = { name = "MIND_CONTROL", assignto = { "mindcontrol" }, color = {1,0,0}, priority = 52 } +config.MindControlStatus = { name = "MIND_CONTROL", assignto = { "border", "unhealable", "mindcontrol" }, color = {0.5,0,1}, priority = 52 } +config.UnhealableStatus = { name = "UNHEALABLE", assignto = { "unhealable" }, color = {0.5,0,1}, priority = 50 } + -- default priority is 80 local IsSpellInRange = _G.IsSpellInRange diff --git a/frame.lua b/frame.lua index 5b64460..897a50b 100644 --- a/frame.lua +++ b/frame.lua @@ -8,6 +8,8 @@ local LSM = LibStub("LibSharedMedia-3.0") LSM:Register("statusbar", "Gradient", [[Interface\AddOns\Aptechka\gradient.tga]]) LSM:Register("font", "ClearFont", [[Interface\AddOns\Aptechka\ClearFont.ttf]], GetLocale() ~= "enUS" and 15) +local isClassic = WOW_PROJECT_ID == WOW_PROJECT_CLASSIC + --[[ 2 shield icon border 0 shield icon texture @@ -1147,6 +1149,73 @@ local CreateTextTimer = function(parent,point,frame,to,x,y,hjustify,fontsize,fon end AptechkaDefaultConfig.GridSkin_CreateTextTimer = CreateTextTimer +local CreateUnhealableOverlay = function(parent) + local tex2 = parent.health:CreateTexture(nil, "ARTWORK", nil, -4) + tex2:SetHorizTile(true) + tex2:SetVertTile(true) + tex2:SetTexture("Interface\\AddOns\\Aptechka\\swirl", "REPEAT", "REPEAT") + tex2:SetVertexColor(0,0,0, 0.8) + + tex2:SetBlendMode("BLEND") + tex2:SetAllPoints(parent) + return tex2 +end + +local CreateMindControlIcon = function(parent) + local f = CreateFrame("Frame", nil, parent) + -- f:SetFrameLevel(4) + + -- local tex = parent.health:CreateTexture(nil, "ARTWORK", nil, -3) + -- tex:SetAtlas("Darklink-blackinside") + -- tex:SetVertexColor(1,0.6, 0.6) + -- local height = parent:GetHeight()*1.2 + -- tex:SetSize(0.8*height, height) + + -- tex:SetAtlas("Start-VersusSplash") + -- local height = parent:GetHeight() + -- tex:SetSize(height, height) + -- tex:SetVertexColor(0,0,0) + + -- tex:SetAtlas("BattleBar-SwapPetFrame-DeadIcon") + -- local height = parent:GetHeight() + -- tex:SetSize(height, height) + -- tex:SetAlpha(0.7) + + local tex = f:CreateTexture(nil, "ARTWORK", nil, -4) + tex:SetTexture("Interface\\AddOns\\Aptechka\\") + -- local height = parent:GetHeight() + -- local width = parent:GetWidth() + -- local len = math.min(height, width) + -- tex:SetSize(len, len) + tex:SetAlpha(0.6) + tex:SetVertexColor(0.5,0,1) + -- tex:SetAlpha(0.9) + tex:SetAllPoints(parent) + -- tex:SetPoint("TOPLEFT",parent,"TOPLEFT",0,0) + + if not isClassic then + local tex = f:CreateTexture(nil, "ARTWORK", nil, -3) + tex:SetTexture("Interface/CorruptedItems/CorruptedInventoryIcon") + tex:SetTexCoord(0.02, 0.5, 0.02, 0.5) + local height = parent:GetHeight() + local width = parent:GetWidth() + local len = math.min(height, width) + tex:SetSize(len, len) + -- tex:SetAlpha(0.9) + tex:SetPoint("TOPLEFT",parent,"TOPLEFT",0,0) + end + + + -- tex:SetAtlas("bfa-threats-cornereye") + -- local height = parent:GetHeight()*1.1 + -- tex:SetSize(height, height) + -- -- tex:SetAlpha(0.9) + -- tex:SetPoint("CENTER",15,26) + + -- tex:SetPoint("CENTER",0,0) + return f +end + local border_backdrop = { edgeFile = "Interface\\Addons\\Aptechka\\border", tileEdge = true, edgeSize = 14, @@ -1256,6 +1325,9 @@ local optional_widgets = { bars = CreateBars, + mindcontrol = CreateMindControlIcon, + unhealable = CreateUnhealableOverlay, + vbar1 = function(self) return CreateStatusBar(self, 4, 20, "TOPRIGHT", self, "TOPRIGHT",-9,2, nil, true) end, smist = function(self) return CreateIndicator(self,7,7,"TOPRIGHT",self.vbar1,"TOPLEFT",-1,0) end, @@ -1274,7 +1346,7 @@ local function Reconf(self) local texpath2 = LSM:Fetch("statusbar", db.powerTexture) self.power:SetStatusBarTexture(texpath2) - self.power:GetStatusBarTexture():SetDrawLayer("ARTWORK",-2) + self.power:GetStatusBarTexture():SetDrawLayer("ARTWORK",-6) self.power.bg:SetTexture(texpath2) if not db.fgShowMissing then @@ -1701,6 +1773,8 @@ AptechkaDefaultConfig.GridSkin = function(self) list["bar1"] = nil list["bar2"] = nil list["bar3"] = nil + list["mindcontrol"] = nil + list["unhealable"] = nil Aptechka.widget_list = list end diff --git a/innerglow.tga b/innerglow.tga new file mode 100644 index 0000000000000000000000000000000000000000..cf23f16566b4dcf29cd2d8b14cd1aa3118943dd0 GIT binary patch literal 16428 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 literal 0 HcmV?d00001 diff --git a/swirl.tga b/swirl.tga new file mode 100644 index 0000000000000000000000000000000000000000..22830894682362b9355a87b784103021160940ef GIT binary patch literal 16428 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