-- ************************************************************************** -- * TitanRecount.lua -- * -- * Originally By Suddendeath2000 -- * Adopted by HonorGoG of the Titan Panel Development Team -- ************************************************************************** -- * 2019-09-25 : 5.0.0.80200 Adopted by HonorGoG and released for WoW 8.2 and WoW Classic 1.13.2 -- ************************************************************************** -- ********************************** Ace3 ********************************** TPRecount = LibStub("AceAddon-3.0"):NewAddon("TitanPanelRecount", "AceTimer-3.0") local L = LibStub("AceLocale-3.0"):GetLocale("Titan", true) -- ******************************** Constants ******************************* TITAN_RECOUNT_ID = "Recount"; local _G = getfenv(0); TITAN_RECOUNT_VERSION = GetAddOnMetadata("TitanRecount", "Version") or L["TITAN_NA"] TITAN_RECOUNT_VERSION_STRING = "|cffffd700Titan Panel [Recount] "..GREEN_FONT_COLOR_CODE..TITAN_RECOUNT_VERSION.."|cffffd700 by |cffff8c00HonorGoG"; local TITAN_RECOUNT_DEBUG = false; local TPRID = "Recount" local TPRVersion = "4.0.0" local TPRC1 = "|cffffffff" local TPRC2 = "|cff993300" local TPRC3 = "|cff00ff00" local TPRC4 = "|cffffcc00" local TPRRealtime = "Realtime Graphs" local TPRRaid = "Raid Graphs" local TPRWindow = "Window Type" local TPRDPS = "Damage Stats" local TPRHealing = "Healing Stats" local TPREnergy = "Energy Stats" local TPROther = "Other Stats" function TitanPanelRecountButton_OnLoad(self) -- DEFAULT_CHAT_FRAME:AddMessage(TPRC1.."Titan Panel "..TPRC2.."[Recount] "..TPRC1.."v"..TPRC2..TPRVersion.." "..TPRC1.."by |cff999999Suddendeath2000") TPCDefense_Debug("TitanPanelDefenseButton_OnLoad"); if (DEFAULT_CHAT_FRAME) then DEFAULT_CHAT_FRAME:AddMessage(TITAN_RECOUNT_VERSION_STRING); end self.registry = { id = TITAN_RECOUNT_ID, version = TITAN_RECOUNT_VERSION, menuText = TITAN_RECOUNT_ID, category = "Interface", tooltipTitle = TPRC4..TPRID, tooltipTextFunction = "TitanPanelRecountButton_GetTooltipText", icon = "Interface\\AddOns\\TitanRecount\\TitanRecount", iconButtonWidth = 16, iconWidth = 16, savedVariables = { ShowIcon = 1, ShowLabelText = 1, ShowTooltipText = 1, ShowMenuOptions = 1, ShowAdvancedMenus = 1, DisplayOnRightSide = 1, } }; end function TitanPanelRecountButton_GetTooltipText() return TPRC3.."Double Left-Click to Toggle Selected Main Window\n"..TPRC3.."Right-click to Open Options" end function TitanPanelRecountButton_OnDoubleClick(button) if button == "LeftButton" then if Recount.MainWindow:IsVisible() then Recount.MainWindow:Hide() else Recount.MainWindow:Show(); Recount:RefreshMainWindow() end end end function TitanPanelRightClickMenu_PrepareRecountMenu() local info = {} if ( _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 ) and ( UIDROPDOWNMENU_MENU_VALUE == TPRDPS )then TitanPanelRightClickMenu_AddTitle(TPRDPS, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Damage Done" info.checked = Recount.db.profile.MainWindowMode == 1 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(1) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "DPS" info.checked = Recount.db.profile.MainWindowMode == 2 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(2) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Friendly Fire" info.checked = Recount.db.profile.MainWindowMode == 3 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(3) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Damage Taken" info.checked = Recount.db.profile.MainWindowMode == 4 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(4) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) elseif ( _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 ) and ( UIDROPDOWNMENU_MENU_VALUE == TPRHealing )then TitanPanelRightClickMenu_AddTitle(TPRHealing, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Healing Done" info.checked = Recount.db.profile.MainWindowMode == 5 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(5) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Healing Taken" info.checked = Recount.db.profile.MainWindowMode == 6 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(6) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Overhealing Done" info.checked = Recount.db.profile.MainWindowMode == 7 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(7) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) elseif ( _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 ) and ( UIDROPDOWNMENU_MENU_VALUE == TPREnergy )then TitanPanelRightClickMenu_AddTitle(TPREnergy, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Mana Gained" info.checked = Recount.db.profile.MainWindowMode == 17 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(17) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Energy Gained" info.checked = Recount.db.profile.MainWindowMode == 18 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(18) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Rage Gained" info.checked = Recount.db.profile.MainWindowMode == 19 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(19) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Runic PowerGained" info.checked = Recount.db.profile.MainWindowMode == 20 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(20) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) elseif ( _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 ) and ( UIDROPDOWNMENU_MENU_VALUE == TPROther )then TitanPanelRightClickMenu_AddTitle(TPROther, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Deaths" info.checked = Recount.db.profile.MainWindowMode == 8 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(8) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "DOT Uptime" info.checked = Recount.db.profile.MainWindowMode == 9 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(9) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "HOT Uptime" info.checked = Recount.db.profile.MainWindowMode == 10 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(10) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Activity" info.checked = Recount.db.profile.MainWindowMode == 11 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(11) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Dispels" info.checked = Recount.db.profile.MainWindowMode == 12 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(12) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Dispelled" info.checked = Recount.db.profile.MainWindowMode == 13 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(13) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Interrupts" info.checked = Recount.db.profile.MainWindowMode == 14 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(14) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Ressers" info.checked = Recount.db.profile.MainWindowMode == 15 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(15) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "CC Breakers" info.checked = Recount.db.profile.MainWindowMode == 16 info.func = function() Recount.MainWindow:Show() Recount:SetMainWindowMode(16) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) elseif ( _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 ) and ( UIDROPDOWNMENU_MENU_VALUE == TPRRealtime )then TitanPanelRightClickMenu_AddTitle(TPRRealtime, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Realtime FPS" info.func = function() Recount:CreateRealtimeWindow("FPS","FPS","") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Realtime Latency" info.func = function() Recount:CreateRealtimeWindow("Latency","LAG","") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Upstream Traffic" info.func = function() Recount:CreateRealtimeWindow("Upstream Traffic","UP_TRAFFIC","") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Downstream Traffic" info.func = function() Recount:CreateRealtimeWindow("Downstream Traffic","DOWN_TRAFFIC","") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Available Bandwidth" info.func = function() Recount:CreateRealtimeWindow("Bandwidth Available","AVAILABLE_BANDWIDTH","") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) elseif ( _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 ) and ( UIDROPDOWNMENU_MENU_VALUE == TPRRaid )then TitanPanelRightClickMenu_AddTitle(TPRRaid, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Raid Damage Per Second" info.func = function() Recount:CreateRealtimeWindow("!RAID","DAMAGE","Raid DPS") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Raid Damage Taken Per Second" info.func = function() Recount:CreateRealtimeWindow("!RAID","DAMAGETAKEN","Raid DTPS") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Raid Healing Per Second" info.func = function() Recount:CreateRealtimeWindow("!RAID","HEALING","Raid HPS") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Raid Healing Taken Per Second" info.func = function() Recount:CreateRealtimeWindow("!RAID","HEALINGTAKEN","Raid HTPS") end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) elseif ( _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 ) and ( UIDROPDOWNMENU_MENU_VALUE == TPRWindow )then TitanPanelRightClickMenu_AddTitle(TPRWindow, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Damage Stats" info.value = TPRDPS info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Healing Stats" info.value = TPRHealing info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Energy Stats" info.value = TPREnergy info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Other Stats" info.value = TPROther info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) else TitanPanelRightClickMenu_AddTitle(TPRID) TitanPanelRightClickMenu_AddSpacer() info.text = "Realtime Graphs" info.value = TPRRealtime info.hasArrow = 1 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Raid Graphs" info.value = TPRRaid info.hasArrow = 1 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Window Type" info.value = TPRWindow info.hasArrow = 1 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) TitanPanelRightClickMenu_AddSpacer() info.text = "Report Window" info.value = nil info.hasArrow = nil info.func = function() Recount:ShowReport("Main",Recount.ReportData) end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Config Window" info.value = nil info.hasArrow = nil info.func = function() Recount:ShowConfig() end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Reset Data" info.value = nil info.hasArrow = nil info.func = function() Recount:ShowReset() end L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) end end