-- ************************************************************************** -- * TitanRecount.lua -- * -- * Originally By Suddendeath2000 -- * Adopted by HonorGoG of the Titan Panel Development Team -- ************************************************************************** -- * 2021-09-02 : 1.0.3.20502 WoW 2.5.2 released. -- * 2021-07-04 : 1.0.2.20501 WoW 2.5.1 released. -- * 2020-07-08 : 1.0.1.11305 WoW 1.13.5 released. -- * 2019-09-25 : 1.0.0.11304 Adapted from Retail version for Classic -- ************************************************************************** -- ********************************** Ace3 ********************************** TPRecount = LibStub("AceAddon-3.0"):NewAddon("TitanClassicRecount", "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("TitanClassicRecount", "Version") or L["TITAN_NA"] TITAN_RECOUNT_VERSION_STRING = "|cffffd700Titan Panel Classic [Recount] "..GREEN_FONT_COLOR_CODE..TITAN_RECOUNT_VERSION.."|cffffd700 by |cffff8c00HonorGoG"; local TITAN_RECOUNT_DEBUG = false; 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) 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 = "|cffffcc00"..TITAN_RECOUNT_ID, tooltipTextFunction = "TitanPanelRecountButton_GetTooltipText", icon = "Interface\\AddOns\\TitanClassicRecount\\TitanClassicRecount", iconButtonWidth = 16, iconWidth = 16, savedVariables = { ShowIcon = 1, ShowLabelText = 1, ShowTooltipText = 1, ShowMenuOptions = 1, ShowAdvancedMenus = 1, DisplayOnRightSide = 1, } }; end function TitanPanelRecountButton_GetTooltipText() return "|cff00ff00".."Double Left-Click to Toggle Selected Main Window\n".."|cff00ff00".."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 = {} -- level 3 if L_UIDROPDOWNMENU_MENU_LEVEL == 3 then if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "TCRDamage" 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"]) end if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "TCRHealing" 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"]) end if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "TCREnergy" 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"]) end if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "TCROther" 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"]) end -- level 2 elseif _G["L_UIDROPDOWNMENU_MENU_LEVEL"] == 2 then if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "TCRRealtime" 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"]) end if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "TCRRaid" 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"]) end if _G["L_UIDROPDOWNMENU_MENU_VALUE"] == "TCRWindow" then TitanPanelRightClickMenu_AddTitle(TPRWindow, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Damage Stats" info.value = "TCRDamage" info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Healing Stats" info.value = "TCRHealing" info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Energy Stats" info.value = "TCREnergy" info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Other Stats" info.value = "TCROther" info.hasArrow = 2 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) end else -- level 1 TitanPanelRightClickMenu_AddTitle(TITAN_RECOUNT_ID) TitanPanelRightClickMenu_AddSpacer() info.text = "Realtime Graphs" info.value = "TCRRealtime" info.hasArrow = 1 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Raid Graphs" info.value = "TCRRaid" info.hasArrow = 1 L_UIDropDownMenu_AddButton(info, _G["L_UIDROPDOWNMENU_MENU_LEVEL"]) info.text = "Window Type" info.value = "TCRWindow" 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