Update to version 8192

This commit is contained in:
Tercio Jose
2021-01-28 20:56:02 -03:00
parent 23ae80e8a3
commit d907624537
9 changed files with 218 additions and 102 deletions
+23 -1
View File
@@ -1,6 +1,6 @@
local dversion = 232
local dversion = 233
local major, minor = "DetailsFramework-1.0", dversion
local DF, oldminor = LibStub:NewLibrary (major, minor)
@@ -3639,6 +3639,28 @@ function DF:GetRoleTypes()
return DF.RoleTypes
end
local roleTexcoord = {
DAMAGER = "72:130:69:127",
HEALER = "72:130:2:60",
TANK = "5:63:69:127",
NONE = "139:196:69:127",
}
function DF:AddRoleIconToText(text, role, size)
if (role and type(role) == "string") then
local coords = GetTexCoordsForRole(role)
if (coords) then
if (type (text) == "string" and role ~= "NONE") then
size = size or 14
text = "|TInterface\\LFGFRAME\\UI-LFG-ICON-ROLES:" .. size .. ":" .. size .. ":0:0:256:256:" .. roleTexcoord[role] .. "|t " .. text
return text
end
end
end
return text
end
DF.CLEncounterID = {
{ID = 2144, Name = "Taloc"},
{ID = 2141, Name = "MOTHER"},
+4
View File
@@ -135,6 +135,7 @@ DF.CooldownsBySpec = {
[30283] = 5, --Shadowfury
[6789] = 5, --Mortal Coil (talent)
[333889] = 5, --Fel Domination
[5484] = 5, --Howl of Terror (talent)
},
--demonology
[266] = {
@@ -162,6 +163,7 @@ DF.CooldownsBySpec = {
[6789] = 5, --Mortal Coil (talent)
[30283] = 5, --Shadowfury
[333889] = 5, --Fel Domination
[5484] = 5, --Howl of Terror (talent)
},
--WARRIOR
@@ -537,6 +539,7 @@ DF.CooldownsInfo = {
[113858] = {cooldown = 120, duration = 20, talent = 23092, charges = 1, class = "WARLOCK", type = 1}, --Dark Soul: Instability (talent)
[30283] = {cooldown = 60, duration = 3, talent = false, charges = 1, class = "WARLOCK", type = 5}, --Shadowfury
[333889] = {cooldown = 180, duration = 15, talent = false, charges = 1, class = "WARLOCK", type = 5}, --Fel Domination
[5484] = {cooldown = 40, duration = 20, talent = true, charges = 1, class = "WARLOCK", type = 5}, --Howl of Terror (talent)
--> shaman
[198067] = {cooldown = 150, duration = 30, talent = false, charges = 1, class = "SHAMAN", type = 1}, --Fire Elemental
@@ -716,6 +719,7 @@ DF.CrowdControlSpells = {
[6789] = "WARLOCK", --Mortal Coil
[30283] = "WARLOCK", --Shadowfury
[710] = "WARLOCK", --Banish
[5484] = "WARLOCK", --Howl of Terror (talent)
[118] = "MAGE", --Polymorph
[61305] = "MAGE", --Polymorph (black cat)
+16 -6
View File
@@ -4,8 +4,9 @@
_ = nil
_detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
_detalhes.build_counter = 8156
_detalhes.alpha_build_counter = 8156 --if this is higher than the regular counter, use it instead
_detalhes.build_counter = 8192
_detalhes.alpha_build_counter = 8192 --if this is higher than the regular counter, use it instead
_detalhes.dont_open_news = true
_detalhes.game_version = "v9.0.2"
_detalhes.userversion = "v9.0.2." .. _detalhes.build_counter
_detalhes.realversion = 144 --core version, this is used to check API version for scripts and plugins (see alias below)
@@ -28,10 +29,16 @@ do
local Loc = _G.LibStub("AceLocale-3.0"):GetLocale( "Details" )
local news = {
--{"v9.0.2.8162.144", "January ??th, 2021"},
--"Added covenant into the Raid Check plugin.",
{"v9.0.2.8156.144", "January 21th, 2021"},
{"v9.0.2.8192.144", "January 27th, 2021"},
"If you get issues with nicknames, disable any weakaura which modifies this feature.",
"Advanced Death Logs plugin got some fixes and should work properly.",
"Added the word 'Overall' at the end of the title bar text when the segment is overall.",
"Added covenant and durability into the Raid Check plugin.",
"Added API Window:SetTitleBarText(text) and Window:GetTitleBarText().",
"Fixed some issues where Details! printed 'combat start time not found.'",
"Fixed damage per Phase.",
"Fixed resizing window with no background error.",
"Fixed 'Always Show player' on ascending sort direction.",
"Added more foods into the Ready Check plugin.",
"Fixed some issues with the coach fearure.",
@@ -536,6 +543,9 @@ do
[323436] = true --Phial of Serenity (from Kyrians)
}
--[[global]] DETAILS_MODE_GROUP = 2
--[[global]] DETAILS_MODE_ALL = 3
_detalhes._detalhes_props = {
DATA_TYPE_START = 1, --> Something on start
DATA_TYPE_END = 2, --> Something on end
+12 -13
View File
@@ -217,28 +217,27 @@
--> um player
if (_bit_band (flag, OBJECT_TYPE_PLAYER) ~= 0) then
if (not _detalhes.ignore_nicktag) then
novo_objeto.displayName = _detalhes:GetNickname (nome, false, true) --> serial, default, silent
if (novo_objeto.displayName and novo_objeto.displayName ~= "") then
--don't display empty nicknames
if (novo_objeto.displayName:find(" ")) then
if (_detalhes.remove_realm_from_name) then
novo_objeto.displayName = nome:gsub (("%-.*"), "")
else
novo_objeto.displayName = nome
end
end
end
end
if (not novo_objeto.displayName) then
if (_detalhes.remove_realm_from_name) then
novo_objeto.displayName = nome:gsub (("%-.*"), "")
else
novo_objeto.displayName = nome
end
--[=[
if (_IsInInstance() and _detalhes.remove_realm_from_name) then
novo_objeto.displayName = nome:gsub (("%-.*"), "")
elseif (_detalhes.remove_realm_from_name) then
novo_objeto.displayName = nome:gsub (("%-.*"), "%*") --nome = nil
else
novo_objeto.displayName = nome
end
--]=]
end
if (_detalhes.all_players_are_group or _detalhes.immersion_enabled) then
+4 -2
View File
@@ -4534,7 +4534,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
end
_current_encounter_id = encounterID
Details:Msg("encounter started:", encounterID, encounterName)
--Details:Msg("encounter started:", encounterID, encounterName)
_detalhes.boss1_health_percent = 1
local dbm_mod, dbm_time = _detalhes.encounter_table.DBM_Mod, _detalhes.encounter_table.DBM_ModTime
@@ -4546,7 +4546,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
_detalhes.encounter_table.phase = 1
--store the encounter time inside the encounter table for the encounter plugin
_detalhes.encounter_table ["start"] = _GetTime()
_detalhes.encounter_table.start = GetTime()
_detalhes.encounter_table ["end"] = nil
-- local encounterID = Details.encounter_table.id
_detalhes.encounter_table.id = encounterID
@@ -4585,6 +4585,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
end
_detalhes:SendEvent ("COMBAT_ENCOUNTER_START", nil, ...)
--print ("encounter staerted at:", _detalhes.encounter_table.start)
end
function _detalhes.parser_functions:ENCOUNTER_END (...)
+33 -16
View File
@@ -7577,10 +7577,10 @@ function _detalhes:CheckForTextTimeCounter (combat_start)
local instance = _detalhes:GetInstance (lower)
if (instance.baseframe and instance:IsEnabled()) then
if (instance.attribute_text.show_timer) then
if (_detalhes.instance_title_text_timer [instance.meu_id]) then
_detalhes:CancelTimer (_detalhes.instance_title_text_timer [instance.meu_id])
if (_detalhes.instance_title_text_timer [instance:GetId()]) then
Details.Schedules.Cancel(_detalhes.instance_title_text_timer [instance:GetId()])
end
_detalhes.instance_title_text_timer [instance.meu_id] = _detalhes:ScheduleRepeatingTimer ("TitleTextTickTimer", 1, instance)
_detalhes.instance_title_text_timer[instance:GetId()] = Details.Schedules.NewTicker(1, Details.TitleTextTickTimer, Details, instance)
end
end
else
@@ -7588,16 +7588,16 @@ function _detalhes:CheckForTextTimeCounter (combat_start)
end
else
if (_detalhes.in_combat and _detalhes.zone_type == "raid") then
_detalhes:ScheduleTimer ("CheckForTextTimeCounter", 3, true)
Details.Schedules.NewTimer(3, Details.CheckForTextTimeCounter, Details, true)
end
end
else
for _, instance in ipairs (_detalhes.tabela_instancias) do
if (_detalhes.instance_title_text_timer [instance.meu_id] and instance.baseframe and instance:IsEnabled() and instance.menu_attribute_string) then
_detalhes:CancelTimer (_detalhes.instance_title_text_timer [instance.meu_id])
local current_text = instance.menu_attribute_string:GetText()
if (_detalhes.instance_title_text_timer [instance:GetId()] and instance.baseframe and instance:IsEnabled() and instance.menu_attribute_string) then
Details.Schedules.Cancel(_detalhes.instance_title_text_timer[instance:GetId()])
local current_text = instance:GetTitleBarText()
current_text = current_text:gsub ("%[.*%] ", "")
instance.menu_attribute_string:SetText (current_text)
instance:SetTitleBarText(current_text)
end
end
end
@@ -7621,24 +7621,29 @@ function _detalhes:TitleTextTickTimer (instance)
local currentText = instance.menu_attribute_string.originalText
if (currentText) then
local timer = format_timer (_detalhes.tabela_vigente:GetCombatTime())
instance.menu_attribute_string:SetText(timer .. " " .. currentText)
instance:SetTitleBarText(timer .. " " .. currentText)
else
local current_text = instance.menu_attribute_string:GetText()
local current_text = instance:GetTitleBarText()
if (not current_text:find ("%[.*%]")) then
instance.menu_attribute_string:SetText ("[00:01] " .. current_text)
instance:SetTitleBarText("[00:01] " .. current_text)
else
local timer = format_timer (_detalhes.tabela_vigente:GetCombatTime())
current_text = current_text:gsub ("%[.*%]", timer)
instance.menu_attribute_string:SetText (current_text)
instance:SetTitleBarText(current_text)
end
end
end
end
function _detalhes:SetTitleBarText (text)
function _detalhes:SetTitleBarText(text)
if (self.attribute_text.enabled and self.menu_attribute_string) then
self.menu_attribute_string:SetText (text)
self.menu_attribute_string:SetText(text)
end
end
function _detalhes:GetTitleBarText()
if (self.menu_attribute_string) then
return self.menu_attribute_string:GetText()
end
end
@@ -7718,6 +7723,18 @@ function _detalhes:AttributeMenu (enabled, pos_x, pos_y, font, size, color, side
function self.menu_attribute_string:OnEvent (instance, attribute, subAttribute)
if (instance == label.owner_instance) then
local sName = instance:GetInstanceAttributeText()
local instanceMode = instance:GetMode()
if (instanceMode == DETAILS_MODE_GROUP or instanceMode == DETAILS_MODE_ALL) then
local segment = instance:GetSegment()
if (segment == DETAILS_SEGMENTID_OVERALL) then
sName = sName .. " " .. Loc ["STRING_OVERALL"]
elseif (segment >= 2) then
sName = sName .. " [" .. segment .. "]"
end
end
label.text = sName
label.originalText = sName
end
@@ -7725,7 +7742,7 @@ function _detalhes:AttributeMenu (enabled, pos_x, pos_y, font, size, color, side
_detalhes:RegisterEvent (self.menu_attribute_string, "DETAILS_INSTANCE_CHANGEATTRIBUTE", self.menu_attribute_string.OnEvent)
_detalhes:RegisterEvent (self.menu_attribute_string, "DETAILS_INSTANCE_CHANGEMODE", self.menu_attribute_string.OnEvent)
_detalhes:RegisterEvent (self.menu_attribute_string, "DETAILS_INSTANCE_CHANGESEGMENT", self.menu_attribute_string.OnEvent)
end
self.menu_attribute_string:Show()
+61 -29
View File
@@ -39,13 +39,14 @@ end
function Details:BossModsLink()
if (_G.DBM) then
local dbm_callback_phase = function (event, msg, ...)
print("D!", event, msg, ...)
local mod = Details.encounter_table.DBM_Mod
if (not mod) then
local id = Details:GetEncounterIdFromBossIndex (Details.encounter_table.mapid, Details.encounter_table.id)
if (id) then
for index, tmod in ipairs (DBM.Mods) do
for index, tmod in ipairs (DBM.Mods) do
if (tmod.id == id) then
Details.encounter_table.DBM_Mod = tmod
mod = tmod
@@ -54,37 +55,42 @@ function Details:BossModsLink()
end
end
local newPhase
local newPhase = 1
if (msg == "stage") then
local ID, pahseChange, n1, n2, n3 = ...
if (pahseChange == "stagechange") then
--D! DBM_Announce Stage 3 136116 stagechange 0 2429 false
if (event == "DBM_Announce") then
if (msg:find("Stage")) then
msg = msg:gsub("%a", "")
msg = msg:gsub("%s+", "")
newPhase = tonumber(msg)
print("New Phase: ", newPhase)
local ID, msg2, someId, someNumber, aBool = ...
if (msg2 == "stagechange") then
print("D! yeash", msg2)
end
local phase = newPhase
if (phase and Details.encounter_table.phase ~= phase) then
Details:Msg ("Current phase is now:", phase)
Details:OnCombatPhaseChanged()
Details.encounter_table.phase = phase
local cur_combat = Details:GetCurrentCombat()
local time = cur_combat:GetCombatTime()
if (time > 5) then
tinsert (cur_combat.PhaseData, {phase, time})
end
Details:SendEvent ("COMBAT_ENCOUNTER_PHASE_CHANGED", nil, phase)
end
end
end
--local phase = mod and mod.vb and mod.vb.phase
local phase = newPhase
-- print ("DBM 1", phase, Details.encounter_table.phase, Details.encounter_table.phase ~= phase)
if (phase and Details.encounter_table.phase ~= phase) then
Details:Msg ("Current phase is now:", phase)
Details:OnCombatPhaseChanged()
Details.encounter_table.phase = phase
local cur_combat = Details:GetCurrentCombat()
local time = cur_combat:GetCombatTime()
if (time > 5) then
tinsert (cur_combat.PhaseData, {phase, time})
end
Details:SendEvent ("COMBAT_ENCOUNTER_PHASE_CHANGED", nil, phase)
end
end
local dbm_callback_pull = function (event, mod, delay, synced, startHp)
@@ -97,11 +103,36 @@ function Details:BossModsLink()
end
if (BigWigsLoader and not _G.DBM) then
function Details:BigWigs_SetStage (event, module, phase)
print(" ===== BigWigs_SetStage ===== ", event, module, phase)
phase = tonumber(phase)
if (phase and type (phase) == "number" and Details.encounter_table.phase ~= phase) then
Details:OnCombatPhaseChanged()
Details.encounter_table.phase = phase
local cur_combat = Details:GetCurrentCombat()
local time = cur_combat:GetCombatTime()
if (time > 5) then
tinsert (cur_combat.PhaseData, {phase, time})
end
Details:SendEvent ("COMBAT_ENCOUNTER_PHASE_CHANGED", nil, phase)
Details:Msg ("Current phase is now:", phase)
end
end
function Details:BigWigs_Message (event, module, key, text, ...)
if (key == "stages") then
local phase = text:gsub (".*%s", "")
phase = tonumber (phase)
local phase = module:GetStage()
print("BW new stage:", phase)
--local phase = text:gsub (".*%s", "")
--phase = tonumber (phase)
if (phase and type (phase) == "number" and Details.encounter_table.phase ~= phase) then
Details:OnCombatPhaseChanged()
@@ -121,6 +152,7 @@ function Details:BossModsLink()
if (BigWigsLoader.RegisterMessage) then
BigWigsLoader.RegisterMessage (Details, "BigWigs_Message")
BigWigsLoader.RegisterMessage (Details, "BigWigs_SetStage")
end
end
+65 -30
View File
@@ -247,12 +247,13 @@ end
--header and scroll
local headerTable = {
{text = "Player Name", width = 160},
{text = "Talents", width = 150},
{text = "Item Level", width = 70},
{text = "Food", width = 50},
{text = "Flask", width = 50},
{text = "Rune", width = 50},
{text = "Player Name", width = 140},
{text = "Talents", width = 130},
{text = "ILevel", width = 45},
{text = "Repair", width = 45},
{text = "Food", width = 45},
{text = "Flask", width = 45},
{text = "Rune", width = 45},
--{text = "Pre-Pot Last Try", width = 100},
{text = "Using Details!", width = 100},
}
@@ -300,10 +301,14 @@ end
--spec icon
local specIcon = DF:CreateImage (line, nil, scroll_line_height, scroll_line_height)
specIcon:SetPoint ("left", roleIcon, "right", 2, 0)
--covenant icon
local covenantIcon = DF:CreateImage (line, nil, scroll_line_height, scroll_line_height)
covenantIcon:SetPoint ("left", specIcon, "right", 2, 0)
--player name
local playerName = DF:CreateLabel (line)
playerName:SetPoint ("left", specIcon, "right", 2, 0)
playerName:SetPoint ("left", covenantIcon, "right", 2, 0)
--talents
local talent_row_options = {
@@ -316,35 +321,39 @@ end
local talentsRow = DF:CreateIconRow (line, "$parentTalentIconsRow", talent_row_options)
--item level
local itemLevel = DF:CreateLabel (line)
local itemLevel = DF:CreateLabel(line)
--repair status
local repairStatus = DF:CreateLabel(line)
--no food
local FoodIndicator = DF:CreateImage (line, "", scroll_line_height, scroll_line_height)
local FoodIndicator = DF:CreateImage(line, "", scroll_line_height, scroll_line_height)
--no flask
local FlaskIndicator = DF:CreateImage (line, "", scroll_line_height, scroll_line_height)
local FlaskIndicator = DF:CreateImage(line, "", scroll_line_height, scroll_line_height)
--no rune
local RuneIndicator = DF:CreateImage (line, "", scroll_line_height, scroll_line_height)
local RuneIndicator = DF:CreateImage(line, "", scroll_line_height, scroll_line_height)
--no pre pot
--local PrePotIndicator = DF:CreateImage (line, "", scroll_line_height, scroll_line_height)
--using details!
local DetailsIndicator = DF:CreateImage (line, "", scroll_line_height, scroll_line_height)
local DetailsIndicator = DF:CreateImage(line, "", scroll_line_height, scroll_line_height)
line:AddFrameToHeaderAlignment (roleIcon)
line:AddFrameToHeaderAlignment (talentsRow)
line:AddFrameToHeaderAlignment (itemLevel)
line:AddFrameToHeaderAlignment (FoodIndicator)
line:AddFrameToHeaderAlignment (FlaskIndicator)
line:AddFrameToHeaderAlignment (RuneIndicator)
--line:AddFrameToHeaderAlignment (PrePotIndicator)
line:AddFrameToHeaderAlignment (DetailsIndicator)
line:AddFrameToHeaderAlignment(roleIcon)
line:AddFrameToHeaderAlignment(talentsRow)
line:AddFrameToHeaderAlignment(itemLevel)
line:AddFrameToHeaderAlignment(repairStatus)
line:AddFrameToHeaderAlignment(FoodIndicator)
line:AddFrameToHeaderAlignment(FlaskIndicator)
line:AddFrameToHeaderAlignment(RuneIndicator)
--line:AddFrameToHeaderAlignment(PrePotIndicator)
line:AddFrameToHeaderAlignment(DetailsIndicator)
line:AlignWithHeader (DetailsRaidCheck.Header, "left")
line.CovenantIcon = covenantIcon
line.RoleIcon = roleIcon
line.SpecIcon = specIcon
line.PlayerName = playerName
line.TalentsRow = talentsRow
line.ItemLevel = itemLevel
line.RepairStatus = repairStatus
line.FoodIndicator = FoodIndicator
line.FlaskIndicator = FlaskIndicator
line.RuneIndicator = RuneIndicator
@@ -369,6 +378,12 @@ end
table.sort (dataInOrder, DF.SortOrder2)
--table.sort (dataInOrder, DF.SortOrder1R) --alphabetical
data = dataInOrder
local raidStatusLib = LibStub:GetLibrary("LibRaidStatus-1.0")
local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo()
local gearInfo = raidStatusLib.gearManager.GetGearTable()
local libRaidStatus = 0
for i = 1, total_lines do
local index = i + offset
@@ -377,18 +392,38 @@ end
if (playerTable) then
local line = self:GetLine (i)
if (line) then
local thisPlayerInfo = playerInfo[playerTable.Name]
if (thisPlayerInfo) then
local playerCovenantId = thisPlayerInfo.covenantId
if (playerCovenantId > 0) then
line.CovenantIcon:SetTexture(LIB_RAID_STATUS_COVENANT_ICONS[playerCovenantId])
line.CovenantIcon:SetTexCoord(.05, .95, .05, .95)
else
line.CovenantIcon:SetTexture("")
end
else
line.CovenantIcon:SetTexture("")
end
--repair status
local thisPlayerGearInfo = gearInfo[playerTable.Name]
if (thisPlayerGearInfo) then
line.RepairStatus:SetText(thisPlayerGearInfo.durability .. "%")
else
line.RepairStatus:SetText("")
end
local roleTexture, L, R, T, B = _detalhes:GetRoleIcon (playerTable.Role or "NONE")
local roleTexture, L, R, T, B = _detalhes:GetRoleIcon(playerTable.Role or "NONE")
line.RoleIcon:SetTexture (roleTexture)
line.RoleIcon:SetTexCoord (L, R, T, B)
line.RoleIcon:SetTexture(roleTexture)
line.RoleIcon:SetTexCoord(L, R, T, B)
if (playerTable.Spec) then
local texture, L, R, T, B = _detalhes:GetSpecIcon (playerTable.Spec)
line.SpecIcon:SetTexture (texture)
line.SpecIcon:SetTexCoord (L, R, T, B)
local texture, L, R, T, B = _detalhes:GetSpecIcon(playerTable.Spec)
line.SpecIcon:SetTexture(texture)
line.SpecIcon:SetTexCoord(L, R, T, B)
else
local texture, L, R, T, B = _detalhes:GetClassIcon (playerTable.Class)
local texture, L, R, T, B = _detalhes:GetClassIcon(playerTable.Class)
line.SpecIcon:SetTexture (texture)
line.SpecIcon:SetTexCoord (L, R, T, B)
end
@@ -398,8 +433,8 @@ end
if (playerTable.Talents) then
for i = 1, #playerTable.Talents do
local talent = playerTable.Talents [i]
local talentID, name, texture, selected, available = GetTalentInfoByID (talent)
line.TalentsRow:SetIcon (false, false, false, false, texture)
local talentID, name, texture, selected, available = GetTalentInfoByID(talent)
line.TalentsRow:SetIcon(false, false, false, false, texture)
end
end
-5
View File
@@ -468,11 +468,6 @@ function Details:StartMeUp() --I'll never stop!
--force the group edit be always enabled when Details! starts
_detalhes.options_group_edit = true
--enforce to use the new animation code
if (_detalhes.streamer_config) then
_detalhes.streamer_config.use_animation_accel = true
end
--shutdown pre-pot announcer
Details.announce_prepots.enabled = false
--disable the min healing to show