refactored event storing
René Welbers [02-02-16 - 17:35]
diff --git a/PanicModeCombatAnalyzer.lua b/PanicModeCombatAnalyzer.lua
index 9f5aecb..95ddae7 100644
--- a/PanicModeCombatAnalyzer.lua
+++ b/PanicModeCombatAnalyzer.lua
@@ -2,7 +2,7 @@
PanicModeCombatAnalyzer = PanicModeCombatAnalyzer or {}
PanicModeCombatAnalyzer.name = 'PanicModeCombatAnalyzer'
-PanicModeCombatAnalyzer.version = '1.0.8'
+PanicModeCombatAnalyzer.version = '1.0.9'
PanicModeCombatAnalyzer.versionDB = 2
PanicModeCombatAnalyzer.loaded = false
PanicModeCombatAnalyzer.author = 'silentgecko, deevilius'
@@ -43,11 +43,35 @@ function PanicModeCombatAnalyzer.Initialize(_, addonName)
self.cleanUp()
+ -- death/alive/rezz
EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_DEAD, self.onDeath)
+ EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_ALIVE, self.onAlive)
+ EVENT_MANAGER:RegisterForEvent(self.name, EVENT_RESURRECT_REQUEST, self.onRezz)
+
+ --combat state
+ EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_COMBAT_STATE, self.OnPlayerCombatState)
+
+ -- group change
+ EVENT_MANAGER:RegisterForEvent(self.name, EVENT_GROUP_UPDATE, self.onGroupChange)
+ EVENT_MANAGER:RegisterForEvent(self.name, EVENT_GROUP_MEMBER_JOINED, self.onGroupChange)
+ EVENT_MANAGER:RegisterForEvent(self.name, EVENT_GROUP_MEMBER_LEFT, self.onGroupChange)
CALLBACK_MANAGER:RegisterCallback("FTC_NewDamage", self.addDamage)
end
+-- fight status
+function PanicModeCombatAnalyzer.OnPlayerCombatState(_, inCombat)
+ local self = PanicModeCombatAnalyzer
+ local timeStamp = GetTimeStamp()
+ local data = self.savedVariables.data or {}
+
+ data[timeStamp] = data[timeStamp] or {}
+ data[timeStamp]['event'] = data[timeStamp]['event'] or {}
+ table.insert(data[timeStamp]['event'], {combat = inCombat})
+
+ self.savedVariables.data[timeStamp] = data[timeStamp]
+end
+
-- cleanup
function PanicModeCombatAnalyzer.cleanUp()
local self = PanicModeCombatAnalyzer
@@ -121,7 +145,6 @@ function PanicModeCombatAnalyzer.addDamage(damage)
-- only store, when we have damage or healing
if next(data[lastSaveTS]['damage']) ~= nil or next(data[lastSaveTS]['healing']) ~= nil then
- data[lastSaveTS]['group'] = self.getGroup()
data[lastSaveTS]['trial'] = self.getTrial()
self.savedVariables.data[lastSaveTS] = data[lastSaveTS]
@@ -136,13 +159,54 @@ function PanicModeCombatAnalyzer.onDeath(event)
local data = self.savedVariables.data or {}
data[timeStamp] = data[timeStamp] or {}
if (event == EVENT_PLAYER_DEAD) then -- player died
- data[timeStamp]['event'] = 'died'
+ data[timeStamp]['event'] = data[timeStamp]['event'] or {}
+ table.insert(data[timeStamp]['event'], {death = true})
else -- player lives again
- data[timeStamp]['event'] = 'revive'
+ data[timeStamp]['event'] = data[timeStamp]['event'] or {}
+ table.insert(data[timeStamp]['event'], {revive = true})
end
self.savedVariables.data[timeStamp] = data[timeStamp]
end
+-- player alive
+function PanicModeCombatAnalyzer.onAlive(event)
+ local self = PanicModeCombatAnalyzer
+ local timeStamp = GetTimeStamp()
+ local data = self.savedVariables.data or {}
+
+ data[timeStamp] = data[timeStamp] or {}
+ data[timeStamp]['event'] = data[timeStamp]['event'] or {}
+ table.insert(data[timeStamp]['event'], {alive = true})
+
+ self.savedVariables.data[timeStamp] = data[timeStamp]
+end
+
+-- group change
+function PanicModeCombatAnalyzer.onGroupChange(event)
+ local self = PanicModeCombatAnalyzer
+ local timeStamp = GetTimeStamp()
+ local data = self.savedVariables.data or {}
+
+ data[timeStamp] = data[timeStamp] or {}
+ data[timeStamp]['event'] = data[timeStamp]['event'] or {}
+ table.insert(data[timeStamp]['event'], {group = self.getGroup()})
+
+ self.savedVariables.data[timeStamp] = data[timeStamp]
+end
+
+-- player rezz
+function PanicModeCombatAnalyzer.onRezz(event, requesterCharacterName, timeLeftToAccept)
+ local self = PanicModeCombatAnalyzer
+ local timeStamp = GetTimeStamp()
+ local data = self.savedVariables.data or {}
+
+ data[timeStamp] = data[timeStamp] or {}
+ data[timeStamp]['event'] = data[timeStamp]['event'] or {}
+
+ table.insert(data[timeStamp]['event'], {rezz = zo_strformat("<<!aC:1>>", requesterCharacterName)})
+ self.savedVariables.data[timeStamp] = data[timeStamp]
+end
+
-- get group
function PanicModeCombatAnalyzer.getGroup()
local self = PanicModeCombatAnalyzer
diff --git a/PanicModeCombatAnalyzer.txt b/PanicModeCombatAnalyzer.txt
index abc62fb..284aa19 100644
--- a/PanicModeCombatAnalyzer.txt
+++ b/PanicModeCombatAnalyzer.txt
@@ -1,7 +1,7 @@
## Title: |cEFEBBEPanic Mode Combat Analyzer|r
## Description: Saves your dps during fight, based on FTC DPS Meter.
## Author: |c009ad6silentgecko|r, deevilius
-## Version: 1.0.8
+## Version: 1.0.9
## APIVersion: 100013
## SavedVariables: PMCAVars
## OptionalDependsOn: FoundryTacticalCombat