diff --git a/SVUI_!Core/setup/installer.lua b/SVUI_!Core/setup/installer.lua index ed641f0..fe071ab 100644 --- a/SVUI_!Core/setup/installer.lua +++ b/SVUI_!Core/setup/installer.lua @@ -141,20 +141,20 @@ local function UFMoveBottomQuadrant(toggle) if(not SV.UnitFrames) then return end local x, y, x2, y2, x3, y3; if(SV.LowRez) then - x, y, x2, y2, x3, y3 = 136, 135, 136, 285, 495, 135; + x, y, x2, y2, x3, y3 = 80, 135, 136, 285, 495, 135; elseif(not toggle) then - x, y, x2, y2, x3, y3 = 278, 182, 310, 432, 495, 182; + x, y, x2, y2, x3, y3 = 80, 182, 310, 432, 495, 182; else - x, y, x2, y2, x3, y3 = 278, 210, 310, 432, 495, 210; + x, y, x2, y2, x3, y3 = 80, 210, 310, 432, 495, 210; end - SV:ReAnchor("SVUI_Player", "BOTTOM", SV.Screen, "BOTTOM", -x, y); - SV:ReAnchor("SVUI_PlayerCastbar", "BOTTOM", SV.Screen, "BOTTOM", -x, y-60); + SV:ReAnchor("SVUI_Player", "BOTTOMRIGHT", SV.Screen, "BOTTOM", -x, y); + SV:ReAnchor("SVUI_PlayerCastbar", "BOTTOMRIGHT", SV.Screen, "BOTTOM", -x, y-60); SV:ReAnchor("SVUI_Pet", "RIGHT", SVUI_Player, "LEFT", -2, 0); - SV:ReAnchor("SVUI_Target", "BOTTOM", SV.Screen, "BOTTOM", x, y); - SV:ReAnchor("SVUI_TargetCastbar", "BOTTOM", SV.Screen, "BOTTOM", x, y-60); + SV:ReAnchor("SVUI_Target", "BOTTOMLEFT", SV.Screen, "BOTTOM", x, y); + SV:ReAnchor("SVUI_TargetCastbar", "BOTTOMLEFT", SV.Screen, "BOTTOM", x, y-60); SV:ReAnchor("SVUI_TargetTarget", "LEFT", SVUI_Target, "RIGHT", 2, 0); - SV:ReAnchor("SVUI_Focus", "BOTTOM", SV.Screen, "BOTTOM", x2, y2); + SV:ReAnchor("SVUI_Focus", "BOTTOMLEFT", SV.Screen, "BOTTOM", x2, y2); SV:ReAnchor("SVUI_ThreatBar", "BOTTOMRIGHT", SV.Screen, "BOTTOMRIGHT", -x3, y3); end @@ -231,24 +231,22 @@ function SV.Setup:UserScreen(rez, preserve) end if(SV.UnitFrames) then SV.db.UnitFrames.fontSize = 10; - SV.db.UnitFrames.player.width = 200; - SV.db.UnitFrames.player.castbar.width = 200; + SV.db.UnitFrames.player.width = 150; + SV.db.UnitFrames.player.castbar.width = 150; SV.db.UnitFrames.player.classbar.fill = "fill" SV.db.UnitFrames.player.health.tags = "[health:color][health:current]" - SV.db.UnitFrames.target.width = 200; - SV.db.UnitFrames.target.castbar.width = 200; + SV.db.UnitFrames.target.width = 150; + SV.db.UnitFrames.target.castbar.width = 150; SV.db.UnitFrames.target.health.tags = "[health:color][health:current]" SV.db.UnitFrames.pet.power.enable = false; - SV.db.UnitFrames.pet.width = 200; - SV.db.UnitFrames.pet.height = 26; + SV.db.UnitFrames.pet.width = 75; SV.db.UnitFrames.targettarget.debuffs.enable = false; SV.db.UnitFrames.targettarget.power.enable = false; - SV.db.UnitFrames.targettarget.width = 200; - SV.db.UnitFrames.targettarget.height = 26; - SV.db.UnitFrames.boss.width = 200; - SV.db.UnitFrames.boss.castbar.width = 200; - SV.db.UnitFrames.arena.width = 200; - SV.db.UnitFrames.arena.castbar.width = 200 + SV.db.UnitFrames.targettarget.width = 75; + SV.db.UnitFrames.boss.width = 150; + SV.db.UnitFrames.boss.castbar.width = 150; + SV.db.UnitFrames.arena.width = 150; + SV.db.UnitFrames.arena.castbar.width = 150 end end SV.LowRez = true @@ -258,16 +256,9 @@ function SV.Setup:UserScreen(rez, preserve) SV.LowRez = nil end - if not mungs then - UFMoveBottomQuadrant() - UFMoveLeftQuadrant() - UFMoveTopQuadrant() - UFMoveRightQuadrant() - end - if(not preserve and not mungs) then -- BarShuffle() - SV:UpdateAnchors() + SV:UpdateAnchors() SVUILib:RefreshModule('Dock') SVUILib:RefreshModule('Auras') SVUILib:RefreshModule('ActionBars') @@ -673,7 +664,7 @@ end function SV.Setup:NewSettings() CURRENT_PAGE = 2; - SVUI_InstallerFrame.Next:SetPage(CURRENT_PAGE) + SVUI_InstallerFrame:SetPage(CURRENT_PAGE) end local OptionButton_OnClick = function(self) @@ -980,13 +971,16 @@ function SV.Setup:Install(autoLoaded) frame.Option02:SetScript("OnLeave", function(this) this.texture:SetGradient("VERTICAL", 0, 0.1, 0.3, 0, 0.5, 0.7) end) - frame.Option02:SetScript("OnShow", function() + frame.Option02:SetScript("OnShow", function(self) if(not frame.Option03:IsShown()) then frame.Option01:SetWidth(130) frame.Option01.texture:SetSize(130, 130) frame.Option01.texture:SetPoint("CENTER", frame.Option01, "BOTTOM", 0, -(130 * 0.09)) frame.Option01:ClearAllPoints() frame.Option01:SetPoint("BOTTOMRIGHT", frame, "BOTTOM", -4, 15) + + self:SetWidth(130) + self.texture:SetSize(130, 130) end end) frame.Option02:SetFrameLevel(frame.Option01:GetFrameLevel() + 10) @@ -1220,7 +1214,7 @@ function SV.Setup:Install(autoLoaded) SVUI_InstallerFrame:SetScript("OnHide", function() StopMusic() - SetCVar("Sound_MusicVolume", user_music_vol or 0) + SetCVar("Sound_MusicVolume", 0) musicIsPlaying = nil; ShowLayout() ShowAuras() diff --git a/SVUI_!Core/setup/presets.lua b/SVUI_!Core/setup/presets.lua index 2840914..f896f5f 100644 --- a/SVUI_!Core/setup/presets.lua +++ b/SVUI_!Core/setup/presets.lua @@ -58,9 +58,9 @@ LAYOUT PRESETS local hasOldConfigs = function() local installed = SVUILib:GetSafeData("install_version") if(installed) then - return USE.."\n"..GARRISON_SHIPYARD_SHIP_SAVED.."\n"..SETTINGS, "Complete" + return USE.."\nSaved\n"..SETTINGS, "Complete" else - return LFG_LIST_SELECT.."\n"..NEW.."\n"..SETTINGS, "NewSettings" + return "Select\n"..NEW.."\n"..SETTINGS, "NewSettings" end end diff --git a/SVUI_!Core/system/core.lua b/SVUI_!Core/system/core.lua index d831668..1821a7d 100644 --- a/SVUI_!Core/system/core.lua +++ b/SVUI_!Core/system/core.lua @@ -251,7 +251,7 @@ SV.defaults = { ["saveDraggable"] = false, ["taintLog"] = false, ["stickyFrames"] = true, - ["graphSize"] = 64, + ["graphSize"] = 50, ["loot"] = true, ["lootRoll"] = true, ["lootRollWidth"] = 328, diff --git a/SVUI_!Core/system/layout.lua b/SVUI_!Core/system/layout.lua index 05ed81a..a5ad8c0 100644 --- a/SVUI_!Core/system/layout.lua +++ b/SVUI_!Core/system/layout.lua @@ -453,24 +453,33 @@ function Layout:Movable_OnUpdate() local calc2 = rightPos * 0.66; local calc3 = topPos * 0.5; local anchor1, anchor2; + local xOffset,yOffset = 0,0; if centerY >= calc3 then anchor1 = "TOP" anchor2 = "BOTTOM" + yOffset = -25 else anchor1 = "BOTTOM" anchor2 = "TOP" + yOffset = 25 end if centerX >= calc2 then anchor1 = "RIGHT" anchor2 = "LEFT" + xOffset = -25 elseif centerX <= calc1 then anchor1 = "LEFT" anchor2 = "RIGHT" + xOffset = 25 end if(not SVUI_LayoutPrecision) then return end; - SVUI_LayoutPrecision:ClearAllPoints() - SVUI_LayoutPrecision:SetPoint(anchor1, frame, anchor2, 0, 0) - SVUI_LayoutPrecision:SetFrameLevel(frame:GetFrameLevel() + 20) + if CurrentFrameTarget ~= frame then + SVUI_LayoutPrecision:Hide() + frame:GetScript("OnMouseUp")(frame) + else + SVUI_LayoutPrecision:ClearAllPoints() + SVUI_LayoutPrecision:SetPoint(anchor1, frame, anchor2, xOffset, yOffset) + end Layout.Movable_OnMouseUp(frame) end @@ -558,23 +567,22 @@ function Layout:Movable_OnEnter() if TheHand.UserHeld then return end ResetAllAlphas() self:SetAlpha(1) - self.text:SetTextColor(0, 1, 1) - self:SetBackdropBorderColor(0, 0.7, 1) + if(CurrentFrameTarget ~= self) then + self.text:SetTextColor(0, 1, 1) + self:SetBackdropBorderColor(0, 0.7, 1) + end UpdateFrameTarget = self; Layout.Portrait:SetTexture([[Interface\AddOns\SVUI_!Core\assets\textures\Doodads\MENTALO-ON]]) TheHand:SetPoint("CENTER", self, "TOP", 0, 0) TheHand:Show() - if(not SVUI_LayoutPrecision) then return end; - if CurrentFrameTarget ~= self then - SVUI_LayoutPrecision:Hide() - self:GetScript("OnMouseUp")(self) - end end function Layout:Movable_OnLeave() if TheHand.UserHeld then return end - self.text:SetTextColor(0.5, 0.5, 0.5) - self:SetBackdropBorderColor(0.5, 0.5, 0.5) + if(CurrentFrameTarget ~= self) then + self.text:SetTextColor(0.5, 0.5, 0.5) + self:SetBackdropBorderColor(0.5, 0.5, 0.5) + end Layout.Portrait:SetTexture([[Interface\AddOns\SVUI_!Core\assets\textures\Doodads\MENTALO-OFF]]) TheHand:Hide() if(not SVUI_LayoutPrecision) then return end; @@ -592,12 +600,11 @@ function Layout:Movable_OnMouseDown(button) self:StopMovingOrSizing() end if(not SVUI_LayoutPrecision) then return end; - if(CurrentFrameTarget == self and not SVUI_LayoutPrecision:IsShown()) then - Layout:Movable_OnUpdate() - SVUI_LayoutPrecision:Show() - else - SVUI_LayoutPrecision:Hide() - end + CurrentFrameTarget = self + self.text:SetTextColor(0.2, 1, 0) + self:SetBackdropBorderColor(0, 1, 0) + Layout:Movable_OnUpdate() + SVUI_LayoutPrecision:Show() end end @@ -820,7 +827,7 @@ function Graph:Toggle(enabled) self:UpdateAllReports() end if(not enabled) then - self.Grid:Hide() + self.Grid:Hide() else self.Grid:Show() end @@ -1262,9 +1269,12 @@ local function InitializeMovables() end) SVUI_LayoutGridButton:SetScript("OnClick", XML_LayoutGridButton_OnClick) - SVUI_LayoutPrecision:SetStyle("Frame", "Transparent") + SVUI_LayoutPrecision:SetFrameLevel(999) + SVUI_LayoutPrecision:SetStyle("Frame", "Pattern") SVUI_LayoutPrecision:EnableMouse(true) + SV.API:Set("CloseButton", SVUI_LayoutPrecisionCloseButton) + SVUI_LayoutPrecisionSetX:SetStyle("Editbox") SVUI_LayoutPrecisionSetX.CurrentValue = 0; SVUI_LayoutPrecisionSetX:SetScript("OnEnterPressed", XML_LayoutPrecisionInputX_EnterPressed) @@ -1281,6 +1291,13 @@ local function InitializeMovables() SVUI_LayoutPrecisionResetButton:SetScript("OnClick", SVUI_LayoutPrecisionResetButton_OnClick) + SVUI_LayoutPrecision:SetScript("OnHide", function() + if(not CurrentFrameTarget) then return end + CurrentFrameTarget.text:SetTextColor(0.5, 0.5, 0.5) + CurrentFrameTarget:SetBackdropBorderColor(0.5, 0.5, 0.5) + CurrentFrameTarget = nil + end) + Layout:Update() if(SV.db.general.useDraggable) then @@ -1329,10 +1346,11 @@ end function SV:ReAnchor(name, ...) if((not name) or (not _G[name])) then return end local frame = _G[name] - if(not frame or (not frame.Grip)) then return end - local grip = frame.Grip - grip:SetPoint(...) - SaveAnchor(grip.name) + if(not frame.Grip) then return end + print(name) + print(frame.Grip.name) + frame.Grip:SetPoint(...) + SaveAnchor(frame.Grip.name) end function SV:MoveAnchors(arg) diff --git a/SVUI_!Core/system/media.lua b/SVUI_!Core/system/media.lua index da67453..f96d6b1 100644 --- a/SVUI_!Core/system/media.lua +++ b/SVUI_!Core/system/media.lua @@ -679,7 +679,11 @@ function SV:FontManager(obj, template, arg, sizeMod, styleOverride, colorR, colo else obj:SetShadowColor(0, 0, 0, 0.2) end - obj:SetShadowOffset(1, -1) + if(not obj.noShadowOffset) then + obj:SetShadowOffset(1, -1) + else + obj:SetShadowOffset(0, 0) + end obj:SetJustifyH(arg or "CENTER") obj:SetJustifyV("MIDDLE") end diff --git a/SVUI_!Core/xml/widgets.xml b/SVUI_!Core/xml/widgets.xml index 250e4b7..9600614 100644 --- a/SVUI_!Core/xml/widgets.xml +++ b/SVUI_!Core/xml/widgets.xml @@ -112,7 +112,7 @@ <Frame name="SVUI_RaidMarkFrame" frameStrata="DIALOG" hidden="true" /> <Frame name="SVUI_LayoutPrecision" hidden="true" frameStrata="DIALOG"> - <Size x="200" y="60"/> + <Size x="200" y="70"/> <Anchors> <Anchor point="CENTER"/> </Anchors> @@ -123,32 +123,35 @@ <Layer level="OVERLAY"> <Texture name="$parentTitleBG"> <Anchors> - <Anchor point="BOTTOMLEFT" relativeTo="$parentBG" relativePoint="TOPLEFT"/> + <Anchor point="TOPLEFT" relativeTo="$parentBG" relativePoint="TOPLEFT"> + <Offset x="30" y="0"/> + </Anchor> <Anchor point="TOPRIGHT" relativeTo="$parentBG" relativePoint="TOPRIGHT"> - <Offset x="0" y="30"/> + <Offset x="-30" y="0"/> </Anchor> </Anchors> + <Size y="40"/> </Texture> </Layer> <Layer level="ARTWORK"> - <FontString parentKey="Title" inherits="GameFontNormal" text="Focused Position"> + <FontString parentKey="Title" inherits="GameFontNormal" justifyV="TOP" text="Focused Position"> <Anchors> <Anchor point="TOPLEFT" relativeTo="$parentTitleBG" relativePoint="TOPLEFT"/> - <Anchor point="BOTTOMRIGHT" relativeTo="$parentTitleBG" relativePoint="BOTTOMRIGHT"/> + <Anchor point="TOPRIGHT" relativeTo="$parentTitleBG" relativePoint="TOPRIGHT"/> </Anchors> </FontString> <FontString inherits="NumberFont_Outline_Huge" text="X"> <Anchors> - <Anchor point="RIGHT" relativeTo="$parent" relativePoint="LEFT"> - <Offset x="-3" y="0"/> + <Anchor point="LEFT" relativeTo="$parentBG" relativePoint="LEFT"> + <Offset x="0" y="0"/> </Anchor> </Anchors> <Color r="1" g="0.5" b="0" a="1"/> </FontString> <FontString inherits="NumberFont_Outline_Huge" text="Y"> <Anchors> - <Anchor point="LEFT" relativeTo="$parent" relativePoint="RIGHT"> - <Offset x="3" y="0"/> + <Anchor point="RIGHT" relativeTo="$parentBG" relativePoint="RIGHT"> + <Offset x="0" y="0"/> </Anchor> </Anchors> <Color r="1" g="0.5" b="0" a="1"/> @@ -156,11 +159,18 @@ </Layer> </Layers> <Frames> + <Button name="$parentCloseButton" parentKey="Close" inherits="UIPanelCloseButton"> + <Anchors> + <Anchor point="TOPRIGHT" relativeTo="$parentBG" relativePoint="TOPRIGHT"> + <Offset x="6" y="6"/> + </Anchor> + </Anchors> + </Button> <EditBox name="$parentSetX" inherits="InputBoxTemplate" autoFocus="false"> <Size x="50" y="17"/> <Anchors> - <Anchor point="BOTTOMRIGHT" relativeTo="$parentBG" relativePoint="CENTER"> - <Offset x="-36" y="3"/> + <Anchor point="TOPRIGHT" relativeTo="$parentBG" relativePoint="CENTER"> + <Offset x="-27" y="6"/> </Anchor> </Anchors> @@ -182,8 +192,8 @@ <EditBox name="$parentSetY" inherits="InputBoxTemplate" autoFocus="false"> <Size x="50" y="17"/> <Anchors> - <Anchor point="BOTTOMLEFT" relativeTo="$parentBG" relativePoint="CENTER"> - <Offset x="36" y="3"/> + <Anchor point="TOPLEFT" relativeTo="$parentBG" relativePoint="CENTER"> + <Offset x="27" y="6"/> </Anchor> </Anchors> <Scripts> @@ -202,9 +212,9 @@ </EditBox> <Button name="$parentResetButton" inherits="OptionsButtonTemplate" text="Reset"> - <Size x="66" y="20"/> + <Size x="48" y="20"/> <Anchors> - <Anchor point="TOP" relativeTo="$parentBG" relativePoint="CENTER" x="0" y="-3" /> + <Anchor point="TOP" relativeTo="$parentBG" relativePoint="CENTER" x="0" y="-14" /> </Anchors> <Scripts> <OnLoad> diff --git a/SVUI_!Options/UnitFrames.lua b/SVUI_!Options/UnitFrames.lua index 64399d0..839c0ac 100644 --- a/SVUI_!Options/UnitFrames.lua +++ b/SVUI_!Options/UnitFrames.lua @@ -4118,6 +4118,68 @@ SV.Options.args[Schema] = { } }, }, + rdebuffs = { + order = 700, + type = 'group', + name = L['Raid Debuffs'], + get = function(l)return + SV.db.UnitFrames['party']['rdebuffs'][l[#l]]end, + set = function(l, m) MOD:ChangeDBVar(m, l[#l], "party", "rdebuffs"); MOD:SetGroupFrame('party')end, + args = { + enable = { + type = "toggle", + name = L["Enable"], + order = 1, + }, + configureToggle = { + order = 2, + type = "execute", + name = L["Show Indicators"], + func = function() + local toggle = (_G["SVUI_Party"].forceShowAuras ~= true) or nil + MOD:ViewGroupFrames(_G["SVUI_Party"], true, toggle) + end, + }, + configureButton = { + type = "execute", + name = L["Configure Filters"], + func = function() SVUIOptions:SetToFilterConfig("Raid") end, + order = 3, + }, + size = { + type = "range", + name = L["Size"], + order = 4, + min = 8, + max = 35, + step = 1, + }, + fontSize = { + type = "range", + name = L["Font Size"], + order = 5, + min = 7, + max = 22, + step = 1, + }, + xOffset = { + order = 6, + type = "range", + name = L["xOffset"], + min = - 300, + max = 300, + step = 1, + }, + yOffset = { + order = 7, + type = "range", + name = L["yOffset"], + min = - 300, + max = 300, + step = 1, + }, + }, + }, icons = SVUIOptions:SetIconConfigGroup(MOD.SetGroupFrame, 'party') }, }, @@ -4446,7 +4508,7 @@ SV.Options.args[Schema] = { rdebuffs = { order = 800, type = "group", - name = L["RaidDebuff Indicator"], + name = L["Raid Debuffs"], get = function(l)return SV.db.UnitFrames.raid["rdebuffs"][l[#l]]end, set = function(l, m)MOD:ChangeDBVar(m, l[#l], "raid", "rdebuffs");MOD:SetGroupFrame("raid")end, @@ -4456,10 +4518,29 @@ SV.Options.args[Schema] = { name = L["Enable"], order = 1, }, + configureToggle = { + order = 2, + type = "execute", + name = L["Show Indicators"], + func = function() + if(not _G["SVUI_Raid"].forceShowAuras) then + _G["SVUI_Raid"].forceShowAuras = true + else + _G["SVUI_Raid"].forceShowAuras = nil + end + MOD:ViewGroupFrames(_G["SVUI_Raid"], true) + end, + }, + configureButton = { + type = "execute", + name = L["Configure Filters"], + func = function()SVUIOptions:SetToFilterConfig("Raid")end, + order = 3, + }, size = { type = "range", name = L["Size"], - order = 2, + order = 4, min = 8, max = 35, step = 1, @@ -4467,13 +4548,13 @@ SV.Options.args[Schema] = { fontSize = { type = "range", name = L["Font Size"], - order = 3, + order = 5, min = 7, max = 22, step = 1, }, xOffset = { - order = 4, + order = 6, type = "range", name = L["xOffset"], min = - 300, @@ -4481,19 +4562,13 @@ SV.Options.args[Schema] = { step = 1, }, yOffset = { - order = 5, + order = 7, type = "range", name = L["yOffset"], min = - 300, max = 300, step = 1, }, - configureButton = { - type = "execute", - name = L["Configure Auras"], - func = function()SVUIOptions:SetToFilterConfig("Raid")end, - order = 7, - }, }, }, icons = SVUIOptions:SetIconConfigGroup(MOD.SetGroupFrame, "raid"), @@ -4711,46 +4786,67 @@ SV.Options.args[Schema] = { rdebuffs = { order = 700, type = 'group', - name = L['RaidDebuff Indicator'], + name = L['Raid Debuffs'], get = function(l)return SV.db.UnitFrames['raidpet']['rdebuffs'][l[#l]]end, set = function(l, m) MOD:ChangeDBVar(m, l[#l], "raidpet", "rdebuffs"); MOD:SetGroupFrame('raidpet')end, args = { enable = { - type = 'toggle', - name = L['Enable'], + type = "toggle", + name = L["Enable"], order = 1, }, - size = { - type = 'range', - name = L['Size'], + configureToggle = { order = 2, + type = "execute", + name = L["Show Indicators"], + func = function() + if(not _G["SVUI_RaidPet"].forceShowAuras) then + _G["SVUI_RaidPet"].forceShowAuras = true + else + _G["SVUI_RaidPet"].forceShowAuras = nil + end + MOD:ViewGroupFrames(_G["SVUI_RaidPet"], true) + end, + }, + configureButton = { + type = "execute", + name = L["Configure Filters"], + func = function() SVUIOptions:SetToFilterConfig("Raid") end, + order = 3, + }, + size = { + type = "range", + name = L["Size"], + order = 4, min = 8, max = 35, step = 1, }, + fontSize = { + type = "range", + name = L["Font Size"], + order = 5, + min = 7, + max = 22, + step = 1, + }, xOffset = { - order = 3, - type = 'range', - name = L['xOffset'], + order = 6, + type = "range", + name = L["xOffset"], min = - 300, max = 300, step = 1, }, yOffset = { - order = 4, - type = 'range', - name = L['yOffset'], + order = 7, + type = "range", + name = L["yOffset"], min = - 300, max = 300, step = 1, }, - configureButton = { - type = 'execute', - name = L['Configure Auras'], - func = function()SVUIOptions:SetToFilterConfig('Raid')end, - order = 5, - }, }, }, icons = SVUIOptions:SetIconConfigGroup(MOD.SetGroupFrame, 'raidpet'), diff --git a/SVUI_NamePlates/SVUI_NamePlates.lua b/SVUI_NamePlates/SVUI_NamePlates.lua index e100193..5937fe6 100644 --- a/SVUI_NamePlates/SVUI_NamePlates.lua +++ b/SVUI_NamePlates/SVUI_NamePlates.lua @@ -634,7 +634,7 @@ function MOD:UpdateAuras(plate) local guid = plate.guid local frame = plate.frame if(NPFindHealers and plate.isHealer) then - health.icon:Show() + frame.health.icon:Show() end if not guid then if RAID_CLASS_COLORS[plate.setting.classToken] then diff --git a/SVUI_QuestTracker/components/quests.lua b/SVUI_QuestTracker/components/quests.lua index bef77d8..b6c04a0 100644 --- a/SVUI_QuestTracker/components/quests.lua +++ b/SVUI_QuestTracker/components/quests.lua @@ -1169,7 +1169,7 @@ local function ReAnchorItemBar() end local function PostMoveCallback(buttonName) - if(not buttonName or (buttonName ~= MOD.Docklet.Button:Getname())) then return end + if(not buttonName or (buttonName ~= MOD.Docklet.Button:GetName())) then return end if(ItemBar.Grip and (not ItemBar.Grip:HasMoved())) then ReAnchorItemBar() end @@ -1179,14 +1179,14 @@ end local function PostShowCallback(location, windowName) if(not location or (location ~= MOD.Docklet.Parent.Bar.Data.Location)) then return end - if(not windowName or (windowName ~= MOD.Docklet:Getname())) then return end + if(not windowName or (windowName ~= MOD.Docklet:GetName())) then return end MOD.QuestItemTimer = SV.Timers:ExecuteTimer(ShowItemBarButtons, 1.2); ShowItemBarButtons(); end local function PostHideCallback(location, windowName) if(not location or (location ~= MOD.Docklet.Parent.Bar.Data.Location)) then return end - if(not windowName or (windowName ~= MOD.Docklet:Getname())) then return end + if(not windowName or (windowName ~= MOD.Docklet:GetName())) then return end if(MOD.QuestItemTimer) then SV.Timers:RemoveTimer(MOD.QuestItemTimer) MOD.QuestItemTimer = nil diff --git a/SVUI_UnitFrames/Loader.lua b/SVUI_UnitFrames/Loader.lua index 19da913..a6b3681 100644 --- a/SVUI_UnitFrames/Loader.lua +++ b/SVUI_UnitFrames/Loader.lua @@ -1747,6 +1747,13 @@ SV.defaults[Schema] = { ["sizeOverride"] = 22, ["spacing"] = 2, }, + ["rdebuffs"] = + { + ["enable"] = true, + ["size"] = 22, + ["xOffset"] = 0, + ["yOffset"] = 2, + }, ["auraWatch"] = { ["enable"] = true, diff --git a/SVUI_UnitFrames/SVUI_UnitFrames.lua b/SVUI_UnitFrames/SVUI_UnitFrames.lua index 10a6807..29c91d3 100644 --- a/SVUI_UnitFrames/SVUI_UnitFrames.lua +++ b/SVUI_UnitFrames/SVUI_UnitFrames.lua @@ -296,22 +296,26 @@ function MOD:RefreshUnitMedia(unitName) if(unitDB and unitDB.enable) then local panel = self.TextGrip if(panel) then - if(panel.Name and unitDB.name) then - if(unitDB.grid and unitDB.grid.enable) then - panel.Name:SetFont(SV.media.font.pixel, 8, "MONOCHROMEOUTLINE") - panel.Name:SetShadowOffset(1, -1) - panel.Name:SetShadowColor(0, 0, 0, 0.75) - else - panel.Name:SetFont(LSM:Fetch("font", unitDB.name.font), unitDB.name.fontSize, unitDB.name.fontOutline) - if(unitDB.name.fontOutline == 'NONE') then - panel.Name:SetShadowOffset(1, -1) - panel.Name:SetShadowColor(0, 0, 0, 1) - else - panel.Name:SetShadowOffset(2, -2) - panel.Name:SetShadowColor(0, 0, 0, 0.75) - end - end + if(panel.Name and unitDB.name) then + if(unitDB.grid and unitDB.grid.enable) then + panel.Name:SetFont(SV.media.font.pixel, 8, "MONOCHROMEOUTLINE") + panel.Name:SetShadowOffset(0, -1) + panel.Name:SetShadowColor(0, 0, 0, 1) + else + panel.Name:SetFont(LSM:Fetch("font", unitDB.name.font), unitDB.name.fontSize, unitDB.name.fontOutline) + if(key == 'raid') then + panel.Name:SetShadowOffset(0, -1) + panel.Name:SetShadowColor(0, 0, 0, 1) + else + if(unitDB.name.fontOutline == 'NONE') then + panel.Name:SetShadowColor(0, 0, 0, 1) + else + panel.Name:SetShadowColor(0, 0, 0, 0.5) + end + panel.Name:SetShadowOffset(1, -1) + end end + end end if(self.Health) then self.Health:SetStatusBarTexture(CURRENT_BAR_TEXTURE) diff --git a/SVUI_UnitFrames/elements/essentials.lua b/SVUI_UnitFrames/elements/essentials.lua index 43a2736..6f4749b 100644 --- a/SVUI_UnitFrames/elements/essentials.lua +++ b/SVUI_UnitFrames/elements/essentials.lua @@ -216,8 +216,8 @@ local function CreateNameText(frame, unitName) end local name = frame:CreateFontString(nil, "OVERLAY") name:SetFont(LSM:Fetch("font", db.font), db.fontSize, db.fontOutline) - name:SetShadowOffset(2, -2) - name:SetShadowColor(0, 0, 0, 1) + name:SetShadowOffset(1.5, -1.5) + name:SetShadowColor(0, 0, 0, 0.5) if unitName == "target" then name:SetPoint("RIGHT", frame) name:SetJustifyH("RIGHT") @@ -375,7 +375,7 @@ function MOD:SetActionPanel(frame, unit, noHealthText, noPowerText, noMiscText) frame.TextGrip:SetAllPoints(info) else frame.TextGrip = CreateFrame("Frame", nil, frame) - frame.TextGrip:SetFrameStrata("LOW") + --frame.TextGrip:SetFrameStrata("LOW") frame.TextGrip:SetFrameLevel(20) frame.TextGrip:SetPoint("TOPLEFT", frame.ActionPanel, "TOPLEFT", 2, -2) frame.TextGrip:SetPoint("BOTTOMRIGHT", frame.ActionPanel, "BOTTOMRIGHT", -2, 2) diff --git a/SVUI_UnitFrames/elements/misc.lua b/SVUI_UnitFrames/elements/misc.lua index 9abfef8..cd39040 100644 --- a/SVUI_UnitFrames/elements/misc.lua +++ b/SVUI_UnitFrames/elements/misc.lua @@ -37,30 +37,6 @@ local max = math.max local CreateFrame = _G.CreateFrame; local InCombatLockdown = _G.InCombatLockdown; -local IsLoggedIn = _G.IsLoggedIn; -local IsResting = _G.IsResting; -local GameTooltip = _G.GameTooltip; -local UnitClass = _G.UnitClass; -local UnitBuff = _G.UnitBuff; -local UnitHealth = _G.UnitHealth; -local UnitHealthMax = _G.UnitHealthMax; -local UnitIsPlayer = _G.UnitIsPlayer; -local UnitReaction = _G.UnitReaction; -local UnitIsConnected = _G.UnitIsConnected; -local UnitIsDeadOrGhost = _G.UnitIsDeadOrGhost; -local UnitClassBase = _G.UnitClassBase; -local UnitPowerType = _G.UnitPowerType; -local UnitPlayerControlled = _G.UnitPlayerControlled; -local UnitGroupRolesAssigned = _G.UnitGroupRolesAssigned; -local UnitThreatSituation = _G.UnitThreatSituation; -local UnitAffectingCombat = _G.UnitAffectingCombat; -local GetThreatStatusColor = _G.GetThreatStatusColor; -local UnitAlternatePowerInfo = _G.UnitAlternatePowerInfo; -local UnitGetIncomingHeals = _G.UnitGetIncomingHeals; -local UnitGetTotalAbsorbs = _G.UnitGetTotalAbsorbs; -local UnitGetTotalHealAbsorbs = _G.UnitGetTotalHealAbsorbs; -local GetSpecialization = _G.GetSpecialization; -local GetSpecializationInfo = _G.GetSpecializationInfo; local SV = _G['SVUI'] local L = SV.L; @@ -77,9 +53,9 @@ LOCAL VARIABLES ########################################################## ]]-- local ROLE_ICON_DATA = { - ["TANK"] = {0,0.5,0,0.5, 0.5,0.75,0.5,0.75}, - ["HEALER"] = {0,0.5,0.5,1, 0.5,0.75,0.75,1}, - ["DAMAGER"] = {0.5,1,0,0.5, 0.75,1,0.5,0.75} + ["TANK"] = {0,0.5,0,0.5, 0.5,0.75,0.51,0.75}, + ["HEALER"] = {0,0.5,0.5,1, 0.5,0.75,0.76,1}, + ["DAMAGER"] = {0.5,1,0,0.5, 0.76,1,0.51,0.75} } local function BasicBG(frame) @@ -105,7 +81,8 @@ RAID DEBUFFS / DEBUFF HIGHLIGHT ########################################################## ]]-- function MOD:CreateRaidDebuffs(frame) - local raidDebuff = CreateFrame("Frame", nil, frame) + local raidDebuff = CreateFrame("Frame", nil, frame.TextGrip) + raidDebuff:SetFrameLevel(30) raidDebuff:SetStyle("!_Frame", "Icon") raidDebuff.icon = raidDebuff:CreateTexture(nil, "OVERLAY") raidDebuff.icon:SetTexCoord(unpack(_G.SVUI_ICON_COORDS)) @@ -118,13 +95,12 @@ function MOD:CreateRaidDebuffs(frame) raidDebuff.time:SetFontObject(SVUI_Font_Aura) raidDebuff.time:SetPoint("CENTER") raidDebuff.time:SetTextColor(1, .9, 0) - raidDebuff:SetParent(frame.TextGrip) return raidDebuff end function MOD:CreateAfflicted(frame) - local holder = CreateFrame("Frame", nil, frame.Health) - holder:SetFrameLevel(30) + local holder = CreateFrame("Frame", nil, frame.TextGrip) + holder:SetFrameLevel(50) holder:SetAllPoints(frame.Health) local afflicted = holder:CreateTexture(nil, "OVERLAY", nil, 7) afflicted:InsetPoints(holder) diff --git a/SVUI_UnitFrames/frames.lua b/SVUI_UnitFrames/frames.lua index 3145200..aee5714 100644 --- a/SVUI_UnitFrames/frames.lua +++ b/SVUI_UnitFrames/frames.lua @@ -121,7 +121,7 @@ local AllowElement = function(self) end self:SetScript("OnUpdate", nil) - self.forceShowAuras = true; + --self.forceShowAuras = true; UnregisterUnitWatch(self) RegisterUnitWatch(self, true) diff --git a/SVUI_UnitFrames/groups.lua b/SVUI_UnitFrames/groups.lua index c4a653e..3d63380 100644 --- a/SVUI_UnitFrames/groups.lua +++ b/SVUI_UnitFrames/groups.lua @@ -206,7 +206,7 @@ local AllowElement = function(self) end self:SetScript("OnUpdate", nil) - self.forceShowAuras = true; + --self.forceShowAuras = true; UnregisterUnitWatch(self) RegisterUnitWatch(self, true) @@ -247,46 +247,62 @@ local PartyUnitUpdate = function(self) MOD.RefreshUnitMedia(self, "party") if self.isChild then - local altDB = db.petsGroup; - if self == _G[self.originalParent:GetName()..'Target'] then - altDB = db.targetsGroup - end - if not self.originalParent.childList then - self.originalParent.childList = {} - end - self.originalParent.childList[self] = true; - if not InCombatLockdown()then - if altDB.enable then - local UNIT_WIDTH, UNIT_HEIGHT = MOD:GetActiveSize(altDB) - self:SetParent(self.originalParent) - self:SetSize(UNIT_WIDTH, UNIT_HEIGHT) - self:ClearAllPoints() - SV:SetReversePoint(self, altDB.anchorPoint, self.originalParent, altDB.xOffset, altDB.yOffset) - else - self:SetParent(SV.Hidden) - end - end - do - local health = self.Health; - health.Smooth = nil; - health.frequentUpdates = nil; - health.colorSmooth = nil; - health.colorHealth = nil; - health.colorClass = true; - health.colorReaction = true; - health:ClearAllPoints() - health:SetPoint("TOPRIGHT", self, "TOPRIGHT", -1, -1) - health:SetPoint("BOTTOMLEFT", self, "BOTTOMLEFT", 1, 1) - end - do - local nametext = self.TextGrip.Name - self:Tag(nametext, altDB.tags) + local altDB = db.petsGroup; + if self == _G[self.originalParent:GetName()..'Target'] then + altDB = db.targetsGroup + end + if not self.originalParent.childList then + self.originalParent.childList = {} + end + self.originalParent.childList[self] = true; + if not InCombatLockdown()then + if altDB.enable then + local UNIT_WIDTH, UNIT_HEIGHT = MOD:GetActiveSize(altDB) + self:SetParent(self.originalParent) + self:SetSize(UNIT_WIDTH, UNIT_HEIGHT) + self:ClearAllPoints() + SV:SetReversePoint(self, altDB.anchorPoint, self.originalParent, altDB.xOffset, altDB.yOffset) + else + self:SetParent(SV.Hidden) end + end + do + local health = self.Health; + health.Smooth = nil; + health.frequentUpdates = nil; + health.colorSmooth = nil; + health.colorHealth = nil; + health.colorClass = true; + health.colorReaction = true; + health:ClearAllPoints() + health:SetPoint("TOPRIGHT", self, "TOPRIGHT", -1, -1) + health:SetPoint("BOTTOMLEFT", self, "BOTTOMLEFT", 1, 1) + end + do + local nametext = self.TextGrip.Name + self:Tag(nametext, altDB.tags) + end else if not InCombatLockdown() then local UNIT_WIDTH, UNIT_HEIGHT = MOD:GetActiveSize(db, "party") self:SetSize(UNIT_WIDTH, UNIT_HEIGHT) end + do + local rdBuffs = self.RaidDebuffs; + if db.rdebuffs.enable then + rdBuffs.forceShow = self.forceShowAuras; + if not self:IsElementEnabled('RaidDebuffs') then + self:EnableElement("RaidDebuffs") + end + local actualSz = db.rdebuffs.size + rdBuffs:SetSize(actualSz, actualSz) + rdBuffs:SetPoint("CENTER", self, "CENTER", db.rdebuffs.xOffset, db.rdebuffs.yOffset) + rdBuffs:Show() + else + self:DisableElement("RaidDebuffs") + rdBuffs:Hide() + end + end MOD:RefreshUnitLayout(self, "party") end self:EnableElement('ReadyCheck') @@ -349,6 +365,7 @@ BuildTemplates["party"] = function(self, unit) MOD:CreatePortrait(self, true) MOD:CreateAuraFrames(self, "party") self.AuraWatch = MOD:CreateAuraWatch(self, "party") + self.RaidDebuffs = MOD:CreateRaidDebuffs(self) self.Afflicted = MOD:CreateAfflicted(self) self.ResurrectIcon = MOD:CreateResurectionIcon(self) self.LFDRole = MOD:CreateRoleIcon(self) @@ -388,19 +405,20 @@ local RaidUnitUpdate = function(self) end do - local rdBuffs = self.RaidDebuffs; - if db.rdebuffs.enable then - if not self:IsElementEnabled('RaidDebuffs') then - self:EnableElement("RaidDebuffs") - end - local actualSz = numMin(db.rdebuffs.size, (UNIT_HEIGHT - 8)) - rdBuffs:SetSize(actualSz, actualSz) - rdBuffs:SetPoint("CENTER", self, "CENTER", db.rdebuffs.xOffset, db.rdebuffs.yOffset) - rdBuffs:Show() - else - self:DisableElement("RaidDebuffs") - rdBuffs:Hide() + local rdBuffs = self.RaidDebuffs; + if db.rdebuffs.enable then + rdBuffs.forceShow = self.forceShowAuras; + if not self:IsElementEnabled('RaidDebuffs') then + self:EnableElement("RaidDebuffs") end + local actualSz = db.rdebuffs.size + rdBuffs:SetSize(actualSz, actualSz) + rdBuffs:SetPoint("CENTER", self, "CENTER", db.rdebuffs.xOffset, db.rdebuffs.yOffset) + rdBuffs:Show() + else + self:DisableElement("RaidDebuffs") + rdBuffs:Hide() + end end MOD.RefreshUnitMedia(self, token) diff --git a/SVUI_UnitFrames/libs/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua b/SVUI_UnitFrames/libs/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua index 6b84d1e..ef51a6d 100644 --- a/SVUI_UnitFrames/libs/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua +++ b/SVUI_UnitFrames/libs/Plugins/oUF_RaidDebuffs/oUF_RaidDebuffs.lua @@ -54,7 +54,7 @@ local function add(spell, priority) if addon.MatchBySpellName and type(spell) == 'number' then spell = GetSpellInfo(spell) end - + debuff_data[spell] = addon.priority + priority end @@ -122,9 +122,9 @@ do ['Magic'] = false, ['Disease'] = true, ['Poison'] = true, - }, + }, } - + DispellFilter = dispellClasses[select(2, UnitClass('player'))] or {} end @@ -137,40 +137,40 @@ end local playerClass = select(2, UnitClass('player')) local function CheckSpec(self, event, levels) - -- Not interested in gained points from leveling + -- Not interested in gained points from leveling if event == "CHARACTER_POINTS_CHANGED" and levels > 0 then return end - + --Check for certain talents to see if we can dispel magic or not if playerClass == "PRIEST" then if CheckTalentTree(3) then DispellFilter.Disease = false else - DispellFilter.Disease = true - end + DispellFilter.Disease = true + end elseif playerClass == "PALADIN" then if CheckTalentTree(1) then DispellFilter.Magic = true else - DispellFilter.Magic = false + DispellFilter.Magic = false end elseif playerClass == "SHAMAN" then if CheckTalentTree(3) then DispellFilter.Magic = true else - DispellFilter.Magic = false + DispellFilter.Magic = false end elseif playerClass == "DRUID" then if CheckTalentTree(4) then DispellFilter.Magic = true else - DispellFilter.Magic = false + DispellFilter.Magic = false end elseif playerClass == "MONK" then if CheckTalentTree(2) then DispellFilter.Magic = true else - DispellFilter.Magic = false - end + DispellFilter.Magic = false + end end end @@ -216,7 +216,7 @@ local function UpdateDebuff(self, name, icon, count, debuffType, duration, endTi f.icon:SetTexture(icon) f.icon:Show() f.duration = duration - + if f.count then if count and (count > 1) then f.count:SetText(count) @@ -226,7 +226,7 @@ local function UpdateDebuff(self, name, icon, count, debuffType, duration, endTi f.count:Hide() end end - + if f.time then if duration and (duration > 0) then f.endTime = endTime @@ -238,7 +238,7 @@ local function UpdateDebuff(self, name, icon, count, debuffType, duration, endTi f.time:Hide() end end - + if f.cd then if duration and (duration > 0) then f.cd:SetCooldown(endTime - duration, duration) @@ -247,10 +247,10 @@ local function UpdateDebuff(self, name, icon, count, debuffType, duration, endTi f.cd:Hide() end end - + local c = DispellColor[debuffType] or DispellColor.none f:SetBackdropBorderColor(c[1], c[2], c[3]) - + f:Show() else f:Hide() @@ -261,28 +261,30 @@ local blackList = { [105171] = true, -- Deep Corruption [108220] = true, -- Deep Corruption [116095] = true, -- Disable, Slow - [137637] = true, -- Warbringer, Slow + [137637] = true, -- Warbringer, Slow } +local DEMO_SPELLS = {135000,143436,143579,147383,146124,144851,144358,144774,147207} + local function Update(self, event, unit) if unit ~= self.unit then return end local _name, _icon, _count, _dtype, _duration, _endTime, _spellId local _priority, priority = 0, 0 - + --store if the unit its charmed, mind controlled units (Imperial Vizier Zor'lok: Convert) - local isCharmed = UnitIsCharmed(unit) - + local isCharmed = UnitIsCharmed(unit) + --store if we cand attack that unit, if its so the unit its hostile (Amber-Shaper Un'sok: Reshape Life) local canAttack = UnitCanAttack("player", unit) - + for i = 1, 40 do local name, rank, icon, count, debuffType, duration, expirationTime, unitCaster, isStealable, shouldConsolidate, spellId, canApplyAura, isBossDebuff = UnitAura(unit, i, 'HARMFUL') if (not name) then break end - + --we coudln't dispell if the unit its charmed, or its not friendly if addon.ShowDispelableDebuff and debuffType and (not isCharmed) and (not canAttack) then - - if addon.FilterDispellableDebuff then + + if addon.FilterDispellableDebuff then DispellPriority[debuffType] = (DispellPriority[debuffType] or 0) + addon.priority --Make Dispell buffs on top of Boss Debuffs priority = DispellFilter[debuffType] and DispellPriority[debuffType] or 0 if priority == 0 then @@ -290,28 +292,34 @@ local function Update(self, event, unit) end else priority = DispellPriority[debuffType] or 0 - end + end if priority > _priority then _priority, _name, _icon, _count, _dtype, _duration, _endTime, _spellId = priority, name, icon, count, debuffType, duration, expirationTime, spellId end end - + priority = debuff_data[addon.MatchBySpellName and name or spellId] if priority and not blackList[spellId] and (priority > _priority) then _priority, _name, _icon, _count, _dtype, _duration, _endTime, _spellId = priority, name, icon, count, debuffType, duration, expirationTime, spellId end end - + + if(self.forceShowAuras) then + _spellId = DEMO_SPELLS[random(1, #DEMO_SPELLS)]; + _name, rank, _icon = GetSpellInfo(_spellId) + _count, _dtype, _duration, _endTime = 5, 'Magic', 0, 60 + end + UpdateDebuff(self, _name, _icon, _count, _dtype, _duration, _endTime, _spellId) - + --Reset the DispellPriority DispellPriority = { ['Magic'] = 4, ['Curse'] = 3, ['Disease'] = 2, ['Poison'] = 1, - } + } end @@ -337,7 +345,7 @@ local function Disable(self) self:UnregisterEvent("CHARACTER_POINTS_CHANGED", CheckSpec) if playerClass == "DRUID" then self:UnregisterEvent("SPELLS_CHANGED", CheckSymbiosis) - end + end end -oUF:AddElement('RaidDebuffs', Update, Enable, Disable) \ No newline at end of file +oUF:AddElement('RaidDebuffs', Update, Enable, Disable) diff --git a/SVUI_UnitFrames/libs/oUF/elements/aura.lua b/SVUI_UnitFrames/libs/oUF/elements/aura.lua index e266e23..37b2c8b 100644 --- a/SVUI_UnitFrames/libs/oUF/elements/aura.lua +++ b/SVUI_UnitFrames/libs/oUF/elements/aura.lua @@ -41,7 +41,7 @@ local DEBUFF_FILTER = 'HARMFUL'; local VISIBLE = 1; local HIDDEN = 0; -local DEMO_SPELLS = {47540, 47540, 47540, 47540, 47540} +local DEMO_SPELLS = {47540, 974, 111264, 57934, 124081} local function FormatTime(seconds) if seconds < MINUTE then diff --git a/SVUI_UnitFrames/view.lua b/SVUI_UnitFrames/view.lua index 532b1cc..19452d3 100644 --- a/SVUI_UnitFrames/view.lua +++ b/SVUI_UnitFrames/view.lua @@ -1,7 +1,7 @@ --[[ ########################################################## S V U I By: Munglunch -########################################################## +########################################################## LOCALIZED LUA FUNCTIONS ########################################################## ]]-- @@ -36,8 +36,8 @@ local min, random = math.min, math.random; local table = table; --[[ LOCALIZED BLIZZ FUNCTIONS ]]-- local NewHook = hooksecurefunc; ---[[ -########################################################## +--[[ +########################################################## GET ADDON DATA AND TEST FOR oUF ########################################################## ]]-- @@ -46,44 +46,44 @@ local L = SV.L; local LSM = _G.LibStub("LibSharedMedia-3.0") local MOD = SV.UnitFrames -if(not MOD) then return end +if(not MOD) then return end local oUF_SVUI = MOD.oUF assert(oUF_SVUI, "SVUI UnitFrames: unable to locate oUF.") ---[[ -########################################################## +--[[ +########################################################## LOCALS ########################################################## ]]-- local _PRIVATE_ENVIRONMENT; -local _PRIVATE_FUNCTIONS = {}; +local _PRIVATE_FUNCTIONS = {}; local _PRIVATE_TAGS = {}; local _PRIVATE_METHODS = { UnitPower = function(unit, g) - if unit:find('target') or unit:find('focus') then + if unit:find('target') or unit:find('focus') then return UnitPower(unit, g) end return random(1, UnitPowerMax(unit, g)or 1) - end, + end, UnitHealth = function(unit) - if unit:find('target') or unit:find('focus') then + if unit:find('target') or unit:find('focus') then return UnitHealth(unit) end return random(1, UnitHealthMax(unit)) - end, + end, UnitName = function(unit) - if unit:find('target') or unit:find('focus') then + if unit:find('target') or unit:find('focus') then return UnitName(unit) end return "Dummy" - end, + end, UnitClass = function(unit) - if unit:find('target') or unit:find('focus') then + if unit:find('target') or unit:find('focus') then return UnitClass(unit) end local token = CLASS_SORT_ORDER[random(1, #(CLASS_SORT_ORDER))] - return LOCALIZED_CLASS_NAMES_MALE[token], token + return LOCALIZED_CLASS_NAMES_MALE[token], token end, Hex = function(r, g, b) if not r then return end @@ -103,7 +103,7 @@ local AttributeChangeHook = function(self) local db = SV.db.UnitFrames[key] local newIndex = -4; - if self:GetAttribute("startingIndex") ~= newIndex then + if self:GetAttribute("startingIndex") ~= newIndex then self:SetAttribute("startingIndex", newIndex) self.isForced = true; self:EnableChildren() @@ -145,41 +145,41 @@ function MOD:ViewEnemyFrames(unit, numGroup) local unitName = unit..i local frame = self.Units[unitName] if(frame and frame.Allow) then - if(not frame.isForced) then + if(not frame.isForced) then frame:Allow() else frame:Restrict() end end - end + end end -function MOD:ViewGroupFrames(headerFrame, setForced) +function MOD:ViewGroupFrames(headerFrame, setForced, setAuraForced) if InCombatLockdown() then return end if(not headerFrame) then return end SetProxyEnv() - + headerFrame.forceShow = setForced; - headerFrame.forceShowAuras = setForced; + headerFrame.forceShowAuras = setAuraForced; headerFrame.isForced = setForced; local raidToken = headerFrame.___groupkey - - if setForced then - for _, func in pairs(_PRIVATE_TAGS) do - if type(func) == "function" then - if(not _PRIVATE_FUNCTIONS[func]) then + + if setForced then + for _, func in pairs(_PRIVATE_TAGS) do + if type(func) == "function" then + if(not _PRIVATE_FUNCTIONS[func]) then _PRIVATE_FUNCTIONS[func] = getfenv(func) setfenv(func, _PRIVATE_ENVIRONMENT) - end - end + end + end end RegisterStateDriver(headerFrame, "visibility", "show") - else - for func, fenv in pairs(_PRIVATE_FUNCTIONS)do + else + for func, fenv in pairs(_PRIVATE_FUNCTIONS)do setfenv(func, fenv) - _PRIVATE_FUNCTIONS[func] = nil + _PRIVATE_FUNCTIONS[func] = nil end - + local db = SV.db.UnitFrames[raidToken] RegisterStateDriver(headerFrame, "visibility", db.visibility) local eventScript = headerFrame:GetScript("OnEvent") @@ -196,7 +196,7 @@ function MOD:ViewGroupFrames(headerFrame, setForced) groupFrame.forceShowAuras = headerFrame.forceShowAuras; groupFrame:HookScript("OnAttributeChanged", AttributeChangeHook) - if setForced then + if setForced then groupFrame:SetAttribute("showRaid", nil) groupFrame:SetAttribute("showParty", nil) groupFrame:SetAttribute("showSolo", nil) @@ -217,4 +217,4 @@ function MOD:ViewGroupFrames(headerFrame, setForced) headerFrame:SetVisibility() collectgarbage("collect") -end \ No newline at end of file +end