Release Candidate 1

This commit is contained in:
Tercio Jose
2022-11-18 16:54:25 -03:00
parent bbbda84c68
commit 1c8dfb3ab7
96 changed files with 3053 additions and 1427 deletions
+2
View File
@@ -7,6 +7,8 @@ This is a high level API for Details! Damage Meter
--]=]
local addonName, Details222 = ...
--local helpers
local getCombatObject = function(segmentNumber)
local combatObject
+2 -1
View File
@@ -1,7 +1,8 @@
--[[ Attributes: Damage, Heal, Energy, Miscellaneous ]]
do
do
local _detalhes = _G._detalhes
local addonName, Details222 = ...
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
--Globals
+1
View File
@@ -1,6 +1,7 @@
local Details = _G.Details
local DF = _G.DetailsFramework
local C_Timer = _G.C_Timer
local addonName, Details222 = ...
--auto run scripts
Details.AutoRunCode = {}
+2 -1
View File
@@ -1,7 +1,8 @@
do
do
local _detalhes = _G._detalhes
local addonName, Details222 = ...
_detalhes.EncounterInformation = {}
local ipairs = ipairs --lua local
+1 -1
View File
@@ -1,6 +1,6 @@
local Details = _G.Details
local addonName, Details222 = ...
--get the total of damage and healing of a phase of an encounter
function Details:OnCombatPhaseChanged()
+1
View File
@@ -8,6 +8,7 @@
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local _
local addonName, Details222 = ...
--initialize buffs name container
_detalhes.Buffs.BuffsTable = {} -- armazenara o [nome do buff] = { tabela do buff }
_detalhes.Buffs.__index = _detalhes.Buffs
+2 -1
View File
@@ -1,7 +1,8 @@
--[[ Declare all Details classes and container indexes ]]
do
do
local _detalhes = _G._detalhes
local addonName, Details222 = ...
local setmetatable = setmetatable
-------- container que armazena o cache de pets
_detalhes.container_pets = {}
+1
View File
@@ -1,5 +1,6 @@
local Details = _G.Details
local addonName, Details222 = ...
--stop yellow warning on my editor
local IsInRaid = _G.IsInRaid
+1
View File
@@ -1,6 +1,7 @@
local Details = _G.Details
local addonName, Details222 = ...
--namespace
Details.CurrentDps = {
+1 -1
View File
@@ -1,7 +1,7 @@
local Details = _G.Details
local addonName, Details222 = ...
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--extra buttons at the death options (release, death recap)
+1
View File
@@ -4,6 +4,7 @@ local Details = _G.Details
local textAlpha = 0.9
local AceLocale = LibStub("AceLocale-3.0")
local L = AceLocale:GetLocale ( "Details" )
local addonName, Details222 = ...
local on_deathrecap_line_enter = function(self)
if (self.spellid) then
+1
View File
@@ -4,6 +4,7 @@ local Details = _G._detalhes
local debugmode = false --print debug lines
local verbosemode = false --auto open the chart panel
local _
local addonName, Details222 = ...
local Loc = _G.LibStub("AceLocale-3.0"):GetLocale( "Details" )
+1
View File
@@ -2,6 +2,7 @@
local Details = _G.Details
local AceLocale = LibStub("AceLocale-3.0")
local L = AceLocale:GetLocale("Details")
local addonName, Details222 = ...
function Details.RegisterDragonFlightEditMode()
if (EventRegistry and type(EventRegistry) == "table") then
+2 -1
View File
@@ -4,7 +4,8 @@
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local _
local addonName, Details222 = ...
--Event types:
_detalhes.RegistredEvents = {
--instances
+2 -1
View File
@@ -15,7 +15,8 @@
local _detalhes = _G._detalhes
local _
local addonName, Details222 = ...
_detalhes.hooks ["HOOK_COOLDOWN"] = {}
_detalhes.hooks ["HOOK_DEATH"] = {}
_detalhes.hooks ["HOOK_BATTLERESS"] = {}
+1
View File
@@ -6,6 +6,7 @@ local Details = _G.Details
local C_Timer = _G.C_Timer
local C_Map = _G.C_Map
local ceil = math.ceil
local addonName, Details222 = ...
-- immersion namespace
Details.Immersion = {}
+2 -1
View File
@@ -4,7 +4,8 @@
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local _
local addonName, Details222 = ...
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--On Details! Load:
--load default keys into the main object
+1
View File
@@ -1,4 +1,5 @@
local addonName, Details222 = ...
-- @windowN: number a a window to open the player details breakdown
-- /run Details:OpenPlayerDetails(windowN)
+2 -1
View File
@@ -5,6 +5,7 @@ local unpack = _G.unpack
local GetTime = _G.GetTime
local tremove = _G.tremove
local GetInstanceInfo = _G.GetInstanceInfo
local addonName, Details222 = ...
local Loc = _G.LibStub("AceLocale-3.0"):GetLocale("Details")
@@ -774,7 +775,7 @@ function DetailsMythicPlusFrame.EventListener.OnDetailsEvent(contextObject, even
--nothing
elseif (event == "COMBAT_MYTHICDUNGEON_START") then
print("COMBAT_MYTHICDUNGEON_START", ...)
--print("COMBAT_MYTHICDUNGEON_START", ...)
local lower_instance = _detalhes:GetLowerInstanceNumber()
if (lower_instance) then
lower_instance = _detalhes:GetInstance(lower_instance)
+1
View File
@@ -19,6 +19,7 @@ local GetNumGroupMembers = _G.GetNumGroupMembers
local GetRaidRosterInfo = _G.GetRaidRosterInfo
local unpack = _G.unpack
local IsInGroup = _G.IsInGroup
local addonName, Details222 = ...
Details.packFunctions = {}
+1 -1
View File
@@ -1,7 +1,7 @@
local Details = _G.Details
local addonName, Details222 = ...
local plater_integration_frame = CreateFrame("frame", "DetailsPlaterFrame", UIParent, "BackdropTemplate")
+1
View File
@@ -4,6 +4,7 @@ do
local _detalhes = _G._detalhes
local _
local addonName, Details222 = ...
local pairs = pairs
local ipairs = ipairs
local unpack = table.unpack or _G.unpack
+32
View File
@@ -0,0 +1,32 @@
local addonName, details222 = ...
details222.Scheduler = {
Names = {},
Debug = false,
}
local printDebug = function(...)
if (details222.Scheduler.Debug) then
print("ISE:", ...)
end
end
function details222.Scheduler.NewTicker(seconds, callback, name)
local tickerHandler = C_Timer.NewTicker(seconds, callback)
if (name) then
details222.Scheduler.Names[name] = tickerHandler
end
return tickerHandler
end
function details222.Scheduler.Cancel(name)
local ticker = details222.Scheduler.Names[name]
if (ticker) then
ticker:Cancel()
details222.Scheduler.Names[name] = nil
printDebug("Ticker", name, "Cancelled")
else
printDebug("Ticker", name, " Not Found")
end
end
+56 -10
View File
@@ -4,6 +4,7 @@
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local _
local addonName, Details222 = ...
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Profiles:
@@ -849,9 +850,6 @@ local default_profile = {
},
["EVOKER"] = {
--0.31764705882353, -- [1]
--0.24313725490196, -- [2]
--0.91372549019608, -- [3]
--0.2000,
--0.4980,
--0.5764,
@@ -1140,11 +1138,11 @@ local default_profile = {
line_height = 17,
},
--new window
all_in_one_windows = {
},
--new window system
all_in_one_windows = {},
--auto show overall data in dynamic mode
auto_swap_to_dynamic_overall = false,
}
_detalhes.default_profile = default_profile
@@ -1157,11 +1155,44 @@ local default_player_data = {
last_coach_name = false,
},
--this is used by the new data capture for charts
data_harvest_for_charsts = {
players = {
--damage done by each player
{
name = "Damage of Each Individual Player",
combatObjectContainer = 1,
playerOnly = true,
playerKey = "total",
},
},
totals = {
--total damage done by the raid group
{
name = "Damage of All Player Combined",
combatObjectSubTableName = "totals",
combatObjectSubTableKey = 1,
},
},
},
data_harvested_for_charts = {},
--ocd tracker test
ocd_tracker = {
enabled = false,
cooldowns = {},
pos = {},
frames = {
["defensive-raid"] = {},
["defensive-target"] = {},
["defensive-personal"] = {},
["ofensive"] = {},
["utility"] = {},
["main"] = {}, --any cooldown that does not have a frame is shown on main frame
}, --panels for each cooldown type
show_conditions = {
only_in_group = true,
only_inside_instance = true,
@@ -1175,7 +1206,16 @@ local default_player_data = {
["defensive-personal"] = false,
["ofensive"] = true,
["utility"] = false,
}, --when creating a filter, add it here and also add to 'own_frame'
own_frame = {
["defensive-raid"] = false,
["defensive-target"] = false,
["defensive-personal"] = false,
["ofensive"] = false,
["utility"] = false,
},
width = 120,
height = 18,
lines_per_column = 12,
@@ -1300,7 +1340,9 @@ local default_global_data = {
immersion_unit_special_icons = true, --custom icons for specific units
immersion_pets_on_solo_play = false, --pets showing when solo play
damage_scroll_auto_open = true,
damage_scroll_position = {},
damage_scroll_position = {
scale = 1,
},
data_wipes_exp = {
["9"] = false,
["10"] = false,
@@ -1312,6 +1354,11 @@ local default_global_data = {
current_exp_raid_encounters = {},
installed_skins_cache = {},
combat_id_global = 0,
slash_me_used = false,
trinket_data = {},
--spell category feedback
spell_category_savedtable = {},
spell_category_latest_query = 0,
@@ -1648,7 +1695,6 @@ local exportProfileBlacklist = {
active_profile = true,
SoloTablesSaved = true,
RaidTablesSaved = true,
savedStyles = true,
benchmark_db = true,
rank_window = true,
last_realversion = true,
+1
View File
@@ -5,6 +5,7 @@
local C_Timer = _G.C_Timer
local DetailsFramework = _G.DetailsFramework
local tinsert = _G.tinsert
local addonName, Details222 = ...
function Details.InstallRaidInfo()
+2 -1
View File
@@ -10,7 +10,8 @@
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local _
local addonName, Details222 = ...
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--basic functions
+1
View File
@@ -1,6 +1,7 @@
--[[this file save the data when player leave the game]]
local _detalhes = _G._detalhes
local addonName, Details222 = ...
function _detalhes:WipeConfig()
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
+1
View File
@@ -5,6 +5,7 @@ local Details = _G.Details
local DF = _G.DetailsFramework
local C_Timer = _G.C_Timer
local unpack = _G.unpack
local addonName, Details222 = ...
--make a namespace for schedules
Details.Schedules = {}
+1
View File
@@ -2,6 +2,7 @@
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local _
local addonName, Details222 = ...
--install skin function:
function _detalhes:InstallSkin (skin_name, skin_table)
+75 -72
View File
@@ -3,6 +3,7 @@
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local _
local addonName, Details222 = ...
local CreateFrame = CreateFrame
local pairs = pairs
@@ -11,11 +12,16 @@ local UnitGUID = UnitGUID
local tonumber= tonumber
local LoggingCombat = LoggingCombat
SLASH_PLAYEDCLASS1 = "/playedclass"
function SlashCmdList.PLAYEDCLASS(msg, editbox)
print(Details.GetPlayTimeOnClassString())
end
SLASH_DUMPTABLE1 = "/dumpt"
function SlashCmdList.DUMPTABLE(msg, editbox)
local result = "return function() return " .. msg .. " end"
local extractValue = loadstring(result)
return Details:Dump(extractValue()())
return dumpt(extractValue()())
end
SLASH_DETAILS1, SLASH_DETAILS2, SLASH_DETAILS3 = "/details", "/dt", "/de"
@@ -822,66 +828,57 @@ function SlashCmdList.DETAILS (msg, editbox)
elseif (command == "guid") then
local pass_guid = rest:match("^(%S*)%s*(.-)$")
if (not _detalhes.id_frame) then
local backdrop = {
bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
edgeFile = "Interface\\ChatFrame\\ChatFrameBackground",
tile = true, edgeSize = 1, tileSize = 5,
}
_detalhes.id_frame = CreateFrame("Frame", "DetailsID", UIParent)
_detalhes.id_frame:SetHeight(14)
_detalhes.id_frame:SetWidth(120)
_detalhes.id_frame:SetPoint("center", UIParent, "center")
_detalhes.id_frame:SetBackdrop(backdrop)
tinsert(UISpecialFrames, "DetailsID")
_detalhes.id_frame.texto = CreateFrame("editbox", nil, _detalhes.id_frame)
_detalhes.id_frame.texto:SetPoint("topleft", _detalhes.id_frame, "topleft")
_detalhes.id_frame.texto:SetAutoFocus(false)
_detalhes.id_frame.texto:SetFontObject(GameFontHighlightSmall)
_detalhes.id_frame.texto:SetHeight(14)
_detalhes.id_frame.texto:SetWidth(120)
_detalhes.id_frame.texto:SetJustifyH("CENTER")
_detalhes.id_frame.texto:EnableMouse(true)
_detalhes.id_frame.texto:SetBackdrop(ManualBackdrop)
_detalhes.id_frame.texto:SetBackdropColor(0, 0, 0, 0.5)
_detalhes.id_frame.texto:SetBackdropBorderColor(0.3, 0.3, 0.30, 0.80)
_detalhes.id_frame.texto:SetText("") --localize-me
_detalhes.id_frame.texto.perdeu_foco = nil
_detalhes.id_frame.texto:SetScript("OnEnterPressed", function()
_detalhes.id_frame.texto:ClearFocus()
_detalhes.id_frame:Hide()
end)
_detalhes.id_frame.texto:SetScript("OnEscapePressed", function()
_detalhes.id_frame.texto:ClearFocus()
_detalhes.id_frame:Hide()
end)
end
_detalhes.id_frame:Show()
_detalhes.id_frame.texto:SetFocus()
if (pass_guid == "-") then
local guid = UnitGUID("target")
if (guid) then
local g = _detalhes:GetNpcIdFromGuid (guid)
_detalhes.id_frame.texto:SetText("" .. g)
_detalhes.id_frame.texto:HighlightText()
if (UnitExists("target")) then
local serial = UnitGUID("target")
if (serial) then
local npcId = serial
if (not Details.id_frame) then
local backdrop = {
bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
edgeFile = "Interface\\ChatFrame\\ChatFrameBackground",
tile = true, edgeSize = 1, tileSize = 5,
}
Details.id_frame = CreateFrame("Frame", "DetailsID", UIParent, "BackdropTemplate")
Details.id_frame:SetHeight(14)
Details.id_frame:SetWidth(120)
Details.id_frame:SetPoint("center", UIParent, "center")
Details.id_frame:SetBackdrop(backdrop)
tinsert(UISpecialFrames, "DetailsID")
Details.id_frame.texto = CreateFrame("editbox", nil, Details.id_frame, "BackdropTemplate")
Details.id_frame.texto:SetPoint("topleft", Details.id_frame, "topleft")
Details.id_frame.texto:SetAutoFocus(false)
Details.id_frame.texto:SetFontObject(GameFontHighlightSmall)
Details.id_frame.texto:SetHeight(14)
Details.id_frame.texto:SetWidth(120)
Details.id_frame.texto:SetJustifyH("CENTER")
Details.id_frame.texto:EnableMouse(true)
Details.id_frame.texto:SetBackdropColor(0, 0, 0, 0.5)
Details.id_frame.texto:SetBackdropBorderColor(0.3, 0.3, 0.30, 0.80)
Details.id_frame.texto:SetText("")
Details.id_frame.texto.perdeu_foco = nil
Details.id_frame.texto:SetScript("OnEnterPressed", function()
Details.id_frame.texto:ClearFocus()
Details.id_frame:Hide()
end)
Details.id_frame.texto:SetScript("OnEscapePressed", function()
Details.id_frame.texto:ClearFocus()
Details.id_frame:Hide()
end)
end
C_Timer.After(0.1, function()
Details.id_frame:Show()
Details.id_frame.texto:SetFocus()
Details.id_frame.texto:SetText("" .. npcId)
Details.id_frame.texto:HighlightText()
end)
end
else
print(pass_guid.. " -> " .. tonumber(pass_guid:sub(6, 10), 16))
_detalhes.id_frame.texto:SetText(""..tonumber(pass_guid:sub(6, 10), 16))
_detalhes.id_frame.texto:HighlightText()
end
elseif (command == "profile") then
@@ -1350,7 +1347,8 @@ function SlashCmdList.DETAILS (msg, editbox)
Details:ScrollDamage()
elseif (msg == "me" or msg == "ME" or msg == "Me" or msg == "mE") then
local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned
Details.slash_me_used = true
local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned
local role = UnitGroupRolesAssigned("player")
if (role == "HEALER") then
Details:OpenPlayerDetails(2)
@@ -1674,6 +1672,9 @@ function SlashCmdList.DETAILS (msg, editbox)
elseif (msg == "generatespelllist") then
Details.GenerateSpecSpellList()
elseif (msg == "generateracialslist") then
Details.GenerateRacialSpellList()
elseif (msg == "survey") then
Details.Survey.OpenSurveyPanel()
@@ -1840,22 +1841,24 @@ function Details.RefreshUserList (ignoreIfHidden)
Details:UpdateUserPanel (newList)
end
function Details:UpdateUserPanel (usersTable)
function Details:UpdateUserPanel(usersTable)
if (not Details.UserPanel) then
local frameWidth, frameHeight = 470, 605
DetailsUserPanel = DetailsFramework:CreateSimplePanel(UIParent)
DetailsUserPanel:SetSize(707, 505)
DetailsUserPanel:SetSize(frameWidth, frameHeight)
DetailsUserPanel:SetTitle("Details! Version Check")
DetailsUserPanel.Data = {}
DetailsUserPanel:ClearAllPoints()
DetailsUserPanel:SetPoint("left", UIParent, "left", 10, 0)
DetailsUserPanel:SetPoint("left", UIParent, "left", 5, 100)
DetailsUserPanel:Hide()
DetailsFramework:ApplyStandardBackdrop(DetailsUserPanel)
Details.UserPanel = DetailsUserPanel
local scroll_width = 675
local scroll_height = 450
local scroll_lines = 21
local scroll_width = frameWidth - 30
local scroll_height = 605 - 60
local scroll_lines = 26
local scroll_line_height = 20
local backdrop_color = {.2, .2, .2, 0.2}
@@ -1869,9 +1872,9 @@ function Details:UpdateUserPanel (usersTable)
--header
local headerTable = {
{text = "User Name", width = 200},
{text = "Realm", width = 200},
{text = "Version", width = 200},
{text = "User Name", width = 160},
{text = "Realm", width = 130},
{text = "Version", width = 140},
}
local headerOptions = {
+151 -99
View File
@@ -1,12 +1,13 @@
--[[ Spell Cache store all spells shown on frames and make able to change spells name, icons, etc... ]]
do
do
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--On The Fly SpellCache
local _detalhes = _G._detalhes
local Details = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local addonName, Details222 = ...
local _
local rawget = rawget
local rawset = rawset
@@ -18,9 +19,9 @@ do
local is_classic_exp = DetailsFramework.IsClassicWow()
--default container
_detalhes.spellcache = {}
Details.spellcache = {}
local unknowSpell = {Loc ["STRING_UNKNOWSPELL"], _, "Interface\\Icons\\Ability_Druid_Eclipse"} --localize-me
local AllSpellNames
if (is_classic_exp) then
AllSpellNames = {}
@@ -51,18 +52,18 @@ do
else
spellName, _, spellIcon = GetSpellInfo(spell)
end
if (not spellName) then
return spell, _, AllSpellNames [spell] or defaultSpellIcon
end
return spellName, _, AllSpellNames [spell] or spellIcon
end
--reset spell cache
function _detalhes:ClearSpellCache()
_detalhes.spellcache = setmetatable({},
{__index = function(tabela, valor)
function Details:ClearSpellCache()
Details.spellcache = setmetatable({},
{__index = function(tabela, valor)
local esta_magia = rawget (tabela, valor)
if (esta_magia) then
return esta_magia
@@ -81,26 +82,26 @@ do
else
return unknowSpell
end
end})
--default overwrites
--rawset (_detalhes.spellcache, 1, {Loc ["STRING_MELEE"], 1, "Interface\\AddOns\\Details\\images\\melee.tga"})
--rawset (_detalhes.spellcache, 2, {Loc ["STRING_AUTOSHOT"], 1, "Interface\\AddOns\\Details\\images\\autoshot.tga"})
--built-in overwrites
for spellId, spellTable in pairs(_detalhes.SpellOverwrite) do
for spellId, spellTable in pairs(Details.SpellOverwrite) do
local name, _, icon = _GetSpellInfo(spellId)
rawset (_detalhes.spellcache, spellId, {spellTable.name or name, 1, spellTable.icon or icon})
rawset (Details.spellcache, spellId, {spellTable.name or name, 1, spellTable.icon or icon})
end
--user overwrites
-- [1] spellid [2] spellname [3] spellicon
for index, spellTable in ipairs(_detalhes.savedCustomSpells) do
rawset (_detalhes.spellcache, spellTable [1], {spellTable [2], 1, spellTable [3]})
for index, spellTable in ipairs(Details.savedCustomSpells) do
rawset (Details.spellcache, spellTable [1], {spellTable [2], 1, spellTable [3]})
end
end
local lightOfTheMartyr_Name, _, lightOfTheMartyr_Icon = _GetSpellInfo(196917)
lightOfTheMartyr_Name = lightOfTheMartyr_Name or "Deprecated Spell - Light of the Martyr"
lightOfTheMartyr_Icon = lightOfTheMartyr_Icon or ""
@@ -183,6 +184,22 @@ do
else
--retail
local iconSize = 14 --icon size
local coords = {0.14, 0.86, 0.14, 0.86}
local formatTextForItem = function(itemId)
local result = ""
local itemIcon = C_Item.GetItemIconByID(itemId)
local itemName = C_Item.GetItemNameByID(itemId)
if (itemIcon and itemName) then
result = " (" .. CreateTextureMarkup(itemIcon, iconSize, iconSize, iconSize, iconSize, unpack(coords)) .. " " .. itemName .. ")"
end
return result
end
defaultSpellCustomization = {
[1] = {name = Loc ["STRING_MELEE"], icon = [[Interface\ICONS\INV_Sword_04]]},
[2] = {name = Loc ["STRING_AUTOSHOT"], icon = [[Interface\ICONS\INV_Weapon_Bow_07]]},
@@ -198,6 +215,38 @@ do
[77535] = {name = GetSpellInfo(77535), icon = "Interface\\Addons\\Details\\images\\icon_blood_shield"},
}
if (GetSpellInfo(394453)) then
local dragonflightTrinkets = {
[394453] = {name = GetSpellInfo(394453) .. formatTextForItem(195480), isPassive = true, itemId = 195480}, --ring: Seal of Diurna's Chosen
[382135] = {name = GetSpellInfo(382135) .. formatTextForItem(194308)}, --trinket: Manic Grieftorch
[382058] = {name = GetSpellInfo(382056) .. formatTextForItem(194299)}, --trinket: Decoration of Flame (shield)
[382056] = {name = GetSpellInfo(382056) .. formatTextForItem(194299)}, --trinket: Decoration of Flame
[382090] = {name = GetSpellInfo(382090) .. formatTextForItem(194302)}, --trinket: Storm-Eater's Boon
[381967] = {name = GetSpellInfo(381967) .. formatTextForItem(194305)}, --trinket: Controlled Current Technique
[382426] = {name = GetSpellInfo(382426) .. formatTextForItem(194309), isPassive = true, itemId = 194309}, --trinket: Spiteful Storm
[377455] = {name = GetSpellInfo(377455) .. formatTextForItem(194304)}, --trinket: Iceblood Deathsnare
[377451] = {name = GetSpellInfo(377451) .. formatTextForItem(194300)}, --trinket: Conjured Chillglobe
[382097] = {name = GetSpellInfo(382097) .. formatTextForItem(194303)}, --trinket: Rumbling Ruby
[385903] = {name = GetSpellInfo(385903) .. formatTextForItem(193639), isPassive = true, itemId = 193639}, --trinket: Umbrelskul's Fractured Heart
[381475] = {name = GetSpellInfo(381475) .. formatTextForItem(193769)}, --trinket: Erupting Spear Fragment
[388739] = {name = GetSpellInfo(388739) .. formatTextForItem(193660), isPassive = true, itemId = 193660}, --trinket: Idol of Pure Decay
[388855] = {name = GetSpellInfo(388855) .. formatTextForItem(193678)}, --trinket: Miniature Singing Stone
[388755] = {name = GetSpellInfo(388755) .. formatTextForItem(193677), isPassive = true, itemId = 193677}, --trinket: Furious Ragefeather
[383934] = {name = GetSpellInfo(383934) .. formatTextForItem(193736)}, --trinket: Water's Beating Heart
[214052] = {name = GetSpellInfo(214052) .. formatTextForItem(133641), isPassive = true, itemId = 133641}, --trinket: Eye of Skovald
[214200] = {name = GetSpellInfo(214200) .. formatTextForItem(133646)}, --trinket: Mote of Sanctification
[387036] = {name = GetSpellInfo(387036) .. formatTextForItem(193748)}, --trinket: Kyrakka's Searing Embers (heal)
[397376] = {name = GetSpellInfo(397376) .. formatTextForItem(193748), isPassive = true, itemId = 193748}, --trinket: Kyrakka's Searing Embers (damage)
--[] = {name = GetSpellInfo() .. formatTextForItem(193757), isPassive = true}, --trinket: Ruby Whelp Shell
}
for spellId, spellCustomization in pairs(dragonflightTrinkets) do
defaultSpellCustomization[spellId] = spellCustomization
end
end
end
if (LIB_OPEN_RAID_SPELL_CUSTOM_NAMES) then
@@ -209,153 +258,156 @@ do
end
end
function _detalhes:UserCustomSpellUpdate (index, name, icon)
local t = _detalhes.savedCustomSpells[index]
function Details:GetDefaultCustomSpellsList()
return defaultSpellCustomization
end
function Details:UserCustomSpellUpdate (index, name, icon)
local t = Details.savedCustomSpells[index]
if (t) then
t [2], t [3] = name or t [2], icon or t [3]
return rawset (_detalhes.spellcache, t [1], {t [2], 1, t [3]})
return rawset (Details.spellcache, t [1], {t [2], 1, t [3]})
else
return false
end
end
function _detalhes:UserCustomSpellReset (index)
local t = _detalhes.savedCustomSpells[index]
function Details:UserCustomSpellReset (index)
local t = Details.savedCustomSpells[index]
if (t) then
local spellid = t [1]
local name, _, icon = _GetSpellInfo(spellid)
if (defaultSpellCustomization [spellid]) then
name = defaultSpellCustomization [spellid].name
icon = defaultSpellCustomization [spellid].icon or icon or [[Interface\InventoryItems\WoWUnknownItem01]]
end
if (not name) then
name = "Unknown"
end
if (not icon) then
icon = [[Interface\InventoryItems\WoWUnknownItem01]]
end
rawset (_detalhes.spellcache, spellid, {name, 1, icon})
rawset (Details.spellcache, spellid, {name, 1, icon})
t[2] = name
t[3] = icon
end
end
function _detalhes:FillUserCustomSpells()
for spellid, t in pairs(defaultSpellCustomization) do
local already_have
for index, spelltable in ipairs(_detalhes.savedCustomSpells) do
if (spelltable [1] == spellid) then
already_have = spelltable
end
end
if (not already_have) then
local name, _, icon = GetSpellInfo(spellid)
_detalhes:UserCustomSpellAdd (spellid, t.name or name or "Unknown", t.icon or icon or [[Interface\InventoryItems\WoWUnknownItem01]])
end
function Details:FillUserCustomSpells()
for spellid, spellTable in pairs(defaultSpellCustomization) do
local spellName, _, spellIcon = Details.GetSpellInfo(spellid)
Details:UserCustomSpellAdd(spellid, spellTable.name or spellName or "Unknown", spellTable.icon or spellIcon or [[Interface\InventoryItems\WoWUnknownItem01]])
end
for i = #_detalhes.savedCustomSpells, 1, -1 do
local spelltable = _detalhes.savedCustomSpells [i]
for i = #Details.savedCustomSpells, 1, -1 do
local spelltable = Details.savedCustomSpells [i]
local spellid = spelltable [1]
if (spellid > 10) then
local exists = _GetSpellInfo(spellid)
if (not exists) then
tremove(_detalhes.savedCustomSpells, i)
tremove(Details.savedCustomSpells, i)
end
end
end
end
function _detalhes:UserCustomSpellAdd (spellid, name, icon)
local is_overwrite = false
for index, t in ipairs(_detalhes.savedCustomSpells) do
if (t [1] == spellid) then
t[2] = name
t[3] = icon
is_overwrite = true
C_Timer.After(0, function()
Details:FillUserCustomSpells()
end)
function Details:UserCustomSpellAdd(spellid, name, icon)
local isOverwrite = false
for index, spellTable in ipairs(Details.savedCustomSpells) do
if (spellTable[1] == spellid) then
spellTable[2] = name
spellTable[3] = icon
isOverwrite = true
break
end
end
if (not is_overwrite) then
tinsert(_detalhes.savedCustomSpells, {spellid, name, icon})
if (not isOverwrite) then
tinsert(Details.savedCustomSpells, {spellid, name, icon})
end
return rawset (_detalhes.spellcache, spellid, {name, 1, icon})
return rawset(Details.spellcache, spellid, {name, 1, icon})
end
function _detalhes:UserCustomSpellRemove (index)
local t = _detalhes.savedCustomSpells [index]
function Details:UserCustomSpellRemove (index)
local t = Details.savedCustomSpells [index]
if (t) then
local spellid = t [1]
local name, _, icon = _GetSpellInfo(spellid)
if (name) then
rawset (_detalhes.spellcache, spellid, {name, 1, icon})
rawset (Details.spellcache, spellid, {name, 1, icon})
end
return tremove(_detalhes.savedCustomSpells, index)
return tremove(Details.savedCustomSpells, index)
end
return false
end
--overwrite for API GetSpellInfo function
_detalhes.getspellinfo = function(spellid) return _unpack(_detalhes.spellcache[spellid]) end
_detalhes.GetSpellInfo = _detalhes.getspellinfo
Details.getspellinfo = function(spellid) return _unpack(Details.spellcache[spellid]) end
Details.GetSpellInfo = Details.getspellinfo
--overwrite SpellInfo if the spell is a DoT, so Details.GetSpellInfo will return the name modified
function _detalhes:SpellIsDot (spellid)
function Details:SpellIsDot(spellid)
--do nothing if this spell already has a customization
if (defaultSpellCustomization[spellid]) then
return
end
local spellName, rank, spellIcon = _GetSpellInfo(spellid)
if (spellName) then
rawset (_detalhes.spellcache, spellid, {spellName .. Loc ["STRING_DOT"], rank, spellIcon})
rawset (Details.spellcache, spellid, {spellName .. Loc ["STRING_DOT"], rank, spellIcon})
else
rawset (_detalhes.spellcache, spellid, {"Unknown DoT Spell? " .. Loc ["STRING_DOT"], rank, [[Interface\InventoryItems\WoWUnknownItem01]]})
rawset (Details.spellcache, spellid, {"Unknown DoT Spell? " .. Loc ["STRING_DOT"], rank, [[Interface\InventoryItems\WoWUnknownItem01]]})
end
end
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Cache All Spells
function _detalhes:BuildSpellListSlow()
function Details:BuildSpellListSlow()
local load_frame = _G.DetailsLoadSpellCache
if (load_frame and (load_frame.completed or load_frame.inprogress)) then
return false
end
local step = 1
local max = 160000
if (not load_frame) then
load_frame = CreateFrame("frame", "DetailsLoadSpellCache", UIParent)
load_frame:SetFrameStrata("DIALOG")
local progress_label = load_frame:CreateFontString("DetailsLoadSpellCacheProgress", "overlay", "GameFontHighlightSmall")
progress_label:SetText("Loading Spells: 0%")
function _detalhes:BuildSpellListSlowTick()
function Details:BuildSpellListSlowTick()
progress_label:SetText("Loading Spells: " .. load_frame:GetProgress() .. "%")
end
load_frame.tick = _detalhes:ScheduleRepeatingTimer ("BuildSpellListSlowTick", 1)
load_frame.tick = Details:ScheduleRepeatingTimer ("BuildSpellListSlowTick", 1)
function load_frame:GetProgress()
return math.floor(step / max * 100)
end
end
local SpellCache = {a={}, b={}, c={}, d={}, e={}, f={}, g={}, h={}, i={}, j={}, k={}, l={}, m={}, n={}, o={}, p={}, q={}, r={}, s={}, t={}, u={}, v={}, w={}, x={}, y={}, z={}}
local _string_lower = string.lower
local _string_sub = string.sub
local blizzGetSpellInfo = GetSpellInfo
load_frame.inprogress = true
_detalhes.spellcachefull = SpellCache
Details.spellcachefull = SpellCache
load_frame:SetScript("OnUpdate", function()
for spellid = step, step+500 do
@@ -368,27 +420,27 @@ do
end
end
end
step = step + 500
if (step > max) then
step = max
_G.DetailsLoadSpellCache.completed = true
_G.DetailsLoadSpellCache.inprogress = false
_detalhes:CancelTimer(_G.DetailsLoadSpellCache.tick)
Details:CancelTimer(_G.DetailsLoadSpellCache.tick)
DetailsLoadSpellCacheProgress:Hide()
load_frame:SetScript("OnUpdate", nil)
end
end)
end)
return true
end
function _detalhes:BuildSpellList()
function Details:BuildSpellList()
local SpellCache = {a={}, b={}, c={}, d={}, e={}, f={}, g={}, h={}, i={}, j={}, k={}, l={}, m={}, n={}, o={}, p={}, q={}, r={}, s={}, t={}, u={}, v={}, w={}, x={}, y={}, z={}}
local _string_lower = string.lower
local _string_sub = string.sub
@@ -405,15 +457,15 @@ do
end
end
_detalhes.spellcachefull = SpellCache
Details.spellcachefull = SpellCache
return true
end
function _detalhes:ClearSpellList()
_detalhes.spellcachefull = nil
function Details:ClearSpellList()
Details.spellcachefull = nil
collectgarbage()
end
end
+3 -4
View File
@@ -1,7 +1,8 @@
do
local _detalhes = _G._detalhes
local addonName, Details222 = ...
--import potion list from the framework
_detalhes.PotionList = {}
for spellID, _ in pairs(DetailsFramework.PotionIDs) do
@@ -164,7 +165,6 @@ do
--Feral Druid:
[5217] = 103, --Tiger's Fury
[285381] = 103, --Primal Wrath
[213764] = 103, --Swipe
[106951] = 103, --Berserk
[274837] = 103, --Feral Frenzy
@@ -183,7 +183,6 @@ do
[191034] = 102, --Starfall
[78675] = 102, --Solar Beam
[202770] = 102, --Fury of Elune
[323764] = 102, --Convoke the Spirits
[102560] = 102, --Incarnation: Chosen of Elune
[202347] = 102, --Stellar Flare
[194223] = 102, --Celestial Alignment
@@ -652,7 +651,7 @@ do
[53385] = 70, -- Divine Storm
-- Discipline Priest:
[63944] = 256, -- Renewed Hope
--[63944] = 256, -- Renewed Hope
[10060] = 256, -- Power Infusion
[33206] = 256, -- Pain Suppression
[47540] = 256, -- Penance (rank 1)
+1 -1
View File
@@ -1,6 +1,6 @@
local Details = _G.Details
local addonName, Details222 = ...
function Details:TestBarsUpdate()
local current_combat = Details:GetCombat("current")
+2 -1
View File
@@ -2,7 +2,8 @@
local _
local _detalhes = _G._detalhes
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
local addonName, Details222 = ...
--mantain the enabled time captures
_detalhes.timeContainer = {}
_detalhes.timeContainer.Exec = {}