added player death events
René Welbers [02-01-16 - 16:00]
added player death events
cleanup code
diff --git a/PanicModeCombatAnalyzer.lua b/PanicModeCombatAnalyzer.lua
index 577261c..1a6dc87 100644
--- a/PanicModeCombatAnalyzer.lua
+++ b/PanicModeCombatAnalyzer.lua
@@ -2,7 +2,7 @@
PanicModeCombatAnalyzer = PanicModeCombatAnalyzer or {}
PanicModeCombatAnalyzer.name = 'PanicModeCombatAnalyzer'
-PanicModeCombatAnalyzer.version = '1.0.6'
+PanicModeCombatAnalyzer.version = '1.0.7'
PanicModeCombatAnalyzer.versionDB = 2
PanicModeCombatAnalyzer.loaded = false
PanicModeCombatAnalyzer.author = 'silentgecko, deevilius'
@@ -43,6 +43,8 @@ function PanicModeCombatAnalyzer.Initialize(_, addonName)
self.cleanUp()
+ EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_DEAD, self.onDeath)
+
CALLBACK_MANAGER:RegisterCallback("FTC_NewDamage", self.addDamage)
end
@@ -103,22 +105,43 @@ function PanicModeCombatAnalyzer.addDamage(damage)
if damage['result'] == ACTION_RESULT_HEAL or damage['result'] == ACTION_RESULT_CRITICAL_HEAL or damage['result'] == ACTION_RESULT_HOT_TICK or damage['result'] == ACTION_RESULT_HOT_TICK_CRITICAL then
local currentData = data[lastSaveTS]['healing'][damage['target']] or {}
table.insert(currentData, damageData)
- data[lastSaveTS]['healing'][damage['target']] = currentData
+ if next(currentData) ~=nil then
+ data[lastSaveTS]['healing'][damage['target']] = currentData
+ end
end
else
--filter unwanted stuff
if damage['result'] == ACTION_RESULT_DAMAGE or damage['result'] == ACTION_RESULT_CRITICAL_DAMAGE or damage['result'] == ACTION_RESULT_DOT_TICK or damage['result'] == ACTION_RESULT_DOT_TICK_CRITICAL then
local currentData = data[lastSaveTS]['damage'][damage['target']] or {}
table.insert(currentData, damageData)
- data[lastSaveTS]['damage'][damage['target']] = currentData
+ if next(currentData) ~=nil then
+ data[lastSaveTS]['damage'][damage['target']] = currentData
+ end
end
end
- data[lastSaveTS]['group'] = self.getGroup()
- data[lastSaveTS]['trial'] = self.getTrial()
+ -- 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]
+ end
+ end
+end
- self.savedVariables.data[lastSaveTS] = data[lastSaveTS]
+-- player death / revive
+function PanicModeCombatAnalyzer.onDeath(event)
+ local self = PanicModeCombatAnalyzer
+ local timeStamp = GetTimeStamp()
+ local data = self.savedVariables.data or {}
+ data[timeStamp] = data[timeStamp] or {}
+ if (event == EVENT_PLAYER_DEAD) then -- player died
+ data[timeStamp]['event'] = 'died'
+ else -- player lives again
+ data[timeStamp]['event'] = 'revive'
end
+ self.savedVariables.data[timeStamp] = data[timeStamp]
end
-- get group
diff --git a/PanicModeCombatAnalyzer.txt b/PanicModeCombatAnalyzer.txt
index 0653b88..97111d9 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.6
+## Version: 1.0.7
## APIVersion: 100013
## SavedVariables: PMCAVars
## OptionalDependsOn: FoundryTacticalCombat