added saving of group and cleaned up code

René Welbers [01-27-16 - 13:29]
added saving of group and cleaned up code
Filename
PanicModeCombatAnalyzer.lua
diff --git a/PanicModeCombatAnalyzer.lua b/PanicModeCombatAnalyzer.lua
index 63dcc32..730dcc8 100644
--- a/PanicModeCombatAnalyzer.lua
+++ b/PanicModeCombatAnalyzer.lua
@@ -14,9 +14,9 @@ PanicModeCombatAnalyzer.variables = {
     trials = {},
 }
 PanicModeCombatAnalyzer.tempVars = {
-    lastSave = 0,
-    inFight = false,
-    lastDps = 0,
+    lastSave     = 0,
+    inFight      = false,
+    lastDps      = 0,
     lastDpsCount = 0,
     trialRunning = false,
     trialId      = 0,
@@ -26,7 +26,7 @@ PanicModeCombatAnalyzer.tempVars = {
 FTC = _G['FTC']

 ---------Passing saved variables to the labels at initialize-------
-function PanicModeCombatAnalyzer.Initialize(event, addonName)
+function PanicModeCombatAnalyzer.Initialize(_, addonName)
     local self = PanicModeCombatAnalyzer

     if addonName ~= self.name then return end
@@ -42,13 +42,16 @@ function PanicModeCombatAnalyzer.Initialize(event, addonName)
     EVENT_MANAGER:RegisterForEvent(self.name .. "_TRIAL_STOP", EVENT_RAID_TRIAL_COMPLETE, self.saveTrials)
     EVENT_MANAGER:RegisterForEvent(self.name .. "_TRIAL_STOP", EVENT_RAID_TRIAL_FAILED, self.saveTrials)
     EVENT_MANAGER:RegisterForEvent(self.name .. "_TRIAL_STOP_GROUP", EVENT_GROUP_MEMBER_LEFT, self.saveTrialsFromGroup)
+    EVENT_MANAGER:RegisterForEvent(self.name .. "_GROUP_CHANGE", EVENT_GROUP_MEMBER_JOINED, self.saveGroup)
+    EVENT_MANAGER:RegisterForEvent(self.name .. "_GROUP_CHANGE", EVENT_GROUP_MEMBER_LEFT, self.saveGroup)
+    EVENT_MANAGER:RegisterForEvent(self.name .. "_GROUP_CHANGE", EVENT_GROUP_UPDATE, self.saveGroup)
 end

-function PanicModeCombatAnalyzer.OnPlayerCombatState(event, inCombat)
+function PanicModeCombatAnalyzer.OnPlayerCombatState(_, inCombat)
     PanicModeCombatAnalyzer.tempVars.inFight = inCombat
 end

-function PanicModeCombatAnalyzer.saveTrials(event, raidName)
+function PanicModeCombatAnalyzer.saveTrials(event)
     local self         = PanicModeCombatAnalyzer
     local timeStamp    = GetTimeStamp()
     local currentRaid  = GetCurrentParticipatingRaidId()
@@ -77,6 +80,28 @@ function PanicModeCombatAnalyzer.saveTrialsFromGroup(_, _, reason)
     end
 end

+function PanicModeCombatAnalyzer.saveGroup()
+    local self      = PanicModeCombatAnalyzer
+    local timeStamp = GetTimeStamp()
+    local groupSize = GetGroupSize()
+    local group     = {}
+
+    -- iterate over group
+    if groupSize > 0 then
+        self.savedVariables.groups[timeStamp] = self.savedVariables.groups[timeStamp] or {}
+        for i = 1, groupSize do
+            local unitTag = GetGroupUnitTagByIndex(i)
+            if (DoesUnitExist(unitTag)) then
+                local charName = zo_strformat("<<!aC:1>>", GetUnitName(unitTag))
+                table.insert(group, charName)
+            end
+        end
+        self.savedVariables.groups[timeStamp] = group
+        self.debug('saved grp', self.savedVariables.groups[timeStamp])
+    end
+
+end
+
 --[[
  * Overwrite from origin FTC
  * Update the mini DPS meter