- packpager, hello?
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
package-as: Details
|
||||
|
||||
move-folders:
|
||||
Details/plugins/Details_DmgRank: Details_DmgRank
|
||||
Details/plugins/Details_EncounterDetails: Details_EncounterDetails
|
||||
|
||||
+88
-13
@@ -3594,18 +3594,18 @@ function atributo_damage:MontaInfo()
|
||||
end
|
||||
|
||||
---------> DETALHES bloco da direita BIFURCAÇÃO
|
||||
function atributo_damage:MontaDetalhes (spellid, barra)
|
||||
function atributo_damage:MontaDetalhes (spellid, barra, instancia)
|
||||
if (info.sub_atributo == 1 or info.sub_atributo == 2) then
|
||||
return self:MontaDetalhesDamageDone (spellid, barra)
|
||||
return self:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
elseif (info.sub_atributo == 3) then
|
||||
return self:MontaDetalhesDamageTaken (spellid, barra)
|
||||
return self:MontaDetalhesDamageTaken (spellid, barra, instancia)
|
||||
elseif (info.sub_atributo == 4) then
|
||||
return self:MontaDetalhesFriendlyFire (spellid, barra)
|
||||
return self:MontaDetalhesFriendlyFire (spellid, barra, instancia)
|
||||
elseif (info.sub_atributo == 6) then
|
||||
if (_bit_band (self.flag_original, 0x00000400) ~= 0) then --é um jogador
|
||||
return self:MontaDetalhesDamageDone (spellid, barra)
|
||||
return self:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
end
|
||||
return self:MontaDetalhesEnemy (spellid, barra)
|
||||
return self:MontaDetalhesEnemy (spellid, barra, instancia)
|
||||
--return self:MontaDetalhesDamageDone (spellid, barra)
|
||||
end
|
||||
end
|
||||
@@ -3705,7 +3705,7 @@ function atributo_damage:MontaInfoFriendlyFire()
|
||||
barra:Show()
|
||||
|
||||
if (self.detalhes and self.detalhes == barra.show) then
|
||||
self:MontaDetalhes (self.detalhes, barra)
|
||||
self:MontaDetalhes (self.detalhes, barra, instancia)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3815,10 +3815,17 @@ end
|
||||
row.textura:SetValue (value/max*100)
|
||||
end
|
||||
|
||||
row.texto_esquerdo:SetText (index .. ". " .. name)
|
||||
if (type (index) == "number") then
|
||||
row.texto_esquerdo:SetText (index .. ". " .. name)
|
||||
else
|
||||
row.texto_esquerdo:SetText (name)
|
||||
end
|
||||
|
||||
row.texto_esquerdo.text = row.texto_esquerdo:GetText()
|
||||
|
||||
row.texto_direita:SetText (value_formated .. " (" .. _cstr ("%.1f", percent) .."%)")
|
||||
if (value_formated) then
|
||||
row.texto_direita:SetText (value_formated .. " (" .. _cstr ("%.1f", percent) .."%)")
|
||||
end
|
||||
|
||||
row.texto_esquerdo:SetSize (row:GetWidth() - row.texto_direita:GetStringWidth() - 40, 15)
|
||||
|
||||
@@ -3937,12 +3944,27 @@ function atributo_damage:MontaInfoDamageDone()
|
||||
|
||||
_table_sort (ActorSkillsSortTable, _detalhes.Sort2)
|
||||
|
||||
gump:JI_AtualizaContainerBarras (#ActorSkillsSortTable)
|
||||
gump:JI_AtualizaContainerBarras (#ActorSkillsSortTable + 1)
|
||||
|
||||
local max_ = ActorSkillsSortTable[1] and ActorSkillsSortTable[1][2] or 0 --> dano que a primeiro magia vez
|
||||
|
||||
local barra
|
||||
|
||||
--aura bar
|
||||
if (false) then --> disabled for now
|
||||
barra = barras [1]
|
||||
if (not barra) then
|
||||
barra = gump:CriaNovaBarraInfo1 (instancia, 1)
|
||||
end
|
||||
self:UpdadeInfoBar (barra, "", -51, "Auras", max_, false, max_, 100, [[Interface\BUTTONS\UI-GroupLoot-DE-Up]], true, nil, nil)
|
||||
barra.textura:SetStatusBarColor (_detalhes.gump:ParseColors ("purple"))
|
||||
end
|
||||
|
||||
--spell bars
|
||||
for index, tabela in _ipairs (ActorSkillsSortTable) do
|
||||
|
||||
--index = index + 1 --with the aura bar
|
||||
index = index
|
||||
barra = barras [index]
|
||||
if (not barra) then
|
||||
barra = gump:CriaNovaBarraInfo1 (instancia, index)
|
||||
@@ -3954,14 +3976,13 @@ function atributo_damage:MontaInfoDamageDone()
|
||||
|
||||
if (info.sub_atributo == 2) then
|
||||
local formated_value = SelectedToKFunction (_, _math_floor (tabela[2]/meu_tempo))
|
||||
self:UpdadeInfoBar (barra, index, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
self:UpdadeInfoBar (barra, index-1, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
else
|
||||
local formated_value = SelectedToKFunction (_, _math_floor (tabela[2]))
|
||||
self:UpdadeInfoBar (barra, index, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
self:UpdadeInfoBar (barra, index-1, tabela[1], name, tabela[2], formated_value, max_, tabela[3], tabela[5], true, nil, tabela [7])
|
||||
end
|
||||
|
||||
self:FocusLock (barra, tabela[1])
|
||||
|
||||
end
|
||||
|
||||
--> TOP INIMIGOS
|
||||
@@ -4374,6 +4395,56 @@ local critical_table = {c = {1, 1, 1, 0.5}, p = 0}
|
||||
local data_table = {}
|
||||
local t1, t2, t3, t4 = {}, {}, {}, {}
|
||||
|
||||
local function FormatSpellString(str)
|
||||
return (string.gsub(str, "%d+", function(spellID)
|
||||
local name, _, icon = GetSpellInfo (spellID);
|
||||
return string.format("|T%s:16|t", icon);
|
||||
end));
|
||||
end
|
||||
|
||||
|
||||
local MontaDetalhesBuffProcs = function (actor, row, instance)
|
||||
|
||||
instance = instance or info.instancia
|
||||
|
||||
local spec = actor.spec
|
||||
if (spec) then
|
||||
local mainAuras = _detalhes.important_auras [spec]
|
||||
if (mainAuras) then
|
||||
local miscActor = instance:GetShowingCombat():GetActor (4, actor:name())
|
||||
if (miscActor and miscActor.buff_uptime_spells) then
|
||||
--> get the auras
|
||||
local added = 0
|
||||
for i = 1, #mainAuras do
|
||||
local spellID = mainAuras [i]
|
||||
local spellObject = miscActor.buff_uptime_spells._ActorTable [spellID]
|
||||
if (spellObject) then
|
||||
local spellName, spellIcon = GetSpellInfo (spellID)
|
||||
local spellUptime = spellObject.uptime
|
||||
local spellApplies = spellObject.appliedamt
|
||||
local spellRefreshes = spellObject.refreshamt
|
||||
|
||||
gump:SetaDetalheInfoTexto (i, 100, FormatSpellString ("" .. spellID .. " " .. spellName), "Activations: " .. spellApplies, " ", "Refreshes: " .. spellRefreshes, " ", "Uptime: " .. spellUptime .. "s")
|
||||
added = added + 1
|
||||
end
|
||||
end
|
||||
|
||||
for i = added + 1, 5 do
|
||||
gump:HidaDetalheInfo (i)
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, 5 do
|
||||
gump:HidaDetalheInfo (i)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
|
||||
local esta_magia
|
||||
@@ -4383,6 +4454,10 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
esta_magia = self.spells._ActorTable [spellid]
|
||||
end
|
||||
|
||||
if (spellid == -51) then
|
||||
return MontaDetalhesBuffProcs (self, barra, instancia)
|
||||
end
|
||||
|
||||
if (not esta_magia) then
|
||||
return
|
||||
end
|
||||
|
||||
@@ -162,6 +162,8 @@ function atributo_misc:CreateBuffTargetObject()
|
||||
uptime = 0,
|
||||
actived = false,
|
||||
activedamt = 0,
|
||||
refreshamt = 0,
|
||||
appliedamt = 0,
|
||||
}
|
||||
end
|
||||
|
||||
@@ -248,7 +250,12 @@ function _detalhes:ToolTipDead (instancia, morte, esta_barra, keydown)
|
||||
elseif (evtype == 3) then
|
||||
--> last cooldown used
|
||||
lastcooldown = event
|
||||
|
||||
|
||||
elseif (evtype == 4) then
|
||||
GameCooltip:AddLine ("" .. _cstr ("%.1f", time - hora_da_morte) .. "s [x" .. amount .. "] " .. spellname .. " (" .. source .. ")", "debuff (" .. hp .. "%)", 1, "white", "white")
|
||||
GameCooltip:AddIcon (spellicon)
|
||||
GameCooltip:AddStatusBar (100, 1, "purple", true)
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -399,6 +406,20 @@ function atributo_misc:ReportSingleDeadLine (morte, instancia)
|
||||
else
|
||||
tinsert (report_array, {elapsed .. " ", spellname, " (" .. source .. ")", "+" .. _detalhes:ToK (amount) .. " (" .. hp .. "%) "})
|
||||
end
|
||||
|
||||
elseif (type (evento [1]) == "number" and evento [1] == 4) then --> debuff
|
||||
|
||||
local elapsed = _cstr ("%.1f", evento [4] - time_of_death) .."s"
|
||||
local spelllink = GetSpellLink (evento [2])
|
||||
local source = _detalhes:GetOnlyName (evento [6])
|
||||
local spellname, _, spellicon = _GetSpellInfo (evento [2])
|
||||
local stacks = evento [3]
|
||||
local hp = _math_floor (evento [5] / max_health * 100)
|
||||
if (hp > 100) then
|
||||
hp = 100
|
||||
end
|
||||
|
||||
tinsert (report_array, {elapsed .. " ", "x" .. stacks .. "" .. spelllink, " (" .. source .. ")", "(" .. hp .. "%) "})
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2495,6 +2516,8 @@ function atributo_misc:r_connect_shadow (actor, no_refresh)
|
||||
end
|
||||
t.uptime = t.uptime + amount.uptime
|
||||
t.activedamt = t.activedamt + amount.activedamt
|
||||
t.refreshamt = t.refreshamt + amount.refreshamt
|
||||
t.appliedamt = t.appliedamt + amount.appliedamt
|
||||
else
|
||||
shadow.debuff_uptime_targets [target_name] = (shadow.debuff_uptime_targets [target_name] or 0) + amount
|
||||
end
|
||||
@@ -2881,6 +2904,8 @@ atributo_misc.__add = function (tabela1, tabela2)
|
||||
end
|
||||
t.uptime = t.uptime + amount.uptime
|
||||
t.activedamt = t.activedamt + amount.activedamt
|
||||
t.refreshamt = t.refreshamt + amount.refreshamt
|
||||
t.appliedamt = t.appliedamt + amount.appliedamt
|
||||
else
|
||||
tabela1.debuff_uptime_targets [target_name] = (tabela1.debuff_uptime_targets [target_name] or 0) + amount
|
||||
end
|
||||
@@ -3115,6 +3140,8 @@ atributo_misc.__sub = function (tabela1, tabela2)
|
||||
end
|
||||
t.uptime = t.uptime - amount.uptime
|
||||
t.activedamt = t.activedamt - amount.activedamt
|
||||
t.refreshamt = t.refreshamt - amount.refreshamt
|
||||
t.appliedamt = t.appliedamt - amount.appliedamt
|
||||
else
|
||||
tabela2.debuff_uptime_targets [target_name] = (tabela2.debuff_uptime_targets [target_name] or 0) - amount
|
||||
end
|
||||
|
||||
@@ -32,13 +32,19 @@
|
||||
if (token == "BUFF_UPTIME" or token == "DEBUFF_UPTIME") then
|
||||
_newMiscSpell.uptime = 0
|
||||
_newMiscSpell.actived = false
|
||||
_newMiscSpell.activedamt = 0
|
||||
_newMiscSpell.activedamt = 0 --são quantos estao ativados no momento
|
||||
_newMiscSpell.refreshamt = 0
|
||||
_newMiscSpell.appliedamt = 0
|
||||
|
||||
elseif (token == "SPELL_INTERRUPT") then
|
||||
_newMiscSpell.interrompeu_oque = {}
|
||||
|
||||
elseif (token == "SPELL_DISPEL" or token == "SPELL_STOLEN") then
|
||||
_newMiscSpell.dispell_oque = {}
|
||||
|
||||
elseif (token == "SPELL_AURA_BROKEN" or token == "SPELL_AURA_BROKEN_SPELL") then
|
||||
_newMiscSpell.cc_break_oque = {}
|
||||
|
||||
end
|
||||
|
||||
return _newMiscSpell
|
||||
@@ -46,6 +52,8 @@
|
||||
|
||||
function habilidade_misc:Add (serial, nome, flag, who_nome, token, spellID, spellName)
|
||||
|
||||
--print (self.id, GetSpellInfo (self.id))
|
||||
|
||||
if (spellID == "BUFF_OR_DEBUFF") then
|
||||
|
||||
if (spellName == "COOLDOWN") then
|
||||
@@ -56,8 +64,8 @@
|
||||
elseif (spellName == "BUFF_UPTIME_REFRESH") then
|
||||
if (self.actived_at and self.actived) then
|
||||
self.uptime = self.uptime + _detalhes._tempo - self.actived_at
|
||||
self.refreshamt = self.refreshamt + 1
|
||||
token.buff_uptime = token.buff_uptime + _detalhes._tempo - self.actived_at --> token = actor misc object
|
||||
|
||||
end
|
||||
self.actived_at = _detalhes._tempo
|
||||
self.actived = true
|
||||
@@ -73,6 +81,7 @@
|
||||
elseif (spellName == "BUFF_UPTIME_IN" or spellName == "DEBUFF_UPTIME_IN") then
|
||||
self.actived = true
|
||||
self.activedamt = self.activedamt + 1
|
||||
self.appliedamt = self.appliedamt + 1
|
||||
|
||||
if (self.actived_at and self.actived and spellName == "DEBUFF_UPTIME_IN") then
|
||||
--> ja esta ativo em outro mob e jogou num novo
|
||||
@@ -85,6 +94,7 @@
|
||||
elseif (spellName == "DEBUFF_UPTIME_REFRESH") then
|
||||
if (self.actived_at and self.actived) then
|
||||
self.uptime = self.uptime + _detalhes._tempo - self.actived_at
|
||||
self.refreshamt = self.refreshamt + 1
|
||||
token.debuff_uptime = token.debuff_uptime + _detalhes._tempo - self.actived_at
|
||||
end
|
||||
self.actived_at = _detalhes._tempo
|
||||
|
||||
+1
-1
@@ -97,7 +97,7 @@
|
||||
if (lower_instance) then
|
||||
lower_instance = _detalhes:GetInstance (lower_instance)
|
||||
if (lower_instance) then
|
||||
lower_instance:InstanceAlert ("Update Available!", {[[Interface\GossipFrame\AvailableQuestIcon]], 16, 16, false}, 360, {_detalhes.OpenUpdateWindow})
|
||||
lower_instance:InstanceAlert ("Update Available!", {[[Interface\GossipFrame\AvailableQuestIcon]], 16, 16, false}, _detalhes.update_warning_timeout, {_detalhes.OpenUpdateWindow})
|
||||
end
|
||||
end
|
||||
_detalhes.lastUpdateWarning = time()
|
||||
|
||||
+106
-6
@@ -194,6 +194,7 @@
|
||||
--> kil jaeden encounter:
|
||||
--> REMOVE THIS ON 7.3 RELEASE
|
||||
local _encounter_kiljaeden_eruptingreflection_loc = "Erupting Reflection"
|
||||
local _encounter_kiljaeden_wailingreflection_loc = "Wailing Reflection"
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> internal functions
|
||||
@@ -284,6 +285,21 @@
|
||||
--Erupting Reflection on kiljaeden encounter on ToS
|
||||
--REMOVE THIS ON 7.3 RELEASE
|
||||
if (_current_encounter_id == 2051) then --2051 = kiljaeden
|
||||
|
||||
--tank add
|
||||
if (alvo_serial:match ("^Creature%-0%-%d+%-%d+%-%d+%-119107%-%w+$")) then
|
||||
if (_encounter_kiljaeden_wailingreflection_loc == "Wailing Reflection") then
|
||||
_encounter_kiljaeden_wailingreflection_loc = GetSpellInfo (236378)
|
||||
end
|
||||
alvo_name = _encounter_kiljaeden_wailingreflection_loc
|
||||
elseif (who_serial:match ("^Creature%-0%-%d+%-%d+%-%d+%-119107%-%w+$")) then
|
||||
if (_encounter_kiljaeden_wailingreflection_loc == "Wailing Reflection") then
|
||||
_encounter_kiljaeden_wailingreflection_loc = GetSpellInfo (236378)
|
||||
end
|
||||
who_name = _encounter_kiljaeden_wailingreflection_loc
|
||||
end
|
||||
|
||||
--dps add
|
||||
if (alvo_serial:match ("^Creature%-0%-%d+%-%d+%-%d+%-119206%-%w+$")) then
|
||||
if (_encounter_kiljaeden_eruptingreflection_loc == "Erupting Reflection") then
|
||||
_encounter_kiljaeden_eruptingreflection_loc = GetSpellInfo (236710)
|
||||
@@ -1767,7 +1783,7 @@ ameHealer: Bombad
|
||||
ThisDebuff = {}
|
||||
SoloDebuffPower [spellid] = ThisDebuff
|
||||
end
|
||||
|
||||
|
||||
local ThisDebuffOnTarget = ThisDebuff [alvo_serial]
|
||||
|
||||
local base, posBuff, negBuff = UnitAttackPower ("player")
|
||||
@@ -1962,7 +1978,7 @@ ameHealer: Bombad
|
||||
--> recording debuffs applied by player
|
||||
|
||||
elseif (tipo == "DEBUFF") then
|
||||
|
||||
--print ("debuff - ", token, spellname)
|
||||
if (_in_combat) then
|
||||
------------------------------------------------------------------------------------------------
|
||||
--> buff uptime
|
||||
@@ -1971,7 +1987,7 @@ ameHealer: Bombad
|
||||
--> call record debuffs uptime
|
||||
parser:add_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, "DEBUFF_UPTIME_REFRESH")
|
||||
elseif (raid_members_cache [alvo_serial] and not raid_members_cache [who_serial]) then --> alvo é da raide e o caster é inimigo
|
||||
parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, "DEBUFF_UPTIME_REFRESH")
|
||||
parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, "DEBUFF_UPTIME_REFRESH", amount)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2162,7 +2178,7 @@ ameHealer: Bombad
|
||||
--> MISC search key: ~buffuptime ~buffsuptime |
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, in_out)
|
||||
function parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, in_out, stack_amount)
|
||||
|
||||
if (not alvo_name) then
|
||||
--> no target name, just quit
|
||||
@@ -2216,6 +2232,43 @@ ameHealer: Bombad
|
||||
end
|
||||
este_alvo.actived_at = _tempo
|
||||
|
||||
--death log
|
||||
--> record death log
|
||||
local t = last_events_cache [alvo_name]
|
||||
|
||||
if (not t) then
|
||||
t = _current_combat:CreateLastEventsTable (alvo_name)
|
||||
end
|
||||
|
||||
local i = t.n
|
||||
|
||||
local this_event = t [i]
|
||||
|
||||
if (not this_event) then
|
||||
return print ("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _death_event_amt)
|
||||
end
|
||||
|
||||
--print ("DebuffIN", ">", "Added to the DeathLog")
|
||||
|
||||
this_event [1] = 4 --> 4 = debuff aplication
|
||||
this_event [2] = spellid --> spellid
|
||||
this_event [3] = 1
|
||||
this_event [4] = time --> parser time
|
||||
this_event [5] = _UnitHealth (alvo_name) --> current unit heal
|
||||
this_event [6] = who_name --> source name
|
||||
this_event [7] = false
|
||||
this_event [8] = false
|
||||
this_event [9] = false
|
||||
this_event [10] = false
|
||||
|
||||
i = i + 1
|
||||
|
||||
if (i == _death_event_amt+1) then
|
||||
t.n = 1
|
||||
else
|
||||
t.n = i
|
||||
end
|
||||
|
||||
elseif (in_out == "DEBUFF_UPTIME_REFRESH") then
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
|
||||
@@ -2224,6 +2277,50 @@ ameHealer: Bombad
|
||||
este_alvo.actived_at = _tempo
|
||||
este_alvo.actived = true
|
||||
|
||||
--death log
|
||||
|
||||
--local name, rank, texture, count, debuffType, duration, expirationTime, caster, canStealOrPurge, nameplateShowPersonal, spellId = UnitAura (alvo_name, spellname, nil, "HARMFUL")
|
||||
--UnitAura ("Kastfall", "Gulp Frog Toxin", nil, "HARMFUL")
|
||||
--print ("Hello World", spellname, name)
|
||||
|
||||
--if (name) then
|
||||
--> record death log
|
||||
local t = last_events_cache [alvo_name]
|
||||
|
||||
if (not t) then
|
||||
t = _current_combat:CreateLastEventsTable (alvo_name)
|
||||
end
|
||||
|
||||
local i = t.n
|
||||
|
||||
local this_event = t [i]
|
||||
|
||||
if (not this_event) then
|
||||
return print ("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _death_event_amt)
|
||||
end
|
||||
|
||||
--print ("DebuffRefresh", ">", "Added to the DeathLog", stack_amount)
|
||||
|
||||
this_event [1] = 4 --> 4 = debuff aplication
|
||||
this_event [2] = spellid --> spellid
|
||||
this_event [3] = stack_amount or 1
|
||||
this_event [4] = time --> parser time
|
||||
this_event [5] = _UnitHealth (alvo_name) --> current unit heal
|
||||
this_event [6] = who_name --> source name
|
||||
this_event [7] = false
|
||||
this_event [8] = false
|
||||
this_event [9] = false
|
||||
this_event [10] = false
|
||||
|
||||
i = i + 1
|
||||
|
||||
if (i == _death_event_amt+1) then
|
||||
t.n = 1
|
||||
else
|
||||
t.n = i
|
||||
end
|
||||
--end
|
||||
|
||||
elseif (in_out == "DEBUFF_UPTIME_OUT") then
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _detalhes._tempo - este_alvo.actived_at
|
||||
@@ -3570,6 +3667,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
token_list ["SPELL_AURA_APPLIED"] = parser.buff
|
||||
token_list ["SPELL_AURA_REMOVED"] = parser.unbuff
|
||||
token_list ["SPELL_AURA_REFRESH"] = parser.buff_refresh
|
||||
token_list ["SPELL_AURA_APPLIED_DOSE"] = parser.buff_refresh
|
||||
_recording_buffs_and_debuffs = false
|
||||
|
||||
elseif (capture_type == "energy") then
|
||||
@@ -3636,6 +3734,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
token_list ["SPELL_AURA_APPLIED"] = parser.buff
|
||||
token_list ["SPELL_AURA_REMOVED"] = parser.unbuff
|
||||
token_list ["SPELL_AURA_REFRESH"] = parser.buff_refresh
|
||||
token_list ["SPELL_AURA_APPLIED_DOSE"] = parser.buff_refresh
|
||||
_recording_buffs_and_debuffs = true
|
||||
|
||||
elseif (capture_type == "energy") then
|
||||
@@ -3724,7 +3823,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
|
||||
["SPELL_AURA_APPLIED"] = "buff",
|
||||
["SPELL_AURA_REMOVED"] = "unbuff",
|
||||
["SPELL_AURA_REFRESH"] = "buff_refresh",
|
||||
["SPELL_AURA_REFRESH"] = "buff_refresh",
|
||||
["SPELL_AURA_APPLIED_DOSE"] = "buff_refresh",
|
||||
["SPELL_ENERGIZE"] = "energize",
|
||||
["SPELL_PERIODIC_ENERGIZE"] = "energize",
|
||||
|
||||
@@ -3952,7 +4052,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
return
|
||||
end
|
||||
|
||||
if (not _detalhes.WhoAggroTimer) then
|
||||
if (not _detalhes.WhoAggroTimer and _detalhes.announce_firsthit.enabled) then
|
||||
_detalhes.WhoAggroTimer = C_Timer.NewTimer (0.5, who_aggro)
|
||||
end
|
||||
|
||||
|
||||
@@ -4160,6 +4160,288 @@ this is automatically performed when the search script runs.
|
||||
DetailsAPIPanel:Show()
|
||||
end
|
||||
|
||||
|
||||
function Details.OpenDpsBenchmark()
|
||||
|
||||
--main frame
|
||||
|
||||
local DF = _detalhes.gump
|
||||
local _ = nil
|
||||
|
||||
--declaration
|
||||
local f = CreateFrame ("frame", "DetailsBenchmark", UIParent)
|
||||
f:SetSize (800, 600)
|
||||
f:SetPoint ("left", UIParent, "left")
|
||||
f:SetFrameStrata ("LOW")
|
||||
f:EnableMouse (true)
|
||||
f:SetMovable (true)
|
||||
f:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
f:SetBackdropColor (0, 0, 0, 0.9)
|
||||
f:SetBackdropBorderColor (0, 0, 0, 1)
|
||||
|
||||
--register to libwindow
|
||||
local LibWindow = LibStub ("LibWindow-1.1")
|
||||
LibWindow.RegisterConfig (f, _detalhes.benchmark_db.frame)
|
||||
LibWindow.RestorePosition (f)
|
||||
LibWindow.MakeDraggable (f)
|
||||
LibWindow.SavePosition (f)
|
||||
|
||||
--titlebar
|
||||
f.TitleBar = CreateFrame ("frame", "$parentTitleBar", f)
|
||||
f.TitleBar:SetPoint ("topleft", f, "topleft", 2, -3)
|
||||
f.TitleBar:SetPoint ("topright", f, "topright", -2, -3)
|
||||
f.TitleBar:SetHeight (20)
|
||||
f.TitleBar:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
f.TitleBar:SetBackdropColor (.2, .2, .2, 1)
|
||||
f.TitleBar:SetBackdropBorderColor (0, 0, 0, 1)
|
||||
|
||||
--close button
|
||||
f.Close = CreateFrame ("button", "$parentCloseButton", f)
|
||||
f.Close:SetPoint ("right", f.TitleBar, "right", -2, 0)
|
||||
f.Close:SetSize (16, 16)
|
||||
f.Close:SetNormalTexture (_detalhes.gump.folder .. "icons")
|
||||
f.Close:SetHighlightTexture (_detalhes.gump.folder .. "icons")
|
||||
f.Close:SetPushedTexture (_detalhes.gump.folder .. "icons")
|
||||
f.Close:GetNormalTexture():SetTexCoord (0, 16/128, 0, 1)
|
||||
f.Close:GetHighlightTexture():SetTexCoord (0, 16/128, 0, 1)
|
||||
f.Close:GetPushedTexture():SetTexCoord (0, 16/128, 0, 1)
|
||||
f.Close:SetAlpha (0.7)
|
||||
f.Close:SetScript ("OnClick", function() f:Hide() end)
|
||||
|
||||
--title
|
||||
f.Title = f.TitleBar:CreateFontString ("$parentTitle", "overlay", "GameFontNormal")
|
||||
f.Title:SetPoint ("center", f.TitleBar, "center")
|
||||
f.Title:SetTextColor (.8, .8, .8, 1)
|
||||
f.Title:SetText ("Details! Benchmark")
|
||||
|
||||
DF:InstallTemplate ("font", "DETAILS_BENCHMARK_NORMAL", {color = "white", size = 10, font = "Friz Quadrata TT"})
|
||||
|
||||
function f.CreateCombatObject()
|
||||
local t = {}
|
||||
|
||||
return t
|
||||
end
|
||||
|
||||
function f.StartNewBenchmark()
|
||||
|
||||
end
|
||||
|
||||
function f.StopCurrentBenchmark()
|
||||
|
||||
end
|
||||
|
||||
|
||||
f.OnTickInterval = 0
|
||||
function f.UpdateOnTick (self, deltaTime)
|
||||
f.OnTickInterval = f.OnTickInterval + deltaTime
|
||||
if (f.OnTickInterval >= 0.024) then
|
||||
--do the update
|
||||
|
||||
--reset the interval
|
||||
f.OnTickInterval = 0
|
||||
end
|
||||
end
|
||||
function f.StartUpdateOnTick()
|
||||
f:SetScript ("OnUpdate", f.UpdateOnTick)
|
||||
end
|
||||
|
||||
--events
|
||||
f:RegisterEvent ("PLAYER_REGEN_DISABLED")
|
||||
f:RegisterEvent ("PLAYER_REGEN_ENABLED")
|
||||
|
||||
f:SetScript ("OnEvent", function (self, event, ...)
|
||||
if (event == "PLAYER_REGEN_DISABLED") then
|
||||
f.StartNewBenchmark()
|
||||
|
||||
elseif (event == "PLAYER_REGEN_ENABLED") then
|
||||
f.StopCurrentBenchmark()
|
||||
|
||||
end
|
||||
end)
|
||||
|
||||
local normal_text_template = DF:GetTemplate ("font", "DETAILS_BENCHMARK_NORMAL")
|
||||
local options_dropdown_template = DF:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")
|
||||
local options_switch_template = DF:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE")
|
||||
local options_slider_template = DF:GetTemplate ("slider", "OPTIONS_SLIDER_TEMPLATE")
|
||||
local options_button_template = DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE")
|
||||
|
||||
--locations
|
||||
f.FrameLocations = {
|
||||
summary = {10, -30},
|
||||
auras = {10, -120},
|
||||
spells = {10, -180},
|
||||
history = {10, -280},
|
||||
}
|
||||
f.FrameSizes = {
|
||||
default = {300, 200},
|
||||
}
|
||||
|
||||
--summary block
|
||||
|
||||
--declaration
|
||||
local summaryFrame = CreateFrame ("frame", "$parentSummaryFrame", f)
|
||||
summaryFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.summary))
|
||||
summaryFrame:SetSize (unpack (f.FrameSizes.default))
|
||||
summaryFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
summaryFrame:SetBackdropColor (0, 0, 0, 0.9)
|
||||
summaryFrame:SetBackdropBorderColor (0, 0, 0, 1)
|
||||
|
||||
--time to test string and dropdown
|
||||
local build_time_list = function()
|
||||
local t = {
|
||||
{value = 40, label = "40 seconds"},
|
||||
{value = 60, label = "60 seconds"},
|
||||
{value = 90, label = "90 seconds"},
|
||||
{value = 120, label = "2 minutes"},
|
||||
{value = 180, label = "3 minutes"},
|
||||
{value = 300, label = "5 minutes"},
|
||||
}
|
||||
return t
|
||||
end
|
||||
|
||||
summaryFrame.TimeToTestLabel = DF:CreateLabel (summaryFrame, "Amount of Time", normal_text_template)
|
||||
summaryFrame.TimeToTestDropdown = DF:CreateDropDown (summaryFrame, build_time_list, default, 150, 20, _, _, options_dropdown_template)
|
||||
|
||||
--description string and text entry
|
||||
summaryFrame.DescriptionLabel = DF:CreateLabel (summaryFrame, "Description", normal_text_template)
|
||||
summaryFrame.DescriptionEntry = DF:CreateTextEntry (summaryFrame, function()end, 120, 20, nil, _, nil, options_dropdown_template)
|
||||
|
||||
--DPS Amount string
|
||||
summaryFrame.DPSLabel = DF:CreateLabel (summaryFrame, "100K", normal_text_template)
|
||||
|
||||
--TIME ELAPSED string
|
||||
summaryFrame.TimeElapsedLabel = DF:CreateLabel (summaryFrame, "01:00", normal_text_template)
|
||||
|
||||
--boss simulation string and dropdown
|
||||
local build_bosssimulation_list, default = function()
|
||||
local t = {
|
||||
{value = "patchwerk", label = "Patchwerk"},
|
||||
}
|
||||
return t
|
||||
end
|
||||
summaryFrame.BossSimulationLabel = DF:CreateLabel (summaryFrame, "Boss Simulation", normal_text_template)
|
||||
summaryFrame.BossSimulationDropdown = DF:CreateDropDown (summaryFrame, build_bosssimulation_list, default, 150, 20, _, _, options_dropdown_template)
|
||||
|
||||
--boss records line with a tooltip importing data from the storage
|
||||
summaryFrame.BossRecordsFrame = CreateFrame ("frame", nil, summaryFrame)
|
||||
summaryFrame.BossRecordsFrame:SetSize (f.FrameSizes.default[1]-20, 20)
|
||||
summaryFrame.BossRecordsFrame:SetBackdropColor (0, 0, 0, 0.3)
|
||||
summaryFrame.BossRecordsFrame:SetScript ("OnEnter", function()
|
||||
|
||||
end)
|
||||
summaryFrame.BossRecordsFrame:SetScript ("OnLeave", function()
|
||||
|
||||
end)
|
||||
|
||||
--set the points
|
||||
do
|
||||
local x, y = 10, -10
|
||||
summaryFrame.TimeToTestLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y)
|
||||
summaryFrame.TimeToTestDropdown:SetPoint ("topleft", summaryFrame.TimeToTestLabel, "bottomleft", 0, -2)
|
||||
|
||||
--y = y - 40
|
||||
summaryFrame.DescriptionLabel:SetPoint ("topleft", summaryFrame, "topleft", x+160, y)
|
||||
summaryFrame.DescriptionEntry:SetPoint ("topleft", summaryFrame.DescriptionLabel, "bottomleft", 0, -2)
|
||||
|
||||
y = y - 40
|
||||
summaryFrame.DPSLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y)
|
||||
summaryFrame.TimeElapsedLabel:SetPoint ("topleft", summaryFrame, "topleft", x + 100, y)
|
||||
|
||||
y = y - 40
|
||||
summaryFrame.BossSimulationLabel:SetPoint ("topleft", summaryFrame, "topleft", x, y)
|
||||
summaryFrame.BossSimulationDropdown:SetPoint ("topleft", summaryFrame.BossSimulationLabel, "bottomleft", 0, -2)
|
||||
|
||||
y = y - 40
|
||||
summaryFrame.BossRecordsFrame:SetPoint ("topleft", summaryFrame, "topleft", 0, 0)
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
--spells block
|
||||
|
||||
--declaration
|
||||
local spellsFrame = CreateFrame ("frame", "$parentSpellsFrame", f)
|
||||
spellsFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.spells))
|
||||
spellsFrame:SetSize (unpack (f.FrameSizes.default))
|
||||
spellsFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
spellsFrame:SetBackdropColor (0, 0, 0, 0.9)
|
||||
spellsFrame:SetBackdropBorderColor (0, 0, 0, 1)
|
||||
|
||||
--header with the string titles:
|
||||
--Spell Icon | DPS | Damage | Casts | Criticals | Highest Damage
|
||||
|
||||
--scrollpanel
|
||||
--each line with:
|
||||
--Texture for the icon
|
||||
--5 strings for the data
|
||||
--hover over scripts
|
||||
|
||||
--auras block
|
||||
|
||||
--declaration
|
||||
local aurasFrame = CreateFrame ("frame", "$parentAurasFrame", f)
|
||||
aurasFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.auras))
|
||||
aurasFrame:SetSize (unpack (f.FrameSizes.default))
|
||||
aurasFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
aurasFrame:SetBackdropColor (0, 0, 0, 0.9)
|
||||
aurasFrame:SetBackdropBorderColor (0, 0, 0, 1)
|
||||
|
||||
--will be 9 blocks?
|
||||
|
||||
--each block with:
|
||||
--Texture for the icon
|
||||
--3 strings for Total Update, Applications and Refreshes
|
||||
|
||||
|
||||
--history block
|
||||
|
||||
--declaration
|
||||
local historyFrame = CreateFrame ("frame", "$parentHistoryFrame", f)
|
||||
historyFrame:SetPoint ("topleft", f, "topleft", unpack (f.FrameLocations.history))
|
||||
historyFrame:SetSize (unpack (f.FrameSizes.default))
|
||||
historyFrame:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
historyFrame:SetBackdropColor (0, 0, 0, 0.9)
|
||||
historyFrame:SetBackdropBorderColor (0, 0, 0, 1)
|
||||
|
||||
--header with the string titles:
|
||||
--Spec | ILevel | DPS | Time | Talents | Crit | Haste | Versatility | Mastery | Int | Description
|
||||
|
||||
--scrollpanel
|
||||
--each line with:
|
||||
--7 Textures for talent icons
|
||||
--10 strings for the data
|
||||
--hover over scripts
|
||||
|
||||
|
||||
|
||||
--mechanics
|
||||
|
||||
--to open the window
|
||||
--on target a training dummy
|
||||
--need to be on a specific map / sanctuary
|
||||
|
||||
--on start a new combat:
|
||||
--start the timer
|
||||
--start the boss script if not patchwerk
|
||||
--create the graphic tables for *player total damage and *spell damage
|
||||
--create aura tables / grab auras already applied to the player / auras with no duration wont be added
|
||||
|
||||
--on tick:
|
||||
--*check if the time is gone *update the time string *update the graphic *update the spells *upate the auras
|
||||
|
||||
|
||||
--on finishes:
|
||||
--stop the timer and check if the elapsed time is done
|
||||
--create a new benchmark object to store the test
|
||||
--export the data to this new object
|
||||
--add this new object to the benchmark storage table
|
||||
--update the history scrollbar
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
--old versions dialog
|
||||
--[[
|
||||
--print ("Last Version:", _detalhes_database.last_version, "Last Interval Version:", _detalhes_database.last_realversion)
|
||||
|
||||
+72
-1
@@ -1121,7 +1121,11 @@ local default_player_data = {
|
||||
enabled = true,
|
||||
channel = "SELF",
|
||||
},
|
||||
|
||||
--> benchmark
|
||||
benchmark_db = {
|
||||
frame = {},
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
_detalhes.default_player_data = default_player_data
|
||||
@@ -1139,6 +1143,7 @@ local default_global_data = {
|
||||
savedCustomSpells = {},
|
||||
savedTimeCaptures = {},
|
||||
lastUpdateWarning = 0,
|
||||
update_warning_timeout = 30,
|
||||
report_where = "SAY",
|
||||
realm_sync = true,
|
||||
spell_school_cache = {},
|
||||
@@ -1190,6 +1195,72 @@ local default_global_data = {
|
||||
},
|
||||
spell_pool = {},
|
||||
encounter_spell_pool = {},
|
||||
|
||||
-- important auras
|
||||
--[=[
|
||||
important_auras = {
|
||||
[577] = {}, -- Havoc Demon Hunter
|
||||
[581] = {}, -- Vengeance Demon Hunter
|
||||
|
||||
[252] = {}, -- Unholy Death Knight
|
||||
[251] = {}, -- Frost Death Knight
|
||||
[250] = {}, -- Blood Death Knight
|
||||
|
||||
[102] = {}, -- Balance Druid
|
||||
[103] = {}, -- Feral Druid
|
||||
[104] = {}, -- Guardian Druid
|
||||
[105] = {}, -- Restoration Druid
|
||||
|
||||
[253] = {}, -- Beast Mastery Hunter
|
||||
[254] = {}, -- Marksmanship Hunter
|
||||
[255] = {}, -- Survival Hunter
|
||||
|
||||
[62] = { -- Arcane Mage
|
||||
|
||||
},
|
||||
[63] = { -- Fire Mage
|
||||
157644, --Enhanced Pyrotechnics
|
||||
48107, --Heating Up
|
||||
48108, --Hot Streak!
|
||||
194329, --Pyretic Incantation
|
||||
|
||||
},
|
||||
[64] = { -- Frost Mage
|
||||
44544, --fingers of frost
|
||||
195418, --chain reaction
|
||||
190446, --brain freeze
|
||||
12472, --icyveins
|
||||
},
|
||||
|
||||
[268] = {}, -- Brewmaster Monk
|
||||
[269] = {}, -- Windwalker Monk
|
||||
[270] = {}, -- Mistweaver Monk
|
||||
|
||||
[65] = {}, -- Holy Paladin
|
||||
[66] = {}, -- Protection Paladin
|
||||
[70] = {}, -- Retribution Paladin
|
||||
|
||||
[256] = {}, -- Discipline Priest
|
||||
[257] = {}, -- Holy Priest
|
||||
[258] = {}, -- Shadow Priest
|
||||
|
||||
[259] = {}, -- Assassination Rogue
|
||||
[260] = {}, -- Outlaw Rogue
|
||||
[261] = {}, -- Subtlety Rogue
|
||||
|
||||
[262] = {}, -- Elemental Shaman
|
||||
[263] = {}, -- Enhancement Shaman
|
||||
[264] = {}, -- Restoration Shaman
|
||||
|
||||
[265] = {}, -- Affliction Warlock
|
||||
[266] = {}, -- Demonology Warlock
|
||||
[267] = {}, -- Destruction Warlock
|
||||
|
||||
[71] = {}, -- Arms Warrior
|
||||
[72] = {}, -- Fury Warrior
|
||||
[73] = {}, -- Protection Warrior
|
||||
},
|
||||
--]=]
|
||||
}
|
||||
|
||||
_detalhes.default_global_data = default_global_data
|
||||
|
||||
+217
-4
@@ -1659,7 +1659,7 @@ function gump:CriaJanelaInfo()
|
||||
|
||||
--> tabs:
|
||||
--> tab default
|
||||
_detalhes:CreatePlayerDetailsTab ("Summary", Loc ["STRING_INFO_TAB_SUMMARY"], --[1] tab name [2] localized name
|
||||
_detalhes:CreatePlayerDetailsTab ("Summary", Loc ["STRING_SPELLS"], --[1] tab name [2] localized name
|
||||
function (tabOBject, playerObject) --[2] condition
|
||||
if (playerObject) then
|
||||
return true
|
||||
@@ -2332,8 +2332,195 @@ function gump:CriaJanelaInfo()
|
||||
nil, --[4] onclick
|
||||
|
||||
avoidance_create --[5] oncreate
|
||||
)
|
||||
)
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> ~auras
|
||||
|
||||
local auras_tab_create = function (tab, frame)
|
||||
local DF = _detalhes.gump
|
||||
local scroll_line_amount = 17
|
||||
local scroll_line_height = 19
|
||||
local scroll_width = 350
|
||||
local scroll_line_height = 19
|
||||
local text_size = 9
|
||||
|
||||
local line_onenter = function (self)
|
||||
GameTooltip:SetOwner (self, "ANCHOR_TOPRIGHT")
|
||||
_detalhes:GameTooltipSetSpellByID (self.spellID)
|
||||
GameTooltip:Show()
|
||||
self:SetBackdropColor (1, 1, 1, .2)
|
||||
end
|
||||
|
||||
local line_onleave = function (self)
|
||||
GameTooltip:Hide()
|
||||
self:SetBackdropColor (unpack (self.BackgroundColor))
|
||||
end
|
||||
|
||||
local line_onclick = function (self)
|
||||
|
||||
end
|
||||
|
||||
--buff scroll
|
||||
--icon - name - applications - refreshes - uptime
|
||||
--
|
||||
|
||||
local scroll_createline = function (self, index)
|
||||
local line = CreateFrame ("button", "$parentLine" .. index, self)
|
||||
line:SetPoint ("topleft", self, "topleft", 0, -((index-1)*(scroll_line_height+1)))
|
||||
line:SetSize (scroll_width, scroll_line_height)
|
||||
line:SetScript ("OnEnter", line_onenter)
|
||||
line:SetScript ("OnLeave", line_onleave)
|
||||
line:SetScript ("OnClick", line_onclick)
|
||||
|
||||
line:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
line:SetBackdropColor (0, 0, 0, 0.2)
|
||||
|
||||
local icon = line:CreateTexture ("$parentIcon", "overlay")
|
||||
icon:SetSize (scroll_line_height, scroll_line_height)
|
||||
local name = line:CreateFontString ("$parentName", "overlay", "GameFontNormal")
|
||||
local uptime = line:CreateFontString ("$parentName", "overlay", "GameFontNormal")
|
||||
local apply = line:CreateFontString ("$parentName", "overlay", "GameFontNormal")
|
||||
local refresh = line:CreateFontString ("$parentName", "overlay", "GameFontNormal")
|
||||
DF:SetFontSize (name, text_size)
|
||||
DF:SetFontSize (uptime, text_size)
|
||||
DF:SetFontSize (apply, text_size)
|
||||
DF:SetFontSize (refresh, text_size)
|
||||
|
||||
icon:SetPoint ("left", line, "left", 2, 0)
|
||||
name:SetPoint ("left", icon, "right", 2, 0)
|
||||
uptime:SetPoint ("left", line, "left", 186, 0)
|
||||
apply:SetPoint ("left", line, "left", 260, 0)
|
||||
refresh:SetPoint ("left", line, "left", 310, 0)
|
||||
|
||||
line.Icon = icon
|
||||
line.Name = name
|
||||
line.Uptime = uptime
|
||||
line.Apply = apply
|
||||
line.Refresh = refresh
|
||||
|
||||
name:SetJustifyH ("left")
|
||||
uptime:SetJustifyH ("left")
|
||||
apply:SetJustifyH ("left")
|
||||
refresh:SetJustifyH ("left")
|
||||
|
||||
return line
|
||||
end
|
||||
|
||||
local line_bg_color = {{1, 1, 1, .1}, {1, 1, 1, 0}}
|
||||
|
||||
local scroll_buff_refresh = function (self, data, offset, total_lines)
|
||||
for i = 1, total_lines do
|
||||
local index = i + offset
|
||||
local aura = data [index]
|
||||
|
||||
if (aura) then
|
||||
local line = self:GetLine (i)
|
||||
line.spellID = aura.spellID
|
||||
line.Icon:SetTexture (aura [1])
|
||||
line.Name:SetText (aura [2])
|
||||
line.Uptime:SetText (DF:IntegerToTimer (aura [3]) .. " (|cFFBBAAAA" .. floor (aura [6]) .. "%|r)")
|
||||
line.Apply:SetText (aura [4])
|
||||
line.Refresh:SetText (aura [5])
|
||||
|
||||
if (i%2 == 0) then
|
||||
line:SetBackdropColor (unpack (line_bg_color [1]))
|
||||
line.BackgroundColor = line_bg_color [1]
|
||||
else
|
||||
line:SetBackdropColor (unpack (line_bg_color [2]))
|
||||
line.BackgroundColor = line_bg_color [2]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local buffLabel = DF:CreateLabel (frame, "Buff Name")
|
||||
buffLabel:SetPoint (6, -10)
|
||||
local uptimeLabel = DF:CreateLabel (frame, "Uptime")
|
||||
uptimeLabel:SetPoint (200, -10)
|
||||
local appliedLabel = DF:CreateLabel (frame, "Applied")
|
||||
appliedLabel:SetPoint (250, -10)
|
||||
local refreshedLabel = DF:CreateLabel (frame, "Refreshed")
|
||||
refreshedLabel:SetPoint (300, -10)
|
||||
|
||||
local buffScroll = DF:CreateScrollBox (frame, "$parentBuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, 340, scroll_line_amount, scroll_line_height)
|
||||
buffScroll:SetPoint ("topleft", frame, "topleft", 5, -30)
|
||||
for i = 1, scroll_line_amount do
|
||||
buffScroll:CreateLine (scroll_createline)
|
||||
end
|
||||
buffScroll:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16})
|
||||
buffScroll:SetBackdropColor (0, 0, 0, .4)
|
||||
|
||||
tab.BuffScroll = buffScroll
|
||||
|
||||
--debuff scroll
|
||||
--icon - name - applications - refreshes - uptime
|
||||
--
|
||||
local debuffLabel = DF:CreateLabel (frame, "Debuff Name")
|
||||
debuffLabel:SetPoint (406, -10)
|
||||
local uptimeLabel2 = DF:CreateLabel (frame, "Uptime")
|
||||
uptimeLabel2:SetPoint (600, -10)
|
||||
local appliedLabel2 = DF:CreateLabel (frame, "Applied")
|
||||
appliedLabel2:SetPoint (650, -10)
|
||||
local refreshedLabel2 = DF:CreateLabel (frame, "Refreshed")
|
||||
refreshedLabel2:SetPoint (700, -10)
|
||||
|
||||
local debuffScroll = DF:CreateScrollBox (frame, "$parentDebuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, 340, scroll_line_amount, scroll_line_height)
|
||||
debuffScroll:SetPoint ("topleft", frame, "topleft", 405, -30)
|
||||
for i = 1, scroll_line_amount do
|
||||
debuffScroll:CreateLine (scroll_createline)
|
||||
end
|
||||
debuffScroll:SetBackdrop ({bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", tile = true, tileSize = 16})
|
||||
debuffScroll:SetBackdropColor (0, 0, 0, .4)
|
||||
|
||||
tab.DebuffScroll = debuffScroll
|
||||
end
|
||||
|
||||
local auras_tab_fill = function (tab, player, combat)
|
||||
|
||||
local miscActor = combat:GetActor (4, player:name())
|
||||
local combatTime = combat:GetCombatTime()
|
||||
|
||||
do --buffs
|
||||
local newAuraTable = {}
|
||||
if (miscActor and miscActor.buff_uptime_spells) then
|
||||
for spellID, spellObject in pairs (miscActor.buff_uptime_spells._ActorTable) do
|
||||
local spellName, _, spellIcon = GetSpellInfo (spellID)
|
||||
tinsert (newAuraTable, {spellIcon, spellName, spellObject.uptime, spellObject.appliedamt, spellObject.refreshamt, spellObject.uptime/combatTime*100, spellID = spellID})
|
||||
end
|
||||
end
|
||||
table.sort (newAuraTable, _detalhes.Sort3)
|
||||
tab.BuffScroll:SetData (newAuraTable)
|
||||
tab.BuffScroll:Refresh()
|
||||
end
|
||||
|
||||
do --debuffs
|
||||
local newAuraTable = {}
|
||||
if (miscActor and miscActor.debuff_uptime_spells) then
|
||||
for spellID, spellObject in pairs (miscActor.debuff_uptime_spells._ActorTable) do
|
||||
local spellName, _, spellIcon = GetSpellInfo (spellID)
|
||||
tinsert (newAuraTable, {spellIcon, spellName, spellObject.uptime, spellObject.appliedamt, spellObject.refreshamt, spellObject.uptime/combatTime*100, spellID = spellID})
|
||||
end
|
||||
end
|
||||
table.sort (newAuraTable, _detalhes.Sort3)
|
||||
tab.DebuffScroll:SetData (newAuraTable)
|
||||
tab.DebuffScroll:Refresh()
|
||||
end
|
||||
end
|
||||
|
||||
_detalhes:CreatePlayerDetailsTab ("Auras", "Auras", --[1] tab name [2] localized name
|
||||
function (tabOBject, playerObject) --[2] condition
|
||||
return true
|
||||
end,
|
||||
|
||||
auras_tab_fill, --[3] fill function
|
||||
|
||||
nil, --[4] onclick
|
||||
|
||||
auras_tab_create --[5] oncreate
|
||||
)
|
||||
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> ~compare
|
||||
|
||||
@@ -2342,7 +2529,7 @@ function gump:CriaJanelaInfo()
|
||||
|
||||
local plus = red .. "-"
|
||||
local minor = green .. "+"
|
||||
|
||||
|
||||
local bar_color = {.5, .5, .5, .4} -- bar of the second and 3rd player
|
||||
local bar_color_on_enter = {.9, .9, .9, .9}
|
||||
|
||||
@@ -2379,6 +2566,7 @@ function gump:CriaJanelaInfo()
|
||||
bar [2].righttext:SetText ("")
|
||||
bar [2].righttext2:SetText ("")
|
||||
bar [2]:SetValue (0)
|
||||
bar [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar [3][4] = nil
|
||||
bar_2 [1]:SetTexture (nil)
|
||||
bar_2 [2].lefttext:SetText (empty_text)
|
||||
@@ -2386,6 +2574,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [2].righttext:SetText ("")
|
||||
bar_2 [2].righttext2:SetText ("")
|
||||
bar_2 [2]:SetValue (0)
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_2 [3][4] = nil
|
||||
bar_3 [1]:SetTexture (nil)
|
||||
bar_3 [2].lefttext:SetText (empty_text)
|
||||
@@ -2393,6 +2582,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].righttext:SetText ("")
|
||||
bar_3 [2].righttext2:SetText ("")
|
||||
bar_3 [2]:SetValue (0)
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_3 [3][4] = nil
|
||||
end
|
||||
|
||||
@@ -2522,6 +2712,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [2].righttext:SetText ("")
|
||||
bar_2 [2].righttext2:SetText ("")
|
||||
bar_2 [2]:SetValue (0)
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_2 [3][4] = nil
|
||||
end
|
||||
else
|
||||
@@ -2531,6 +2722,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [2].righttext:SetText ("")
|
||||
bar_2 [2].righttext2:SetText ("")
|
||||
bar_2 [2]:SetValue (0)
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_2 [3][4] = nil
|
||||
end
|
||||
|
||||
@@ -2591,6 +2783,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].righttext:SetText ("")
|
||||
bar_3 [2].righttext2:SetText ("")
|
||||
bar_3 [2]:SetValue (0)
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_3 [3][4] = nil
|
||||
end
|
||||
else
|
||||
@@ -2600,6 +2793,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].righttext:SetText ("")
|
||||
bar_3 [2].righttext2:SetText ("")
|
||||
bar_3 [2]:SetValue (0)
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_3 [3][4] = nil
|
||||
end
|
||||
|
||||
@@ -2610,6 +2804,7 @@ function gump:CriaJanelaInfo()
|
||||
bar [2].righttext:SetText ("")
|
||||
bar [2].righttext2:SetText ("")
|
||||
bar [2]:SetValue (0)
|
||||
bar [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar [3][4] = nil
|
||||
bar_2 [1]:SetTexture (nil)
|
||||
bar_2 [2].lefttext:SetText (empty_text)
|
||||
@@ -2617,6 +2812,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [2].righttext:SetText ("")
|
||||
bar_2 [2].righttext2:SetText ("")
|
||||
bar_2 [2]:SetValue (0)
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_2 [3][4] = nil
|
||||
bar_3 [1]:SetTexture (nil)
|
||||
bar_3 [2].lefttext:SetText (empty_text)
|
||||
@@ -2624,6 +2820,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].righttext:SetText ("")
|
||||
bar_3 [2].righttext2:SetText ("")
|
||||
bar_3 [2]:SetValue (0)
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
bar_3 [3][4] = nil
|
||||
end
|
||||
end
|
||||
@@ -2749,6 +2946,8 @@ function gump:CriaJanelaInfo()
|
||||
|
||||
bar [1]:SetTexture (icon) --bar[1] = spellicon bar[2] = statusbar
|
||||
bar [1]:SetTexCoord (unpack (IconTexCoord)) --bar[1] = spellicon bar[2] = statusbar
|
||||
|
||||
bar [2]:SetBackdropColor (1, 1, 1, 0.1)
|
||||
|
||||
if (petName) then
|
||||
bar [2].lefttext:SetText (index .. ". " .. name .. " (|cFFCCBBBB" .. petName:gsub (" <.*", "") .. "|r)")
|
||||
@@ -2787,6 +2986,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [2].lefttext:SetText (player_2_spell_info [spellid] .. ". " .. name)
|
||||
bar_2 [2].lefttext:SetTextColor (1, 1, 1, 1)
|
||||
bar_2 [2]:SetStatusBarColor (unpack (bar_color))
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0.1)
|
||||
|
||||
if (spell.total == 0 and data [2] == 0) then
|
||||
bar_2 [2].righttext2:SetText ("0")
|
||||
@@ -2828,6 +3028,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [3][1] = spell.counter --tooltip hits
|
||||
bar_2 [3][2] = spell.total / spell.counter --tooltip average
|
||||
bar_2 [3][3] = _math_floor (spell.c_amt / spell.counter * 100) --tooltip critical
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
else
|
||||
bar_2 [1]:SetTexture (nil)
|
||||
bar_2 [2].lefttext:SetText (empty_text)
|
||||
@@ -2835,6 +3036,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [2].righttext:SetText ("")
|
||||
bar_2 [2].righttext2:SetText ("")
|
||||
bar_2 [2]:SetValue (0)
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
end
|
||||
|
||||
--player 3
|
||||
@@ -2861,6 +3063,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].lefttext:SetText (player_3_spell_info [spellid] .. ". " .. name)
|
||||
bar_3 [2].lefttext:SetTextColor (1, 1, 1, 1)
|
||||
bar_3 [2]:SetStatusBarColor (unpack (bar_color))
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0.1)
|
||||
|
||||
if (spell.total == 0 and data [2] == 0) then
|
||||
bar_3 [2].righttext2:SetText ("0")
|
||||
@@ -2908,6 +3111,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].righttext:SetText ("")
|
||||
bar_3 [2].righttext2:SetText ("")
|
||||
bar_3 [2]:SetValue (0)
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
end
|
||||
else
|
||||
bar_3 [1]:SetTexture (nil)
|
||||
@@ -2916,6 +3120,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].righttext:SetText ("")
|
||||
bar_3 [2].righttext2:SetText ("")
|
||||
bar_3 [2]:SetValue (0)
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
end
|
||||
else
|
||||
bar [1]:SetTexture (nil)
|
||||
@@ -2923,6 +3128,7 @@ function gump:CriaJanelaInfo()
|
||||
bar [2].lefttext:SetTextColor (.5, .5, .5, 1)
|
||||
bar [2].righttext:SetText ("")
|
||||
bar [2]:SetValue (0)
|
||||
bar [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
local bar_2 = frame2.bars [i]
|
||||
bar_2 [1]:SetTexture (nil)
|
||||
bar_2 [2].lefttext:SetText (empty_text)
|
||||
@@ -2930,6 +3136,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_2 [2].righttext:SetText ("")
|
||||
bar_2 [2].righttext2:SetText ("")
|
||||
bar_2 [2]:SetValue (0)
|
||||
bar_2 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
local bar_3 = frame3.bars [i]
|
||||
bar_3 [1]:SetTexture (nil)
|
||||
bar_3 [2].lefttext:SetText (empty_text)
|
||||
@@ -2937,6 +3144,7 @@ function gump:CriaJanelaInfo()
|
||||
bar_3 [2].righttext:SetText ("")
|
||||
bar_3 [2].righttext2:SetText ("")
|
||||
bar_3 [2]:SetValue (0)
|
||||
bar_3 [2]:SetBackdropColor (1, 1, 1, 0)
|
||||
end
|
||||
|
||||
end
|
||||
@@ -3765,6 +3973,10 @@ function gump:CriaJanelaInfo()
|
||||
bar:SetPoint ("topright", parent, "topright", -4, y)
|
||||
bar:SetStatusBarTexture ([[Interface\AddOns\Details\images\bar_serenity]])
|
||||
bar:SetStatusBarColor (.5, .5, .5, 1)
|
||||
|
||||
bar:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
||||
bar:SetBackdropColor (1, 1, 1, 0.1)
|
||||
|
||||
bar:SetMinMaxValues (0, 100)
|
||||
bar:SetValue (100)
|
||||
bar:SetHeight (14)
|
||||
@@ -4252,7 +4464,7 @@ function gump:CriaJanelaInfo()
|
||||
compare_create --[5] oncreate
|
||||
)
|
||||
|
||||
-- ~tab
|
||||
-- ~tab ~tabs
|
||||
function este_gump:ShowTabs()
|
||||
local amt_positive = 0
|
||||
|
||||
@@ -4291,6 +4503,7 @@ function gump:CriaJanelaInfo()
|
||||
tab:Show()
|
||||
amt_positive = amt_positive + 1
|
||||
tab:SetPoint ("BOTTOMLEFT", info.container_barras, "TOPLEFT", 490 - (94 * (amt_positive-1)), 1)
|
||||
tab:SetAlpha (0.8)
|
||||
else
|
||||
tab.frame:Hide()
|
||||
tab:Hide()
|
||||
|
||||
Reference in New Issue
Block a user