Quantcast

update

Steven Jackson [08-26-14 - 01:01]
update
Filename
Interface/AddOns/SVUI/SVUI.lua
Interface/AddOns/SVUI/assets/artwork/Doodads/GENERIC-ARROW.blp
Interface/AddOns/SVUI/assets/artwork/Doodads/GPS-ARROW.blp
Interface/AddOns/SVUI/libs/oUF/elements/castbar.lua
Interface/AddOns/SVUI/libs/oUF/elements/health.lua
Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_GPS/oUF_GPS.lua
Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
Interface/AddOns/SVUI/packages/chat/SVChat.lua
Interface/AddOns/SVUI/packages/stats/SVStats.lua
Interface/AddOns/SVUI/packages/unit/SVUnit.lua
Interface/AddOns/SVUI/packages/unit/config.lua
Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
Interface/AddOns/SVUI/packages/unit/elements/misc.lua
Interface/AddOns/SVUI/packages/unit/frames.lua
Interface/AddOns/SVUI/system/installer.lua
Interface/AddOns/SVUI/system/system.lua
Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.lua
Interface/AddOns/SVUI_ConfigOMatic/modules/dock.lua
diff --git a/Interface/AddOns/SVUI/SVUI.lua b/Interface/AddOns/SVUI/SVUI.lua
index 03df2c0..d00ca9e 100644
--- a/Interface/AddOns/SVUI/SVUI.lua
+++ b/Interface/AddOns/SVUI/SVUI.lua
@@ -430,32 +430,6 @@ do
         end
     end

-    local Registry_PreLoad = function(self)
-        if not PackageQueue then return end
-        for i=1,#PackageQueue do
-            local name = PackageQueue[i]
-            local obj = self.__owner[name]
-            if(obj and obj.PriorityLoad and (not obj.initialized)) then
-                if self.__owner.db[name] then
-                    obj.db = self.__owner.db[name]
-                end
-
-                local halt = false
-                if(obj.db.incompatible) then
-                    for addon,_ in pairs(obj.db.incompatible) do
-                        if IsAddOnLoaded(addon) then halt = true end
-                    end
-                end
-                if(not halt) then
-                    obj:PriorityLoad()
-                    obj.PriorityLoad = nil
-                end
-
-                obj.initialized = true;
-            end
-        end
-    end
-
     local Registry_Load = function(self)
         if not PackageQueue then return end
         for i=1,#PackageQueue do
@@ -567,7 +541,6 @@ do
                 RunCallbacks = Registry_RunCallbacks,
                 Update = Registry_Update,
                 UpdateAll = Registry_UpdateAll,
-                PreLoadPackages = Registry_PreLoad,
                 LoadPackages = Registry_Load,
             }
         }
diff --git a/Interface/AddOns/SVUI/assets/artwork/Doodads/GENERIC-ARROW.blp b/Interface/AddOns/SVUI/assets/artwork/Doodads/GENERIC-ARROW.blp
new file mode 100644
index 0000000..327b5a3
Binary files /dev/null and b/Interface/AddOns/SVUI/assets/artwork/Doodads/GENERIC-ARROW.blp differ
diff --git a/Interface/AddOns/SVUI/assets/artwork/Doodads/GPS-ARROW.blp b/Interface/AddOns/SVUI/assets/artwork/Doodads/GPS-ARROW.blp
index 327b5a3..4c51507 100644
Binary files a/Interface/AddOns/SVUI/assets/artwork/Doodads/GPS-ARROW.blp and b/Interface/AddOns/SVUI/assets/artwork/Doodads/GPS-ARROW.blp differ
diff --git a/Interface/AddOns/SVUI/libs/oUF/elements/castbar.lua b/Interface/AddOns/SVUI/libs/oUF/elements/castbar.lua
index 7de23e6..c6b3a85 100644
--- a/Interface/AddOns/SVUI/libs/oUF/elements/castbar.lua
+++ b/Interface/AddOns/SVUI/libs/oUF/elements/castbar.lua
@@ -1,8 +1,8 @@
---[[
-	Original codebase:
-		oUF_Castbar by starlon.
-		http://svn.wowace.com/wowace/trunk/oUF_Castbar/
---]]
+--[[ Element: Cast Bar
+
+	THIS FILE HEAVILY MODIFIED FOR USE WITH SUPERVILLAIN UI
+
+]]
 local parent, ns = ...
 local oUF = ns.oUF

@@ -41,17 +41,31 @@ local UNIT_SPELLCAST_START = function(self, event, unit, spell)
 	endTime = endTime / 1e3
 	startTime = startTime / 1e3

-	local max = endTime - startTime
+	local repeatCount = GetTradeskillRepeatCount() or 1
+	local start = GetTime() - startTime

-	-- if(tradeskill) then
-	-- 	local repeatCount = GetTradeskillRepeatCount()
-	-- 	max = (endTime * repeatCount) - startTime
-	-- else
-	-- 	max = endTime - startTime
-	-- end
+	if(tradeskill) then
+		if(castbar.previous ~= name) then
+			castbar.recipecount = 1
+			castbar.maxrecipe = GetTradeskillRepeatCount()
+			castbar.duration = start
+		else
+			castbar.recipecount = castbar.recipecount or 1
+			castbar.maxrecipe = castbar.maxrecipe or 1
+			castbar.duration = castbar.duration or start
+		end
+	else
+		castbar.recipecount = nil
+		castbar.maxrecipe = 1
+		castbar.duration = start
+	end

+	castbar.previous = name
+	castbar.tradeskill = tradeskill
 	castbar.castid = castid
-	castbar.duration = GetTime() - startTime
+
+	local max = (endTime - startTime) * castbar.maxrecipe
+
 	castbar.max = max
 	castbar.delay = 0
 	castbar.casting = true
@@ -62,7 +76,7 @@ local UNIT_SPELLCAST_START = function(self, event, unit, spell)

 	if(castbar.Text) then castbar.Text:SetText(text) end
 	if(castbar.Icon) then castbar.Icon:SetTexture(texture) end
-	if(castbar.Time) then castbar.Time:SetText() end
+	if(castbar.Time) then castbar.Time:SetText(repeatCount) end

 	local shield = castbar.Shield
 	if(shield and interrupt) then
@@ -93,7 +107,11 @@ local UNIT_SPELLCAST_FAILED = function(self, event, unit, spellname, _, castid)
 	local castbar = self.Castbar
 	if (castbar.castid ~= castid) then	return end

