comparison CombatLog.lua @ 91:b8e9664d3229 v43

option to disable equipment manager sets, minor artifact/talent bug fixes
author yellowfive
date Wed, 21 Sep 2016 00:14:22 -0700
parents 6bbe64d587b4
children 177391341e26
comparison
equal deleted inserted replaced
90:db63475ef5d4 91:b8e9664d3229
87 btnReload:SetHeight(26) 87 btnReload:SetHeight(26)
88 btnReload:SetPoint("TOPLEFT", _btnToggle.frame, "TOPRIGHT", 40, 0) 88 btnReload:SetPoint("TOPLEFT", _btnToggle.frame, "TOPRIGHT", 40, 0)
89 btnReload:SetCallback("OnClick", ReloadUI) 89 btnReload:SetCallback("OnClick", ReloadUI)
90 container:AddChild(btnReload) 90 container:AddChild(btnReload)
91 91
92 --[[
92 local lbl = AceGUI:Create("AmrUiLabel") 93 local lbl = AceGUI:Create("AmrUiLabel")
93 lbl:SetText(L.LogReloadNote) 94 lbl:SetText(L.LogReloadNote)
94 lbl:SetWidth(200) 95 lbl:SetWidth(200)
95 lbl:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.TextTan)) 96 lbl:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.TextTan))
96 lbl:SetJustifyH("MIDDLE") 97 lbl:SetJustifyH("MIDDLE")
137 btnWipe:SetWidth(200) 138 btnWipe:SetWidth(200)
138 btnWipe:SetHeight(26) 139 btnWipe:SetHeight(26)
139 btnWipe:SetPoint("TOPRIGHT", btnUndoWipe.frame, "TOPLEFT", -40, 0) 140 btnWipe:SetPoint("TOPRIGHT", btnUndoWipe.frame, "TOPLEFT", -40, 0)
140 btnWipe:SetCallback("OnClick", function() Amr:Wipe() end) 141 btnWipe:SetCallback("OnClick", function() Amr:Wipe() end)
141 container:AddChild(btnWipe) 142 container:AddChild(btnWipe)
142 143
143 lbl = AceGUI:Create("AmrUiLabel") 144 lbl = AceGUI:Create("AmrUiLabel")
144 lbl:SetText(L.LogWipeNote) 145 lbl:SetText(L.LogWipeNote)
145 lbl:SetWidth(200) 146 lbl:SetWidth(200)
146 lbl:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.TextTan)) 147 lbl:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.TextTan))
147 lbl:SetJustifyH("MIDDLE") 148 lbl:SetJustifyH("MIDDLE")
153 lbl2:SetWidth(200) 154 lbl2:SetWidth(200)
154 lbl2:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.TextTan)) 155 lbl2:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.TextTan))
155 lbl2:SetJustifyH("MIDDLE") 156 lbl2:SetJustifyH("MIDDLE")
156 lbl2:SetPoint("TOP", lbl.frame, "BOTTOM", 0, -2) 157 lbl2:SetPoint("TOP", lbl.frame, "BOTTOM", 0, -2)
157 container:AddChild(lbl2) 158 container:AddChild(lbl2)
159 ]]
158 160
159 -- auto-logging controls 161 -- auto-logging controls
160 lbl = AceGUI:Create("AmrUiLabel") 162 local lbl = AceGUI:Create("AmrUiLabel")
161 lbl:SetWidth(600) 163 lbl:SetWidth(600)
162 lbl:SetText(L.LogAutoTitle) 164 lbl:SetText(L.LogAutoTitle)
163 lbl:SetFont(Amr.CreateFont("Bold", 24, Amr.Colors.TextHeaderActive)) 165 lbl:SetFont(Amr.CreateFont("Bold", 24, Amr.Colors.TextHeaderActive))
164 lbl:SetPoint("TOPLEFT", lbl2.frame, "BOTTOMLEFT", 0, -40) 166 lbl:SetPoint("TOPLEFT", _btnToggle.frame, "BOTTOMLEFT", 0, -40)
165 container:AddChild(lbl) 167 container:AddChild(lbl)
166 168
167 _chkAutoAll = AceGUI:Create("AmrUiCheckBox") 169 _chkAutoAll = AceGUI:Create("AmrUiCheckBox")
168 _chkAutoAll:SetText(L.LogAutoAllText) 170 _chkAutoAll:SetText(L.LogAutoAllText)
169 _chkAutoAll:SetPoint("TOPLEFT", lbl.frame, "BOTTOMLEFT", 1, -15) 171 _chkAutoAll:SetPoint("TOPLEFT", lbl.frame, "BOTTOMLEFT", 1, -15)
189 table.insert(autoChks, autoChk) 191 table.insert(autoChks, autoChk)
190 end 192 end
191 autoSections = nil 193 autoSections = nil
192 194
193 -- instructions 195 -- instructions
196 --[[
194 lbl = AceGUI:Create("AmrUiLabel") 197 lbl = AceGUI:Create("AmrUiLabel")
195 lbl:SetText(L.LogInstructionsTitle) 198 lbl:SetText(L.LogInstructionsTitle)
196 lbl:SetWidth(480) 199 lbl:SetWidth(480)
197 lbl:SetFont(Amr.CreateFont("Italic", 24, Amr.Colors.Text)) 200 lbl:SetFont(Amr.CreateFont("Italic", 24, Amr.Colors.Text))
198 lbl:SetPoint("TOPRIGHT", container.content, "TOPRIGHT", 0, -40) 201 lbl:SetPoint("TOPRIGHT", container.content, "TOPRIGHT", 0, -40)
202 lbl2:SetText(L.LogInstructions) 205 lbl2:SetText(L.LogInstructions)
203 lbl2:SetWidth(480) 206 lbl2:SetWidth(480)
204 lbl2:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.Text)) 207 lbl2:SetFont(Amr.CreateFont("Italic", 14, Amr.Colors.Text))
205 lbl2:SetPoint("TOPLEFT", lbl.frame, "BOTTOMLEFT", 0, -10) 208 lbl2:SetPoint("TOPLEFT", lbl.frame, "BOTTOMLEFT", 0, -10)
206 container:AddChild(lbl2) 209 container:AddChild(lbl2)
210 ]]
207 211
208 -- initialize state of controls 212 -- initialize state of controls
209 Amr:RefreshLogUi() 213 Amr:RefreshLogUi()
210 end 214 end
211 215
285 end 289 end
286 290
287 Amr.db.char.Logging.LastZone = zone 291 Amr.db.char.Logging.LastZone = zone
288 Amr.db.char.Logging.LastDiff = difficultyId 292 Amr.db.char.Logging.LastDiff = difficultyId
289 293
294 if not Amr.db.profile.Logging.Auto[tonumber(instanceId)] then
295 Amr.db.profile.Logging.Auto[tonumber(instanceId)] = {}
296 end
297
290 if Amr.IsSupportedInstanceId(instanceId) and Amr.db.profile.Logging.Auto[tonumber(instanceId)][tonumber(difficultyId)] then 298 if Amr.IsSupportedInstanceId(instanceId) and Amr.db.profile.Logging.Auto[tonumber(instanceId)][tonumber(difficultyId)] then
291 -- we are in a supported zone that we want to auto-log, turn logging on 299 -- we are in a supported zone that we want to auto-log, turn logging on
292 300
293 -- (supported check is probably redundant, but just in case someone has old settings lying around) 301 -- (supported check is probably redundant, but just in case someone has old settings lying around)
294 if not Amr:IsLogging() then 302 if not Amr:IsLogging() then
316 end 324 end
317 325
318 _lblLogging:SetVisible(self:IsLogging()) 326 _lblLogging:SetVisible(self:IsLogging())
319 327
320 -- hide/show undo wipe button based on whether a wipe has been called recently 328 -- hide/show undo wipe button based on whether a wipe has been called recently
321 _panelUndoWipe:SetVisible(Amr.db.char.Logging.LastWipe and true or false) 329 if _panelUndoWipe then
330 _panelUndoWipe:SetVisible(Amr.db.char.Logging.LastWipe and true or false)
331 end
322 332
323 local all = isAllAutoLoggingEnabled() 333 local all = isAllAutoLoggingEnabled()
324 _chkAutoAll:SetChecked(all) 334 _chkAutoAll:SetChecked(all)
325 335
326 for i, instanceId in ipairs(Amr.InstanceIdsOrdered) do 336 for i, instanceId in ipairs(Amr.InstanceIdsOrdered) do
337 if not Amr.db.profile.Logging.Auto[instanceId] then
338 Amr.db.profile.Logging.Auto[instanceId] = {}
339 end
327 for k, difficultyId in pairs(Amr.Difficulties) do 340 for k, difficultyId in pairs(Amr.Difficulties) do
328 _autoChecks[instanceId][difficultyId]:SetChecked(Amr.db.profile.Logging.Auto[instanceId][difficultyId]) 341 _autoChecks[instanceId][difficultyId]:SetChecked(Amr.db.profile.Logging.Auto[instanceId][difficultyId])
329 end 342 end
330 end 343 end
331 end 344 end
342 end 355 end
343 end 356 end
344 357
345 function Amr:StartLogging() 358 function Amr:StartLogging()
346 359
360 --[[
347 local now = time() 361 local now = time()
348 local oldDuration = 60 * 60 * 24 * 10 362 local oldDuration = 60 * 60 * 24 * 10
349 363
350 -- prune out entries in log data that are more than 10 days old 364 -- prune out entries in log data that are more than 10 days old
351 365
397 411
398 -- delete the last wipe date if it is more than 10 days old 412 -- delete the last wipe date if it is more than 10 days old
399 if Amr.db.char.Logging.LastWipe and difftime(now, Amr.db.char.Logging.LastWipe) > oldDuration then 413 if Amr.db.char.Logging.LastWipe and difftime(now, Amr.db.char.Logging.LastWipe) > oldDuration then
400 Amr.db.char.Logging.LastWipe = nil 414 Amr.db.char.Logging.LastWipe = nil
401 end 415 end
402 416 ]]
417
403 -- enable game log file 418 -- enable game log file
404 updateGameLogging(true) 419 updateGameLogging(true)
405 Amr.db.char.Logging.Enabled = true 420 Amr.db.char.Logging.Enabled = true
406 421
407 self:Print(L.LogChatStart) 422 self:Print(L.LogChatStart)
420 self:UpdateMinimap() 435 self:UpdateMinimap()
421 self:RefreshLogUi() 436 self:RefreshLogUi()
422 end 437 end
423 438
424 function Amr:Wipe() 439 function Amr:Wipe()
440
441 --[[
425 local t = time() 442 local t = time()
426 table.insert(Amr.db.global.Logging.Wipes, t) 443 table.insert(Amr.db.global.Logging.Wipes, t)
427 Amr.db.char.Logging.LastWipe = t 444 Amr.db.char.Logging.LastWipe = t
428 445
429 self:Print(L.LogChatWipe(date('%I:%M %p', t))) 446 self:Print(L.LogChatWipe(date('%I:%M %p', t)))
430 447
431 self:RefreshLogUi() 448 self:RefreshLogUi()
449 ]]
432 end 450 end
433 451
434 function Amr:UndoWipe() 452 function Amr:UndoWipe()
435 453
454 --[[
436 local t = Amr.db.char.Logging.LastWipe 455 local t = Amr.db.char.Logging.LastWipe
437 local wipes = Amr.db.global.Logging.Wipes 456 local wipes = Amr.db.global.Logging.Wipes
438 457
439 if not t then 458 if not t then
440 self:Print(L.LogChatNoWipes) 459 self:Print(L.LogChatNoWipes)
450 Amr.db.char.Logging.LastWipe = nil 469 Amr.db.char.Logging.LastWipe = nil
451 self:Print(L.LogChatUndoWipe(date('%I:%M %p', t))) 470 self:Print(L.LogChatUndoWipe(date('%I:%M %p', t)))
452 end 471 end
453 472
454 self:RefreshLogUi() 473 self:RefreshLogUi()
474 ]]
455 end 475 end
456 476
457 function Amr:ToggleAutoLog(instanceId, difficultyId) 477 function Amr:ToggleAutoLog(instanceId, difficultyId)
458 478
459 local byDiff = Amr.db.profile.Logging.Auto[instanceId] 479 local byDiff = Amr.db.profile.Logging.Auto[instanceId]
480 -- see if we should turn logging on right now 500 -- see if we should turn logging on right now
481 updateAutoLogging(true) 501 updateAutoLogging(true)
482 end 502 end
483 503
484 function Amr:ProcessPlayerSnapshot(msg) 504 function Amr:ProcessPlayerSnapshot(msg)
505 --[[
485 if not self:IsLogging() then return end 506 if not self:IsLogging() then return end
486 507
487 -- message will be of format: timestamp\nregion\nrealm\nname\n[stuff] 508 -- message will be of format: timestamp\nregion\nrealm\nname\n[stuff]
488 local parts = {} 509 local parts = {}
489 for part in string.gmatch(msg, "([^\n]+)") do 510 for part in string.gmatch(msg, "([^\n]+)") do
518 539
519 -- we only need to keep this setup if it is different than the previous 540 -- we only need to keep this setup if it is different than the previous
520 if setup ~= previousSetup then 541 if setup ~= previousSetup then
521 playerList[timestamp] = setup 542 playerList[timestamp] = setup
522 end 543 end
523 544 ]]
524 end 545 end
525 546
526 -- read auras and pet mapping info (pet may not be necessary anymore... but doesn't hurt) 547 -- read auras and pet mapping info (pet may not be necessary anymore... but doesn't hurt)
527 local function getPlayerExtraData(data, unitId, petId) 548 local function getPlayerExtraData(data, unitId, petId)
528 549 --[[
529 local guid = UnitGUID(unitId) 550 local guid = UnitGUID(unitId)
530 if guid == nil then return end 551 if guid == nil then return end
531 552
532 local fields = {} 553 local fields = {}
533 554
557 realm = string.sub(name, splitPos + 1) 578 realm = string.sub(name, splitPos + 1)
558 name = string.sub(name, 1, splitPos - 1) 579 name = string.sub(name, 1, splitPos - 1)
559 end 580 end
560 581
561 data[region .. ":" .. realm .. ":" .. name] = table.concat(fields, ";") 582 data[region .. ":" .. realm .. ":" .. name] = table.concat(fields, ";")
583 ]]
562 end 584 end
563 585
564 local function logPlayerExtraData() 586 local function logPlayerExtraData()
587 --[[
565 if not Amr:IsLogging() or not Amr:IsSupportedInstance() then return end 588 if not Amr:IsLogging() or not Amr:IsSupportedInstance() then return end
566 589
567 local timestamp = time() 590 local timestamp = time()
568 local units = {} 591 local units = {}
569 local petUnits = {} 592 local petUnits = {}
594 if Amr.db.global.Logging.PlayerExtras[name] == nil then 617 if Amr.db.global.Logging.PlayerExtras[name] == nil then
595 Amr.db.global.Logging.PlayerExtras[name] = {} 618 Amr.db.global.Logging.PlayerExtras[name] = {}
596 end 619 end
597 Amr.db.global.Logging.PlayerExtras[name][timestamp] = val 620 Amr.db.global.Logging.PlayerExtras[name][timestamp] = val
598 end 621 end
622 ]]
599 end 623 end
600 624
601 function Amr:InitializeCombatLog() 625 function Amr:InitializeCombatLog()
602 --updateAutoLogging() 626 --updateAutoLogging()
603 end 627 end
604 628
605 --[[ 629 --[[
606 Amr:AddEventHandler("UPDATE_INSTANCE_INFO", updateAutoLogging) 630 Amr:AddEventHandler("UPDATE_INSTANCE_INFO", updateAutoLogging)
607 Amr:AddEventHandler("PLAYER_DIFFICULTY_CHANGED", updateAutoLogging) 631 Amr:AddEventHandler("PLAYER_DIFFICULTY_CHANGED", updateAutoLogging)
608 Amr:AddEventHandler("ENCOUNTER_START", updateAutoLogging) 632 Amr:AddEventHandler("ENCOUNTER_START", updateAutoLogging)
609 Amr:AddEventHandler("PLAYER_REGEN_DISABLED", logPlayerExtraData) 633 --Amr:AddEventHandler("PLAYER_REGEN_DISABLED", logPlayerExtraData)
610 ]] 634 ]]