diff --git a/PM_CA.lua b/PM_CA.lua deleted file mode 100644 index 0fb3c54..0000000 --- a/PM_CA.lua +++ /dev/null @@ -1,107 +0,0 @@ - -PanicModeCombatAnalyzer = PanicModeCombatAnalyzer or {} - -PanicModeCombatAnalyzer.name = 'PanicModeCombatAnalyzer' -PanicModeCombatAnalyzer.version = '1.0.1' -PanicModeCombatAnalyzer.versionDB = 1 -PanicModeCombatAnalyzer.loaded = false -PanicModeCombatAnalyzer.author = 'silentgecko, deevilius' -PanicModeCombatAnalyzer.savedVarsName = 'PMCAVars' - -PanicModeCombatAnalyzer.variables = { - fights = {} -} -PanicModeCombatAnalyzer.tempVars = { - lastSave = 0, - inFight = false, - lastDps = 0, - lastDpsCount = 0, -} - --- grab ftc from global -FTC = _G['FTC'] - ----------Passing saved variables to the labels at initialize------- -function PanicModeCombatAnalyzer.Initialize(event, addonName) - local self = PanicModeCombatAnalyzer - - if addonName ~= self.name then return end - - EVENT_MANAGER:UnregisterForEvent(self.name, EVENT_ADD_ON_LOADED) - - self.savedVariables = ZO_SavedVars:New(self.savedVarsName, self.versionDB, nil, self.variables) - - EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_COMBAT_STATE, self.OnPlayerCombatState) -end - -function PanicModeCombatAnalyzer.OnPlayerCombatState(event, inCombat) - PanicModeCombatAnalyzer.tempVars.inFight = inCombat -end - ---[[ - * Overwrite from origin FTC - * Update the mini DPS meter - * -------------------------------- - * Called by FTC.Stats:Initialize() - * -------------------------------- - ]]-- -function FTC.Stats:Update() - local self = PanicModeCombatAnalyzer - - -- Bail out if there is no damage to report - if ( FTC.Stats.damage == 0 and FTC.Stats.healing == 0 ) then return end - - -- Retrieve data - local mini = _G["FTC_MiniMeter"] - - -- Compute the fight time - local time = ( FTC.Stats.endTime - FTC.Stats.startTime ) / 1000 - - -- Determine the correct time label - local dtime = (( not IsUnitInCombat('player') ) or ((( GetGameTimeMilliseconds() - FTC.Stats.endTime ) / 1000 ) >= FTC.Vars.DamageTimeout )) and time or ( GetGameTimeMilliseconds() - FTC.Stats.startTime ) / 1000 - local secs = ZO_FormatTime( dtime , SI_TIME_FORMAT_TIMESTAMP) - - -- Compute player statistics - local dps = FTC.DisplayNumber( FTC.Stats.damage / math.max(time,1) ) - local hps = FTC.DisplayNumber( FTC.Stats.healing / math.max(time,1) ) - - -- added saving vars - local lastSave = self.tempVars.lastSave - local currentTime = GetGameTimeMilliseconds() - local timeStamp = GetTimeStamp() - local lastSaveDiff = currentTime - lastSave - local currenTarget = GetUnitName('reticleover') - local dpsForSaving = (FTC.Stats.damage / math.max(time,1)) - - if self.tempVars.lastDps == dpsForSaving then - self.tempVars.lastDpsCount = self.tempVars.lastDpsCount+1 - else - self.tempVars.lastDpsCount = 0 - end - self.tempVars.lastDps = dpsForSaving - - -- only save if we don't get three times the same amount of dps, and lastSavediff is more than one second ago and we're in fight - if self.tempVars.lastDpsCount <= 2 and lastSaveDiff >= 1000 and self.tempVars.inFight then - self.tempVars.lastSave = currentTime - self.savedVariables.fights[currenTarget] = { - time = timeStamp, - dps = dpsForSaving - } - self.debug('saved dps', dps) - end - - - -- Update the labels - mini.damage.label:SetText( dps ) - mini.healing.label:SetText( hps ) - mini.time.label:SetText( secs ) -end - --- debug func -function PanicModeCombatAnalyzer.debug(message, data) - d('PM CA Debug:') - d(message, data) -end - ----------Events------- -EVENT_MANAGER:RegisterForEvent(PanicModeCombatAnalyzer.name, EVENT_ADD_ON_LOADED, PanicModeCombatAnalyzer.Initialize) diff --git a/PM_CA.txt b/PM_CA.txt deleted file mode 100644 index a749f2a..0000000 --- a/PM_CA.txt +++ /dev/null @@ -1,9 +0,0 @@ -## Title: |cEFEBBEPanic Mode Combat Analyzer|r -## Description: Saves your dps during fight, based on FTC DPS Meter. -## Author: |c009ad6silentgecko|r, deevilius -## Version: 1.0.1 -## APIVersion: 100013 -## SavedVariables: PMCAVars -## OptionalDependsOn: FoundryTacticalCombat - -PM_CA.lua \ No newline at end of file diff --git a/PanicModeCombatAnalyzer.lua b/PanicModeCombatAnalyzer.lua new file mode 100644 index 0000000..70ed3f6 --- /dev/null +++ b/PanicModeCombatAnalyzer.lua @@ -0,0 +1,105 @@ + +PanicModeCombatAnalyzer = PanicModeCombatAnalyzer or {} + +PanicModeCombatAnalyzer.name = 'PanicModeCombatAnalyzer' +PanicModeCombatAnalyzer.version = '1.0.1' +PanicModeCombatAnalyzer.versionDB = 1 +PanicModeCombatAnalyzer.loaded = false +PanicModeCombatAnalyzer.author = 'silentgecko, deevilius' +PanicModeCombatAnalyzer.savedVarsName = 'PMCAVars' + +PanicModeCombatAnalyzer.variables = { + fights = {} +} +PanicModeCombatAnalyzer.tempVars = { + lastSave = 0, + inFight = false, + lastDps = 0, + lastDpsCount = 0, +} + +-- grab ftc from global +FTC = _G['FTC'] + +---------Passing saved variables to the labels at initialize------- +function PanicModeCombatAnalyzer.Initialize(event, addonName) + local self = PanicModeCombatAnalyzer + + if addonName ~= self.name then return end + + EVENT_MANAGER:UnregisterForEvent(self.name, EVENT_ADD_ON_LOADED) + + self.savedVariables = ZO_SavedVars:New(self.savedVarsName, self.versionDB, nil, self.variables) + + EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_COMBAT_STATE, self.OnPlayerCombatState) +end + +function PanicModeCombatAnalyzer.OnPlayerCombatState(event, inCombat) + PanicModeCombatAnalyzer.tempVars.inFight = inCombat +end + +--[[ + * Overwrite from origin FTC + * Update the mini DPS meter + * -------------------------------- + * Called by FTC.Stats:Initialize() + * -------------------------------- + ]]-- +function FTC.Stats:Update() + local self = PanicModeCombatAnalyzer + + -- Bail out if there is no damage to report + if ( FTC.Stats.damage == 0 and FTC.Stats.healing == 0 ) then return end + + -- Retrieve data + local mini = _G["FTC_MiniMeter"] + + -- Compute the fight time + local time = ( FTC.Stats.endTime - FTC.Stats.startTime ) / 1000 + + -- Determine the correct time label + local dtime = (( not IsUnitInCombat('player') ) or ((( GetGameTimeMilliseconds() - FTC.Stats.endTime ) / 1000 ) >= FTC.Vars.DamageTimeout )) and time or ( GetGameTimeMilliseconds() - FTC.Stats.startTime ) / 1000 + local secs = ZO_FormatTime( dtime , SI_TIME_FORMAT_TIMESTAMP) + + -- Compute player statistics + local dps = FTC.DisplayNumber( FTC.Stats.damage / math.max(time,1) ) + local hps = FTC.DisplayNumber( FTC.Stats.healing / math.max(time,1) ) + + -- added saving vars + local lastSave = self.tempVars.lastSave + local currentTime = GetGameTimeMilliseconds() + local timeStamp = GetTimeStamp() + local lastSaveDiff = currentTime - lastSave + local currenTarget = GetUnitName('reticleover') + local dpsForSaving = (FTC.Stats.damage / math.max(time,1)) + + if self.tempVars.lastDps == dpsForSaving then + self.tempVars.lastDpsCount = self.tempVars.lastDpsCount+1 + else + self.tempVars.lastDpsCount = 0 + end + self.tempVars.lastDps = dpsForSaving + + -- only save if we don't get three times the same amount of dps, and lastSavediff is more than one second ago and we're in fight + if self.tempVars.lastDpsCount <= 2 and lastSaveDiff >= 1000 and self.tempVars.inFight then + self.tempVars.lastSave = currentTime + self.savedVariables.fights[currenTarget] = self.savedVariables.fights[currenTarget] or {} + self.savedVariables.fights[currenTarget][timeStamp] = dpsForSaving + self.debug('saved dps', dps) + end + + + -- Update the labels + mini.damage.label:SetText( dps ) + mini.healing.label:SetText( hps ) + mini.time.label:SetText( secs ) +end + +-- debug func +function PanicModeCombatAnalyzer.debug(message, data) + d('PM CA Debug:') + d(message, data) +end + +---------Events------- +EVENT_MANAGER:RegisterForEvent(PanicModeCombatAnalyzer.name, EVENT_ADD_ON_LOADED, PanicModeCombatAnalyzer.Initialize) diff --git a/PanicModeCombatAnalyzer.txt b/PanicModeCombatAnalyzer.txt new file mode 100644 index 0000000..f56b96d --- /dev/null +++ b/PanicModeCombatAnalyzer.txt @@ -0,0 +1,9 @@ +## Title: |cEFEBBEPanic Mode Combat Analyzer|r +## Description: Saves your dps during fight, based on FTC DPS Meter. +## Author: |c009ad6silentgecko|r, deevilius +## Version: 1.0.1 +## APIVersion: 100013 +## SavedVariables: PMCAVars +## OptionalDependsOn: FoundryTacticalCombat + +PanicModeCombatAnalyzer.lua \ No newline at end of file