From 6097863dc4d18a6ecf3e577450ba4659deccae08 Mon Sep 17 00:00:00 2001 From: Tercio Jose Date: Wed, 21 Dec 2022 20:03:54 -0300 Subject: [PATCH] raid database updates --- core/gears.lua | 877 ++++++------- core/network.lua | 28 +- frames/window_statistics.lua | 1121 +++++++++-------- functions/boss.lua | 171 ++- functions/raidinfo.lua | 76 +- images/raid/CastleNathriaRaid_BossFaces.tga | Bin 262188 -> 0 bytes images/raid/CastleNathriaRaid_Icon256x128.tga | Bin 99884 -> 0 bytes .../VaultoftheIncarnatesRaid_BossFaces.tga | Bin 0 -> 262188 bytes .../VaultoftheIncarnatesRaid_Icon256x128.tga | Bin 0 -> 133164 bytes 9 files changed, 1224 insertions(+), 1049 deletions(-) delete mode 100644 images/raid/CastleNathriaRaid_BossFaces.tga delete mode 100644 images/raid/CastleNathriaRaid_Icon256x128.tga create mode 100644 images/raid/VaultoftheIncarnatesRaid_BossFaces.tga create mode 100644 images/raid/VaultoftheIncarnatesRaid_Icon256x128.tga diff --git a/core/gears.lua b/core/gears.lua index fc093005..c92c112e 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -13,14 +13,12 @@ local CONST_SPELLBOOK_GENERAL_TABID = 1 local CONST_SPELLBOOK_CLASSSPELLS_TABID = 2 local storageDebug = false --remember to turn this to false! -local store_instances = _detalhes.InstancesToStoreData +local instancesToStoreData = _detalhes.InstancesToStoreData function _detalhes:UpdateGears() - _detalhes:UpdateParser() _detalhes:UpdateControl() _detalhes:UpdateCombat() - end function _detalhes:GetCoreVersion() @@ -32,7 +30,7 @@ end _detalhes.chat_embed = _detalhes:CreateEventListener() _detalhes.chat_embed.startup = true - + _detalhes.chat_embed.hook_settabname = function(frame, name, doNotSave) if (not doNotSave) then if (_detalhes.chat_tab_embed.enabled and _detalhes.chat_tab_embed.tab_name ~= "") then @@ -56,13 +54,13 @@ end end hooksecurefunc ("FCF_SetWindowName", _detalhes.chat_embed.hook_settabname) hooksecurefunc ("FCF_Close", _detalhes.chat_embed.hook_closetab) - + function _detalhes.chat_embed:SetTabSettings (tab_name, is_enabled, is_single) - + local current_enabled_state = _detalhes.chat_tab_embed.enabled local current_name = _detalhes.chat_tab_embed.tab_name local current_is_single = _detalhes.chat_tab_embed.single_window - + tab_name = tab_name or _detalhes.chat_tab_embed.tab_name if (is_enabled == nil) then is_enabled = _detalhes.chat_tab_embed.enabled @@ -70,11 +68,11 @@ end if (is_single == nil) then is_single = _detalhes.chat_tab_embed.single_window end - + _detalhes.chat_tab_embed.tab_name = tab_name or "" _detalhes.chat_tab_embed.enabled = is_enabled _detalhes.chat_tab_embed.single_window = is_single - + if (current_name ~= tab_name) then --rename the tab on chat frame local ChatFrame = _detalhes.chat_embed:GetTab (current_name) @@ -82,7 +80,7 @@ end FCF_SetWindowName (ChatFrame, tab_name, false) end end - + if (is_enabled) then --was disabled, so we need to save the current window positions. if (not current_enabled_state) then @@ -112,7 +110,7 @@ end end end end - + --need to make the embed _detalhes.chat_embed:DoEmbed() else @@ -122,14 +120,14 @@ end end end end - + function _detalhes.chat_embed:CheckChatEmbed (is_startup) if (_detalhes.chat_tab_embed.enabled) then _detalhes.chat_embed:DoEmbed (is_startup) end end - - --dom + + --dom -- /run _detalhes.chat_embed:SetTabSettings ("Dano", true, false) -- /run _detalhes.chat_embed:SetTabSettings (nil, false, false) -- /dump _detalhes.chat_tab_embed.tab_name @@ -151,30 +149,30 @@ end return _detalhes.chat_embed:ScheduleTimer("DelayedChatEmbed", 5) end local tabname = _detalhes.chat_tab_embed.tab_name - + if (_detalhes.chat_tab_embed.enabled and tabname ~= "") then local ChatFrame, ChatFrameTab, ChatFrameBackground = _detalhes.chat_embed:GetTab (tabname) - + if (not ChatFrame) then FCF_OpenNewWindow (tabname) ChatFrame, ChatFrameTab, ChatFrameBackground = _detalhes.chat_embed:GetTab (tabname) end - + if (ChatFrame) then for index, t in pairs(ChatFrame.messageTypeList) do ChatFrame_RemoveMessageGroup (ChatFrame, t) ChatFrame.messageTypeList [index] = nil end - + _detalhes.chat_tab_embed_onframe = ChatFrame - + if (_detalhes.chat_tab_embed.single_window) then --only one window local window1 = _detalhes:GetInstance(1) - + window1:UngroupInstance() window1.baseframe:ClearAllPoints() - + window1.baseframe:SetParent(ChatFrame) window1.rowframe:SetParent(window1.baseframe) @@ -184,16 +182,16 @@ end window1.windowSwitchButton:SetParent(window1.baseframe) window1.windowSwitchButton:ClearAllPoints() window1.windowSwitchButton:SetAllPoints() - + local y_up = window1.toolbar_side == 1 and -20 or 0 local y_down = (window1.show_statusbar and 14 or 0) + (window1.toolbar_side == 2 and 20 or 0) - + window1.baseframe:SetPoint("topleft", ChatFrameBackground, "topleft", 0, y_up + _detalhes.chat_tab_embed.y_offset) window1.baseframe:SetPoint("bottomright", ChatFrameBackground, "bottomright", _detalhes.chat_tab_embed.x_offset, y_down) window1:LockInstance (true) window1:SaveMainWindowPosition() - + local window2 = _detalhes:GetInstance(2) if (window2 and window2.baseframe) then if (window2.baseframe:GetParent() == ChatFrame) then @@ -209,12 +207,12 @@ end if (not window2) then window2 = _detalhes:CriarInstancia() end - + window1:UngroupInstance() window2:UngroupInstance() window1.baseframe:ClearAllPoints() window2.baseframe:ClearAllPoints() - + window1.baseframe:SetParent(ChatFrame) window2.baseframe:SetParent(ChatFrame) window1.rowframe:SetParent(window1.baseframe) @@ -229,40 +227,40 @@ end window1:LockInstance (true) window2:LockInstance (true) - + local statusbar_enabled1 = window1.show_statusbar local statusbar_enabled2 = window2.show_statusbar table.wipe(window1.snap); table.wipe(window2.snap) window1.snap [3] = 2; window2.snap [1] = 1; window1.horizontalSnap = true; window2.horizontalSnap = true - + local y_up = window1.toolbar_side == 1 and -20 or 0 local y_down = (window1.show_statusbar and 14 or 0) + (window1.toolbar_side == 2 and 20 or 0) - + local width = ChatFrameBackground:GetWidth() / 2 local height = ChatFrameBackground:GetHeight() - y_down + y_up - + window1.baseframe:SetSize(width + (_detalhes.chat_tab_embed.x_offset/2), height + _detalhes.chat_tab_embed.y_offset) window2.baseframe:SetSize(width + (_detalhes.chat_tab_embed.x_offset/2), height + _detalhes.chat_tab_embed.y_offset) - + window1.baseframe:SetPoint("topleft", ChatFrameBackground, "topleft", 0, y_up + _detalhes.chat_tab_embed.y_offset) window2.baseframe:SetPoint("topright", ChatFrameBackground, "topright", _detalhes.chat_tab_embed.x_offset, y_up + _detalhes.chat_tab_embed.y_offset) - + window1:SaveMainWindowPosition() window2:SaveMainWindowPosition() - + -- /dump ChatFrame3Background:GetSize() end end end end - + function _detalhes.chat_embed:ReleaseEmbed (second_window) --release local window1 = _detalhes:GetInstance(1) local window2 = _detalhes:GetInstance(2) - + if (second_window) then window2:UngroupInstance() window2.baseframe:ClearAllPoints() @@ -274,7 +272,7 @@ end window2.rowframe:SetPoint("center", UIParent, "center", 200, 0) window2:LockInstance (false) window2:SaveMainWindowPosition() - + local previous_pos = _detalhes.chat_tab_embed.w2_pos if (previous_pos) then window2:RestorePositionFromPositionTable (previous_pos) @@ -290,14 +288,14 @@ end window1.rowframe:SetPoint("center", UIParent, "center") window1:LockInstance (false) window1:SaveMainWindowPosition() - + local previous_pos = _detalhes.chat_tab_embed.w1_pos if (previous_pos) then window1:RestorePositionFromPositionTable (previous_pos) end - + if (not _detalhes.chat_tab_embed.single_window and window2) then - + window2:UngroupInstance() window2.baseframe:ClearAllPoints() window2.baseframe:SetParent(UIParent) @@ -307,14 +305,14 @@ end window2.rowframe:SetPoint("center", UIParent, "center", 200, 0) window2:LockInstance (false) window2:SaveMainWindowPosition() - + local previous_pos = _detalhes.chat_tab_embed.w2_pos if (previous_pos) then window2:RestorePositionFromPositionTable (previous_pos) end end end - + function _detalhes.chat_embed:GetTab (tabname) tabname = tabname or _detalhes.chat_tab_embed.tab_name for i = 1, 20 do @@ -326,7 +324,7 @@ end end end end - + --[[ --create a tab on chat --FCF_OpenNewWindow(name) @@ -350,7 +348,7 @@ function _detalhes:SetDeathLogLimit (limit) if (limit and type(limit) == "number" and limit >= 8) then _detalhes.deadlog_events = limit - + local combat = _detalhes.tabela_vigente local wipe = table.wipe @@ -366,7 +364,7 @@ function _detalhes:SetDeathLogLimit (limit) end end end - + _detalhes:UpdateParserGears() end end @@ -376,7 +374,7 @@ end function _detalhes:TrackSpecsNow (track_everything) local spelllist = _detalhes.SpecSpellList - + if (not track_everything) then for _, actor in _detalhes.tabela_vigente[1]:ListActors() do if (actor:IsPlayer()) then @@ -408,7 +406,7 @@ function _detalhes:TrackSpecsNow (track_everything) end tinsert(combatlist, _detalhes.tabela_vigente) tinsert(combatlist, _detalhes.tabela_overall) - + for _, combat in ipairs(combatlist) do for _, actor in combat[1]:ListActors() do if (actor:IsPlayer()) then @@ -435,16 +433,16 @@ function _detalhes:TrackSpecsNow (track_everything) end end end - + end function _detalhes:ResetSpecCache (forced) local isininstance = IsInInstance() - + if (forced or (not isininstance and not _detalhes.in_group)) then table.wipe(_detalhes.cached_specs) - + if (_detalhes.track_specs) then local my_spec = DetailsFramework.GetSpecialization() if (type(my_spec) == "number") then @@ -457,10 +455,10 @@ function _detalhes:ResetSpecCache (forced) end end end - + elseif (_detalhes.in_group and not isininstance) then table.wipe(_detalhes.cached_specs) - + if (_detalhes.track_specs) then if (IsInRaid()) then local c_combat_dmg = _detalhes.tabela_vigente [1] @@ -486,17 +484,17 @@ function _detalhes:ResetSpecCache (forced) end end end - + end function _detalhes:RefreshUpdater(suggested_interval) local updateInterval = suggested_interval or _detalhes.update_speed - + if (_detalhes.streamer_config.faster_updates) then --force 60 updates per second updateInterval = 0.016 end - + if (_detalhes.atualizador) then --_detalhes:CancelTimer(_detalhes.atualizador) Details.Schedules.Cancel(_detalhes.atualizador) @@ -513,11 +511,11 @@ function _detalhes:SetWindowUpdateSpeed(interval, nosave) if (type(interval) ~= "number") then interval = _detalhes.update_speed or 0.3 end - + if (not nosave) then _detalhes.update_speed = interval end - + _detalhes:RefreshUpdater(interval) end @@ -525,11 +523,11 @@ function _detalhes:SetUseAnimations(enabled, nosave) if (enabled == nil) then enabled = _detalhes.use_row_animations end - + if (not nosave) then _detalhes.use_row_animations = enabled end - + _detalhes.is_using_row_animations = enabled end @@ -549,11 +547,11 @@ _detalhes.PerformanceIcons = { } function _detalhes:CheckForPerformanceProfile() - + local performanceType = _detalhes:GetPerformanceRaidType() - + local profile = _detalhes.performance_profiles [performanceType] - + if (profile and profile.enabled) then _detalhes:SetWindowUpdateSpeed(profile.update_speed, true) _detalhes:SetUseAnimations(profile.use_row_animations, true) @@ -562,11 +560,11 @@ function _detalhes:CheckForPerformanceProfile() _detalhes:CaptureSet(profile.energy, "energy") _detalhes:CaptureSet(profile.miscdata, "miscdata") _detalhes:CaptureSet(profile.aura, "aura") - + if (not _detalhes.performance_profile_lastenabled or _detalhes.performance_profile_lastenabled ~= performanceType) then _detalhes:InstanceAlert (Loc ["STRING_OPTIONS_PERFORMANCE_PROFILE_LOAD"] .. performanceType, {_detalhes.PerformanceIcons [performanceType].icon, 14, 14, false, 0, 1, 0, 1, unpack(_detalhes.PerformanceIcons [performanceType].color)} , 5, {_detalhes.empty_function}) end - + _detalhes.performance_profile_enabled = performanceType _detalhes.performance_profile_lastenabled = performanceType else @@ -579,7 +577,7 @@ function _detalhes:CheckForPerformanceProfile() _detalhes:CaptureSet(_detalhes.capture_real ["aura"], "aura") _detalhes.performance_profile_enabled = nil end - + end function _detalhes:GetPerformanceRaidType() @@ -589,7 +587,7 @@ function _detalhes:GetPerformanceRaidType() if (type == "none") then return nil end - + if (type == "pvp") then if (maxPlayers == 40) then return "Battleground40" @@ -599,7 +597,7 @@ function _detalhes:GetPerformanceRaidType() return nil end end - + if (type == "arena") then return "Arena" end @@ -609,12 +607,12 @@ function _detalhes:GetPerformanceRaidType() if (difficulty == 15) then return "Mythic" end - + --raid finder if (difficulty == 7) then return "RaidFinder" end - + --flex if (difficulty == 14) then if (GetNumGroupMembers() > 15) then @@ -623,7 +621,7 @@ function _detalhes:GetPerformanceRaidType() return "Raid15" end end - + --normal heroic if (maxPlayers == 10) then return "Raid15" @@ -631,11 +629,11 @@ function _detalhes:GetPerformanceRaidType() return "Raid30" end end - + if (type == "party") then return "Dungeon" end - + return nil end @@ -660,7 +658,7 @@ function _detalhes:RegisterBackgroundTask (name, func, priority, ...) else assert(type(func) == "function", "RegisterBackgroundTask param #2 expect a function or function name.") end - + priority = priority or "LOW" priority = string.upper (priority) if (not task_timers [priority]) then @@ -687,10 +685,10 @@ function _detalhes:DoBackgroundTasks() if (_detalhes:GetZoneType() ~= "none" or _detalhes:InGroup()) then return end - + local t = time() - - for taskName, taskTable in pairs(background_tasks) do + + for taskName, taskTable in pairs(background_tasks) do if (t > taskTable.nextexec) then if (type(taskTable.func) == "string") then taskTable.object [taskTable.func] (taskTable.object, unpack(taskTable.args, 1, taskTable.args_amt)) @@ -720,10 +718,10 @@ function _detalhes.storage:OpenRaidStorage() return end end - + --get the storage table local db = DetailsDataStorage - + if (not db and _detalhes.CreateStorageDB) then db = _detalhes:CreateStorageDB() if (not db) then @@ -738,15 +736,15 @@ end function _detalhes.storage:HaveDataForEncounter (diff, encounter_id, guild_name) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - + if (guild_name and type(guild_name) == "boolean") then guild_name = GetGuildInfo ("player") end - + local table = db [diff] if (table) then local encounters = table [encounter_id] @@ -755,7 +753,7 @@ function _detalhes.storage:HaveDataForEncounter (diff, encounter_id, guild_name) if (not guild_name) then return true end - + --data for a specific guild is requested, check if there is data for the guild for index, encounter in ipairs(encounters) do if (encounter.guild == guild_name) then @@ -768,28 +766,28 @@ end function _detalhes.storage:GetBestFromGuild (diff, encounter_id, role, dps, guild_name) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - + if (not guild_name) then guild_name = GetGuildInfo ("player") end - + if (not guild_name) then if (_detalhes.debug) then _detalhes:Msg("(debug) GetBestFromGuild() guild name invalid.") end return end - + local best = 0 local bestdps = 0 local bestplayername local onencounter local bestactor - + if (not role) then role = "damage" end @@ -799,7 +797,7 @@ function _detalhes.storage:GetBestFromGuild (diff, encounter_id, role, dps, guil elseif (role == "healer") then role = "healing" end - + local table = db [diff] if (table) then local encounters = table [encounter_id] @@ -831,29 +829,29 @@ function _detalhes.storage:GetBestFromGuild (diff, encounter_id, role, dps, guil end end end - + return t, onencounter end function _detalhes.storage:GetPlayerGuildRank (diff, encounter_id, role, playername, dps, guild_name) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - + if (not guild_name) then guild_name = GetGuildInfo ("player") end - + if (not guild_name) then if (_detalhes.debug) then _detalhes:Msg("(debug) GetBestFromGuild() guild name invalid.") end return end - + if (not role) then role = "damage" end @@ -863,9 +861,9 @@ function _detalhes.storage:GetPlayerGuildRank (diff, encounter_id, role, playern elseif (role == "healer") then role = "healing" end - + local playerScore = {} - + local _table = db [diff] if (_table) then local encounters = _table [encounter_id] @@ -874,14 +872,14 @@ function _detalhes.storage:GetPlayerGuildRank (diff, encounter_id, role, playern if (encounter.guild == guild_name) then local roleTable = encounter [role] for playerName, playerTable in pairs(roleTable) do - + if (not playerScore [playerName]) then playerScore [playerName] = {0, 0, {}} end - + local total = playerTable[1] local persecond = total / encounter.elapsed - + if (dps) then if (persecond > playerScore [playerName][2]) then playerScore [playerName][1] = total @@ -900,19 +898,19 @@ function _detalhes.storage:GetPlayerGuildRank (diff, encounter_id, role, playern end end end - + if (not playerScore [playername]) then return end - + local t = {} for playerName, playerTable in pairs(playerScore) do playerTable [5] = playerName tinsert(t, playerTable) end - + table.sort (t, dps and _detalhes.Sort2 or _detalhes.Sort1) - + for i = 1, #t do if (t[i][5] == playername) then return t[i][3], t[i][4], i @@ -925,16 +923,16 @@ end function _detalhes.storage:GetBestFromPlayer (diff, encounter_id, role, playername, dps) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then print("DB noot found on GetBestFromPlayer()") return end - + local best local onencounter local topdps - + if (not role) then role = "damage" end @@ -944,7 +942,7 @@ function _detalhes.storage:GetBestFromPlayer (diff, encounter_id, role, playerna elseif (role == "healer") then role = "healing" end - + local table = db [diff] if (table) then local encounters = table [encounter_id] @@ -974,14 +972,14 @@ function _detalhes.storage:GetBestFromPlayer (diff, encounter_id, role, playerna end end end - + return best, onencounter end function _detalhes.storage:DBGuildSync() _detalhes:SendGuildData ("GS", "R") - + end local OnlyFromCurrentRaidTier = true @@ -1000,13 +998,13 @@ local encounter_is_current_tier = function(encounterID) return true end -local have_encounter = function(db, ID) - local minTime = ID - 120 - local maxTime = ID + 120 - - for diff, diffTable in pairs(db or {}) do - if (type(diffTable) == "table") then - for encounterID, encounterTable in pairs(diffTable) do +local hasEncounterByEncounterSyncId = function(db, encounterSyncId) + local minTime = encounterSyncId - 120 + local maxTime = encounterSyncId + 120 + + for difficultyId, encounterIdTable in pairs(db or {}) do + if (type(encounterIdTable) == "table") then + for dungeonEncounterID, encounterTable in pairs(encounterIdTable) do for index, encounter in ipairs(encounterTable) do --check if the encounter fits in the timespam window if (encounter.time >= minTime and encounter.time <= maxTime) then @@ -1024,37 +1022,50 @@ local have_encounter = function(db, ID) return false end -local have_recent_requested_encounter = function(ID) - local minTime = ID - 120 - local maxTime = ID + 120 - - for requestedID, _ in pairs(_detalhes.RecentRequestedIDs) do +local hasRecentRequestedEncounterSyncId = function(encounterSyncId) + local minTime = encounterSyncId - 120 + local maxTime = encounterSyncId + 120 + + for requestedID in pairs(_detalhes.RecentRequestedIDs) do if (requestedID >= minTime and requestedID <= maxTime) then return true end end end +local getBossIdsForCurrentExpansion = function() + --make a list of raids and bosses that belong to the current expansion + local bossIndexedTable, bossInfoTable, raidInfoTable = Details:GetExpansionBossList() + local allowedBosses = {} + for bossId, bossTable in pairs(bossInfoTable) do + allowedBosses[bossTable.dungeonEncounterID] = true + end + return allowedBosses +end + --remote call RoS function _detalhes.storage:GetIDsToGuildSync() local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - - local IDs = {} - local myGuildName = GetGuildInfo("player") - --build the encounter ID list - for diff, diffTable in pairs(db or {}) do - if (type(diffTable) == "table") then - for encounterID, encounterTable in pairs(diffTable) do - if (encounter_is_current_tier (encounterID)) then + local encounterSyncIds = {} + local myGuildName = GetGuildInfo("player") + --myGuildName = "Patifaria" + + local allowedBosses = getBossIdsForCurrentExpansion() + + --build the encounter synchronized ID list + for difficultyId, encounterIdTable in pairs(db or {}) do + if (type(encounterIdTable) == "table") then + for dungeonEncounterID, encounterTable in pairs(encounterIdTable) do + if (allowedBosses[dungeonEncounterID]) then for index, encounter in ipairs(encounterTable) do if (encounter.servertime) then if (myGuildName == encounter.guild) then - tinsert(IDs, encounter.servertime) + tinsert(encounterSyncIds, encounter.servertime) end end end @@ -1062,149 +1073,145 @@ function _detalhes.storage:GetIDsToGuildSync() end end end - + if (_detalhes.debug) then - _detalhes:Msg("(debug) [RoS-EncounterSync] sending " .. #IDs .. " IDs.") + _detalhes:Msg("(debug) [RoS-EncounterSync] sending " .. #encounterSyncIds .. " IDs.") end - - return IDs + + return encounterSyncIds end - ---local call RoC - received the encounter IDS - need to know which fights is missing -function _detalhes.storage:CheckMissingIDsToGuildSync (IDsList) +--local call RoC - received the encounterSyncIds - need to know which fights is missing +function _detalhes.storage:CheckMissingIDsToGuildSync(encounterSyncIds) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - - if (type(IDsList) ~= "table") then + + if (type(encounterSyncIds) ~= "table") then if (_detalhes.debug) then - _detalhes:Msg("(debug) [RoS-EncounterSync] RoC IDsList isn't a table.") + _detalhes:Msg("(debug) [RoS-EncounterSync] RoC encounterSyncIds isn't a table.") end return end - - --this will prevent to request the same fight from multiple people + + --prevent to request the same fight from multiple people _detalhes.RecentRequestedIDs = _detalhes.RecentRequestedIDs or {} - + --store the IDs which need to be sync - local RequestIDs = {} - + local requestEncounterSyncIds = {} + --check missing IDs - for index, ID in ipairs(IDsList) do - if (not have_encounter (db, ID)) then - if (not have_recent_requested_encounter (ID)) then - tinsert(RequestIDs, ID) - _detalhes.RecentRequestedIDs [ID] = true + for index, encounterSyncId in ipairs(encounterSyncIds) do + if (not hasEncounterByEncounterSyncId(db, encounterSyncId)) then + if (not hasRecentRequestedEncounterSyncId(encounterSyncId)) then + tinsert(requestEncounterSyncIds, encounterSyncId) + _detalhes.RecentRequestedIDs[encounterSyncId] = true end end end - + if (_detalhes.debug) then - _detalhes:Msg("(debug) [RoC-EncounterSync] RoS found " .. #RequestIDs .. " encounters out dated.") + _detalhes:Msg("(debug) [RoC-EncounterSync] RoS found " .. #requestEncounterSyncIds .. " encounters out dated.") end - - return RequestIDs + + return requestEncounterSyncIds end ---remote call RoS - build the encounter list from the IDsList -function _detalhes.storage:BuildEncounterDataToGuildSync (IDsList) +--remote call RoS - build the encounter list from the encounterSyncIds +function _detalhes.storage:BuildEncounterDataToGuildSync(encounterSyncIds) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - - if (type(IDsList) ~= "table") then + + if (type(encounterSyncIds) ~= "table") then if (_detalhes.debug) then _detalhes:Msg("(debug) [RoS-EncounterSync] IDsList isn't a table.") end return end - - local EncounterList = {} - local CurrentTable = {} - tinsert(EncounterList, CurrentTable) - - local AmtToSend = 0 - local MaxAmount = 0 - + + local amtToSend = 0 + local maxAmount = 0 + + local encounterList = {} + local currentTable = {} + tinsert(encounterList, currentTable) + if (_detalhes.debug) then - _detalhes:Msg("(debug) [RoS-EncounterSync] the client requested " .. #IDsList .. " encounters.") + _detalhes:Msg("(debug) [RoS-EncounterSync] the client requested " .. #encounterSyncIds .. " encounters.") end - - for index, ID in ipairs(IDsList) do - - for diff, diffTable in pairs(db or {}) do - if (type(diffTable) == "table") then - for encounterID, encounterTable in pairs(diffTable) do + + for index, encounterSyncId in ipairs(encounterSyncIds) do + for difficultyId, encounterIdTable in pairs(db or {}) do + if (type(encounterIdTable) == "table") then + for dungeonEncounterID, encounterTable in pairs(encounterIdTable) do for index, encounter in ipairs(encounterTable) do - - if (ID == encounter.time or ID == encounter.servertime) then --the time here is always exactly + if (encounterSyncId == encounter.time or encounterSyncId == encounter.servertime) then --the time here is always exactly --send this encounter - CurrentTable [diff] = CurrentTable [diff] or {} - CurrentTable [diff] [encounterID] = CurrentTable [diff] [encounterID] or {} - - tinsert(CurrentTable [diff] [encounterID], encounter) - - AmtToSend = AmtToSend + 1 - MaxAmount = MaxAmount + 1 - - if (MaxAmount == 3) then - CurrentTable = {} - tinsert(EncounterList, CurrentTable) - MaxAmount = 0 + currentTable[difficultyId] = currentTable[difficultyId] or {} + currentTable[difficultyId][dungeonEncounterID] = currentTable[difficultyId][dungeonEncounterID] or {} + + tinsert(currentTable[difficultyId][dungeonEncounterID], encounter) + + amtToSend = amtToSend + 1 + maxAmount = maxAmount + 1 + + if (maxAmount == 3) then + currentTable = {} + tinsert(encounterList, currentTable) + maxAmount = 0 end end end end end end - end - + if (_detalhes.debug) then - _detalhes:Msg("(debug) [RoS-EncounterSync] sending " .. AmtToSend .. " encounters.") + _detalhes:Msg("(debug) [RoS-EncounterSync] sending " .. amtToSend .. " encounters.") end - - return EncounterList + + return encounterList end --local call RoC - add the fights to the client db -function _detalhes.storage:AddGuildSyncData (data, source) +function _detalhes.storage:AddGuildSyncData(data, source) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - - local AddedAmount = 0 + + local addedAmount = 0 _detalhes.LastGuildSyncReceived = GetTime() - - for diff, diffTable in pairs(data) do - if (type(diff) == "number" and type(diffTable) == "table") then - for encounterID, encounterTable in pairs(diffTable) do - if (type(encounterID) == "number" and type(encounterTable) == "table") then + local allowedBosses = getBossIdsForCurrentExpansion() + + for difficultyId, encounterIdTable in pairs(data) do + if (type(difficultyId) == "number" and type(encounterIdTable) == "table") then + for dungeonEncounterID, encounterTable in pairs(encounterIdTable) do + if (type(dungeonEncounterID) == "number" and type(encounterTable) == "table") then for index, encounter in ipairs(encounterTable) do --validate the encounter if (type(encounter.servertime) == "number" and type(encounter.time) == "number" and type(encounter.guild) == "string" and type(encounter.date) == "string" and type(encounter.healing) == "table" and type(encounter.elapsed) == "number" and type(encounter.damage) == "table") then --check if the encounter is from the current raiding tier - if (encounter_is_current_tier (encounterID)) then + if (allowedBosses[dungeonEncounterID]) then --check if this encounter already has been added from another sync - if (not have_encounter (db, encounter.servertime)) then - db [diff] = db [diff] or {} - db [diff] [encounterID] = db [diff] [encounterID] or {} - - tinsert(db [diff] [encounterID], encounter) - + if (not hasEncounterByEncounterSyncId(db, encounter.servertime)) then + db[difficultyId] = db[difficultyId] or {} + db[difficultyId][dungeonEncounterID] = db[difficultyId][dungeonEncounterID] or {} + tinsert(db[difficultyId][dungeonEncounterID], encounter) + if (_G.DetailsRaidHistoryWindow and _G.DetailsRaidHistoryWindow:IsShown()) then _G.DetailsRaidHistoryWindow:Refresh() end - - AddedAmount = AddedAmount + 1 + + addedAmount = addedAmount + 1 else if (_detalhes.debug) then _detalhes:Msg("(debug) [RoS-EncounterSync] received a duplicated encounter table.") @@ -1213,7 +1220,7 @@ function _detalhes.storage:AddGuildSyncData (data, source) else if (_detalhes.debug) then _detalhes:Msg("(debug) [RoS-EncounterSync] received an old tier encounter.") - end + end end else if (_detalhes.debug) then @@ -1225,11 +1232,11 @@ function _detalhes.storage:AddGuildSyncData (data, source) end end end - + if (_detalhes.debug) then - _detalhes:Msg("(debug) [RoS-EncounterSync] added " .. AddedAmount .. " to database.") + _detalhes:Msg("(debug) [RoS-EncounterSync] added " .. addedAmount .. " to database.") end - + if (_G.DetailsRaidHistoryWindow and _G.DetailsRaidHistoryWindow:IsShown()) then _G.DetailsRaidHistoryWindow:UpdateDropdowns() _G.DetailsRaidHistoryWindow:Refresh() @@ -1238,159 +1245,162 @@ end function _detalhes.storage:ListDiffs() local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - - local t = {} - for diff, _ in pairs(db) do - tinsert(t, diff) + + local resultTable = {} + for difficultyId in pairs(db) do + tinsert(resultTable, difficultyId) end - return t + return resultTable end -function _detalhes.storage:ListEncounters (diff) +function _detalhes.storage:ListEncounters(difficultyId) local db = _detalhes.storage:OpenRaidStorage() - + if (not db) then return end - - local t = {} - if (diff) then - local table = db [diff] - if (table) then - for encounter_id, _ in pairs(table) do - tinsert(t, {diff, encounter_id}) + + local resultTable = {} + if (difficultyId) then + local encounterIdTable = db[difficultyId] + if (encounterIdTable) then + for dungeonEncounterID in pairs(encounterIdTable) do + tinsert(resultTable, {difficultyId, dungeonEncounterID}) end end else - for diff, table in pairs(db) do - for encounter_id, _ in pairs(table) do - tinsert(t, {diff, encounter_id}) + for difficultyId, encounterIdTable in pairs(db) do + for dungeonEncounterID in pairs(encounterIdTable) do + tinsert(resultTable, {difficultyId, dungeonEncounterID}) end end end - - return t + + return resultTable end -function _detalhes.storage:GetPlayerData (diff, encounter_id, playername) +function _detalhes.storage:GetPlayerData(difficultyId, dungeonEncounterID, playerName) local db = _detalhes.storage:OpenRaidStorage() if (not db) then return end - - local t = {} - assert(type(playername) == "string", "PlayerName must be a string.") - - if (not diff) then - for diff, table in pairs(db) do - if (encounter_id) then - local encounters = table [encounter_id] + local resultTable = {} + assert(type(playerName) == "string", "playerName must be a string.") + + if (not difficultyId) then + for difficultyId, encounterIdTable in pairs(db) do + if (dungeonEncounterID) then + local encounters = encounterIdTable[dungeonEncounterID] if (encounters) then for i = 1, #encounters do - local encounter = encounters [i] - local player = encounter.healing [playername] or encounter.damage [playername] - if (player) then - tinsert(t, player) + local encounter = encounters[i] + local playerData = encounter.healing[playerName] or encounter.damage[playerName] + if (playerData) then + tinsert(resultTable, playerData) end end end else - for encounter_id, encounters in pairs(table) do + for dungeonEncounterID, encounters in pairs(encounterIdTable) do for i = 1, #encounters do - local encounter = encounters [i] - local player = encounter.healing [playername] or encounter.damage [playername] - if (player) then - tinsert(t, player) + local encounter = encounters[i] + local playerData = encounter.healing[playerName] or encounter.damage[playerName] + if (playerData) then + tinsert(resultTable, playerData) end end end end end else - local table = db [diff] - if (table) then - if (encounter_id) then - local encounters = table [encounter_id] + local encounterIdTable = db[difficultyId] + if (encounterIdTable) then + if (dungeonEncounterID) then + local encounters = encounterIdTable[dungeonEncounterID] if (encounters) then for i = 1, #encounters do - local encounter = encounters [i] - local player = encounter.healing [playername] or encounter.damage [playername] - if (player) then - tinsert(t, player) + local encounter = encounters[i] + local playerData = encounter.healing[playerName] or encounter.damage[playerName] + if (playerData) then + tinsert(resultTable, playerData) end end end else - for encounter_id, encounters in pairs(table) do + for dungeonEncounterID, encounters in pairs(encounterIdTable) do for i = 1, #encounters do - local encounter = encounters [i] - local player = encounter.healing [playername] or encounter.damage [playername] - if (player) then - tinsert(t, player) + local encounter = encounters[i] + local playerData = encounter.healing[playerName] or encounter.damage[playerName] + if (playerData) then + tinsert(resultTable, playerData) end end end end end end - - return t + + return resultTable end -function _detalhes.storage:GetEncounterData (diff, encounter_id, guild) +function _detalhes.storage:GetEncounterData(difficultyId, dungeonEncounterID, guildName) local db = _detalhes.storage:OpenRaidStorage() - if (not diff) then + if (not db) then + return + end + + if (not difficultyId) then return db end - local data = db [diff] - - assert(data, "Difficulty not found. Use: 14, 15 or 16.") - assert(type(encounter_id) == "number", "EncounterId must be a number.") - - data = data [encounter_id] - - local t = {} + local encounterIdTable = db[difficultyId] - if (not data) then - return t + assert(encounterIdTable, "Difficulty not found. Use: 14, 15 or 16.") + assert(type(dungeonEncounterID) == "number", "EncounterId must be a number.") + + local encounters = encounterIdTable[dungeonEncounterID] + local resultTable = {} + + if (not encounters) then + return resultTable end - - for i = 1, #data do - local encounter = data [i] - - if (guild) then - if (encounter.guild == guild) then - tinsert(t, encounter) + + for i = 1, #encounters do + local encounter = encounters[i] + + if (guildName) then + if (encounter.guild == guildName) then + tinsert(resultTable, encounter) end else - tinsert(t, encounter) + tinsert(resultTable, encounter) end end - - return t + + return resultTable end -local create_storage_tables = function() +local createStorageTables = function() --get the storage table local db = DetailsDataStorage - - if (not db and _detalhes.CreateStorageDB) then - db = _detalhes:CreateStorageDB() + + if (not db and Details.CreateStorageDB) then + db = Details:CreateStorageDB() if (not db) then return end + elseif (not db) then return end - + return db end @@ -1402,20 +1412,20 @@ function _detalhes.ScheduleLoadStorage() _detalhes.schedule_storage_load = true return else - if (not IsAddOnLoaded ("Details_DataStorage")) then - local loaded, reason = LoadAddOn ("Details_DataStorage") + if (not IsAddOnLoaded("Details_DataStorage")) then + local loaded, reason = LoadAddOn("Details_DataStorage") if (not loaded) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: can't load storage, may be the addon is disabled.") end return end - - create_storage_tables() + + createStorageTables() end end - - if (IsAddOnLoaded ("Details_DataStorage")) then + + if (IsAddOnLoaded("Details_DataStorage")) then _detalhes.schedule_storage_load = nil _detalhes.StorageLoaded = true if (_detalhes.debug) then @@ -1437,7 +1447,7 @@ function _detalhes.OpenStorage() --if the player is in combat, this function return false, if failed to load by other reason it returns nil --check if the storage is already loaded - if (not IsAddOnLoaded ("Details_DataStorage")) then + if (not IsAddOnLoaded("Details_DataStorage")) then --can't open it during combat if (InCombatLockdown() or UnitAffectingCombat("player")) then if (_detalhes.debug) then @@ -1445,21 +1455,21 @@ function _detalhes.OpenStorage() end return false end - - local loaded, reason = LoadAddOn ("Details_DataStorage") + + local loaded, reason = LoadAddOn("Details_DataStorage") if (not loaded) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: can't load storage, may be the addon is disabled.") end return end - - local db = create_storage_tables() - - if (db and IsAddOnLoaded ("Details_DataStorage")) then + + local db = createStorageTables() + + if (db and IsAddOnLoaded("Details_DataStorage")) then _detalhes.StorageLoaded = true end - + return DetailsDataStorage else return DetailsDataStorage @@ -1482,7 +1492,7 @@ function Details.Database.LoadDB() --get the storage table local db = _G.DetailsDataStorage - + if (not db and _detalhes.CreateStorageDB) then db = _detalhes:CreateStorageDB() if (not db) then @@ -1503,17 +1513,15 @@ end function Details.Database.GetBossKillsDB(db) --total kills in a boss on raid or dungeon - local totalkills_database = db["totalkills"] - if (not totalkills_database) then + local totalKillsDataBase = db["totalkills"] + if (not totalKillsDataBase) then db["totalkills"] = {} - totalkills_database = db["totalkills"] + totalKillsDataBase = db["totalkills"] end - - return totalkills_database + return totalKillsDataBase end function Details.Database.StoreWipe(combat) - combat = combat or _detalhes.tabela_vigente if (not combat) then @@ -1524,20 +1532,19 @@ function Details.Database.StoreWipe(combat) end local name, type, difficulty, difficultyName, maxPlayers, playerDifficulty, isDynamicInstance, mapID, instanceGroupSize = GetInstanceInfo() - local bossCLEUID = combat.boss_info and combat.boss_info.id - - if (not store_instances [mapID]) then + + if (not instancesToStoreData[mapID]) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: instance not allowed.") end return end - local boss_info = combat:GetBossInfo() - local encounter_id = boss_info and boss_info.id - - if (not encounter_id) then + local bossInfo = combat:GetBossInfo() + local dungeonEncounterID = bossInfo and bossInfo.id + + if (not dungeonEncounterID) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: encounter ID not found.") end @@ -1545,69 +1552,67 @@ function Details.Database.StoreWipe(combat) end --get the difficulty - local diff = combat:GetDifficulty() - + local difficultyId = combat:GetDifficulty() + --database - local db = Details.Database.LoadDB() - if (not db) then - return - end - - local diff_storage = db [diff] - if (not diff_storage) then - db [diff] = {} - diff_storage = db [diff] - end - - local encounter_database = diff_storage [encounter_id] - if (not encounter_database) then - diff_storage [encounter_id] = {} - encounter_database = diff_storage [encounter_id] - end - - --total kills in a boss on raid or dungeon - local totalkills_database = Details.Database.GetBossKillsDB(db) - - if (IsInRaid()) then - totalkills_database[encounter_id] = totalkills_database[encounter_id] or {} - totalkills_database[encounter_id][diff] = totalkills_database[encounter_id][diff] or {kills = 0, wipes = 0, time_fasterkill = 0, time_fasterkill_when = 0, time_incombat = 0, dps_best = 0, dps_best_when = 0, dps_best_raid = 0, dps_best_raid_when = 0} - - local bossData = totalkills_database[encounter_id][diff] - - --wipes amount - bossData.wipes = bossData.wipes + 1 - - Details:Msg("Wipe stored, you have now " .. bossData.wipes .. " wipes on this boss.") + local db = Details.Database.LoadDB() + if (not db) then + return + end + + local encounterIdTable = db[difficultyId] + if (not encounterIdTable) then + db [difficultyId] = {} + encounterIdTable = db[difficultyId] + end + + local encounters = encounterIdTable[dungeonEncounterID] + if (not encounters) then + encounterIdTable[dungeonEncounterID] = {} + encounters = encounterIdTable[dungeonEncounterID] + end + + --total kills in a boss on raid or dungeon + local totalKillsDataBase = Details.Database.GetBossKillsDB(db) + + if (IsInRaid()) then + totalKillsDataBase[dungeonEncounterID] = totalKillsDataBase[dungeonEncounterID] or {} + totalKillsDataBase[dungeonEncounterID][difficultyId] = totalKillsDataBase[dungeonEncounterID][difficultyId] or {kills = 0, wipes = 0, time_fasterkill = 0, time_fasterkill_when = 0, time_incombat = 0, dps_best = 0, dps_best_when = 0, dps_best_raid = 0, dps_best_raid_when = 0} + + local bossData = totalKillsDataBase[dungeonEncounterID][difficultyId] + bossData.wipes = bossData.wipes + 1 + + --wipes amount + if (bossData.wipes % 10 == 0) then + --nah player does not want to know that + --Details:Msg("Wipe stored, you have now " .. bossData.wipes .. " wipes on this boss.") end + end end function Details.Database.StoreEncounter(combat) - - --note: this only runs on boss kill - combat = combat or _detalhes.tabela_vigente - + if (not combat) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: combat not found.") end return end - + local name, type, difficulty, difficultyName, maxPlayers, playerDifficulty, isDynamicInstance, mapID, instanceGroupSize = GetInstanceInfo() - local bossCLEUID = combat.boss_info and combat.boss_info.id - - if (not store_instances [mapID]) then + + if (not instancesToStoreData[mapID]) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: instance not allowed.") end return end - + local boss_info = combat:GetBossInfo() local encounter_id = boss_info and boss_info.id - + if (not encounter_id) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: encounter ID not found.") @@ -1617,19 +1622,19 @@ function Details.Database.StoreEncounter(combat) --get the difficulty local diff = combat:GetDifficulty() - + --database local db = Details.Database.LoadDB() if (not db) then return end - + local diff_storage = db [diff] if (not diff_storage) then db [diff] = {} diff_storage = db [diff] end - + local encounter_database = diff_storage [encounter_id] if (not encounter_database) then diff_storage [encounter_id] = {} @@ -1682,13 +1687,13 @@ function Details.Database.StoreEncounter(combat) --check for heroic and mythic - if (storageDebug or (diff == 15 or diff == 16 or diff == 14)) then --test on raid finder: ' or diff == 17' -- normal mode: diff == 14 or - + if (storageDebug or (diff == 15 or diff == 16 or diff == 14)) then --test on raid finder: ' or diff == 17' -- normal mode: diff == 14 or + --check the guild name local match = 0 local guildName = GetGuildInfo ("player") local raidSize = GetNumGroupMembers() or 0 - + if (not storageDebug) then if (guildName) then for i = 1, raidSize do @@ -1697,7 +1702,7 @@ function Details.Database.StoreEncounter(combat) match = match + 1 end end - + if (match < raidSize * 0.75 and not storageDebug) then if (_detalhes.debug) then print("|cFFFFFF00Details! Storage|r: can't save the encounter, need at least 75% of players be from your guild.") @@ -1713,7 +1718,7 @@ function Details.Database.StoreEncounter(combat) else guildName = "Test Guild" end - + local this_combat_data = { damage = {}, healing = {}, @@ -1723,26 +1728,26 @@ function Details.Database.StoreEncounter(combat) elapsed = combat:GetCombatTime(), guild = guildName, } - + local damage_container_hash = combat [1]._NameIndexTable local damage_container_pool = combat [1]._ActorTable - + local healing_container_hash = combat [2]._NameIndexTable local healing_container_pool = combat [2]._ActorTable for i = 1, GetNumGroupMembers() do - + local role = UnitGroupRolesAssigned("raid" .. i) - + if (UnitIsInMyGuild ("raid" .. i)) then if (role == "DAMAGER" or role == "TANK") then local player_name, player_realm = UnitName ("raid" .. i) if (player_realm and player_realm ~= "") then player_name = player_name .. "-" .. player_realm end - + local _, _, class = UnitClass(player_name) - + local damage_actor = damage_container_pool [damage_container_hash [player_name]] if (damage_actor) then local guid = UnitGUID(player_name) or UnitGUID(UnitName ("raid" .. i)) @@ -1753,9 +1758,9 @@ function Details.Database.StoreEncounter(combat) if (player_realm and player_realm ~= "") then player_name = player_name .. "-" .. player_realm end - + local _, _, class = UnitClass(player_name) - + local heal_actor = healing_container_pool [healing_container_hash [player_name]] if (heal_actor) then local guid = UnitGUID(player_name) or UnitGUID(UnitName ("raid" .. i)) @@ -1764,7 +1769,7 @@ function Details.Database.StoreEncounter(combat) end end end - + --add the encounter data tinsert(encounter_database, this_combat_data) if (_detalhes.debug) then @@ -1784,7 +1789,7 @@ function Details.Database.StoreEncounter(combat) elseif (myrole == "HEALER") then d_one = combat (2, _detalhes.playername) and combat (2, _detalhes.playername).total / combat:GetCombatTime() end - + if (myBestDps > d_one) then if (not _detalhes.deny_score_messages) then print(Loc ["STRING_DETAILS1"] .. format(Loc ["STRING_SCORE_NOTBEST"], _detalhes:ToK2 (d_one), _detalhes:ToK2 (myBestDps), onencounter.date, mybest[2])) @@ -1795,7 +1800,7 @@ function Details.Database.StoreEncounter(combat) end end end - + local lower_instance = _detalhes:GetLowerInstanceNumber() if (lower_instance) then local instance = _detalhes:GetInstance(lower_instance) @@ -1808,7 +1813,7 @@ function Details.Database.StoreEncounter(combat) local func = {_detalhes.OpenRaidHistoryWindow, _detalhes, raid_name, encounter_id, diff, my_role, guildName} --, 2, UnitName ("player") --local icon = {[[Interface\AddOns\Details\images\icons]], 16, 16, false, 434/512, 466/512, 243/512, 273/512} local icon = {[[Interface\PvPRankBadges\PvPRank08]], 16, 16, false, 0, 1, 0, 1} - + if (not _detalhes.deny_score_messages) then instance:InstanceAlert (Loc ["STRING_GUILDDAMAGERANK_WINDOWALERT"], icon, _detalhes.update_warning_timeout, func, true) end @@ -1873,7 +1878,7 @@ function _detalhes:IlvlFromNetwork (player, realm, core, serialNumber, itemLevel if (not player) then return end - + --older versions of details wont send serial nor talents nor spec if (not serialNumber or not itemLevel or not talentsSelected or not currentSpec) then --if any data is invalid, abort @@ -1882,7 +1887,7 @@ function _detalhes:IlvlFromNetwork (player, realm, core, serialNumber, itemLevel --won't inspect this actor _detalhes.trusted_characters [serialNumber] = true - + if (type(serialNumber) ~= "string") then return end @@ -1891,14 +1896,14 @@ function _detalhes:IlvlFromNetwork (player, realm, core, serialNumber, itemLevel if (type(itemLevel) == "number") then _detalhes.item_level_pool [serialNumber] = {name = player, ilvl = itemLevel, time = time()} end - + --store talents if (type(talentsSelected) == "table") then if (talentsSelected [1]) then _detalhes.cached_talents [serialNumber] = talentsSelected end end - + --store the spec the player is playing if (type(currentSpec) == "number") then _detalhes.cached_specs [serialNumber] = currentSpec @@ -1910,7 +1915,7 @@ end --/run wipe (_detalhes.item_level_pool) function ilvl_core:CalcItemLevel (unitid, guid, shout) - + if (type(unitid) == "table") then shout = unitid [3] guid = unitid [2] @@ -1923,7 +1928,7 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout) local item_amount = 16 local item_level = 0 local failed = 0 - + for equip_id = 1, 17 do if (equip_id ~= 4) then --shirt slot local item = GetInventoryItemLink (unitid, equip_id) @@ -1947,32 +1952,32 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout) end end end - + local average = item_level / item_amount --print(UnitName (unitid), "ILVL:", average, unitid, "items:", item_amount) - + --register if (average > 0) then if (shout) then _detalhes:Msg(UnitName(unitid) .. " item level: " .. average) end - + if (average > MIN_ILEVEL_TO_STORE) then local name = _detalhes:GetCLName(unitid) _detalhes.item_level_pool [guid] = {name = name, ilvl = average, time = time()} end end - + local spec local talents = {} - + if (not DetailsFramework.IsTimewalkWoW()) then spec = GetInspectSpecialization (unitid) if (spec and spec ~= 0) then _detalhes.cached_specs [guid] = spec Details:SendEvent("UNIT_SPEC", nil, unitid, spec, guid) end - + -------------------------------------------------------------------------------------------------------- for i = 1, 7 do @@ -1985,7 +1990,7 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout) end end end - + if (talents [1]) then _detalhes.cached_talents [guid] = talents Details:SendEvent("UNIT_TALENTS", nil, unitid, talents, guid) @@ -2005,21 +2010,21 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout) end -------------------------------------------------------------------------------------------------------- - + end end _detalhes.ilevel.CalcItemLevel = ilvl_core.CalcItemLevel inspect_frame:SetScript("OnEvent", function(self, event, ...) local guid = select(1, ...) - + if (inspecting [guid]) then local unitid, cancel_tread = inspecting [guid] [1], inspecting [guid] [2] inspecting [guid] = nil ilvl_core.amt_inspecting = ilvl_core.amt_inspecting - 1 - + ilvl_core:CancelTimer(cancel_tread) - + --do inspect stuff if (unitid) then local t = {unitid, guid} @@ -2088,7 +2093,7 @@ end local NotifyInspectHook = function(unitid) local unit = unitid:gsub("%d+", "") - + if ((IsInRaid() or IsInGroup()) and (_detalhes:GetZoneType() == "raid" or _detalhes:GetZoneType() == "party")) then local guid = UnitGUID(unitid) local name = _detalhes:GetCLName(unitid) @@ -2099,7 +2104,7 @@ local NotifyInspectHook = function(unitid) break end end - + inspecting [guid] = {unitid, ilvl_core:ScheduleTimer("InspectTimeOut", 12, guid)} ilvl_core.amt_inspecting = ilvl_core.amt_inspecting + 1 end @@ -2110,7 +2115,7 @@ end function ilvl_core:Reset() ilvl_core.raid_id = 1 ilvl_core.amt_inspecting = 0 - + for guid, t in pairs(inspecting) do ilvl_core:CancelTimer(t[2]) inspecting [guid] = nil @@ -2142,30 +2147,30 @@ function ilvl_core:QueryInspect (unitName, callback, param1) else unitid = unitName end - + if (not unitid) then return false end - + local guid = UnitGUID(unitid) if (not guid) then return false elseif (ilvl_core.forced_inspects [guid]) then return true end - + if (inspecting [guid]) then return true end - + ilvl_core.forced_inspects [guid] = {callback = callback, param1 = param1} ilvl_core:GetItemLevel (unitid, guid, true) - + if (ilvl_core.clear_queued_list) then ilvl_core:CancelTimer(ilvl_core.clear_queued_list) end ilvl_core.clear_queued_list = ilvl_core:ScheduleTimer("ClearQueryInspectQueue", 60) - + return true end @@ -2188,7 +2193,7 @@ function ilvl_core:Loop() if (ilvl_core.raid_id > members_amt) then ilvl_core.raid_id = 1 end - + local unitid if (IsInRaid()) then unitid = "raid" .. ilvl_core.raid_id @@ -2214,7 +2219,7 @@ function ilvl_core:Loop() ilvl_core.raid_id = ilvl_core.raid_id + 1 return end - + ilvl_core:GetItemLevel (unitid, guid) ilvl_core.raid_id = ilvl_core.raid_id + 1 end @@ -2256,7 +2261,7 @@ function ilvl_core:OnEnter() if (IsInRaid()) then _detalhes:SendCharacterData() end - + if (can_start_loop()) then ilvl_core:Reset() ilvl_core.loop_process = ilvl_core:ScheduleRepeatingTimer ("Loop", LOOP_TIME) @@ -2343,7 +2348,7 @@ function Details:CompressData (data, dataType) if (dataType == "print") then local dataEncoded = LibDeflate:EncodeForPrint (dataCompressed) return dataEncoded - + elseif (dataType == "comm") then local dataEncoded = LibDeflate:EncodeForWoWAddonChannel (dataCompressed) return dataEncoded @@ -2356,15 +2361,15 @@ end function Details:DecompressData (data, dataType) local LibDeflate = LibStub:GetLibrary ("LibDeflate") local LibAceSerializer = LibStub:GetLibrary ("AceSerializer-3.0") - + if (LibDeflate and LibAceSerializer) then - + local dataCompressed - + if (dataType == "print") then - + data = DetailsFramework:Trim (data) - + dataCompressed = LibDeflate:DecodeForPrint (data) if (not dataCompressed) then Details:Msg("couldn't decode the data.") @@ -2379,18 +2384,18 @@ function Details:DecompressData (data, dataType) end end local dataSerialized = LibDeflate:DecompressDeflate (dataCompressed) - + if (not dataSerialized) then Details:Msg("couldn't uncompress the data.") return false end - + local okay, data = LibAceSerializer:Deserialize (dataSerialized) if (not okay) then Details:Msg("couldn't unserialize the data.") return false end - + return data end end @@ -2440,7 +2445,7 @@ Details.specToRole = { [71] = "DAMAGER", --ARMS [72] = "DAMAGER", --FURY [73] = "TANK", --PROT - + --DK [250] = "TANK", --Blood [251] = "DAMAGER", --Frost @@ -2457,7 +2462,7 @@ Details.specToRole = { --EVOKER [1467] = "DAMAGER", --Devastation Evoker - [1468] = "HEALER", --Preservation Evoker + [1468] = "HEALER", --Preservation Evoker } --oldschool talent tree @@ -2556,13 +2561,13 @@ if (DetailsFramework.IsWotLKWow()) then local item_amount = 16 local item_level = 0 local failed = 0 - + local two_hand = { ["INVTYPE_2HWEAPON"] = true, ["INVTYPE_RANGED"] = true, ["INVTYPE_RANGEDRIGHT"] = true, } - + for equip_id = 1, 17 do if (equip_id ~= 4) then --shirt slot, trinkets local item = GetInventoryItemLink("player", equip_id) @@ -2570,7 +2575,7 @@ if (DetailsFramework.IsWotLKWow()) then local _, _, itemRarity, iLevel, _, _, _, _, equipSlot = GetItemInfo(item) if (iLevel) then item_level = item_level + iLevel - + --16 = main hand 17 = off hand -- if using a two-hand, ignore the off hand slot if (equip_id == 16 and two_hand [equipSlot]) then @@ -2621,7 +2626,7 @@ if (DetailsFramework.IsWotLKWow()) then if (column == 3 and rank == 5) then tankTalents = tankTalents + 5 end - + if (tankTalents >= 10) then return "TANK" end @@ -2629,7 +2634,7 @@ if (DetailsFramework.IsWotLKWow()) then end end end - + return Details.specToRole [specId] or "NONE" end @@ -3130,18 +3135,18 @@ hooksecurefunc("ChatFrame_DisplayTimePlayed", function() if (Details.played_class_time) then C_Timer.After(0, function() local expansionName = _G["EXPANSION_NAME" .. GetExpansionLevel()] - for fontString in ChatFrame1.fontStringPool:EnumerateActive() do - if (fontString:GetText() and fontString:GetText():find(expansionName)) then + for fontString in ChatFrame1.fontStringPool:EnumerateActive() do + if (fontString:GetText() and fontString:GetText():find(expansionName)) then return - end + end end local levelText = TIME_PLAYED_LEVEL and TIME_PLAYED_LEVEL:gsub("%%s", "") or "" - for fontString in ChatFrame1.fontStringPool:EnumerateActive() do - if (fontString:GetText() and fontString:GetText():find(levelText)) then + for fontString in ChatFrame1.fontStringPool:EnumerateActive() do + if (fontString:GetText() and fontString:GetText():find(levelText)) then print(Details.GetPlayTimeOnClassString() .. " (/details playedclass)") break - end + end end end) end diff --git a/core/network.lua b/core/network.lua index 826177f7..3955a304 100644 --- a/core/network.lua +++ b/core/network.lua @@ -326,15 +326,15 @@ --guild sync G = requested a list of encounters --guild sync A = received missing encounters, add them - function Details.network.GuildSync(player, realm, coreVersion, type, data) - local characterName = Ambiguate(player, "none") + function Details.network.GuildSync(sourceName, realm, coreVersion, type, data) + local characterName = Ambiguate(sourceName, "none") - if (UnitName("player") == characterName) then - return + if (UnitName("player") == sourceName) then + --return end if (coreVersion ~= Details.realversion) then - return false + --return false end if (type == "R") then --RoS - somebody requested IDs of stored encounters @@ -345,22 +345,27 @@ end local IDs = Details.storage:GetIDsToGuildSync() + dumpt(IDs) + if (IDs and IDs [1]) then - local from = UnitName ("player") + local from = UnitName("player") local realm = GetRealmName() - Details:SendCommMessage(DETAILS_PREFIX_NETWORK, Details:Serialize(CONST_GUILD_SYNC, from, realm, Details.realversion, "L", IDs), "WHISPER", characterName) + Details:SendCommMessage(DETAILS_PREFIX_NETWORK, Details:Serialize(CONST_GUILD_SYNC, from, realm, Details.realversion, "L", IDs), "WHISPER", sourceName) end Details.LastGuildSyncDataTime1 = GetTime() + 60 return true elseif (type == "L") then --RoC - the player received the IDs list and send back which IDs he doesn't have - local MissingIDs = Details.storage:CheckMissingIDsToGuildSync(data) + local missingIds = Details.storage:CheckMissingIDsToGuildSync(data) - if (MissingIDs and MissingIDs[1]) then + print("data from:", sourceName, "missing ids", #missingIds) + dumpt(data) + + if (missingIds and missingIds[1]) then local from = UnitName ("player") local realm = GetRealmName() - Details:SendCommMessage(DETAILS_PREFIX_NETWORK, Details:Serialize(CONST_GUILD_SYNC, from, realm, Details.realversion, "G", MissingIDs), "WHISPER", characterName) + Details:SendCommMessage(DETAILS_PREFIX_NETWORK, Details:Serialize(CONST_GUILD_SYNC, from, realm, Details.realversion, "G", missingIds), "WHISPER", sourceName) end return true @@ -435,9 +440,6 @@ --register comm function Details:CommReceived(commPrefix, data, channel, source) - - --print("comm", source, data) - local deserializedTable = {Details:Deserialize(data)} if (not deserializedTable[1]) then if (Details.debugnet) then diff --git a/frames/window_statistics.lua b/frames/window_statistics.lua index afc0a090..653c72c3 100644 --- a/frames/window_statistics.lua +++ b/frames/window_statistics.lua @@ -1,5 +1,4 @@ - --todo: need to fix this file after pre-patch local Details = _G.Details @@ -27,23 +26,22 @@ function Details:InitializeRaidHistoryWindow() end end -function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild, _player_base, _player_name, _history_type) - +function Details:OpenRaidHistoryWindow(raidName, bossEncounterId, difficultyId, playerRole, guildName, playerBase, playerName, historyType) if (not DetailsRaidHistoryWindow or not DetailsRaidHistoryWindow.Initialized) then DetailsRaidHistoryWindow.Initialized = true - local f = DetailsRaidHistoryWindow or CreateFrame("frame", "DetailsRaidHistoryWindow", UIParent,"BackdropTemplate") --, "ButtonFrameTemplate" - f:SetPoint("center", UIParent, "center") - f:SetFrameStrata("HIGH") - f:SetToplevel(true) + local statisticsFrame = DetailsRaidHistoryWindow or CreateFrame("frame", "DetailsRaidHistoryWindow", UIParent, "BackdropTemplate") + statisticsFrame:SetPoint("center", UIParent, "center") + statisticsFrame:SetFrameStrata("HIGH") + statisticsFrame:SetToplevel(true) - f:SetMovable(true) - f:SetWidth(850) - f:SetHeight(500) + statisticsFrame:SetMovable(true) + statisticsFrame:SetWidth(850) + statisticsFrame:SetHeight(500) tinsert(UISpecialFrames, "DetailsRaidHistoryWindow") - function f.OpenDB() + function statisticsFrame.OpenDB() local db = Details.storage:OpenRaidStorage() if (not db) then Details:Msg(Loc ["STRING_GUILDDAMAGERANK_DATABASEERROR"]) @@ -52,67 +50,32 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild return db end - local db = f.OpenDB() + local db = statisticsFrame.OpenDB() if (not db) then return end - C_Timer.After(8, function() - --if (f:IsShown()) then - -- return Details:OpenRaidHistoryWindow(_raid, _boss, _difficulty, _role, _guild, _player_base, _player_name, _history_type) - --end - end) + statisticsFrame.Mode = 2 - f.Mode = 2 + DF:ApplyStandardBackdrop(statisticsFrame) - f.bg1 = f:CreateTexture(nil, "background") - f.bg1:SetTexture([[Interface\AddOns\Details\images\background]], true) - f.bg1:SetAlpha(0.7) - f.bg1:SetVertexColor(0.27, 0.27, 0.27) - f.bg1:SetVertTile(true) - f.bg1:SetHorizTile(true) - f.bg1:SetSize(790, 454) - f.bg1:SetAllPoints() - - f:SetBackdrop({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\AddOns\Details\images\background]], tileSize = 64, tile = true}) - f:SetBackdropColor(.5, .5, .5, .5) - f:SetBackdropBorderColor(0, 0, 0, 1) - - local titlebar = DF:CreateTitleBar(f, "Details! " .. Loc ["STRING_STATISTICS"]) - - if (not Details:GetTutorialCVar("HISTORYPANEL_TUTORIAL")) then - local tutorialFrame = CreateFrame("frame", "$parentTutorialFrame",f,"BackdropTemplate") - tutorialFrame:SetPoint("center", f, "center") - tutorialFrame:SetFrameStrata("DIALOG") - tutorialFrame:SetSize(400, 300) - tutorialFrame:SetBackdrop({bgFile = [[Interface\AddOns\Details\images\background]], tile = true, tileSize = 16, - insets = {left = 0, right = 0, top = 0, bottom = 0}, edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize=1}) - tutorialFrame:SetBackdropColor(0, 0, 0, 1) - - tutorialFrame.Title = DF:CreateLabel(tutorialFrame, "Statistics" , 12, "orange") --curse localization isn't adding new strings (and I deleted the old one) - tutorialFrame.Title:SetPoint("top", tutorialFrame, "top", 0, -5) - - tutorialFrame.Desc = DF:CreateLabel(tutorialFrame, Loc ["STRING_GUILDDAMAGERANK_TUTORIAL_DESC"], 12) - tutorialFrame.Desc.width = 370 - tutorialFrame.Desc:SetPoint("topleft", tutorialFrame, "topleft", 10, -45) - - local closeButton = DF:CreateButton(tutorialFrame, function() Details:SetTutorialCVar ("HISTORYPANEL_TUTORIAL", true); tutorialFrame:Hide() end, 80, 20, Loc ["STRING_OPTIONS_CHART_CLOSE"]) - closeButton:SetPoint("bottom", tutorialFrame, "bottom", 0, 10) - closeButton:SetTemplate(DF:GetTemplate("button", "OPTIONS_BUTTON_TEMPLATE")) - end + --create title bar + local titlebar = DF:CreateTitleBar(statisticsFrame, "Details! " .. Loc ["STRING_STATISTICS"]) +--STRING_GUILDDAMAGERANK_TUTORIAL_DESC +--STRING_OPTIONS_CHART_CLOSE --background - local background = f:CreateTexture("$parentBackgroundImage", "border") - background:SetAlpha(0.3) - background:SetPoint("topleft", f, "topleft", 6, -65) - background:SetPoint("bottomright", f, "bottomright", -10, 28) + local background = statisticsFrame:CreateTexture("$parentBackgroundImage", "border") + background:SetAlpha(0.3) + background:SetPoint("topleft", statisticsFrame, "topleft", 6, -65) + background:SetPoint("bottomright", statisticsFrame, "bottomright", -10, 28) --separate menu and main list - local div = f:CreateTexture(nil, "artwork") - div:SetTexture([[Interface\ACHIEVEMENTFRAME\UI-Achievement-MetalBorder-Left]]) - div:SetAlpha(0.1) - div:SetPoint("topleft", f, "topleft", 180, -64) - div:SetHeight(574) + local div = statisticsFrame:CreateTexture(nil, "artwork") + div:SetTexture([[Interface\ACHIEVEMENTFRAME\UI-Achievement-MetalBorder-Left]]) + div:SetAlpha(0.1) + div:SetPoint("topleft", statisticsFrame, "topleft", 180, -64) + div:SetHeight(574) --select history or guild rank local options_switch_template = DF:GetTemplate("switch", "OPTIONS_CHECKBOX_TEMPLATE") @@ -120,185 +83,191 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild local options_button_template = DF:GetTemplate("button", "OPTIONS_BUTTON_TEMPLATE") local selectKillTimeline = function() - f.GuildRankCheckBox:SetValue(false) - f.HistoryCheckBox:SetValue(true) - f.Mode = 1 - _G.DetailsRaidHistoryWindow:Refresh() - f.ReportButton:Hide() + statisticsFrame.GuildRankCheckBox:SetValue(false) + statisticsFrame.HistoryCheckBox:SetValue(true) + statisticsFrame.Mode = 1 + statisticsFrame:Refresh() + statisticsFrame.ReportButton:Hide() end local selectGuildRank = function() - f.HistoryCheckBox:SetValue(false) - f.GuildRankCheckBox:SetValue(true) - _G.DetailsRaidHistoryWindow.select_player:Select(1, true) - f.select_player2:Hide() - f.select_player2_label:Hide() - f.Mode = 2 - _G.DetailsRaidHistoryWindow:Refresh() - f.ReportButton:Show() + statisticsFrame.HistoryCheckBox:SetValue(false) + statisticsFrame.GuildRankCheckBox:SetValue(true) + statisticsFrame.select_player:Select(1, true) + statisticsFrame.select_player2:Hide() + statisticsFrame.select_player2_label:Hide() + statisticsFrame.Mode = 2 + statisticsFrame:Refresh() + statisticsFrame.ReportButton:Show() end --kill timeline - local HistoryCheckBox, HistoryLabel = DF:CreateSwitch(f, selectKillTimeline, false, 18, 18, "", "", "HistoryCheckBox", nil, nil, nil, nil, Loc ["STRING_GUILDDAMAGERANK_SHOWHISTORY"], options_switch_template) --, options_text_template + local HistoryCheckBox, HistoryLabel = DF:CreateSwitch(statisticsFrame, selectKillTimeline, false, 18, 18, "", "", "HistoryCheckBox", nil, nil, nil, nil, Loc ["STRING_GUILDDAMAGERANK_SHOWHISTORY"], options_switch_template) --, options_text_template HistoryLabel:ClearAllPoints() HistoryCheckBox:ClearAllPoints() - HistoryCheckBox:SetPoint("topleft", f, "topleft", 100, -34) + HistoryCheckBox:SetPoint("topleft", statisticsFrame, "topleft", 100, -34) HistoryLabel:SetPoint("left", HistoryCheckBox, "right", 2, 0) HistoryCheckBox:SetAsCheckBox() --guildrank - local GuildRankCheckBox, GuildRankLabel = DF:CreateSwitch(f, selectGuildRank, true, 18, 18, "", "", "GuildRankCheckBox", nil, nil, nil, nil, Loc ["STRING_GUILDDAMAGERANK_SHOWRANK"], options_switch_template) --, options_text_template + local GuildRankCheckBox, GuildRankLabel = DF:CreateSwitch(statisticsFrame, selectGuildRank, true, 18, 18, "", "", "GuildRankCheckBox", nil, nil, nil, nil, Loc ["STRING_GUILDDAMAGERANK_SHOWRANK"], options_switch_template) --, options_text_template GuildRankLabel:ClearAllPoints() GuildRankCheckBox:ClearAllPoints() - GuildRankCheckBox:SetPoint("topleft", f, "topleft", 240, -34) + GuildRankCheckBox:SetPoint("topleft", statisticsFrame, "topleft", 240, -34) GuildRankLabel:SetPoint("left", GuildRankCheckBox, "right", 2, 0) GuildRankCheckBox:SetAsCheckBox() --guild sync - local doGuildSync = function() - f.RequestedAmount = 0 - f.DownloadedAmount = 0 - f.EstimateSize = 0 - f.DownloadedSize = 0 - f.SyncStartTime = time() + local doGuildSync = function() + statisticsFrame.RequestedAmount = 0 + statisticsFrame.DownloadedAmount = 0 + statisticsFrame.EstimateSize = 0 + statisticsFrame.DownloadedSize = 0 + statisticsFrame.SyncStartTime = time() - Details.storage:DBGuildSync() - f.GuildSyncButton:Disable() + Details.storage:DBGuildSync() + statisticsFrame.GuildSyncButton:Disable() - if (not f.SyncTexture) then - local workingFrame = CreateFrame("frame", nil, f,"BackdropTemplate") - f.WorkingFrame = workingFrame - workingFrame:SetSize(1, 1) - f.SyncTextureBackground = workingFrame:CreateTexture(nil, "border") - f.SyncTextureBackground:SetPoint("bottomright", f, "bottomright", -5, -1) - f.SyncTextureBackground:SetTexture([[Interface\COMMON\StreamBackground]]) - f.SyncTextureBackground:SetSize(32, 32) - f.SyncTextureCircle = workingFrame:CreateTexture(nil, "artwork") - f.SyncTextureCircle:SetPoint("center", f.SyncTextureBackground, "center", 0, 0) - f.SyncTextureCircle:SetTexture([[Interface\COMMON\StreamCircle]]) - f.SyncTextureCircle:SetSize(32, 32) - f.SyncTextureGrade = workingFrame:CreateTexture(nil, "overlay") - f.SyncTextureGrade:SetPoint("center", f.SyncTextureBackground, "center", 0, 0) - f.SyncTextureGrade:SetTexture([[Interface\COMMON\StreamFrame]]) - f.SyncTextureGrade:SetSize(32, 32) + if (not statisticsFrame.SyncTexture) then + local workingFrame = CreateFrame("frame", nil, statisticsFrame, "BackdropTemplate") + statisticsFrame.WorkingFrame = workingFrame + workingFrame:SetSize(1, 1) + statisticsFrame.SyncTextureBackground = workingFrame:CreateTexture(nil, "border") + statisticsFrame.SyncTextureBackground:SetPoint("bottomright", statisticsFrame, "bottomright", -5, -1) + statisticsFrame.SyncTextureBackground:SetTexture([[Interface\COMMON\StreamBackground]]) + statisticsFrame.SyncTextureBackground:SetSize(32, 32) - local animationHub = DF:CreateAnimationHub (workingFrame) - animationHub:SetLooping ("Repeat") - f.WorkingAnimation = animationHub + statisticsFrame.SyncTextureCircle = workingFrame:CreateTexture(nil, "artwork") + statisticsFrame.SyncTextureCircle:SetPoint("center", statisticsFrame.SyncTextureBackground, "center", 0, 0) + statisticsFrame.SyncTextureCircle:SetTexture([[Interface\COMMON\StreamCircle]]) + statisticsFrame.SyncTextureCircle:SetSize(32, 32) - local rotation = DF:CreateAnimation(animationHub, "ROTATION", 1, 3, -360) - rotation:SetTarget (f.SyncTextureCircle) + statisticsFrame.SyncTextureGrade = workingFrame:CreateTexture(nil, "overlay") + statisticsFrame.SyncTextureGrade:SetPoint("center", statisticsFrame.SyncTextureBackground, "center", 0, 0) + statisticsFrame.SyncTextureGrade:SetTexture([[Interface\COMMON\StreamFrame]]) + statisticsFrame.SyncTextureGrade:SetSize(32, 32) - f.SyncText = workingFrame:CreateFontString(nil, "border", "GameFontNormal") - f.SyncText:SetPoint("right", f.SyncTextureBackground, "left", 0, 0) - f.SyncText:SetText("working") + local animationHub = DF:CreateAnimationHub(workingFrame) + animationHub:SetLooping("Repeat") + statisticsFrame.WorkingAnimation = animationHub - local endAnimationHub = DF:CreateAnimationHub (workingFrame, nil, function() workingFrame:Hide() end) - DF:CreateAnimation(endAnimationHub, "ALPHA", 1, 0.5, 1, 0) - f.EndAnimationHub = endAnimationHub - end + local rotation = DF:CreateAnimation(animationHub, "ROTATION", 1, 3, -360) + rotation:SetTarget(statisticsFrame.SyncTextureCircle) - f.WorkingFrame:Show() - f.WorkingAnimation:Play() + statisticsFrame.SyncText = workingFrame:CreateFontString(nil, "border", "GameFontNormal") + statisticsFrame.SyncText:SetPoint("right", statisticsFrame.SyncTextureBackground, "left", 0, 0) + statisticsFrame.SyncText:SetText("working") - C_Timer.NewTicker(10, function(self) - if (not Details.LastGuildSyncReceived) then - f.GuildSyncButton:Enable() - f.EndAnimationHub:Play() - - elseif (Details.LastGuildSyncReceived+10 < GetTime()) then - f.GuildSyncButton:Enable() - f.EndAnimationHub:Play() - self:Cancel() - end - end) + local endAnimationHub = DF:CreateAnimationHub(workingFrame, nil, function() workingFrame:Hide() end) + DF:CreateAnimation(endAnimationHub, "ALPHA", 1, 0.5, 1, 0) + statisticsFrame.EndAnimationHub = endAnimationHub end - local GuildSyncButton = DF:CreateButton(f, doGuildSync, 130, 20, Loc ["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"], nil, nil, nil, "GuildSyncButton", nil, nil, options_button_template, options_text_template) - GuildSyncButton:SetPoint("topright", f, "topright", -20, -34) - GuildSyncButton:SetIcon ([[Interface\GLUES\CharacterSelect\RestoreButton]], 12, 12, "overlay", {0.2, .8, 0.2, .8}, nil, 4) + statisticsFrame.WorkingFrame:Show() + statisticsFrame.WorkingAnimation:Play() + + C_Timer.NewTicker(10, function(self) + if (not Details.LastGuildSyncReceived) then + statisticsFrame.GuildSyncButton:Enable() + statisticsFrame.EndAnimationHub:Play() + + elseif (Details.LastGuildSyncReceived+10 < GetTime()) then + statisticsFrame.GuildSyncButton:Enable() + statisticsFrame.EndAnimationHub:Play() + self:Cancel() + end + end) + end + + local guildSyncButton = DF:CreateButton(statisticsFrame, doGuildSync, 130, 20, Loc ["STRING_GUILDDAMAGERANK_SYNCBUTTONTEXT"], nil, nil, nil, "GuildSyncButton", nil, nil, options_button_template, options_text_template) + guildSyncButton:SetPoint("topright", statisticsFrame, "topright", -20, -34) + guildSyncButton:SetIcon([[Interface\GLUES\CharacterSelect\RestoreButton]], 12, 12, "overlay", {0.2, .8, 0.2, .8}, nil, 4) --listen to comm events - local eventListener = Details:CreateEventListener() + local eventListener = Details:CreateEventListener() - function eventListener:OnCommReceived (event, length, prefix, playerName, realmName, detailsVersion, guildSyncID, data) - if (prefix == CONST_GUILD_SYNC) then - --received a list of encounter IDs - if (guildSyncID == "L") then + function eventListener:OnCommReceived(event, length, prefix, playerName, realmName, detailsVersion, guildSyncID, data) + if (prefix == CONST_GUILD_SYNC) then + --print(event, length, prefix, playerName, realmName, detailsVersion, guildSyncID, data) - --received one encounter table - elseif (guildSyncID == "A") then - if (not f.RequestedAmount) then - --if the receiving player reloads, f.RequestedAmount is nil - return - end - f.DownloadedAmount = (f.DownloadedAmount or 0) + 1 + --received a list of encounter IDs + if (guildSyncID == "L") then - --size = 1 byte per characters in the string - f.EstimateSize = length * f.RequestedAmount > f.EstimateSize and length * f.RequestedAmount or f.RequestedAmount - f.DownloadedSize = f.DownloadedSize + length - local downloadSpeed = f.DownloadedSize / (time() - f.SyncStartTime) - - f.SyncText:SetText("working [downloading " .. f.DownloadedAmount .. "/" .. f.RequestedAmount .. ", " .. format("%.2f", downloadSpeed/1024) .. "Kbps]") + --received one encounter table + elseif (guildSyncID == "A") then + if (not statisticsFrame.RequestedAmount) then + --if the receiving player reloads, f.RequestedAmount is nil + return end + statisticsFrame.DownloadedAmount = (statisticsFrame.DownloadedAmount or 0) + 1 + + --size = 1 byte per characters in the string + statisticsFrame.EstimateSize = length * statisticsFrame.RequestedAmount > statisticsFrame.EstimateSize and length * statisticsFrame.RequestedAmount or statisticsFrame.RequestedAmount + statisticsFrame.DownloadedSize = statisticsFrame.DownloadedSize + length + local downloadSpeed = statisticsFrame.DownloadedSize / (time() - statisticsFrame.SyncStartTime) + + statisticsFrame.SyncText:SetText("working [downloading " .. statisticsFrame.DownloadedAmount .. "/" .. statisticsFrame.RequestedAmount .. ", " .. format("%.2f", downloadSpeed/1024) .. "Kbps]") end end + end - function eventListener:OnCommSent(event, length, prefix, playerName, realmName, detailsVersion, guildSyncID, missingIDs, arg8, arg9) - if (prefix == CONST_GUILD_SYNC) then - --requested a list of encounters - if (guildSyncID == "R") then + function eventListener:OnCommSent(event, length, prefix, playerName, realmName, detailsVersion, guildSyncID, missingIDs, arg8, arg9) + if (prefix == CONST_GUILD_SYNC) then + --print(event, length, prefix, playerName, realmName, detailsVersion, guildSyncID, missingIDs, arg8, arg9) - --requested to download a selected list of encounter tables - elseif (guildSyncID == "G") then - f.RequestedAmount = f.RequestedAmount + #missingIDs - f.SyncText:SetText("working [downloading " .. f.DownloadedAmount .. "/" .. f.RequestedAmount .. "]") - end + --requested a list of encounters + if (guildSyncID == "R") then + + --requested to download a selected list of encounter tables + elseif (guildSyncID == "G") then + statisticsFrame.RequestedAmount = statisticsFrame.RequestedAmount + #missingIDs + statisticsFrame.SyncText:SetText("working [downloading " .. statisticsFrame.DownloadedAmount .. "/" .. statisticsFrame.RequestedAmount .. "]") end end + end - eventListener:RegisterEvent("COMM_EVENT_RECEIVED", "OnCommReceived") - eventListener:RegisterEvent("COMM_EVENT_SENT", "OnCommSent") + eventListener:RegisterEvent("COMM_EVENT_RECEIVED", "OnCommReceived") + eventListener:RegisterEvent("COMM_EVENT_SENT", "OnCommSent") --report results - function f.BuildReport() - if (f.LatestResourceTable) then - local reportFunc = function(IsCurrent, IsReverse, AmtLines) - local bossName = f.select_boss.label:GetText() - local bossDiff = f.select_diff.label:GetText() - local guildName = f.select_guild.label:GetText() - local reportTable = {"Details!: DPS Rank for: " .. (bossDiff or "") .. " " .. (bossName or "--x--x--") .. " <" .. (guildName or "") .. ">"} - local result = {} + function statisticsFrame.BuildReport() + if (statisticsFrame.LatestResourceTable) then + local reportFunc = function(IsCurrent, IsReverse, AmtLines) + local bossName = statisticsFrame.select_boss.label:GetText() + local bossDiff = statisticsFrame.select_diff.label:GetText() + local guildName = statisticsFrame.select_guild.label:GetText() + local reportTable = {"Details!: DPS Rank for: " .. (bossDiff or "") .. " " .. (bossName or "--x--x--") .. " <" .. (guildName or "") .. ">"} + local result = {} - for i = 1, AmtLines do - if (f.LatestResourceTable[i]) then - local playerName = f.LatestResourceTable[i][1] - playerName = playerName:gsub("%|c%x%x%x%x%x%x%x%x", "") - playerName = playerName:gsub("%|r", "") - playerName = playerName:gsub(".*%s", "") - tinsert(result, {playerName, f.LatestResourceTable[i][2]}) - else - break - end + for i = 1, AmtLines do + if (statisticsFrame.LatestResourceTable[i]) then + local playerName = statisticsFrame.LatestResourceTable[i][1] + playerName = playerName:gsub("%|c%x%x%x%x%x%x%x%x", "") + playerName = playerName:gsub("%|r", "") + playerName = playerName:gsub(".*%s", "") + tinsert(result, {playerName, statisticsFrame.LatestResourceTable[i][2]}) + else + break end - - Details:FormatReportLines (reportTable, result) - Details:SendReportLines (reportTable) end - Details:SendReportWindow (reportFunc, nil, nil, true) + Details:FormatReportLines(reportTable, result) + Details:SendReportLines(reportTable) end - end - local ReportButton = DF:CreateButton(f, f.BuildReport, 130, 20, Loc ["STRING_OPTIONS_REPORT_ANCHOR"]:gsub(":", ""), nil, nil, nil, "ReportButton", nil, nil, options_button_template, options_text_template) - ReportButton:SetPoint("right", GuildSyncButton, "left", -2, 0) - ReportButton:SetIcon ([[Interface\GLUES\CharacterSelect\RestoreButton]], 12, 12, "overlay", {0.2, .8, 0.2, .8}, nil, 4) + Details:SendReportWindow(reportFunc, nil, nil, true) + end + end + + local reportButton = DF:CreateButton(statisticsFrame, statisticsFrame.BuildReport, 130, 20, Loc ["STRING_OPTIONS_REPORT_ANCHOR"]:gsub(":", ""), nil, nil, nil, "ReportButton", nil, nil, options_button_template, options_text_template) + reportButton:SetPoint("right", guildSyncButton, "left", -2, 0) + reportButton:SetIcon([[Interface\GLUES\CharacterSelect\RestoreButton]], 12, 12, "overlay", {0.2, .8, 0.2, .8}, nil, 4) -- - function f:SetBackgroundImage (encounterId) - local instanceId = Details:GetInstanceIdFromEncounterId (encounterId) + function statisticsFrame:SetBackgroundImage(encounterId) + local instanceId = Details:GetInstanceIdFromEncounterId(encounterId) if (instanceId) then - local file, L, R, T, B = Details:GetRaidBackground (instanceId) + local file, L, R, T, B = Details:GetRaidBackground(instanceId) --print("file:", file) --can't get the image, looks to be restricted --[[ @@ -314,36 +283,36 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild end --window script handlers - f:SetScript("OnMouseDown", function(self, button) - if (self.isMoving) then - return - end - if (button == "RightButton") then - self:Hide() - else - self:StartMoving() - self.isMoving = true - end - end) + statisticsFrame:SetScript("OnMouseDown", function(self, button) + if (self.isMoving) then + return + end + if (button == "RightButton") then + self:Hide() + else + self:StartMoving() + self.isMoving = true + end + end) - f:SetScript("OnMouseUp", function(self, button) - if (self.isMoving and button == "LeftButton") then - self:StopMovingOrSizing() - self.isMoving = nil - end - end) + statisticsFrame:SetScript("OnMouseUp", function(self, button) + if (self.isMoving and button == "LeftButton") then + self:StopMovingOrSizing() + self.isMoving = nil + end + end) - f:SetScript("OnHide", function() - --save latest shown state - f.LatestSelection = f.LatestSelection or {} - f.LatestSelection.Raid = DetailsRaidHistoryWindow.select_raid.value - f.LatestSelection.Boss = DetailsRaidHistoryWindow.select_boss.value - f.LatestSelection.Diff = DetailsRaidHistoryWindow.select_diff.value - f.LatestSelection.Role = DetailsRaidHistoryWindow.select_role.value - f.LatestSelection.Guild = DetailsRaidHistoryWindow.select_guild.value - f.LatestSelection.PlayerBase = DetailsRaidHistoryWindow.select_player.value - f.LatestSelection.PlayerName = DetailsRaidHistoryWindow.select_player2.value - end) + statisticsFrame:SetScript("OnHide", function() + --save latest shown state + statisticsFrame.LatestSelection = statisticsFrame.LatestSelection or {} + statisticsFrame.LatestSelection.Raid = DetailsRaidHistoryWindow.select_raid.value + statisticsFrame.LatestSelection.Boss = DetailsRaidHistoryWindow.select_boss.value + statisticsFrame.LatestSelection.Diff = DetailsRaidHistoryWindow.select_diff.value + statisticsFrame.LatestSelection.Role = DetailsRaidHistoryWindow.select_role.value + statisticsFrame.LatestSelection.Guild = DetailsRaidHistoryWindow.select_guild.value + statisticsFrame.LatestSelection.PlayerBase = DetailsRaidHistoryWindow.select_player.value + statisticsFrame.LatestSelection.PlayerName = DetailsRaidHistoryWindow.select_player2.value + end) local dropdownWidth = 160 local icon = [[Interface\FriendsFrame\battlenet-status-offline]] @@ -353,126 +322,137 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild local bossList = {} local guildList = {} - local sort_alphabetical = function(a,b) return a[1] < b[1] end - local sort_alphabetical2 = function(a,b) return a.value < b.value end + local sortAlphabetical = function(a,b) return a.value < b.value end - local on_select = function() - if (f.Refresh) then - f:Refresh() + local onSelect = function() + if (statisticsFrame.Refresh) then + statisticsFrame:Refresh() end end --select raid: - local onRaidSelect = function(_, _, raid) - Details.rank_window.last_raid = raid - f:UpdateDropdowns (true) - on_select() - end - local buildRaidList = function() - return raidList - end - local raid_dropdown = DF:CreateDropDown (f, buildRaidList, 1, dropdownWidth, 20, "select_raid") - local raid_string = DF:CreateLabel(f, Loc ["STRING_GUILDDAMAGERANK_RAID"] .. ":", _, _, "GameFontNormal", "select_raid_label") - raid_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) + local onRaidSelect = function(_, _, raid) + Details.rank_window.last_raid = raid + statisticsFrame:UpdateDropdowns(true) + onSelect() + end + + local buildRaidList = function() + return raidList + end + + local raidDropdown = DF:CreateDropDown(statisticsFrame, buildRaidList, 1, dropdownWidth, 20, "select_raid") + local raidString = DF:CreateLabel(statisticsFrame, Loc ["STRING_GUILDDAMAGERANK_RAID"] .. ":", _, _, "GameFontNormal", "select_raid_label") + raidDropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) --select boss: - local on_boss_select = function(_, _, boss) - on_select() - end - local build_boss_list = function() - return bossList - end - local boss_dropdown = DF:CreateDropDown (f, build_boss_list, 1, dropdownWidth, 20, "select_boss") - local boss_string = DF:CreateLabel(f, Loc ["STRING_GUILDDAMAGERANK_BOSS"] .. ":", _, _, "GameFontNormal", "select_boss_label") - boss_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) + local onSelectBoss = function(_, _, boss) + onSelect() + end + + local buildBossList = function() + return bossList + end + + local bossDropdown = DF:CreateDropDown(statisticsFrame, buildBossList, 1, dropdownWidth, 20, "select_boss") + local bossString = DF:CreateLabel(statisticsFrame, Loc ["STRING_GUILDDAMAGERANK_BOSS"] .. ":", _, _, "GameFontNormal", "select_boss_label") + bossDropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) --select difficulty: - local on_diff_select = function(_, _, diff) - Details.rank_window.last_difficulty = diff - on_select() - end + local onDifficultySelect = function(_, _, diff) + Details.rank_window.last_difficulty = diff + onSelect() + end - local build_diff_list = function() - return difficultyList - end - local diff_dropdown = DF:CreateDropDown (f, build_diff_list, 1, dropdownWidth, 20, "select_diff") - local diff_string = DF:CreateLabel(f, Loc ["STRING_GUILDDAMAGERANK_DIFF"] .. ":", _, _, "GameFontNormal", "select_diff_label") - diff_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) + local buildDifficultyList = function() + return difficultyList + end + + local difficultyDropdown = DF:CreateDropDown(statisticsFrame, buildDifficultyList, 1, dropdownWidth, 20, "select_diff") + local difficultyString = DF:CreateLabel(statisticsFrame, Loc ["STRING_GUILDDAMAGERANK_DIFF"] .. ":", _, _, "GameFontNormal", "select_diff_label") + difficultyDropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) --select role: - local on_role_select = function(_, _, role) - on_select() - end - local build_role_list = function() - return { - {value = "damage", label = "Damager", icon = icon, onclick = on_role_select}, - {value = "healing", label = "Healer", icon = icon, onclick = on_role_select} - } - end - local role_dropdown = DF:CreateDropDown (f, build_role_list, 1, dropdownWidth, 20, "select_role") - local role_string = DF:CreateLabel(f, Loc ["STRING_GUILDDAMAGERANK_ROLE"] .. ":", _, _, "GameFontNormal", "select_role_label") - role_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) + local onRoleSelect = function(_, _, role) + onSelect() + end + + local buildRoleList = function() + return { + {value = "damage", label = "Damager", icon = icon, onclick = onRoleSelect}, + {value = "healing", label = "Healer", icon = icon, onclick = onRoleSelect} + } + end + + local role_dropdown = DF:CreateDropDown (statisticsFrame, buildRoleList, 1, dropdownWidth, 20, "select_role") + local role_string = DF:CreateLabel(statisticsFrame, Loc ["STRING_GUILDDAMAGERANK_ROLE"] .. ":", _, _, "GameFontNormal", "select_role_label") + role_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) --select guild: - local on_guild_select = function(_, _, guild) - on_select() - end - local build_guild_list = function() - return guildList - end - local guild_dropdown = DF:CreateDropDown (f, build_guild_list, 1, dropdownWidth, 20, "select_guild") - local guild_string = DF:CreateLabel(f, Loc ["STRING_GUILDDAMAGERANK_GUILD"] .. ":", _, _, "GameFontNormal", "select_guild_label") - guild_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) + local onGuildSelect = function(_, _, guild) + onSelect() + end + + local buildGuildList = function() + return guildList + end + + local guildDropdown = DF:CreateDropDown(statisticsFrame, buildGuildList, 1, dropdownWidth, 20, "select_guild") + local guildString = DF:CreateLabel(statisticsFrame, Loc ["STRING_GUILDDAMAGERANK_GUILD"] .. ":", _, _, "GameFontNormal", "select_guild_label") + guildDropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) --select playerbase: - local on_player_select = function(_, _, player) - on_select() - end - local build_player_list = function() - return { - {value = 1, label = Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"], icon = icon, onclick = on_player_select}, - {value = 2, label = Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"], icon = icon, onclick = on_player_select}, - } - end - local player_dropdown = DF:CreateDropDown (f, build_player_list, 1, dropdownWidth, 20, "select_player") - local player_string = DF:CreateLabel(f, Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE"] .. ":", _, _, "GameFontNormal", "select_player_label") - player_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) + local onPlayerSelect = function(_, _, player) + onSelect() + end + + local buildPlayerList = function() + return { + {value = 1, label = Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE_RAID"], icon = icon, onclick = onPlayerSelect}, + {value = 2, label = Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE_INDIVIDUAL"], icon = icon, onclick = onPlayerSelect}, + } + end + + local player_dropdown = DF:CreateDropDown(statisticsFrame, buildPlayerList, 1, dropdownWidth, 20, "select_player") + local player_string = DF:CreateLabel(statisticsFrame, Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE"] .. ":", _, _, "GameFontNormal", "select_player_label") + player_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) --select player: - local onPlayer2Select = function(_, _, player) - f.latest_player_selected = player - f:BuildPlayerTable (player) - end - local build_player2_list = function() - local encounterTable, guild, role = unpack(f.build_player2_data or {}) - local t = {} - local alreadyListed = {} - if (encounterTable) then - for encounterIndex, encounter in ipairs(encounterTable) do - if (encounter.guild == guild) then - local roleTable = encounter [role] - for playerName, _ in pairs(roleTable) do - if (not alreadyListed [playerName]) then - tinsert(t, {value = playerName, label = playerName, icon = icon, onclick = onPlayer2Select}) - alreadyListed [playerName] = true - end + local onPlayer2Select = function(_, _, player) + statisticsFrame.latest_player_selected = player + statisticsFrame:BuildPlayerTable(player) + end + + local buildPlayer2List = function() + local encounterTable, guild, role = unpack(statisticsFrame.build_player2_data or {}) + local t = {} + local alreadyListed = {} + if (encounterTable) then + for encounterIndex, encounter in ipairs(encounterTable) do + if (encounter.guild == guild) then + local roleTable = encounter [role] + for playerName, _ in pairs(roleTable) do + if (not alreadyListed [playerName]) then + tinsert(t, {value = playerName, label = playerName, icon = icon, onclick = onPlayer2Select}) + alreadyListed [playerName] = true end end end end - - table.sort(t, sort_alphabetical2) - return t end - local player2_dropdown = DF:CreateDropDown (f, build_player2_list, 1, dropdownWidth, 20, "select_player2") - local player2_string = DF:CreateLabel(f, Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] .. ":", _, _, "GameFontNormal", "select_player2_label") - player2_dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) - function f:UpdateDropdowns(DoNotSelectRaid) + table.sort(t, sortAlphabetical) + return t + end - local currentGuild = guild_dropdown.value + local player2Dropdown = DF:CreateDropDown(statisticsFrame, buildPlayer2List, 1, dropdownWidth, 20, "select_player2") + local player2String = DF:CreateLabel(statisticsFrame, Loc ["STRING_GUILDDAMAGERANK_PLAYERBASE_PLAYER"] .. ":", _, _, "GameFontNormal", "select_player2_label") + player2Dropdown:SetTemplate(DF:GetTemplate("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")) - --difficulty + function statisticsFrame:UpdateDropdowns(bDoNotSelectRaid) + local currentGuild = guildDropdown.value + + --wipe data wipe(difficultyList) wipe(bossList) wipe(raidList) @@ -483,148 +463,212 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild local guildRepeated = {} local raidSelected = _G.DetailsRaidHistoryWindow.select_raid:GetValue() - db = f.OpenDB() + db = statisticsFrame.OpenDB() if (not db) then return end + --make a list of raids and bosses that belong to the current expansion + local bossIndexedTable, bossInfoTable, raidInfoTable = Details:GetExpansionBossList() + local allowedBosses = {} + for bossId, bossTable in pairs(bossInfoTable) do + allowedBosses[bossTable.dungeonEncounterID] = true --dungeonEncounterID is the id used in the encounter_start event + end + + local allowedKeysForDifficulty = { + [14] = true, --normal + [15] = true, --heroic + [16] = true, --mythic + --[17] = true, --raid finder + } + + local playerGuildName = GetGuildInfo("player") + --local playerGuildName = "Patifaria" --debug + for difficulty, encounterIdTable in pairs(db) do + if (type(difficulty) == "number" and allowedKeysForDifficulty[difficulty]) then + for dungeonEncounterID, encounterTable in pairs(encounterIdTable) do + if (allowedBosses[dungeonEncounterID]) then + if (not bossRepeated[dungeonEncounterID]) then + local encounter, instance = Details:GetBossEncounterDetailsFromEncounterId(nil, dungeonEncounterID) --deprecated - if (type(difficulty) == "number") then - if (difficulty == 14) then - --don't show normal encounters - --tinsert(difficultyList, {value = 14, label = "Normal", icon = icon, onclick = on_diff_select}) - --print("has normal encounter") + if (encounter) then + local instanceId = Details:GetInstanceIdFromEncounterId(dungeonEncounterID) + if (raidSelected == instanceId) then + tinsert(bossList, {value = dungeonEncounterID, label = encounter.boss, icon = icon, onclick = onSelectBoss}) + bossRepeated[dungeonEncounterID] = true + end - elseif (difficulty == 15) then - local alreadyHave = false - for i, t in ipairs(difficultyList) do - if (t.label == "Heroic") then - alreadyHave = true + if (not raidRepeated[instance.name]) then + local raidData + for raidInstanceID, thisRaidData in pairs(raidInfoTable) do + if (thisRaidData.raidName == instance.name) then + raidData = thisRaidData + break + end + end + + if (raidData) then + local instanceName = raidData.raidName + local raidIcon = raidData.raidIcon + local raidIconCoords = raidData.raidIconCoords + + tinsert(raidList, {value = instance.id, label = instanceName, icon = raidIcon, texcoord = raidIconCoords, onclick = onRaidSelect}) + raidRepeated[instance.name] = true + end + end + end end - end - if (not alreadyHave) then - tinsert(difficultyList, 1, {value = 15, label = "Heroic", icon = icon, onclick = on_diff_select}) - end - - elseif (difficulty == 16) then - local alreadyHave = false - for i, t in ipairs(difficultyList) do - if (t.label == "Mythic") then - alreadyHave = true + --add guild name to the dropdown + if (playerGuildName) then + if (not guildRepeated[playerGuildName]) then + tinsert(guildList, {value = playerGuildName, label = playerGuildName, icon = icon, onclick = onGuildSelect}) + guildRepeated[playerGuildName] = true + end + else + for index, encounter in ipairs(encounterTable) do + local guild = encounter.guild + if (not guildRepeated[guild]) then + tinsert(guildList, {value = guild, label = guild, icon = icon, onclick = onGuildSelect}) + guildRepeated[guild] = true + end + end end - end - if (not alreadyHave) then - tinsert(difficultyList, {value = 16, label = "Mythic", icon = icon, onclick = on_diff_select}) - end - end - - for encounterId, encounterTable in pairs(encounterIdTable) do - if (not bossRepeated[encounterId]) then - local encounter, instance = Details:GetBossEncounterDetailsFromEncounterId(nil, encounterId) - - if (encounter) then - local InstanceID = Details:GetInstanceIdFromEncounterId (encounterId) - if (raidSelected == InstanceID) then - tinsert(bossList, {value = encounterId, label = encounter.boss, icon = icon, onclick = on_boss_select}) - bossRepeated [encounterId] = true + --add the difficult to the dropdown + if (difficulty == 14) then + local alreadyHave = false + for i, t in ipairs(difficultyList) do + if (t.label == "Normal") then + alreadyHave = true + end + end + if (not alreadyHave) then + tinsert(difficultyList, 1, {value = difficulty, label = "Normal", icon = icon, onclick = onDifficultySelect}) end - if (not raidRepeated [instance.name]) then - tinsert(raidList, {value = instance.id, label = instance.name, icon = icon, onclick = onRaidSelect}) - raidRepeated [instance.name] = true + elseif (difficulty == 15) then + local alreadyHave = false + for i, t in ipairs(difficultyList) do + if (t.label == "Heroic") then + alreadyHave = true + end + end + if (not alreadyHave) then + tinsert(difficultyList, 1, {value = difficulty, label = "Heroic", icon = icon, onclick = onDifficultySelect}) end - end - end - - for index, encounter in ipairs(encounterTable) do - local guild = encounter.guild - if (not guildRepeated [guild]) then - tinsert(guildList, {value = guild, label = guild, icon = icon, onclick = on_guild_select}) - guildRepeated [guild] = true + elseif (difficulty == 16) then + local alreadyHave = false + for i, t in ipairs(difficultyList) do + if (t.label == "Mythic") then + alreadyHave = true + end + end + if (not alreadyHave) then + tinsert(difficultyList, {value = difficulty, label = "Mythic", icon = icon, onclick = onDifficultySelect}) + end end end end end end - table.sort (bossList, function(t1, t2) return t1.label < t2.label end) + table.sort(bossList, function(t1, t2) return t1.label < t2.label end) - - diff_dropdown:Refresh() - diff_dropdown:Select(1, true) - boss_dropdown:Refresh() - boss_dropdown:Select(1, true) - if (not DoNotSelectRaid) then - raid_dropdown:Refresh() - raid_dropdown:Select(1, true) + difficultyDropdown:Refresh() + guildDropdown:Refresh() + if (not bDoNotSelectRaid) then + raidDropdown:Refresh() end + bossDropdown:Refresh() - guild_dropdown:Refresh() - if (currentGuild) then - guild_dropdown:Select(currentGuild) - else - guild_dropdown:Select(1, true) - end + C_Timer.After(1, function() + if (not bDoNotSelectRaid) then + raidDropdown:Select(1, true) + end + + difficultyDropdown:Select(1, true) + + if (currentGuild) then + guildDropdown:Select(currentGuild) + else + guildDropdown:Select(1, true) + end + + bossDropdown:Select(1, true) + end) end - function f.UpdateBossDropdown() + function statisticsFrame.UpdateBossDropdown() + local allowedKeysForDifficulty = { + [14] = true, --normal + [15] = true, --heroic + [16] = true, --mythic + --[17] = true, --raid finder + } + + --make a list of raids and bosses that belong to the current expansion + local bossIndexedTable, bossInfoTable = Details:GetExpansionBossList() + local allowedBosses = {} + for bossId, bossTable in pairs(bossInfoTable) do + allowedBosses[bossTable.dungeonEncounterID] = true + end local raidSelected = DetailsRaidHistoryWindow.select_raid:GetValue() - local boss_repeated = {} - wipe (bossList) + local bossRepeated = {} + wipe(bossList) + wipe(difficultyList) for difficulty, encounterIdTable in pairs(db) do - if (type(difficulty) == "number") then - if (difficulty == 14) then - --tinsert(difficultyList, {value = 14, label = "Normal", icon = icon, onclick = on_diff_select}) - --print("has normal encounter") - elseif (difficulty == 15) then - local alreadyHave = false - for i, t in ipairs(difficultyList) do - if (t.label == "Heroic") then - alreadyHave = true - end - end - if (not alreadyHave) then - tinsert(difficultyList, 1, {value = 15, label = "Heroic", icon = icon, onclick = on_diff_select}) - end - elseif (difficulty == 16) then - local alreadyHave = false - for i, t in ipairs(difficultyList) do - if (t.label == "Mythic") then - alreadyHave = true - end - end - if (not alreadyHave) then - tinsert(difficultyList, {value = 16, label = "Mythic", icon = icon, onclick = on_diff_select}) - end - end + if (type(difficulty) == "number" and allowedKeysForDifficulty[difficulty]) then + for dungeonEncounterID, encounterTable in pairs(encounterIdTable) do + if (allowedBosses[dungeonEncounterID]) then + if (not bossRepeated[dungeonEncounterID]) then + local encounter, instance = Details:GetBossEncounterDetailsFromEncounterId(nil, dungeonEncounterID) --deprecated - for encounterId, encounterTable in pairs(encounterIdTable) do - if (not boss_repeated [encounterId]) then - local encounter, instance = Details:GetBossEncounterDetailsFromEncounterId (_, encounterId) - if (encounter) then - local InstanceID = Details:GetInstanceIdFromEncounterId (encounterId) - if (raidSelected == InstanceID) then - --[=[ - local bossIndex = Details:GetBossIndex (InstanceID, encounterId) - if (bossIndex) then - local l, r, t, b, texturePath = Details:GetBossIcon (InstanceID, bossIndex) - if (texturePath) then - tinsert(bossList, {value = encounterId, label = encounter.boss, icon = texturePath, texcoord = {l, r, t, b}, onclick = on_boss_select}) - else - tinsert(bossList, {value = encounterId, label = encounter.boss, icon = icon, onclick = on_boss_select}) - end - else - tinsert(bossList, {value = encounterId, label = encounter.boss, icon = icon, onclick = on_boss_select}) + if (encounter) then + local instanceId = Details:GetInstanceIdFromEncounterId(dungeonEncounterID) + if (raidSelected == instanceId) then + tinsert(bossList, {value = dungeonEncounterID, label = encounter.boss, icon = icon, onclick = onSelectBoss}) + bossRepeated[dungeonEncounterID] = true end - --]=] - tinsert(bossList, {value = encounterId, label = encounter.boss, icon = icon, onclick = on_boss_select}) - boss_repeated [encounterId] = true + end + end + + --add the difficult to the dropdown + if (difficulty == 14) then + local alreadyHave = false + for i, t in ipairs(difficultyList) do + if (t.label == "Normal") then + alreadyHave = true + end + end + if (not alreadyHave) then + tinsert(difficultyList, 1, {value = difficulty, label = "Normal", icon = icon, onclick = onDifficultySelect}) + end + + elseif (difficulty == 15) then + local alreadyHave = false + for i, t in ipairs(difficultyList) do + if (t.label == "Heroic") then + alreadyHave = true + end + end + if (not alreadyHave) then + tinsert(difficultyList, 1, {value = difficulty, label = "Heroic", icon = icon, onclick = onDifficultySelect}) + end + + elseif (difficulty == 16) then + local alreadyHave = false + for i, t in ipairs(difficultyList) do + if (t.label == "Mythic") then + alreadyHave = true + end + end + if (not alreadyHave) then + tinsert(difficultyList, {value = difficulty, label = "Mythic", icon = icon, onclick = onDifficultySelect}) end end end @@ -632,44 +676,43 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild end end - table.sort (bossList, function(t1, t2) return t1.label < t2.label end) - boss_dropdown:Refresh() + table.sort(bossList, function(t1, t2) return t1.label < t2.label end) + bossDropdown:Refresh() end --anchors: - raid_string:SetPoint("topleft", f, "topleft", 10, -70) - raid_dropdown:SetPoint("topleft", f, "topleft", 10, -85) + raidString:SetPoint("topleft", statisticsFrame, "topleft", 10, -70) + raidDropdown:SetPoint("topleft", statisticsFrame, "topleft", 10, -85) - boss_string:SetPoint("topleft", f, "topleft", 10, -110) - boss_dropdown:SetPoint("topleft", f, "topleft", 10, -125) + bossString:SetPoint("topleft", statisticsFrame, "topleft", 10, -110) + bossDropdown:SetPoint("topleft", statisticsFrame, "topleft", 10, -125) - diff_string:SetPoint("topleft", f, "topleft", 10, -150) - diff_dropdown:SetPoint("topleft", f, "topleft", 10, -165) + difficultyString:SetPoint("topleft", statisticsFrame, "topleft", 10, -150) + difficultyDropdown:SetPoint("topleft", statisticsFrame, "topleft", 10, -165) - role_string:SetPoint("topleft", f, "topleft", 10, -190) - role_dropdown:SetPoint("topleft", f, "topleft", 10, -205) + role_string:SetPoint("topleft", statisticsFrame, "topleft", 10, -190) + role_dropdown:SetPoint("topleft", statisticsFrame, "topleft", 10, -205) - guild_string:SetPoint("topleft", f, "topleft", 10, -230) - guild_dropdown:SetPoint("topleft", f, "topleft", 10, -245) + guildString:SetPoint("topleft", statisticsFrame, "topleft", 10, -230) + guildDropdown:SetPoint("topleft", statisticsFrame, "topleft", 10, -245) - player_string:SetPoint("topleft", f, "topleft", 10, -270) - player_dropdown:SetPoint("topleft", f, "topleft", 10, -285) + player_string:SetPoint("topleft", statisticsFrame, "topleft", 10, -270) + player_dropdown:SetPoint("topleft", statisticsFrame, "topleft", 10, -285) - player2_string:SetPoint("topleft", f, "topleft", 10, -310) - player2_dropdown:SetPoint("topleft", f, "topleft", 10, -325) - player2_string:Hide() - player2_dropdown:Hide() + player2String:SetPoint("topleft", statisticsFrame, "topleft", 10, -310) + player2Dropdown:SetPoint("topleft", statisticsFrame, "topleft", 10, -325) + player2String:Hide() + player2Dropdown:Hide() --refresh the window: - function f:BuildPlayerTable (playerName) + function statisticsFrame:BuildPlayerTable(playerName) - local encounterTable, guild, role = unpack(f.build_player2_data or {}) + local encounterTable, guild, role = unpack(statisticsFrame.build_player2_data or {}) local data = {} if (type(playerName) == "string" and string.len(playerName) > 1) then for encounterIndex, encounter in ipairs(encounterTable) do - if (encounter.guild == guild) then local roleTable = encounter [role] @@ -688,10 +731,10 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild end --update graphic - if (not f.gframe) then + if (not statisticsFrame.gframe) then local onenter = function(self) GameCooltip:Reset() - GameCooltip:SetType ("tooltip") + GameCooltip:SetType("tooltip") GameCooltip:Preset(2) GameCooltip:AddLine("Total Done:", Details:ToK2 (self.data.value), 1, "white") @@ -707,20 +750,19 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild GameCooltip:Hide() end - f.gframe = DF:CreateGFrame (f, 650, 400, 35, onenter, onleave, "gframe", "$parentGF") - f.gframe:SetPoint("topleft", f, "topleft", 190, -65) + statisticsFrame.gframe = DF:CreateGFrame(statisticsFrame, 650, 400, 35, onenter, onleave, "gframe", "$parentGF") + statisticsFrame.gframe:SetPoint("topleft", statisticsFrame, "topleft", 190, -65) end - f.gframe:Reset() - f.gframe:UpdateLines(data) + statisticsFrame.gframe:Reset() + statisticsFrame.gframe:UpdateLines(data) end end - local fillpanel = DF:NewFillPanel (f, {}, "$parentFP", "fillpanel", 710, 501, false, false, true, nil) - fillpanel:SetPoint("topleft", f, "topleft", 195, -65) + local fillpanel = DF:NewFillPanel(statisticsFrame, {}, "$parentFP", "fillpanel", 710, 501, false, false, true, nil) + fillpanel:SetPoint("topleft", statisticsFrame, "topleft", 195, -65) - - function f:BuildGuildRankTable (encounterTable, guild, role) + function statisticsFrame:BuildGuildRankTable(encounterTable, guild, role) local header = {{name = "Player Name", type = "text"}, {name = "Per Second", type = "text"}, {name = "Total", type = "text"}, {name = "Length", type = "text"}, {name = "Item Level", type = "text"}, {name = "Date", type = "text"}} local players = {} @@ -731,15 +773,14 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild --get the best of each player for encounterIndex, encounter in ipairs(encounterTable) do if (encounter.guild == guild) then - local roleTable = encounter [role] + local roleTable = encounter[role] local date = encounter.date date = date:gsub(".*%s", "") date = date:sub (1, -4) for playerName, playerTable in pairs(roleTable) do - - if (not playerScore [playerName]) then + if (not playerScore[playerName]) then playerScore [playerName] = { total = 0, ps = 0, @@ -754,13 +795,13 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild local dps = total / encounter.elapsed --if (total > playerScore [playerName].total) then - if (dps > playerScore [playerName].ps) then - playerScore [playerName].total = total - playerScore [playerName].ps = total / encounter.elapsed - playerScore [playerName].ilvl = playerTable [2] - playerScore [playerName].length = encounter.elapsed - playerScore [playerName].date = date - playerScore [playerName].class = playerTable [3] + if (dps > playerScore[playerName].ps) then + playerScore[playerName].total = total + playerScore[playerName].ps = total / encounter.elapsed + playerScore[playerName].ilvl = playerTable [2] + playerScore[playerName].length = encounter.elapsed + playerScore[playerName].date = date + playerScore[playerName].class = playerTable [3] end end end @@ -768,10 +809,10 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild local sortTable = {} for playerName, t in pairs(playerScore) do - local className = select(2, GetClassInfo (t.class or 0)) + local className = select(2, GetClassInfo(t.class or 0)) local classColor = "FFFFFFFF" if (className) then - classColor = RAID_CLASS_COLORS [className] and RAID_CLASS_COLORS [className].colorStr + classColor = RAID_CLASS_COLORS[className] and RAID_CLASS_COLORS[className].colorStr end local playerNameFormated = Details:GetOnlyName(playerName) @@ -787,26 +828,25 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild }) end - table.sort (sortTable, function(a, b) return a[8] > b[8] end) + table.sort(sortTable, function(a, b) return a[8] > b[8] end) --add the number before the player name for i = 1, #sortTable do local t = sortTable [i] - t [1] = i .. ". " .. t [1] + t[1] = i .. ". " .. t[1] end - fillpanel:SetFillFunction (function(index) return sortTable [index] end) - fillpanel:SetTotalFunction (function() return #sortTable end) - fillpanel:UpdateRows (header) + fillpanel:SetFillFunction(function(index) return sortTable [index] end) + fillpanel:SetTotalFunction(function() return #sortTable end) + fillpanel:UpdateRows(header) fillpanel:Refresh() - f.LatestResourceTable = sortTable + statisticsFrame.LatestResourceTable = sortTable end - function f:BuildRaidTable (encounterTable, guild, role) - - if (f.Mode == 2) then - f:BuildGuildRankTable (encounterTable, guild, role) + function statisticsFrame:BuildRaidTable(encounterTable, guild, role) + if (statisticsFrame.Mode == 2) then + statisticsFrame:BuildGuildRankTable(encounterTable, guild, role) return end @@ -876,111 +916,110 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild fillpanel:UpdateRows (header) fillpanel:Refresh() - fillpanel:SetPoint("topleft", f, "topleft", 200, -65) + fillpanel:SetPoint("topleft", statisticsFrame, "topleft", 200, -65) end - function f:Refresh (player_name) + function statisticsFrame:Refresh (player_name) --build the main table - local diff = diff_dropdown.value - local boss = boss_dropdown.value + local diff = difficultyDropdown.value + local boss = bossDropdown.value local role = role_dropdown.value - local guild = guild_dropdown.value + local guild = guildDropdown.value local player = player_dropdown.value local diffTable = db [diff] - f:SetBackgroundImage (boss) - --Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild, _player_base, _player_name) + statisticsFrame:SetBackgroundImage(boss) if (diffTable) then - local encounters = diffTable [boss] + local encounters = diffTable[boss] if (encounters) then if (player == 1) then --raid fillpanel:Show() - if (f.gframe) then - f.gframe:Hide() + if (statisticsFrame.gframe) then + statisticsFrame.gframe:Hide() end - player2_string:Hide() - player2_dropdown:Hide() - f:BuildRaidTable (encounters, guild, role) + player2String:Hide() + player2Dropdown:Hide() + statisticsFrame:BuildRaidTable(encounters, guild, role) elseif (player == 2) then --only one player fillpanel:Hide() - if (f.gframe) then - f.gframe:Show() + if (statisticsFrame.gframe) then + statisticsFrame.gframe:Show() end - player2_string:Show() - player2_dropdown:Show() - f.build_player2_data = {encounters, guild, role} - player2_dropdown:Refresh() + player2String:Show() + player2Dropdown:Show() + statisticsFrame.build_player2_data = {encounters, guild, role} + player2Dropdown:Refresh() - player_name = f.latest_player_selected or player_name + player_name = statisticsFrame.latest_player_selected or player_name if (player_name) then - player2_dropdown:Select(player_name) + player2Dropdown:Select(player_name) else - player2_dropdown:Select(1, true) + player2Dropdown:Select(1, true) end - f:BuildPlayerTable (player2_dropdown.value) + statisticsFrame:BuildPlayerTable (player2Dropdown.value) end else if (player == 1) then --raid fillpanel:Show() - if (f.gframe) then - f.gframe:Hide() + if (statisticsFrame.gframe) then + statisticsFrame.gframe:Hide() end - player2_string:Hide() - player2_dropdown:Hide() - f:BuildRaidTable ({}, guild, role) + player2String:Hide() + player2Dropdown:Hide() + statisticsFrame:BuildRaidTable ({}, guild, role) elseif (player == 2) then --only one player fillpanel:Hide() - if (f.gframe) then - f.gframe:Show() + if (statisticsFrame.gframe) then + statisticsFrame.gframe:Show() end - player2_string:Show() - player2_dropdown:Show() - f.build_player2_data = {{}, guild, role} - player2_dropdown:Refresh() - player2_dropdown:Select(1, true) - f:BuildPlayerTable (player2_dropdown.value) + player2String:Show() + player2Dropdown:Show() + statisticsFrame.build_player2_data = {{}, guild, role} + player2Dropdown:Refresh() + player2Dropdown:Select(1, true) + statisticsFrame:BuildPlayerTable (player2Dropdown.value) end end end end - f.FirstRun = true + statisticsFrame.FirstRun = true end --end of DetailsRaidHistoryWindow creation local statsWindow = _G.DetailsRaidHistoryWindow --table means some button send the request - nil for other ways - if (type(_raid) == "table" or (not _raid and not _boss and not _difficulty and not _role and not _guild and not _player_base and not _player_name)) then + if (type(raidName) == "table" or (not raidName and not bossEncounterId and not difficultyId and not playerRole and not guildName and not playerBase and not playerName)) then local f = statsWindow if (f.LatestSelection) then - _raid = f.LatestSelection.Raid - _boss = f.LatestSelection.Boss - _difficulty = f.LatestSelection.Diff - _role = f.LatestSelection.Role - _guild = f.LatestSelection.Guild - _player_base = f.LatestSelection.PlayerBase - _player_name = f.LatestSelection.PlayerBase + raidName = f.LatestSelection.Raid + bossEncounterId = f.LatestSelection.Boss + difficultyId = f.LatestSelection.Diff + playerRole = f.LatestSelection.Role + guildName = f.LatestSelection.Guild + playerBase = f.LatestSelection.PlayerBase + playerName = f.LatestSelection.PlayerBase end end if (statsWindow.FirstRun) then - _difficulty = Details.rank_window.last_difficulty or _difficulty + difficultyId = Details.rank_window.last_difficulty or difficultyId if (IsInGuild()) then local guildName = GetGuildInfo("player") if (guildName) then - _guild = guildName + guildName = guildName end end if (Details.rank_window.last_raid ~= "") then - _raid = Details.rank_window.last_raid or _raid + raidName = Details.rank_window.last_raid or raidName end end @@ -993,8 +1032,8 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild statsWindow:Refresh() statsWindow:Show() - if (_history_type == 1 or _history_type == 2) then - statsWindow.Mode = _history_type + if (historyType == 1 or historyType == 2) then + statsWindow.Mode = historyType if (statsWindow.Mode == 1) then --overall statsWindow.HistoryCheckBox:SetValue(true) @@ -1006,44 +1045,44 @@ function Details:OpenRaidHistoryWindow (_raid, _boss, _difficulty, _role, _guild end end - if (_raid) then - statsWindow.select_raid:Select(_raid) + if (raidName) then + statsWindow.select_raid:Select(raidName) statsWindow:Refresh() statsWindow.UpdateBossDropdown() end - if (_boss) then - statsWindow.select_boss:Select(_boss) + if (bossEncounterId) then + statsWindow.select_boss:Select(bossEncounterId) statsWindow:Refresh() end - if (_difficulty) then - statsWindow.select_diff:Select(_difficulty) + if (difficultyId) then + statsWindow.select_diff:Select(difficultyId) statsWindow:Refresh() end - if (_role) then - statsWindow.select_role:Select(_role) + if (playerRole) then + statsWindow.select_role:Select(playerRole) statsWindow:Refresh() end - if (_guild) then - if (type(_guild) == "boolean") then - _guild = GetGuildInfo ("player") + if (guildName) then + if (type(guildName) == "boolean") then + guildName = GetGuildInfo("player") end - statsWindow.select_guild:Select(_guild) + statsWindow.select_guild:Select(guildName) statsWindow:Refresh() end - if (_player_base) then - statsWindow.select_player:Select(_player_base) + if (playerBase) then + statsWindow.select_player:Select(playerBase) statsWindow:Refresh() end - if (_player_name) then + if (playerName) then statsWindow.select_player2:Refresh() - statsWindow.select_player2:Select(_player_name) - statsWindow:Refresh (_player_name) + statsWindow.select_player2:Select(playerName) + statsWindow:Refresh (playerName) end DetailsPluginContainerWindow.OpenPlugin(statsWindow) diff --git a/functions/boss.lua b/functions/boss.lua index 4b2d6ef8..66daeaf9 100644 --- a/functions/boss.lua +++ b/functions/boss.lua @@ -5,10 +5,10 @@ do local addonName, Details222 = ... _detalhes.EncounterInformation = {} local ipairs = ipairs --lua local - + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --details api functions - + --return if the player is inside a raid supported by details function _detalhes:IsInInstance() local _, _, _, _, _, _, _, zoneMapID = GetInstanceInfo() @@ -40,12 +40,12 @@ do end end end - + --return the ids of trash mobs in the instance function _detalhes:GetInstanceTrashInfo (mapid) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].trash_ids end - + function _detalhes:GetInstanceIdFromEncounterId (encounterid) for id, instanceTable in pairs(_detalhes.EncounterInformation) do --combatlog encounter id @@ -64,7 +64,7 @@ do end end end - + --return the boss table using a encounter id function _detalhes:GetBossEncounterDetailsFromEncounterId (mapid, encounterid) if (not mapid) then @@ -79,17 +79,17 @@ do end end end - + if (instance) then local bosses = instance.encounters if (bosses) then return bosses [bossIndex], instance end end - + return end - + local bossindex = _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounter_ids and _detalhes.EncounterInformation [mapid].encounter_ids [encounterid] if (bossindex) then return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounters [bossindex], bossindex @@ -100,12 +100,12 @@ do end end end - + --return the EJ boss id function _detalhes:GetEncounterIdFromBossIndex (mapid, index) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounter_ids and _detalhes.EncounterInformation [mapid].encounter_ids [index] end - + --return the table which contain information about the start of a encounter function _detalhes:GetEncounterStartInfo (mapid, encounterid) local bossindex = _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounter_ids and _detalhes.EncounterInformation [mapid].encounter_ids [encounterid] @@ -113,7 +113,7 @@ do return _detalhes.EncounterInformation [mapid].encounters [bossindex] and _detalhes.EncounterInformation [mapid].encounters [bossindex].encounter_start end end - + --return the table which contain information about the end of a encounter function _detalhes:GetEncounterEndInfo (mapid, encounterid) local bossindex = _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounter_ids and _detalhes.EncounterInformation [mapid].encounter_ids [encounterid] @@ -121,7 +121,7 @@ do return _detalhes.EncounterInformation [mapid].encounters [bossindex] and _detalhes.EncounterInformation [mapid].encounters [bossindex].encounter_end end end - + --return the function for the boss function _detalhes:GetEncounterEnd (mapid, bossindex) local t = _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounters [bossindex] @@ -131,52 +131,52 @@ do return unpack(_end) end end - return + return end - + --generic boss find function function _detalhes:GetRaidBossFindFunction (mapid) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].find_boss_encounter end - + --return if the boss need sync function _detalhes:GetEncounterEqualize (mapid, bossindex) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounters [bossindex] and _detalhes.EncounterInformation [mapid].encounters [bossindex].equalize end - + --return the function for the boss function _detalhes:GetBossFunction (mapid, bossindex) local func = _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounters [bossindex] and _detalhes.EncounterInformation [mapid].encounters [bossindex].func if (func) then return func, _detalhes.EncounterInformation [mapid].encounters [bossindex].funcType end - return + return end - + --return the boss table with information about name, adds, spells, etc function _detalhes:GetBossDetails (mapid, bossindex) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounters [bossindex] end - + --return a table with all names of boss enemies function _detalhes:GetEncounterActors (mapid, bossindex) - + end - + --return a table with spells id of specified encounter function _detalhes:GetEncounterSpells (mapid, bossindex) local encounter = _detalhes:GetBossDetails (mapid, bossindex) local habilidades_poll = {} if (encounter.continuo) then - for index, spellid in ipairs(encounter.continuo) do + for index, spellid in ipairs(encounter.continuo) do habilidades_poll [spellid] = true end end local fases = encounter.phases if (fases) then - for fase_id, fase in ipairs(fases) do + for fase_id, fase in ipairs(fases) do if (fase.spells) then - for index, spellid in ipairs(fase.spells) do + for index, spellid in ipairs(fase.spells) do habilidades_poll [spellid] = true end end @@ -184,34 +184,34 @@ do end return habilidades_poll end - + --return a table with all boss ids from a raid instance function _detalhes:GetBossIds (mapid) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].boss_ids end - + function _detalhes:InstanceIsRaid (mapid) return _detalhes:InstanceisRaid (mapid) end function _detalhes:InstanceisRaid (mapid) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].is_raid end - + --return a table with all encounter names present in raid instance function _detalhes:GetBossNames (mapid) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].boss_names end - + --return the encounter name function _detalhes:GetBossName (mapid, bossindex) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].boss_names [bossindex] end - + --same thing as GetBossDetails, just a alias function _detalhes:GetBossEncounterDetails (mapid, bossindex) return _detalhes.EncounterInformation [mapid] and _detalhes.EncounterInformation [mapid].encounters [bossindex] end - + function _detalhes:GetEncounterInfoFromEncounterName (EJID, encountername) DetailsFramework.EncounterJournal.EJ_SelectInstance (EJID) for i = 1, 20 do @@ -224,7 +224,7 @@ do end end end - + --return the wallpaper for the raid instance function _detalhes:GetRaidBackground (mapid) local bosstables = _detalhes.EncounterInformation [mapid] @@ -241,7 +241,7 @@ do if (raidIcon) then return raidIcon end - + if (ejID and ejID ~= 0) then local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (ejID) if (name) then @@ -252,10 +252,10 @@ do end end end - + return nil end - + function _detalhes:GetBossIndex (mapid, encounterCLID, encounterEJID, encounterName) local raidInfo = _detalhes.EncounterInformation [mapid] if (raidInfo) then @@ -271,7 +271,7 @@ do return index end end - + --return the boss icon function _detalhes:GetBossIcon (mapid, bossindex) if (_detalhes.EncounterInformation [mapid]) then @@ -280,7 +280,7 @@ do return x-0.25, x, 0.25 * (line-1), 0.25 * line, _detalhes.EncounterInformation [mapid].icons end end - + --return the boss portrit function _detalhes:GetBossPortrait(mapid, bossindex, encounterName, ejID) if (mapid and bossindex) then @@ -289,7 +289,7 @@ do return haveIcon end end - + if (encounterName and ejID and ejID ~= 0) then local index, name, description, encounterID, rootSectionID, link = _detalhes:GetEncounterInfoFromEncounterName (ejID, encounterName) if (index and name and encounterID) then @@ -299,20 +299,20 @@ do end end end - + return nil end - + --return a list with names of adds and bosses function _detalhes:GetEncounterActorsName (EJ_EncounterID) --code snippet from wowpedia local actors = {} local stack, encounter, _, _, curSectionID = {}, DetailsFramework.EncounterJournal.EJ_GetEncounterInfo (EJ_EncounterID) - + if (not curSectionID) then return actors end - + repeat local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = DetailsFramework.EncounterJournal.EJ_GetSectionInfo (curSectionID) if (displayInfo ~= 0 and abilityIcon == "") then @@ -322,10 +322,10 @@ do table.insert(stack, nextSectionID) curSectionID = table.remove (stack) until not curSectionID - + return actors end - + function _detalhes:GetInstanceEJID (mapid) mapid = mapid or select(8, GetInstanceInfo()) if (mapid) then @@ -336,31 +336,31 @@ do end return 0 end - + function _detalhes:GetCurrentDungeonBossListFromEJ() - + local mapID = C_Map.GetBestMapForUnit ("player") - + if (not mapID) then --print("Details! exeption handled: zone has no map") return end - + local EJ_CInstance = DetailsFramework.EncounterJournal.EJ_GetInstanceForMap(mapID) - + if (EJ_CInstance and EJ_CInstance ~= 0) then if (_detalhes.encounter_dungeons [EJ_CInstance]) then return _detalhes.encounter_dungeons [EJ_CInstance] end - + DetailsFramework.EncounterJournal.EJ_SelectInstance (EJ_CInstance) - + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (EJ_CInstance) - + local boss_list = { [EJ_CInstance] = {name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link} } - + for i = 1, 20 do local encounterName, description, encounterID, rootSectionID, link = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, EJ_CInstance) if (encounterName) then @@ -378,15 +378,72 @@ do end _detalhes.encounter_dungeons [EJ_CInstance] = boss_list - + return boss_list end end - - function _detalhes:IsRaidRegistered (mapid) + + function _detalhes:IsRaidRegistered(mapid) return _detalhes.EncounterInformation [mapid] and true end - + + + function Details:GetExpansionBossList() --~bosslist + local bossIndexedTable = {} + local bossInfoTable = {} --[bossId] = bossInfo + local raidInfoTable = {} + + if (not EncounterJournal) then + EncounterJournal_LoadUI() + end + + for instanceIndex = 10, 2, -1 do + local raidInstanceID, instanceName, description, bgImage, buttonImage1, loreImage, buttonImage2, dungeonAreaMapID = EJ_GetInstanceByIndex(instanceIndex, true) + if (raidInstanceID) then + EncounterJournal_DisplayInstance(raidInstanceID) + + raidInfoTable[raidInstanceID] = { + raidName = instanceName, + raidIcon = buttonImage1, + raidIconCoords = {0.01, .67, 0.025, .725}, + raidIconSize = {70, 36}, + raidIconTexture = buttonImage2, + raidIconTextureCoords = {0, 1, 0, 0.95}, + raidIconTextureSize = {70, 36}, + raidIconLore = loreImage, + raidIconLoreCoords = {0, 1, 0, 0.95}, + raidIconLoreSize = {70, 36}, + raidMapID = dungeonAreaMapID, + raidEncounters = {}, + } + + for i = 20, 1, -1 do + local name, description, journalEncounterID, rootSectionID, link, journalInstanceID, dungeonEncounterID, UiMapID = _G.EJ_GetEncounterInfoByIndex(i, raidInstanceID) + if (name) then + local id, creatureName, creatureDescription, displayInfo, iconImage = EJ_GetCreatureInfo(1, journalEncounterID) + local thisbossIndexedTable = { + bossName = name, + journalEncounterID = journalEncounterID, + bossRaidName = instanceName, + bossIcon = iconImage, + bossIconCoords = {0, 1, 0, 0.95}, + bossIconSize = {70, 36}, + instanceId = raidInstanceID, + uiMapId = UiMapID, + instanceIndex = instanceIndex, + journalInstanceId = journalInstanceID, + dungeonEncounterID = dungeonEncounterID, + } + bossIndexedTable[#bossIndexedTable+1] = thisbossIndexedTable + bossInfoTable[journalEncounterID] = thisbossIndexedTable + end + end + end + end + + return bossIndexedTable, bossInfoTable, raidInfoTable + end + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --core @@ -395,5 +452,3 @@ do return true end end - ---functionas diff --git a/functions/raidinfo.lua b/functions/raidinfo.lua index 5ed54b38..85edae50 100644 --- a/functions/raidinfo.lua +++ b/functions/raidinfo.lua @@ -1,5 +1,4 @@ - --install data for raiding tiers local C_Timer = _G.C_Timer @@ -8,6 +7,81 @@ local tinsert = _G.tinsert local addonName, Details222 = ... function Details.InstallRaidInfo() + do + local INSTANCE_EJID = 1200 + local INSTANCE_MAPID = 2522 + local HDIMAGESPATH = [[Details\images\raid]] + local HDFILEPREFIX = 'VaultoftheIncarnatesRaid' + local EJ_LOREBG = 'UI-EJ-LOREBG-VaultoftheIncarnates' + + local ENCOUNTER_ID_CL = { + [2587] = 1, --Eranog + [2639] = 2, --Terros + [2590] = 3, --The Primal Council + [2592] = 4, --Sennarth, the Cold Breath + [2635] = 5, --Dathea, Ascended + [2605] = 6, --Kurog Grimtotem + [2614] = 7, --Broodkeeper Diurna + [2607] = 8, --Raszageth the Storm-Eater + 2587, 2639, 2590, 2592, 2635, 2605, 2614, 2607, + } + + local ENCOUNTER_ID_EJ = { + [2480] = 1, --Eranog + [2500] = 2, --Terros + [2486] = 3, --The Primal Council + [2482] = 4, --Sennarth, the Cold Breath + [2502] = 5, --Dathea, Ascended + [2491] = 6, --Kurog Grimtotem + [2493] = 7, --Broodkeeper Diurna + [2499] = 8, --Raszageth the Storm-Eater + 2480, 2500, 2486, 2482, 2502, 2491, 2493, 2499, + } + + local BOSSNAMES = { + "Eranog", --1 + "Terros", --2 + "The Primal Council", --3 + "Sennarth, the Cold Breath", --4 + "Dathea, Ascended", --5 + "Kurog Grimtotem", --6 + "Broodkeeper Diurna", --7 + "Raszageth the Storm-Eater", --8 + } + + local ENCOUNTERS = { + {boss = "Eranog", portrait = 4757695}, + {boss = "Terros", portrait = 4757701}, + {boss = "The Primal Council", portrait = 4757702}, + {boss = "Sennarth, the Cold Breath", portrait = 4757699}, + {boss = "Dathea, Ascended", portrait = 4757694}, + {boss = "Kurog Grimtotem", portrait = 4757696}, + {boss = "Broodkeeper Diurna", portrait = 4757693}, + {boss = "Raszageth the Storm-Eater", portrait = 4757698}, + } + + --load encounter journal + DetailsFramework.EncounterJournal.EJ_SelectInstance(INSTANCE_EJID) + local InstanceName = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo(INSTANCE_EJID) + + Details:InstallEncounter({ + id = INSTANCE_MAPID, --map id + ej_id = INSTANCE_EJID, --encounter journal id + name = InstanceName, + icons = "Interface\\AddOns\\" .. HDIMAGESPATH .. "\\" .. HDFILEPREFIX .. "_BossFaces", + icon = "Interface\\AddOns\\" .. HDIMAGESPATH .. "\\" .. HDFILEPREFIX .. "_Icon256x128", + is_raid = true, + backgroundEJ = "Interface\\EncounterJournal\\" .. EJ_LOREBG, + encounter_ids = ENCOUNTER_ID_EJ, + encounter_ids2 = ENCOUNTER_ID_CL, + boss_names = BOSSNAMES, + encounters = ENCOUNTERS, + boss_ids = { + --npc ids + }, + }) + + end do --data for Sanctum of Domination (Shadowlands tier 1) diff --git a/images/raid/CastleNathriaRaid_BossFaces.tga b/images/raid/CastleNathriaRaid_BossFaces.tga deleted file mode 100644 index 95751a8fc5d10c37cc8bad11fa81b27443d7bad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262188 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

YLs++18>jlNodeDIHDh=B z4|h92s(df@c-V9hi!If6&Dae$VcSyKJJE5+L3kKQWZzW#!h${(&Sb~6<2Ss7WlLt` zRQomK*Nolyez@uZsdPTq@u2HqE^MieX~u523Hp}GzUdry90ZqvbnKhzoS>plg)80T z+VLBng1V(^<8;mo8VBiMO7|Si*bPTP+tRgbCg(X0g2O;2c1`!(prB6|Pp0Q-$8Y!w z%9g2ZGdbVy9Atte({nXrH(dFB%haCPobNdBXWM8tw#@b#zxhD6II_J?JAT8P-?nUR znag#4;UE_b*|SD$6{^yvSGgN zQz#zt^}PAKk7n$K$3kuSv{}CI%uiKHz+y_&%Vy{G%DW(O#}w z81$==gIqBuyFLj1knGuW-5&((`Othao`Qm3GY83Rm+$?4^o4w5Om;s%V)xSL<9YBa ze$5=j+o({#{oo6Q!W#cSe!yNxpZ6<%%^bwrq*%X;p@m{$jsM?bU@xZ6`vt#t4&v=l z?B9jdL9wyM|9>H|`^oPu4~53BnFGtYUsErA!LOL@b9sr~k3Mg4+th3P+BvX1`#tr- z5B!eVKA#uZgW&gG z>0l3|-)D;7abOt>Uz&~v!iPGFC>`w1_rq20kN4$td?5asu>GEkgRo(Z$1@l9Fl*oP zkP5%!z%muybS@tVFX||=xv)Fm5BIy@`u1EtV9yDAnuvq2W48DbVb`GjRQMeSmZ9*c zi8K&?)KP?qush$^@$R=ip2!F6F)e8<2U;*&oUzz7X+If$$AM)=Pa3NMJ*cBdW3fBm z*Y)nVzV3V=YIo=V)+6+!@xHI!2lQC}Z;@)WyJf&?!2Z^jTKvujv{`-@ue1Fu7uvo# z{p&6NT3>hiw@m0uo&KHvo&NRd-XeDTclvkww`$OrI{iESJN@g^y+!Qw@AR)-|5ghc zQ>Xu^)irBCqu)EsvkcfgV0MrD<`~e!fcCuK>0ghpCqk;(|F!$R#jn{1j3zYW*N)xc zcmA*42NIPFH0(2W*KT{qf%5?kT2F-0`F_;*T^^XoJ9O-Gw%1|jL?~_k=X@X$J396` z+v~7%B9u=5uKeTlpGX-x_Bs8}>R+P{G}}KGyLQ`KE_CF2vnVZYo6a85@y+5kskSW^ zyTh-u4cz&_Z28COUl#-MzVGrtU3s8p`zOM#$^Vn#cO2+>2PEGj^x{aJK`b%J*WAhfN2u*iwDhjNNb(wk?&t6CHOPgolAd z_D!`fEa+3=OmMWO|-<{D!ZfY?<0Nlk@$~K_*x-Jy$b!!7x(kZ z2fTPzFYc)wzv0xY%?o>Zea~FE@cQ|@yuW7bhSyv-FKtt(dpi!IWr9NS?f%E{?R>!b kfb#+81L^p{%=>x!8#{(~ZrHZrwO1S79NDmWxbZjt2dhaE#{d8T literal 0 HcmV?d00001 diff --git a/images/raid/VaultoftheIncarnatesRaid_Icon256x128.tga b/images/raid/VaultoftheIncarnatesRaid_Icon256x128.tga new file mode 100644 index 0000000000000000000000000000000000000000..ddd4e806d4ecf406ca493170d3cea587ea9ec9f8 GIT binary patch literal 133164 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 Ax&QzG literal 0 HcmV?d00001

Eo`GLG=B1jF{x?T#2lQBb|nq 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%0DGg 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