+	castbar.previous = nil
 	castbar.casting = nil
+	castbar.tradeskill = nil
+	castbar.recipecount = nil
+	castbar.maxrecipe = nil
 	castbar.interrupt = nil
 	castbar:SetValue(0)
 	castbar:Hide()
@@ -109,7 +127,11 @@ local UNIT_SPELLCAST_INTERRUPTED = function(self, event, unit, spellname, _, cas
 	local castbar = self.Castbar
 	if (castbar.castid ~= castid) then	return end

+	castbar.previous = nil
 	castbar.casting = nil
+	castbar.tradeskill = nil
+	castbar.recipecount = nil
+	castbar.maxrecipe = nil
 	castbar.channeling = nil

 	castbar:SetValue(0)
@@ -174,10 +196,28 @@ local UNIT_SPELLCAST_STOP = function(self, event, unit, spellname, _, castid)
 	local castbar = self.Castbar
 	if (castbar.castid ~= castid) then return end

-	castbar.casting = nil
-	castbar.interrupt = nil
-	castbar:SetValue(0)
-	castbar:Hide()
+	if(castbar.tradeskill and castbar.recipecount and castbar.recipecount >= 0) then
+		castbar.recipecount = castbar.recipecount + 1
+		if(castbar.recipecount > castbar.maxrecipe) then
+			castbar.previous = nil
+			castbar.casting = nil
+			castbar.interrupt = nil
+			castbar.tradeskill = nil
+			castbar.recipecount = nil
+			castbar.maxrecipe = nil
+			castbar:SetValue(0)
+			castbar:Hide()
+		end
+	else
+		castbar.previous = nil
+		castbar.casting = nil
+		castbar.interrupt = nil
+		castbar.tradeskill = nil
+		castbar.recipecount = nil
+		castbar.maxrecipe = nil
+		castbar:SetValue(0)
+		castbar:Hide()
+	end

 	if(castbar.PostCastStop) then
 		return castbar:PostCastStop(unit, spellname, castid)
@@ -209,6 +249,9 @@ local UNIT_SPELLCAST_CHANNEL_START = function(self, event, unit, spellname)
 	-- executed or be fully completed by the OnUpdate handler before CHANNEL_START
 	-- is called.
 	castbar.casting = nil
+	castbar.tradeskill = nil
+	castbar.recipecount = nil
+	castbar.maxrecipe = nil
 	castbar.castid = nil

 	castbar:SetMinMaxValues(0, max)
@@ -289,6 +332,8 @@ local UpdateCastingTimeInfo = function(self, duration)
 			else
 				self.Time:SetFormattedText("%.1f|cffff0000-%.1f|r", duration, self.delay)
 			end
+		elseif(self.recipecount and self.recipecount > 0) then
+			self.Time:SetText(self.recipecount .. "/" .. self.maxrecipe)
 		else
 			if(self.CustomTimeText) then
 				self:CustomTimeText(duration)
@@ -307,7 +352,11 @@ local onUpdate = function(self, elapsed)

 	if not (self.casting or self.channeling) then
 		self.unitName = nil
+		self.previous = nil
 		self.casting = nil
+		self.tradeskill = nil
+		self.recipecount = nil
+		self.maxrecipe = nil
 		self.castid = nil
 		self.channeling = nil

@@ -318,9 +367,12 @@ local onUpdate = function(self, elapsed)

 	if(self.casting) then
 		local duration = self.duration + self.lastUpdate
-
 		if(duration >= self.max) then
+			self.previous = nil
 			self.casting = nil
+			self.tradeskill = nil
+			self.recipecount = nil
+			self.maxrecipe = nil
 			self:Hide()

 			if(self.PostCastStop) then self:PostCastStop(self.__owner.unit) end
@@ -379,6 +431,7 @@ local Enable = function(object, unit)
 			object:RegisterEvent("UNIT_SPELLCAST_CHANNEL_START", UNIT_SPELLCAST_CHANNEL_START)
 			object:RegisterEvent("UNIT_SPELLCAST_CHANNEL_UPDATE", UNIT_SPELLCAST_CHANNEL_UPDATE)
 			object:RegisterEvent("UNIT_SPELLCAST_CHANNEL_STOP", UNIT_SPELLCAST_CHANNEL_STOP)
+			--object:RegisterEvent("UPDATE_TRADESKILL_RECAST", UPDATE_TRADESKILL_RECAST)
 		end

 		castbar:SetScript("OnUpdate", castbar.OnUpdate or onUpdate)
@@ -433,6 +486,7 @@ local Disable = function(object, unit)
 		object:UnregisterEvent("UNIT_SPELLCAST_CHANNEL_START", UNIT_SPELLCAST_CHANNEL_START)
 		object:UnregisterEvent("UNIT_SPELLCAST_CHANNEL_UPDATE", UNIT_SPELLCAST_CHANNEL_UPDATE)
 		object:UnregisterEvent("UNIT_SPELLCAST_CHANNEL_STOP", UNIT_SPELLCAST_CHANNEL_STOP)
+		--object:UnregisterEvent("UPDATE_TRADESKILL_RECAST", UPDATE_TRADESKILL_RECAST)

 		castbar:SetScript("OnUpdate", nil)
 	end
diff --git a/Interface/AddOns/SVUI/libs/oUF/elements/health.lua b/Interface/AddOns/SVUI/libs/oUF/elements/health.lua
index b885e78..ecec3b5 100644
--- a/Interface/AddOns/SVUI/libs/oUF/elements/health.lua
+++ b/Interface/AddOns/SVUI/libs/oUF/elements/health.lua
@@ -16,6 +16,8 @@ local Update = function(self, event, unit)

 	local min, max = UnitHealth(unit), UnitHealthMax(unit)
 	local disconnected = not UnitIsConnected(unit)
+	local invisible = ((min == max) or UnitIsDeadOrGhost(unit) or disconnected)
+
 	if health.fillInverted then
 		health:SetReverseFill(true)
 	end
@@ -24,10 +26,14 @@ local Update = function(self, event, unit)

 	if(disconnected) then
 		health:SetValue(max)
+		health.percent = 100
 	else
 		health:SetValue(min)
+		health.percent = (min / max) * 100
 	end

+	health.percent = invisible and 100 or ((min / max) * 100)
+
 	health.disconnected = disconnected

 	if health.frequentUpdates ~= health.__frequentUpdates then
@@ -91,6 +97,10 @@ local Update = function(self, event, unit)
 	if(db and db.gridMode) then
 		health:SetOrientation("VERTICAL")
 	end
+
+	if(health.PostUpdate) then
+		return health.PostUpdate(self, health.percent)
+	end
 end

 local CustomUpdate = function(self, event, unit)
@@ -108,6 +118,8 @@ local CustomUpdate = function(self, event, unit)

 	health:SetMinMaxValues(-max, 0)
 	health:SetValue(-min)
+
+	health.percent = invisible and 100 or ((min / max) * 100)

 	health.disconnected = disconnected

@@ -161,6 +173,10 @@ local CustomUpdate = function(self, event, unit)
 		local current = random(1,max)
 		health:SetValue(-current)
 	end
+
+	if(health.PostUpdate) then
+		return health.PostUpdate(self, health.percent)
+	end
 end

 local Path = function(self, ...)
diff --git a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_GPS/oUF_GPS.lua b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_GPS/oUF_GPS.lua
index 4ae34f1..892aec5 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_GPS/oUF_GPS.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_GPS/oUF_GPS.lua
@@ -4,63 +4,52 @@ assert(oUF, 'oUF not loaded')

 local cos, sin, sqrt2, max, atan2, floor = math.cos, math.sin, math.sqrt(2), math.max, math.atan2, math.floor;
 local tinsert, tremove = table.insert, table.remove;
-local _FRAME, _GPS, _TRACKER, _SWITCH, _ARROW, _SPINNER, _TEXT, _HANDLER;
-local spin, unit;
 local SuperVillain;
+local playerGUID = UnitGUID("player")

-do
-	local function _calc(radius)
-		return 0.5 + cos(radius) / sqrt2, 0.5 + sin(radius) / sqrt2;
-	end
+local function _calc(radius)
+	return 0.5 + cos(radius) / sqrt2, 0.5 + sin(radius) / sqrt2;
+end

-	function spin(texture, angle)
-		local LRx, LRy = _calc(angle + 0.785398163);
-		local LLx, LLy = _calc(angle + 2.35619449);
-		local ULx, ULy = _calc(angle + 3.92699082);
-		local URx, URy = _calc(angle - 0.785398163);
-
-		texture:SetTexCoord(ULx, ULy, LLx, LLy, URx, URy, LRx, LRy);
-	end
+local function spin(texture, angle)
+	local LRx, LRy = _calc(angle + 0.785398163);
+	local LLx, LLy = _calc(angle + 2.35619449);
+	local ULx, ULy = _calc(angle + 3.92699082);
+	local URx, URy = _calc(angle - 0.785398163);
+
+	texture:SetTexCoord(ULx, ULy, LLx, LLy, URx, URy, LRx, LRy);
 end

 local Update = function(self, elapsed)
 	if self.elapsed and self.elapsed > (self.throttle or 0.02) then
-		unit = _FRAME.unit
+		local unit = self.__owner.unit
+
 		if((UnitInParty(unit) or UnitInRaid(unit)) and not UnitIsUnit(unit, "player")) then
-			_SWITCH.Trackable = true
-		else
-			_SWITCH.Trackable = false
-		end
-		if(_SWITCH.Trackable) then
-			if(_TRACKER:IsShown()) then
-				_SWITCH:Hide()
-				if(not SuperVillain) then SuperVillain = SVUI[1] end
-				local distance, angle = SuperVillain:Triangulate("player", unit, true)
-				if((not distance) or (not angle)) then
-					_TRACKER:Hide()
-					_SWITCH:Show()
-				else
-					local out = floor(tonumber(distance))
-					spin(_ARROW, angle)
+			if(not SuperVillain) then SuperVillain = SVUI[1] end
+
+			local distance, angle = SuperVillain:Triangulate("player", unit, true)
+
+			if((not distance) or (not angle)) then
+				self:Hide()
+			else
+				local out = floor(tonumber(distance))
+				if(out > 5) then
 					if(out > 100) then
-						_ARROW:SetVertexColor(1,0.1,0.1)
-						_SPINNER:SetVertexColor(0.8,0.1,0.1,0.5)
+						self.Arrow:SetVertexColor(1,0.1,0.1)
 					elseif(out > 40) then
-						_ARROW:SetVertexColor(1,0.8,0.1)
-						_SPINNER:SetVertexColor(0.8,0.8,0.1,0.5)
-					elseif(out > 5) then
-						_ARROW:SetVertexColor(0.1,1,0.8)
-						_SPINNER:SetVertexColor(0.1,0.8,0.8,0.5)
+						self.Arrow:SetVertexColor(1,0.8,0.1)
 					else
-						_TRACKER:Hide()
-						_SWITCH:Show()
+						self.Arrow:SetVertexColor(0.1,1,0.8)
 					end
-					_TEXT:SetText(out)
+					spin(self.Arrow, angle)
+				else
+					self:Hide()
+					out = ""
 				end
+				if(self.Text) then self.Text:SetText(out) end
 			end
 		else
-			_TRACKER:Hide()
-			_SWITCH:Show()
+			self:Hide()
 		end
 		self.elapsed = 0
 		self.throttle = 0.02
@@ -70,48 +59,36 @@ local Update = function(self, elapsed)
 end

 local function Path(self, ...)
-	return (self.GPS.Override or Update) (self, ...)
+	return (self.Override or Update) (self, ...)
 end

-local function ForceUpdate(element)
-	return Path(element.__owner, 'ForceUpdate')
+local OnEnterFunc = function(self)
+	local unit = self.unit
+	if(not unit or ((UnitInParty(unit) or UnitInRaid(unit)) and not UnitIsUnit(unit, "player"))) then
+		self.GPS:Show()
+	end
 end

-local Enable = function(self)
-	if(self.GPS) then
-		_FRAME 	 = self
-		_GPS 	 = self.GPS
-		_TRACKER = self.GPS.Tracker
-		_SWITCH  = self.GPS.Switch
-		_ARROW	 = self.GPS.Tracker.Arrow
-		_SPINNER = self.GPS.Tracker.Spinner
-		_TEXT	 = self.GPS.Tracker.Text
-		_GPS.__owner 	 = self
-		_GPS.ForceUpdate = ForceUpdate
-
-		--self:RegisterEvent('PLAYER_TARGET_CHANGED', Path)
+local NOOP = function() return end

-		if not _HANDLER then
-			_HANDLER = CreateFrame("Frame")
-			_HANDLER:SetScript("OnUpdate", Update)
-		end
-		_GPS:Show()
+local Enable = function(self, unit)
+	local gps = self.GPS
+	if(gps) then
+		self.GPSHook = OnEnterFunc
+		self:HookScript("OnEnter", self.GPSHook)
+		self.GPS.__owner = self
+		self.GPS:SetScript("OnUpdate", Path)
+		self.GPS:Show()
 		return true
 	end
 end

 local Disable = function(self)
-	if self.GPS then
-		self.GPS.LoopEnabled = nil
-		self.GPS:Hide()
-		--self:UnregisterEvent('PLAYER_TARGET_CHANGED', Path)
-		_FRAME 	 = nil
-		_GPS 	 = nil
-		_TRACKER = nil
-		_SWITCH  = nil
-		_ARROW	 = nil
-		_SPINNER = nil
-		_TEXT	 = nil
+	local gps = self.GPS
+	if(gps) then
+		self.GPSHook = NOOP
+		gps:SetScript("OnUpdate", nil)
+		gps:Hide()
 	end
 end

diff --git a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_HyperCombo/oUF_HyperCombo.lua b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
index f7a0bb8..81ca75b 100644
--- a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
+++ b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_HyperCombo/oUF_HyperCombo.lua
@@ -32,6 +32,12 @@ local function UpdateGuile()
 	end
 end

+local function FivePointsAlarm()
+	HeadsUpAlarm(msg, CombatText_StandardScroll, e.colors.r, e.colors.g, e.colors.b, "sticky");
+	if not CombatText_AddMessage then return end
+	CombatText_AddMessage("5 Points", CombatText_StandardScroll, 0.1, 0.8, 1, "sticky")
+end
+
 local Update = function(self, event, unit)
 	if(unit == 'pet') then return end
 	local bar = self.HyperCombo;
@@ -70,6 +76,9 @@ local Update = function(self, event, unit)
 			if(current > 0) then
 				tracker.Text:SetText(current)
 				tracker.Text:SetTextColor(unpack(TextColors[current]))
+				if(current == 5) then
+					FivePointsAlarm()
+				end
 			elseif(bar.LAST_COMBO_POINTS > 0) then
 				tracker.Text:SetText(bar.LAST_COMBO_POINTS)
 				tracker.Text:SetTextColor(0.5,0.5,1)
diff --git a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
index 139d55f..e4ddda8 100644
--- a/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
+++ b/Interface/AddOns/SVUI/packages/actionbar/SVBar.lua
@@ -764,7 +764,7 @@ do
 		local barVisibility = db.customVisibility;
 		local totalButtons = db.buttons;
 		local max = (isStance and GetNumShapeshiftForms()) or (isPet and 10) or NUM_ACTIONBAR_BUTTONS;
-		local rows = ceil(max  /  cols);
+		local rows = ceil(totalButtons  /  cols);

 		if max < cols then cols = max end
 		if rows < 1 then rows = 1 end
diff --git a/Interface/AddOns/SVUI/packages/chat/SVChat.lua b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
index 5605359..972a295 100644
--- a/Interface/AddOns/SVUI/packages/chat/SVChat.lua
+++ b/Interface/AddOns/SVUI/packages/chat/SVChat.lua
@@ -918,6 +918,7 @@ function MOD:UpdateLocals()
 end

 function MOD:ReLoad()
+	if(not SuperVillain.db.SVChat.enable) then return end
 	self:RefreshChatFrames(true)
 end

diff --git a/Interface/AddOns/SVUI/packages/stats/SVStats.lua b/Interface/AddOns/SVUI/packages/stats/SVStats.lua
index 8bdca1e..4727f5d 100644
--- a/Interface/AddOns/SVUI/packages/stats/SVStats.lua
+++ b/Interface/AddOns/SVUI/packages/stats/SVStats.lua
@@ -247,14 +247,9 @@ end

 do
 	local dataLayout, dataStrings = {}, {"None",KILLING_BLOWS,HONORABLE_KILLS,DEATHS,HONOR,"None","None","None","None",DAMAGE,SHOW_COMBAT_HEALING};
-	dataLayout["TopLeftDataPanel"] = {true,true,true};
-	dataLayout["TopLeftDataPanel"]['left'] = 10;
-	dataLayout["TopLeftDataPanel"]['middle'] = 5;
-	dataLayout["TopLeftDataPanel"]['right'] = 2;
-	dataLayout["TopRightDataPanel"] = {true,true,true};
-	dataLayout["TopRightDataPanel"]['left'] = 4;
-	dataLayout["TopRightDataPanel"]['middle'] = 3;
-	dataLayout["TopRightDataPanel"]['right'] = 11;
+	dataLayout["TopLeftDataPanel"] = {['left'] = 10, ['middle'] = 5, ['right'] = 2};
+	dataLayout["TopRightDataPanel"] = {['left'] = 4, ['middle'] = 3, ['right'] = 11};
+
 	local Stat_OnLeave = function()
 		MOD.tooltip:Hide()
 	end
diff --git a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua
index 302d168..4f4b304 100644
--- a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua
+++ b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua
@@ -1063,7 +1063,20 @@ function MOD:RefreshUnitLayout(frame, template)
 				frame:DisableElement('Range')
 			end
 		end
-	end
+	end
+
+	if(frame.GPS) then
+		if(self.db.gpsLowHealth) then
+			frame.Health.PostUpdate = frame.GPS.LowHealthUpdate
+		else
+			frame.Health.PostUpdate = nil
+		end
+        if(db.gps and not frame:IsElementEnabled("GPS")) then
+            frame:EnableElement("GPS")
+        elseif(not db.gps and frame:IsElementEnabled("GPS")) then
+            frame:DisableElement("GPS")
+        end
+    end
 end
 --[[
 ##########################################################
diff --git a/Interface/AddOns/SVUI/packages/unit/config.lua b/Interface/AddOns/SVUI/packages/unit/config.lua
index 3224079..91888ee 100644
--- a/Interface/AddOns/SVUI/packages/unit/config.lua
+++ b/Interface/AddOns/SVUI/packages/unit/config.lua
@@ -68,7 +68,8 @@ CONFIGS["SVUnit"] = {
 	["auraBarByType"] = true,
 	["auraBarShield"] = true,
 	["castClassColor"] = false,
-	["xrayFocus"] = true,
+	["xrayFocus"] = true,
+	["gpsLowHealth"] = false,
 	["player"] = {
 		["enable"] = true,
 		["width"] = 215,
@@ -268,7 +269,8 @@ CONFIGS["SVUnit"] = {
 		["rangeCheck"] = true,
 		["predict"] = false,
 		["smartAuraDisplay"] = "DISABLED",
-		["middleClickFocus"] = true,
+		["middleClickFocus"] = true,
+		["gps"] = true,
 		["formatting"] = {
 			["power_colored"] = true,
 			["power_type"] = "none",
@@ -1586,7 +1588,8 @@ CONFIGS["SVUnit"] = {
 		["colorOverride"] = "USE_DEFAULT",
 		["gridMode"] = false,
 		["width"] = 70,
-		["height"] = 70,
+		["height"] = 70,
+		["gps"] = true,
 		["formatting"] = {
 			["power_colored"] = true,
 			["power_type"] = "none",
@@ -1761,7 +1764,8 @@ CONFIGS["SVUnit"] = {
 		["colorOverride"] = "USE_DEFAULT",
 		["gridMode"] = false,
 		["width"] = 75,
-		["height"] = 34,
+		["height"] = 34,
+		["gps"] = false,
 		["formatting"] = {
 			["power_colored"] = true,
 			["power_type"] = "none",
@@ -1911,7 +1915,8 @@ CONFIGS["SVUnit"] = {
 		["colorOverride"] = "USE_DEFAULT",
 		["gridMode"] = false,
 		["width"] = 50,
-		["height"] = 30,
+		["height"] = 30,
+		["gps"] = false,
 		["formatting"] = {
 			["power_colored"] = true,
 			["power_type"] = "none",
@@ -2060,7 +2065,8 @@ CONFIGS["SVUnit"] = {
 		["colorOverride"] = "USE_DEFAULT",
 		["gridMode"] = false,
 		["width"] = 50,
-		["height"] = 30,
+		["height"] = 30,
+		["gps"] = false,
 		["formatting"] = {
 			["power_colored"] = true,
 			["power_type"] = "none",
diff --git a/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua b/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
index d9b78a1..abbd830 100644
--- a/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
+++ b/Interface/AddOns/SVUI/packages/unit/elements/castbar.lua
@@ -280,7 +280,9 @@ local CustomTimeText = function(self, value)
 end

 local CustomCastTimeUpdate = function(self, duration)
-	if(self.Time) then
+	if(self.recipecount and self.maxrecipe and self.maxrecipe > 0) then
+		self.Time:SetText(self.recipecount .. "/" .. self.maxrecipe)
+	elseif(self.Time) then
 		if(self.delay ~= 0) then
 			if(self.CustomDelayText) then
 				self:CustomDelayText(duration)
@@ -315,10 +317,13 @@ local CustomCastBarUpdate = function(self, elapsed)

 	if not (self.casting or self.channeling) then
 		self.unitName = nil
+		self.previous = nil
 		self.casting = nil
 		self.castid = nil
 		self.channeling = nil
-
+		self.tradeskill = nil
+		self.recipecount = nil
+		self.maxrecipe = nil
 		self:SetValue(1)
 		self:Hide()
 		return
@@ -343,7 +348,11 @@ local CustomCastBarUpdate = function(self, elapsed)
 		local duration = self.duration + self.lastUpdate

 		if(duration >= self.max) then
+			self.previous = nil
 			self.casting = nil
+			self.tradeskill = nil
+			self.recipecount = nil
+			self.maxrecipe = nil
 			self:Hide()

 			if(self.PostCastStop) then self:PostCastStop(self.__owner.unit) end
diff --git a/Interface/AddOns/SVUI/packages/unit/elements/misc.lua b/Interface/AddOns/SVUI/packages/unit/elements/misc.lua
index d99e8ef..8916759 100644
--- a/Interface/AddOns/SVUI/packages/unit/elements/misc.lua
+++ b/Interface/AddOns/SVUI/packages/unit/elements/misc.lua
@@ -264,6 +264,48 @@ function MOD:RaidRoleUpdate()
 		end
 	end
 end
+
+local LowHealthFunc = function(self, percent)
+	if(percent <= 50) then
+		self.GPS:Show()
+	else
+		self.GPS:Hide()
+	end
+end
+
+function MOD:CreateGPS(frame, centered)
+	if not frame then return end
+	local size = centered and 16 or 32
+	local gps = CreateFrame("Frame", nil, frame)
+	gps:Size(size, size)
+
+	if(centered) then
+		gps:Point("CENTER", frame, "CENTER", 0, 0)
+	else
+		gps:Point("TOPRIGHT", frame, "TOPRIGHT", 0, 0)
+		gps.Text = gps:CreateFontString(nil, "OVERLAY")
+		gps.Text:SetPoint("TOPLEFT", frame, "TOPLEFT", 4, 0)
+		gps.Text:SetPoint("BOTTOMRIGHT", gps, "BOTTOMLEFT", -4, 0)
+		gps.Text:SetFont(SuperVillain.Media.font.roboto, 14, "OUTLINE")
+		gps.Text:SetJustifyH("RIGHT")
+	    gps.Text:SetJustifyV("MIDDLE")
+		gps.Text:SetTextColor(1, 1, 1, 0.75)
+	end
+
+	gps.Arrow = gps:CreateTexture(nil, "OVERLAY", nil, -2)
+	gps.Arrow:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Doodads\GPS-ARROW]])
+	gps.Arrow:Size(size, size)
+	gps.Arrow:SetPoint("CENTER", gps, "CENTER", 0, 0)
+	gps.Arrow:SetVertexColor(0.1, 0.8, 0.8)
+	gps.Arrow:SetAlpha(0.7)
+
+	gps.OnlyLowHealth = false
+	gps.LowHealthUpdate = LowHealthFunc
+
+	gps:Hide()
+
+	return gps
+end
 --[[
 ##########################################################
 PLAYER ONLY COMPONENTS
@@ -362,105 +404,6 @@ end
 TARGET ONLY COMPONENTS
 ##########################################################
 ]]--
-local function GPS_OnEnter(self)
-	self:SetAlpha(1)
-	GameTooltip:SetOwner(self, "ANCHOR_TOPLEFT", 0, 4)
-	if(not self.Trackable) then
-  		self.Icon:SetVertexColor(1, 0.5, 0)
-  		GameTooltip:ClearLines()
-		GameTooltip:AddLine("Can not track this unit", 1, 1, 1)
-  	else
-  		self.Icon:SetVertexColor(0.1, 1, 0.5)
-		GameTooltip:ClearLines()
-		GameTooltip:AddLine("Start tracking your target", 1, 1, 1)
-  	end
-	GameTooltip:Show()
-end
-
-local function GPS_OnLeave(self)
-	self:SetAlpha(0.25)
-  	self.Icon:SetVertexColor(0.1, 0.1, 0.1)
-  	GameTooltip:Hide()
-end
-
-local function GPS_OnMouseDown(self)
-	if(not self.Trackable) then
-  		self.Icon:SetVertexColor(1, 0, 0)
-  	end
-end
-
-local function GPS_OnMouseUp(self)
-  	if(not self.Trackable) then
-  		self.Icon:SetVertexColor(1, 0.5, 0)
-  	else
-  		self.Icon:SetVertexColor(0.1, 1, 0.5)
-  		self:GetParent().Tracker:Show()
-  	end
-end
-
-function MOD:CreateGPS(frame)
-	if not frame then return end
-
-	local gps = CreateFrame("Frame", nil, frame)
-	gps:Size(50, 50)
-	gps:Point("BOTTOMLEFT", frame, "BOTTOMRIGHT", 6, 0)
-	gps:EnableMouse(false)
-
-	local tracker = CreateFrame("Frame", nil, gps)
-	tracker:SetAllPoints(gps)
-	tracker:SetFrameLevel(gps:GetFrameLevel()  +  2)
-
-	local border = tracker:CreateTexture(nil, "BORDER")
-	border:SetAllPoints(tracker)
-	border:SetTexture([[Interface\Addons\SVUI\assets\artwork\Doodads\GPS-BORDER]])
-	border:SetGradient(unpack(SuperVillain.Media.gradient.dark))
-
-	tracker.Arrow = tracker:CreateTexture(nil, "OVERLAY", nil, -2)
-	tracker.Arrow:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Doodads\GPS-ARROW]])
-	tracker.Arrow:Size(50, 50)
-	tracker.Arrow:SetPoint("CENTER", tracker, "CENTER", 0, 0)
-	tracker.Arrow:SetVertexColor(0.1, 0.8, 0.8)
-
-	tracker.Text = tracker:CreateFontString(nil, "OVERLAY")
-	tracker.Text:SetAllPoints(tracker)
-	tracker.Text:SetFont(SuperVillain.Media.font.roboto, 14, "OUTLINE")
-	tracker.Text:SetTextColor(1, 1, 1, 0.75)
-
-	tracker.Spinner = tracker:CreateTexture(nil, "ARTWORK", nil, 2)
-	tracker.Spinner:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Doodads\GPS-ANIMATION]])
-	tracker.Spinner:Size(50, 50)
-	tracker.Spinner:SetPoint("CENTER", tracker, "CENTER", 0, 0)
-
-	SuperVillain.Animate:Orbit(tracker.Spinner, 8, true)
-
-	local switch = CreateFrame("Frame", nil, gps)
-	switch:SetAllPoints(gps)
-	switch:EnableMouse(true)
-
-	switch.Icon = switch:CreateTexture(nil, "BACKGROUND")
-	switch.Icon:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Doodads\GPS-OPEN]])
-	switch.Icon:Size(32, 32)
-	switch.Icon:SetPoint("BOTTOMLEFT", switch, "BOTTOMLEFT", 0, 0)
-	switch.Icon:SetVertexColor(0.1, 0.1, 0.1)
-
-	switch.Trackable = false;
-
-	switch:SetScript("OnEnter", GPS_OnEnter)
-	switch:SetScript("OnLeave", GPS_OnLeave)
-	switch:SetScript("OnMouseDown", GPS_OnMouseDown)
-	switch:SetScript("OnMouseUp", GPS_OnMouseUp)
-
-	switch:SetAlpha(0.25)
-
-	gps.Tracker = tracker
-	gps.Switch = switch
-
-	gps.Tracker:Hide()
-	gps:Hide()
-
-	return gps
-end
-
 function MOD:CreateXRay(frame)
 	local xray=CreateFrame("BUTTON","XRayFocus",frame,"SecureActionButtonTemplate")
 	xray:EnableMouse(true)
@@ -591,7 +534,7 @@ local OverrideUpdate = function(self, event, unit)
 	end

 	if(hp.absorbBar) then
-		hp.absorbBar:SetMinMaxValues(barMin, barMax * 0.5)
+		hp.absorbBar:SetMinMaxValues(barMin, barMax)
 		hp.absorbBar:SetValue(totalAbsorb)
 		hp.absorbBar:SetAllPoints(hbar)
 		hp.absorbBar:SetReverseFill(not reversed)
diff --git a/Interface/AddOns/SVUI/packages/unit/frames.lua b/Interface/AddOns/SVUI/packages/unit/frames.lua
index 705da63..68c1d42 100644
--- a/Interface/AddOns/SVUI/packages/unit/frames.lua
+++ b/Interface/AddOns/SVUI/packages/unit/frames.lua
@@ -391,12 +391,6 @@ local UpdateTargetFrame = function(self)
         end
     end

-    do
-        local gps = self.GPS;
-        if not self:IsElementEnabled("GPS") then
-            self:EnableElement("GPS")
-        end
-    end
     self:UpdateAllElements()
 end
 UPDATERS["target"] = UpdateTargetFrame
@@ -1355,6 +1349,7 @@ CONSTRUCTORS["raid10"] = function(self, unit)
     self.Buffs = MOD:CreateBuffs(self, key)
     self.Debuffs = MOD:CreateDebuffs(self, key)
     self.AuraWatch = MOD:CreateAuraWatch(self, key)
+    self.GPS = MOD:CreateGPS(self, true)
     return SetRaidFrame(self)
 end

@@ -1369,6 +1364,7 @@ CONSTRUCTORS["raid25"] = function(self, unit)
     self.Buffs = MOD:CreateBuffs(self, key)
     self.Debuffs = MOD:CreateDebuffs(self, key)
     self.AuraWatch = MOD:CreateAuraWatch(self, key)
+    self.GPS = MOD:CreateGPS(self, true)
     return SetRaidFrame(self)
 end

@@ -1383,6 +1379,7 @@ CONSTRUCTORS["raid40"] = function(self, unit)
     self.Buffs = MOD:CreateBuffs(self, key)
     self.Debuffs = MOD:CreateDebuffs(self, key)
     self.AuraWatch = MOD:CreateAuraWatch(self, key)
+    self.GPS = MOD:CreateGPS(self, true)
     return SetRaidFrame(self)
 end
 --[[
@@ -1607,6 +1604,7 @@ CONSTRUCTORS["party"] = function(self, unit)
         self.RaidIcon = MOD:CreateRaidIcon(self)
         self.ReadyCheck = MOD:CreateReadyCheckIcon(self)
         self.HealPrediction = MOD:CreateHealPrediction(self)
+        self.GPS = MOD:CreateGPS(self, true)

         local shadow = CreateFrame("Frame", nil, self)
         shadow:SetFrameLevel(1)
diff --git a/Interface/AddOns/SVUI/system/installer.lua b/Interface/AddOns/SVUI/system/installer.lua
index 8cc9918..3122f2d 100644
--- a/Interface/AddOns/SVUI/system/installer.lua
+++ b/Interface/AddOns/SVUI/system/installer.lua
@@ -261,6 +261,7 @@ local function initChat(mungs)
 	ChatFrame_AddMessageGroup(ChatFrame1, "COMBAT_XP_GAIN")
 	ChatFrame_AddMessageGroup(ChatFrame1, "COMBAT_HONOR_GAIN")
 	ChatFrame_AddMessageGroup(ChatFrame1, "COMBAT_GUILD_XP_GAIN")
+
 	ChatFrame_RemoveAllMessageGroups(ChatFrame3)
 	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_FACTION_CHANGE")
 	ChatFrame_AddMessageGroup(ChatFrame3, "SKILL")
@@ -269,7 +270,9 @@ local function initChat(mungs)
 	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_XP_GAIN")
 	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_HONOR_GAIN")
 	ChatFrame_AddMessageGroup(ChatFrame3, "COMBAT_GUILD_XP_GAIN")
+
 	ChatFrame_AddChannel(ChatFrame1, GENERAL)
+
 	ToggleChatColorNamesByClassGroup(true, "SAY")
 	ToggleChatColorNamesByClassGroup(true, "EMOTE")
 	ToggleChatColorNamesByClassGroup(true, "YELL")
@@ -298,9 +301,11 @@ local function initChat(mungs)
 	ToggleChatColorNamesByClassGroup(true, "CHANNEL9")
 	ToggleChatColorNamesByClassGroup(true, "CHANNEL10")
 	ToggleChatColorNamesByClassGroup(true, "CHANNEL11")
+
 	ChangeChatColor("CHANNEL1", 195 / 255, 230 / 255, 232 / 255)
 	ChangeChatColor("CHANNEL2", 232 / 255, 158 / 255, 121 / 255)
 	ChangeChatColor("CHANNEL3", 232 / 255, 228 / 255, 121 / 255)
+
 	if not mungs then
 		if SuperVillain.Chat then
 			SuperVillain.Chat:ReLoad(true)
diff --git a/Interface/AddOns/SVUI/system/system.lua b/Interface/AddOns/SVUI/system/system.lua
index b046d07..bb98d27 100644
--- a/Interface/AddOns/SVUI/system/system.lua
+++ b/Interface/AddOns/SVUI/system/system.lua
@@ -746,7 +746,6 @@ function SuperVillain:Load()
 	self:UIScale();
 	self:RefreshSystemFonts();
 	self:LoadSystemAlerts();
-	self.Registry:PreLoadPackages();

 	self.UIParent:RegisterEvent('PLAYER_REGEN_DISABLED');
 	self.AddonLoaded = true
diff --git a/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.lua b/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.lua
index a808366..094a800 100644
--- a/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.lua
+++ b/Interface/AddOns/SVUI_ArtOfWar/SVUI_ArtOfWar.lua
@@ -259,6 +259,7 @@ function PLUGIN:ResetLogs()
 	self.SummaryWindow:Clear();
 	self.LogWindow:Clear();
 	self.TitleWindow:AddMessage(("Scanning %s"):format(ACTIVE_ZONE), 1, 1, 0);
+	SVUI_AoWLogsClear:Show()
 	local stored = SVAOW_Cache;
 	local amount = 0
 	for _,data in pairs(stored) do
@@ -270,6 +271,47 @@ function PLUGIN:ResetLogs()
 	collectgarbage("collect")
 end

+function PLUGIN:SwitchToLogs()
+	if(not AoWLogs:IsShown()) then AoWLogs:Show() end
+	self.TitleWindow:Clear();
+	self.SummaryWindow:Clear();
+	self.LogWindow:Clear();
+	self.TitleWindow:AddMessage(("Scanning %s"):format(ACTIVE_ZONE), 1, 1, 0);
+	SVUI_AoWLogsClear:Show()
+	local stored = SVAOW_Cache;
+	local amount = 0
+	for _,data in pairs(stored) do
+		if type(data) == "table" and data.name and data.class then
+			amount = amount + 1;
+		end
+	end
+	self.SummaryWindow:AddMessage(("You Have |cffff5500%s|r Mortal Enemies"):format(amount), 0.8, 0.8, 0.8);
+	for _,data in pairs(EnemyCache) do
+		if type(data) == "table" and data.name and data.class and data.race then
+			local hex = ("%s - %s %s"):format(data.name, data.race, data.class)
+			self.LogWindow:AddMessage(hex, data.colors.r, data.colors.g, data.colors.b);
+		end
+	end
+end
+
+function PLUGIN:SwitchToBG()
+	if(self.InPVP) then
+		if(AoWLogs:IsShown()) then AoWLogs:Hide() end
+	else
+		if(not AoWLogs:IsShown()) then AoWLogs:Show() end
+		self.TitleWindow:Clear();
+		self.SummaryWindow:Clear();
+		self.LogWindow:Clear();
+		self.TitleWindow:AddMessage("Scanning Paused", 1, 0.1, 0);
+		self.SummaryWindow:AddMessage(ACTIVE_ZONE, 1, 0.75, 0);
+		SVUI_AoWLogsClear:Hide()
+		self.LogWindow:AddMessage(" ", 1, 1, 1);
+		self.LogWindow:AddMessage(" ", 1, 1, 1);
+		self.LogWindow:AddMessage("The Enenmy Scanner Will Resume", 0.8, 0.8, 0.8);
+		self.LogWindow:AddMessage("When You Leave This BattleGround", 0.8, 0.8, 0.8);
+	end
+end
+
 function PLUGIN:ScannerLog(enemy)
 	if(not enemy.name or not enemy.race or not enemy.class) then return end
     local hex = ("%s - %s %s"):format(enemy.name, enemy.race, enemy.class)
@@ -307,7 +349,6 @@ function PLUGIN:UpdateCommunicator()
 				self.DockButton:SaveColors("yellow", "yellow", true)
 				self.DockButton.icon:SetTexture(ICON_FILE)
 				self.DockButton.Scanner:Hide()
-				AoWLogs:Hide()
 				self.Scanning = false
 			end
 		end
@@ -327,8 +368,9 @@ function PLUGIN:UpdateCommunicator()
 		self.DockButton:SaveColors("special", "icon", false)
 		self.DockButton.icon:SetTexture(0,0,0,0)
 		self.DockButton.Scanner:Show()
-		AoWLogs:Show()
 		self.Scanning = true
+
+		self:SwitchToLogs()
 	end
 end

@@ -354,8 +396,12 @@ function PLUGIN:UpdateZoneStatus()
 			PLUGIN.Scanning = false
 		elseif (not zonePvP or (zonePvP == "friendly") or (not UnitIsPVP("player"))) then
 			PLUGIN.Scanning = false
-		elseif(instanceType == "pvp" and not PLUGIN.InPVP and PLUGIN.Scanning == true) then
-			PLUGIN:UpdateCommunicator()
+		elseif(instanceType == "pvp") then
+			PLUGIN:SwitchToBG()
+			PLUGIN.Scanning = false
+			if(not PLUGIN.InPVP) then
+				PLUGIN:UpdateCommunicator()
+			end
 		end
 	end
 end
@@ -458,18 +504,29 @@ function PLUGIN:TheyGotMe()
 end

 local Registry_OnEvent = function(self, event, ...)
-	if(event == "PLAYER_TARGET_CHANGED") then
-		PLUGIN:TargetChanged()
+	if(event == "PLAYER_REGEN_ENABLED") then
+		PLUGIN.HitBy = false;
 	elseif(event == "COMBAT_LOG_EVENT_UNFILTERED") then
 		PLUGIN:CombatLogScanner(...)
-	elseif(event == "PLAYER_ENTERING_WORLD" or event == "UPDATE_BATTLEFIELD_SCORE") then
-		PLUGIN:UpdateCommunicator()
-	elseif(event == "PLAYER_DEAD") then
-		PLUGIN:TheyGotMe()
-	elseif(event == "PLAYER_REGEN_ENABLED") then
-		PLUGIN.HitBy = false;
 	else
-		PLUGIN:UpdateZoneStatus()
+		local inInstance, instanceType = IsInInstance()
+		if(instanceType == "pvp") then
+			PLUGIN.Scanning = false
+		end
+
+		if(event == "PLAYER_ENTERING_WORLD" or event == "UPDATE_BATTLEFIELD_SCORE") then
+			PLUGIN:UpdateCommunicator()
+		elseif(event == "PLAYER_TARGET_CHANGED") then
+			if(instanceType ~= "pvp") then
+				PLUGIN:TargetChanged()
+			end
+		elseif(event == "PLAYER_DEAD") then
+			if(instanceType ~= "pvp") then
+				PLUGIN:TheyGotMe()
+			end
+		else
+			PLUGIN:UpdateZoneStatus()
+		end
 	end
 end

@@ -527,7 +584,7 @@ local function MakeLogWindow()
     title.divider:SetPoint("BOTTOMRIGHT")
     title.divider:SetHeight(1)

-    local clearcount = CreateFrame("Button", nil, AoWLogs)
+    local clearcount = CreateFrame("Button", "SVUI_AoWLogsClear", AoWLogs)
     clearcount:SetPoint("TOPLEFT", title, "BOTTOMLEFT",0,0)
 	clearcount:SetPoint("BOTTOMRIGHT", title, "BOTTOMRIGHT",0,-20)
 	clearcount:SetButtonTemplate(true)
@@ -535,11 +592,12 @@ local function MakeLogWindow()
 	clearcount:SetScript("OnLeave", LogClear_OnLeave)
 	clearcount:SetScript("OnClick", LogClear_OnClick)

-    local summary = CreateFrame("ScrollingMessageFrame", nil, clearcount)
+    local summary = CreateFrame("ScrollingMessageFrame", nil, AoWLogs)
 	summary:SetSpacing(4)
 	summary:SetClampedToScreen(false)
 	summary:SetFrameStrata("MEDIUM")
-	summary:SetAllPoints(clearcount)
+	summary:SetPoint("TOPLEFT", title, "BOTTOMLEFT",0,0)
+	summary:SetPoint("BOTTOMRIGHT", title, "BOTTOMRIGHT",0,-20)
 	summary:SetFontTemplate(SuperVillain.Media.font.system, 16, "OUTLINE", "CENTER", "MIDDLE")
 	summary:SetMaxLines(1)
 	summary:EnableMouse(false)
diff --git a/Interface/AddOns/SVUI_ConfigOMatic/modules/dock.lua b/Interface/AddOns/SVUI_ConfigOMatic/modules/dock.lua
index e26a53f..d9fda7e 100644
--- a/Interface/AddOns/SVUI_ConfigOMatic/modules/dock.lua
+++ b/Interface/AddOns/SVUI_ConfigOMatic/modules/dock.lua
@@ -129,7 +129,7 @@ SuperVillain.Options.args.SVDock.args["leftDockGroup"] = {
 				max = 1200,
 				step = 1,
 				width = "full",
-				get = function()return SuperVillain.db.SVDock.dockStatWidth;end,
+				get = function()return SuperVillain.db.SVDock.dockStatWidth end,
 				set = function(key,value)
 					MOD:ChangeDBVar(value,key[#key]);
 					MOD:UpdateSuperDock(true)