- Pre Patch 6.0.2
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
local _date = date -- lua local
|
||||
local _table_remove = table.remove -- lua local
|
||||
local _rawget = rawget
|
||||
local _math_max = math.max
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--> constants
|
||||
@@ -101,11 +102,11 @@
|
||||
--return the combat time in seconds
|
||||
function combate:GetCombatTime()
|
||||
if (self.end_time) then
|
||||
return self.end_time - self.start_time
|
||||
return _math_max (self.end_time - self.start_time, 0.1)
|
||||
elseif (self.start_time and _detalhes.in_combat) then
|
||||
return _tempo - self.start_time
|
||||
return _math_max (_tempo - self.start_time, 0.1)
|
||||
else
|
||||
return 0
|
||||
return 0.1
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+30
-15
@@ -982,7 +982,8 @@
|
||||
local debuff_uptime_container = player.debuff_uptime and player.debuff_uptime_spell_tables and player.debuff_uptime_spell_tables._ActorTable
|
||||
if (debuff_uptime_container) then
|
||||
--potion of focus (can't use as pre-potion, so, its amount is always 1
|
||||
local focus_potion = debuff_uptime_container [105701]
|
||||
--local focus_potion = debuff_uptime_container [156432] --WoD
|
||||
local focus_potion = debuff_uptime_container [105701] --MoP
|
||||
if (focus_potion) then
|
||||
total = total + 1
|
||||
found_potion = true
|
||||
@@ -999,7 +1000,8 @@
|
||||
if (buff_uptime_container) then
|
||||
|
||||
--potion of the jade serpent
|
||||
local jade_serpent_potion = buff_uptime_container [105702]
|
||||
--local jade_serpent_potion = buff_uptime_container [156426] --WoD
|
||||
local jade_serpent_potion = buff_uptime_container [105702] --MoP
|
||||
if (jade_serpent_potion) then
|
||||
local used = jade_serpent_potion.activedamt
|
||||
if (used > 0) then
|
||||
@@ -1014,7 +1016,8 @@
|
||||
end
|
||||
|
||||
--potion of mogu power
|
||||
local mogu_power_potion = buff_uptime_container [105706]
|
||||
--local mogu_power_potion = buff_uptime_container [156428] --WoD
|
||||
local mogu_power_potion = buff_uptime_container [105706] --MoP
|
||||
if (mogu_power_potion) then
|
||||
local used = mogu_power_potion.activedamt
|
||||
if (used > 0) then
|
||||
@@ -1029,7 +1032,8 @@
|
||||
end
|
||||
|
||||
--virmen's bite
|
||||
local virmens_bite_potion = buff_uptime_container [105697]
|
||||
--local virmens_bite_potion = buff_uptime_container [156423] --WoD
|
||||
local virmens_bite_potion = buff_uptime_container [105697] --MoP
|
||||
if (virmens_bite_potion) then
|
||||
local used = virmens_bite_potion.activedamt
|
||||
if (used > 0) then
|
||||
@@ -1044,7 +1048,8 @@
|
||||
end
|
||||
|
||||
--potion of the mountains
|
||||
local mountains_potion = buff_uptime_container [105698]
|
||||
--local mountains_potion = buff_uptime_container [156430] --WoD
|
||||
local mountains_potion = buff_uptime_container [105698] --MoP
|
||||
if (mountains_potion) then
|
||||
local used = mountains_potion.activedamt
|
||||
if (used > 0) then
|
||||
@@ -1075,9 +1080,11 @@
|
||||
--get the debuff container for potion of focus
|
||||
local debuff_uptime_container = player.debuff_uptime and player.debuff_uptime_spell_tables and player.debuff_uptime_spell_tables._ActorTable
|
||||
if (debuff_uptime_container) then
|
||||
local focus_potion = debuff_uptime_container [105701]
|
||||
--local focus_potion = debuff_uptime_container [156432] --WoD
|
||||
local focus_potion = debuff_uptime_container [105701] --MoP
|
||||
if (focus_potion) then
|
||||
local name, _, icon = GetSpellInfo (105701)
|
||||
--local name, _, icon = GetSpellInfo (156432) --WoD
|
||||
local name, _, icon = GetSpellInfo (105701) --MoP
|
||||
GameCooltip:AddLine (name, 1) --> can use only 1 focus potion (can't be pre-potion)
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
GameCooltip:AddIcon (icon, 1, 1, 14, 14)
|
||||
@@ -1088,36 +1095,44 @@
|
||||
local buff_uptime_container = player.buff_uptime and player.buff_uptime_spell_tables and player.buff_uptime_spell_tables._ActorTable
|
||||
if (buff_uptime_container) then
|
||||
--potion of the jade serpent
|
||||
local jade_serpent_potion = buff_uptime_container [105702]
|
||||
--local jade_serpent_potion = buff_uptime_container [156426] --WoD
|
||||
local jade_serpent_potion = buff_uptime_container [105702] --MoP
|
||||
if (jade_serpent_potion) then
|
||||
local name, _, icon = GetSpellInfo (105702)
|
||||
--local name, _, icon = GetSpellInfo (156426) --WoD
|
||||
local name, _, icon = GetSpellInfo (105702) --MoP
|
||||
GameCooltip:AddLine (name, jade_serpent_potion.activedamt)
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
GameCooltip:AddIcon (icon, 1, 1, 14, 14)
|
||||
end
|
||||
|
||||
--potion of mogu power
|
||||
local mogu_power_potion = buff_uptime_container [105706]
|
||||
--local mogu_power_potion = buff_uptime_container [156428] --WoD
|
||||
local mogu_power_potion = buff_uptime_container [105706] --MoP
|
||||
if (mogu_power_potion) then
|
||||
local name, _, icon = GetSpellInfo (105706)
|
||||
--local name, _, icon = GetSpellInfo (156428) --WoD
|
||||
local name, _, icon = GetSpellInfo (105706) --MoP
|
||||
GameCooltip:AddLine (name, mogu_power_potion.activedamt)
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
GameCooltip:AddIcon (icon, 1, 1, 14, 14)
|
||||
end
|
||||
|
||||
--virmen's bite
|
||||
local virmens_bite_potion = buff_uptime_container [105697]
|
||||
--local virmens_bite_potion = buff_uptime_container [156423] --WoD
|
||||
local virmens_bite_potion = buff_uptime_container [105697] --MoP
|
||||
if (virmens_bite_potion) then
|
||||
local name, _, icon = GetSpellInfo (105697)
|
||||
--local name, _, icon = GetSpellInfo (156423) --WoD
|
||||
local name, _, icon = GetSpellInfo (105697) --MoP
|
||||
GameCooltip:AddLine (name, virmens_bite_potion.activedamt)
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
GameCooltip:AddIcon (icon, 1, 1, 14, 14)
|
||||
end
|
||||
|
||||
--potion of the mountains
|
||||
local mountains_potion = buff_uptime_container [105698]
|
||||
--local mountains_potion = buff_uptime_container [156430] --WoD
|
||||
local mountains_potion = buff_uptime_container [105698] --MoP
|
||||
if (mountains_potion) then
|
||||
local name, _, icon = GetSpellInfo (105698)
|
||||
--local name, _, icon = GetSpellInfo (156430) --WoD
|
||||
local name, _, icon = GetSpellInfo (105698) --MoP
|
||||
GameCooltip:AddLine (name, mountains_potion.activedamt)
|
||||
_detalhes:AddTooltipBackgroundStatusbar()
|
||||
GameCooltip:AddIcon (icon, 1, 1, 14, 14)
|
||||
|
||||
+172
-123
@@ -60,7 +60,7 @@
|
||||
|
||||
local key_overlay = {1, 1, 1, .1}
|
||||
local key_overlay_press = {1, 1, 1, .2}
|
||||
local headerColor = "yellow"
|
||||
local headerColor = {1, 0.9, 0.0, 1}
|
||||
|
||||
local info = _detalhes.janela_info
|
||||
local keyName
|
||||
@@ -1045,6 +1045,7 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
return _detalhes:EndRefresh (instancia, total, tabela_do_combate, showing) --> retorna a tabela que precisa ganhar o refresh
|
||||
end
|
||||
|
||||
--print ("AMOUT: " .. amount)
|
||||
instancia:AtualizarScrollBar (amount)
|
||||
|
||||
local qual_barra = 1
|
||||
@@ -1053,7 +1054,7 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
local baseframe = instancia.baseframe
|
||||
|
||||
local use_animations = _detalhes.is_using_row_animations and (not baseframe.isStretching and not forcar and not baseframe.isResizing)
|
||||
|
||||
|
||||
if (total == 0) then
|
||||
total = 0.00000001
|
||||
end
|
||||
@@ -1565,7 +1566,7 @@ end
|
||||
if (instancia.row_info.textL_show_number) then
|
||||
bar_number = esta_barra.colocacao .. ". "
|
||||
end
|
||||
|
||||
|
||||
if (self.enemy) then
|
||||
if (self.arena_enemy) then
|
||||
if (UsingCustomLeftText) then
|
||||
@@ -2800,72 +2801,16 @@ function atributo_damage:MontaDetalhesDamageTaken (nome, barra)
|
||||
end
|
||||
|
||||
------ Detalhe Info Damage Done e Dps
|
||||
local defenses_table = {c = {117/255, 58/255, 0/255}, p = 0}
|
||||
local normal_table = {c = {255/255, 180/255, 0/255, 0.5}, p = 0}
|
||||
local multistrike_table = {c = {223/255, 249/255, 45/255, 0.5}, p = 0}
|
||||
local critical_table = {c = {249/255, 74/255, 45/255, 0.5}, p = 0}
|
||||
|
||||
local data_table = {}
|
||||
local t1, t2, t3, t4 = {}, {}, {}, {}
|
||||
|
||||
function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
|
||||
if (_type (spellid) == "string") then
|
||||
|
||||
local _barra = info.grupos_detalhes [1]
|
||||
|
||||
if (not _barra.pet) then
|
||||
_barra.bg.PetIcon = _barra.bg:CreateTexture (nil, "overlay")
|
||||
|
||||
--_barra.bg.PetIcon:SetTexture ("Interface\\ICONS\\Ability_Druid_SkinTeeth")
|
||||
_barra.bg.PetIcon:SetTexture ("Interface\\AddOns\\Details\\images\\classes")
|
||||
_barra.bg.PetIcon:SetTexCoord (0.25, 0.49609375, 0.75, 1)
|
||||
|
||||
_barra.bg.PetIcon:SetPoint ("left", _barra.bg, "left", 2, 2)
|
||||
_barra.bg.PetIcon:SetWidth (40)
|
||||
_barra.bg.PetIcon:SetHeight (40)
|
||||
gump:NewLabel (_barra.bg, _barra.bg, nil, "PetText", Loc ["STRING_ISA_PET"], "GameFontHighlightLeft")
|
||||
_barra.bg.PetText:SetPoint ("topleft", _barra.bg.PetIcon, "topright", 10, -2)
|
||||
gump:NewLabel (_barra.bg, _barra.bg, nil, "PetDps", "", "GameFontHighlightSmall")
|
||||
_barra.bg.PetDps:SetPoint ("left", _barra.bg.PetIcon, "right", 10, 2)
|
||||
_barra.bg.PetDps:SetPoint ("top", _barra.bg.PetText, "bottom", 0, -5)
|
||||
_barra.pet = true
|
||||
end
|
||||
|
||||
_barra.IsPet = true
|
||||
_barra.bg:SetValue (100)
|
||||
gump:Fade (_barra.bg.overlay, "OUT")
|
||||
_barra.bg:SetStatusBarColor (1, 1, 1)
|
||||
_barra.bg_end:SetPoint ("LEFT", _barra.bg, "LEFT", (_barra.bg:GetValue()*2.19)-6, 0)
|
||||
_barra.bg.PetIcon:SetVertexColor (_unpack (_detalhes.class_colors [self.classe]))
|
||||
_barra.bg:Show()
|
||||
_barra.bg.PetIcon:Show()
|
||||
_barra.bg.PetText:Show()
|
||||
_barra.bg.PetDps:Show()
|
||||
|
||||
local PetActor = info.instancia.showing (info.instancia.atributo, spellid)
|
||||
|
||||
if (PetActor) then
|
||||
local OwnerActor = PetActor.ownerName
|
||||
if (OwnerActor) then --> nor necessary
|
||||
OwnerActor = info.instancia.showing (info.instancia.atributo, OwnerActor)
|
||||
if (OwnerActor) then
|
||||
local meu_tempo = OwnerActor:Tempo()
|
||||
local normal_dmg = PetActor.total
|
||||
local T = (meu_tempo*normal_dmg)/PetActor.total
|
||||
_barra.bg.PetDps:SetText ("Dps: " .. _cstr("%.1f", normal_dmg/T))
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
for i = 2, 5 do
|
||||
gump:HidaDetalheInfo (i)
|
||||
end
|
||||
|
||||
local ThisBox = _detalhes.janela_info.grupos_detalhes [1]
|
||||
ThisBox.nome:Hide()
|
||||
ThisBox.dano:Hide()
|
||||
ThisBox.dano_porcento:Hide()
|
||||
ThisBox.dano_media:Hide()
|
||||
ThisBox.dano_dps:Hide()
|
||||
ThisBox.nome2:Hide()
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
local esta_magia
|
||||
if (barra.other_actor) then
|
||||
esta_magia = barra.other_actor.spell_tables._ActorTable [spellid]
|
||||
@@ -2878,10 +2823,9 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
end
|
||||
|
||||
--> icone direito superior
|
||||
local nome, rank, icone = _GetSpellInfo (spellid)
|
||||
local infospell = {nome, rank, icone}
|
||||
local _, _, icone = _GetSpellInfo (spellid)
|
||||
|
||||
_detalhes.janela_info.spell_icone:SetTexture (infospell[3])
|
||||
_detalhes.janela_info.spell_icone:SetTexture (icone)
|
||||
|
||||
local total = self.total
|
||||
|
||||
@@ -2893,28 +2837,35 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
end
|
||||
|
||||
local total_hits = esta_magia.counter
|
||||
|
||||
local index = 1
|
||||
|
||||
local data = {}
|
||||
|
||||
--print (debugstack())
|
||||
|
||||
local data = data_table
|
||||
|
||||
table.wipe (t1)
|
||||
table.wipe (t2)
|
||||
table.wipe (t3)
|
||||
table.wipe (t4)
|
||||
table.wipe (data)
|
||||
|
||||
--> GERAL
|
||||
local media = esta_magia.total/total_hits
|
||||
|
||||
local this_dps = nil
|
||||
if (esta_magia.counter > esta_magia.c_amt) then
|
||||
this_dps = Loc ["STRING_DPS"]..": ".._cstr("%.1f", esta_magia.total/meu_tempo)
|
||||
this_dps = Loc ["STRING_DPS"] .. ": " .. _detalhes:comma_value (esta_magia.total/meu_tempo)
|
||||
else
|
||||
this_dps = Loc ["STRING_DPS"]..": "..Loc ["STRING_SEE_BELOW"]
|
||||
this_dps = Loc ["STRING_DPS"] .. ": " .. Loc ["STRING_SEE_BELOW"]
|
||||
end
|
||||
|
||||
--local offhand = esta_magia.off_amt
|
||||
--local mainhand = esta_magia.main_amt
|
||||
--local offstring = Loc ["STRING_OFFHAND_HITS"] .. ": " .. _math_floor () _detalhes:comma_value (esta_magia.o_dmg/offhand)
|
||||
|
||||
gump:SetaDetalheInfoTexto ( index, 100,
|
||||
Loc ["STRING_GERAL"],
|
||||
Loc ["STRING_DAMAGE"]..": ".._detalhes:ToK (esta_magia.total),
|
||||
Loc ["STRING_PERCENTAGE"]..": ".._cstr("%.1f", esta_magia.total/total*100) .. "%",
|
||||
Loc ["STRING_MEDIA"]..": " .. _cstr("%.1f", media),
|
||||
--Loc ["STRING_MULTISTRIKE"] .. ": " .. _cstr ("%.1f", esta_magia.counter/esta_magia.m_amt*100) .. "%",
|
||||
"", --offhand,
|
||||
Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (media),
|
||||
this_dps,
|
||||
Loc ["STRING_HITS"]..": " .. total_hits)
|
||||
|
||||
@@ -2927,16 +2878,19 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
local P = media/media_normal*100
|
||||
T = P*T/100
|
||||
|
||||
data[#data+1] = {
|
||||
esta_magia.n_amt,
|
||||
normal_hits/total_hits*100,
|
||||
Loc ["STRING_NORMAL_HITS"],
|
||||
Loc ["STRING_MINIMUM"]..": ".._detalhes:comma_value (esta_magia.n_min),
|
||||
Loc ["STRING_MAXIMUM"]..": ".._detalhes:comma_value (esta_magia.n_max),
|
||||
Loc ["STRING_MEDIA"]..": ".._cstr("%.1f", media_normal),
|
||||
Loc ["STRING_DPS"]..": ".._cstr("%.1f", normal_dmg/T),
|
||||
normal_hits.. " / ".._cstr("%.1f", normal_hits/total_hits*100).."%"
|
||||
}
|
||||
normal_table.p = normal_hits/total_hits*100
|
||||
|
||||
data[#data+1] = t1
|
||||
|
||||
t1[1] = esta_magia.n_amt
|
||||
t1[2] = normal_table
|
||||
t1[3] = Loc ["STRING_NORMAL_HITS"]
|
||||
t1[4] = Loc ["STRING_MINIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.n_min)
|
||||
t1[5] = Loc ["STRING_MAXIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.n_max)
|
||||
t1[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (media_normal)
|
||||
t1[7] = Loc ["STRING_DPS"] .. ": " .. _detalhes:comma_value (normal_dmg/T)
|
||||
t1[8] = normal_hits .. " / " .. _cstr ("%.1f", normal_hits/total_hits*100) .. "%"
|
||||
|
||||
end
|
||||
|
||||
--> CRITICO
|
||||
@@ -2950,41 +2904,71 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
crit_dps = 0
|
||||
end
|
||||
|
||||
data[#data+1] = {
|
||||
esta_magia.c_amt,
|
||||
esta_magia.c_amt/total_hits*100,
|
||||
Loc ["STRING_CRITICAL_HITS"],
|
||||
Loc ["STRING_MINIMUM"]..": ".._detalhes:comma_value (esta_magia.c_min),
|
||||
Loc ["STRING_MAXIMUM"]..": ".._detalhes:comma_value (esta_magia.c_max),
|
||||
Loc ["STRING_MEDIA"]..": ".._cstr("%.1f", media_critico),
|
||||
Loc ["STRING_DPS"]..": ".._cstr("%.1f", crit_dps),
|
||||
esta_magia.c_amt.. " / ".._cstr("%.1f", esta_magia.c_amt/total_hits*100).."%"
|
||||
}
|
||||
critical_table.p = esta_magia.c_amt/total_hits*100
|
||||
|
||||
data[#data+1] = t2
|
||||
|
||||
t2[1] = esta_magia.c_amt
|
||||
t2[2] = critical_table
|
||||
t2[3] = Loc ["STRING_CRITICAL_HITS"]
|
||||
t2[4] = Loc ["STRING_MINIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.c_min)
|
||||
t2[5] = Loc ["STRING_MAXIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.c_max)
|
||||
t2[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (media_critico)
|
||||
t2[7] = Loc ["STRING_DPS"] .. ": " .. _detalhes:comma_value (crit_dps)
|
||||
t2[8] = esta_magia.c_amt .. " / " .. _cstr ("%.1f", esta_magia.c_amt/total_hits*100) .. "%"
|
||||
|
||||
end
|
||||
|
||||
--> Outros erros: GLACING, resisted, blocked, absorbed
|
||||
local outros_desvios = esta_magia.g_amt + esta_magia.r_amt + esta_magia.b_amt + esta_magia.a_amt
|
||||
|
||||
if (outros_desvios > 0) then
|
||||
local porcentagem_defesas = outros_desvios/total_hits*100
|
||||
data[#data+1] = {
|
||||
outros_desvios,
|
||||
{["p"] = porcentagem_defesas, ["c"] = {117/255, 58/255, 0/255}},
|
||||
Loc ["STRING_DEFENSES"],
|
||||
Loc ["STRING_GLANCING"]..": "..esta_magia.g_amt.." / ".._math_floor (esta_magia.g_amt/esta_magia.counter*100).."%", --esta_magia.g_dmg
|
||||
Loc ["STRING_RESISTED"]..": "..esta_magia.r_dmg, --esta_magia.resisted.amt.." / "..
|
||||
Loc ["STRING_ABSORBED"]..": "..esta_magia.a_dmg, --esta_magia.absorbed.amt.." / "..
|
||||
Loc ["STRING_BLOCKED"]..": "..esta_magia.b_amt.." / "..esta_magia.b_dmg,
|
||||
outros_desvios.." / ".._cstr("%.1f", porcentagem_defesas).."%"
|
||||
}
|
||||
end
|
||||
|
||||
--> Erros de Ataque --habilidade.missType -- {"ABSORB", "BLOCK", "DEFLECT", "DODGE", "EVADE", "IMMUNE", "MISS", "PARRY", "REFLECT", "RESIST"}
|
||||
local miss = esta_magia ["MISS"] or 0
|
||||
local outros_desvios = esta_magia.g_amt + esta_magia.b_amt
|
||||
local parry = esta_magia ["PARRY"] or 0
|
||||
local dodge = esta_magia ["DODGE"] or 0
|
||||
local erros = miss + parry + dodge
|
||||
local erros = parry + dodge
|
||||
|
||||
if (outros_desvios > 0 or erros > 0) then
|
||||
|
||||
local porcentagem_defesas = (outros_desvios+erros) / total_hits * 100
|
||||
|
||||
data[#data+1] = t3
|
||||
defenses_table.p = porcentagem_defesas
|
||||
|
||||
t3[1] = outros_desvios+erros
|
||||
t3[2] = defenses_table
|
||||
t3[3] = Loc ["STRING_DEFENSES"]
|
||||
t3[4] = Loc ["STRING_GLANCING"] .. ": " .. _math_floor (esta_magia.g_amt/esta_magia.counter*100) .. "%"
|
||||
t3[5] = Loc ["STRING_PARRY"] .. ": " .. parry
|
||||
t3[6] = Loc ["STRING_DODGE"] .. ": " .. dodge
|
||||
t3[7] = Loc ["STRING_BLOCKED"] .. ": " .. _math_floor (esta_magia.b_amt/esta_magia.counter*100)
|
||||
t3[8] = (outros_desvios+erros) .. " / " .. _cstr ("%.1f", porcentagem_defesas) .. "%"
|
||||
|
||||
end
|
||||
|
||||
--> multistrike
|
||||
if (esta_magia.m_amt > 0) then
|
||||
|
||||
local normal_hits = esta_magia.m_amt
|
||||
local normal_dmg = esta_magia.m_dmg
|
||||
|
||||
local media_normal = normal_dmg/normal_hits
|
||||
local T = (meu_tempo*normal_dmg)/esta_magia.total
|
||||
local P = media/media_normal*100
|
||||
T = P*T/100
|
||||
|
||||
data[#data+1] = t4
|
||||
multistrike_table.p = esta_magia.m_amt/total_hits*100
|
||||
|
||||
t4[1] = esta_magia.m_amt
|
||||
t4[2] = multistrike_table
|
||||
t4[3] = Loc ["STRING_MULTISTRIKE_HITS"]
|
||||
t4[4] = ""
|
||||
t4[5] = ""
|
||||
t4[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (esta_magia.m_dmg/esta_magia.m_amt)
|
||||
t4[7] = Loc ["STRING_DPS"] .. ": " .. _detalhes:comma_value (esta_magia.m_dmg/T)
|
||||
t4[8] = esta_magia.m_amt .. " / " .. _cstr ("%.1f", esta_magia.m_amt/total_hits*100) .. "%"
|
||||
|
||||
end
|
||||
--> Erros de Ataque --habilidade.missType -- {"ABSORB", "BLOCK", "DEFLECT", "DODGE", "EVADE", "IMMUNE", "MISS", "PARRY", "REFLECT", "RESIST"}
|
||||
--[[
|
||||
if (erros > 0) then
|
||||
local porcentagem_erros = erros/total_hits*100
|
||||
data[#data+1] = {
|
||||
@@ -2992,14 +2976,14 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia)
|
||||
{["p"] = porcentagem_erros, ["c"] = {0.5, 0.1, 0.1}},
|
||||
Loc ["STRING_FAIL_ATTACKS"],
|
||||
Loc ["STRING_MISS"]..": "..miss,
|
||||
Loc ["STRING_PARRY"]..": "..parry,
|
||||
Loc ["STRING_DODGE"]..": "..dodge,
|
||||
|
||||
"",
|
||||
erros.." / ".._cstr("%.1f", porcentagem_erros).."%"
|
||||
}
|
||||
end
|
||||
|
||||
table.sort (data, function (a, b) return a[1] > b[1] end)
|
||||
--]]
|
||||
|
||||
_table_sort (data, _detalhes.Sort1)
|
||||
|
||||
for index, tabela in _ipairs (data) do
|
||||
gump:SetaDetalheInfoTexto (index+1, tabela[2], tabela[3], tabela[4], tabela[5], tabela[6], tabela[7], tabela[8])
|
||||
@@ -3167,6 +3151,7 @@ end
|
||||
SelectedToKFunction = ToKFunctions [_detalhes.ps_abbreviation]
|
||||
FormatTooltipNumber = ToKFunctions [_detalhes.tooltip.abbreviation]
|
||||
TooltipMaximizedMethod = _detalhes.tooltip.maximize_method
|
||||
headerColor = _detalhes.tooltip.header_text_color
|
||||
end
|
||||
|
||||
--> diminui o total das tabelas do combate
|
||||
@@ -3568,5 +3553,69 @@ end
|
||||
-- local grayscale = cor[1]*0.21 + cor[2]*0.71 + cor[3]*0.07
|
||||
--(max(R, G, B) + min(R, G, B)) / 2
|
||||
|
||||
--[[
|
||||
if (_type (spellid) == "string") then
|
||||
|
||||
local _barra = info.grupos_detalhes [1]
|
||||
|
||||
if (not _barra.pet) then
|
||||
_barra.bg.PetIcon = _barra.bg:CreateTexture (nil, "overlay")
|
||||
|
||||
--_barra.bg.PetIcon:SetTexture ("Interface\\ICONS\\Ability_Druid_SkinTeeth")
|
||||
_barra.bg.PetIcon:SetTexture ("Interface\\AddOns\\Details\\images\\classes")
|
||||
_barra.bg.PetIcon:SetTexCoord (0.25, 0.49609375, 0.75, 1)
|
||||
|
||||
_barra.bg.PetIcon:SetPoint ("left", _barra.bg, "left", 2, 2)
|
||||
_barra.bg.PetIcon:SetWidth (40)
|
||||
_barra.bg.PetIcon:SetHeight (40)
|
||||
gump:NewLabel (_barra.bg, _barra.bg, nil, "PetText", Loc ["STRING_ISA_PET"], "GameFontHighlightLeft")
|
||||
_barra.bg.PetText:SetPoint ("topleft", _barra.bg.PetIcon, "topright", 10, -2)
|
||||
gump:NewLabel (_barra.bg, _barra.bg, nil, "PetDps", "", "GameFontHighlightSmall")
|
||||
_barra.bg.PetDps:SetPoint ("left", _barra.bg.PetIcon, "right", 10, 2)
|
||||
_barra.bg.PetDps:SetPoint ("top", _barra.bg.PetText, "bottom", 0, -5)
|
||||
_barra.pet = true
|
||||
end
|
||||
|
||||
_barra.IsPet = true
|
||||
_barra.bg:SetValue (100)
|
||||
gump:Fade (_barra.bg.overlay, "OUT")
|
||||
_barra.bg:SetStatusBarColor (1, 1, 1)
|
||||
_barra.bg_end:SetPoint ("LEFT", _barra.bg, "LEFT", (_barra.bg:GetValue()*2.19)-6, 0)
|
||||
_barra.bg.PetIcon:SetVertexColor (_unpack (_detalhes.class_colors [self.classe]))
|
||||
_barra.bg:Show()
|
||||
_barra.bg.PetIcon:Show()
|
||||
_barra.bg.PetText:Show()
|
||||
_barra.bg.PetDps:Show()
|
||||
|
||||
local PetActor = info.instancia.showing (info.instancia.atributo, spellid)
|
||||
|
||||
if (PetActor) then
|
||||
local OwnerActor = PetActor.ownerName
|
||||
if (OwnerActor) then --> nor necessary
|
||||
OwnerActor = info.instancia.showing (info.instancia.atributo, OwnerActor)
|
||||
if (OwnerActor) then
|
||||
local meu_tempo = OwnerActor:Tempo()
|
||||
local normal_dmg = PetActor.total
|
||||
local T = (meu_tempo*normal_dmg)/PetActor.total
|
||||
_barra.bg.PetDps:SetText ("Dps: " .. _cstr("%.1f", normal_dmg/T))
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
for i = 2, 5 do
|
||||
gump:HidaDetalheInfo (i)
|
||||
end
|
||||
|
||||
local ThisBox = _detalhes.janela_info.grupos_detalhes [1]
|
||||
ThisBox.nome:Hide()
|
||||
ThisBox.dano:Hide()
|
||||
ThisBox.dano_porcento:Hide()
|
||||
ThisBox.dano_media:Hide()
|
||||
ThisBox.dano_dps:Hide()
|
||||
ThisBox.nome2:Hide()
|
||||
|
||||
return
|
||||
end
|
||||
--]]
|
||||
|
||||
@@ -33,6 +33,13 @@
|
||||
id = id, --spellid
|
||||
successful_casted = 0, --successful casted times (only for enemies)
|
||||
|
||||
--> multistrike
|
||||
m_amt = 0,
|
||||
m_dmg = 0,
|
||||
--off_amt = 0,
|
||||
--off_dmg = 0,
|
||||
--main_amt = 0,
|
||||
|
||||
--> normal hits
|
||||
n_min = 0,
|
||||
n_max = 0,
|
||||
@@ -92,7 +99,7 @@
|
||||
self.total = self.total + amount
|
||||
end
|
||||
|
||||
function habilidade_dano:Add (serial, nome, flag, amount, who_nome, resisted, blocked, absorbed, critical, glacing, token)
|
||||
function habilidade_dano:Add (serial, nome, flag, amount, who_nome, resisted, blocked, absorbed, critical, glacing, token, multistrike, isoffhand)
|
||||
|
||||
self.counter = self.counter + 1
|
||||
|
||||
@@ -102,6 +109,20 @@
|
||||
else
|
||||
alvo = self.targets._ActorTable [alvo]
|
||||
end
|
||||
|
||||
if (multistrike) then
|
||||
self.m_amt = self.m_amt + 1
|
||||
self.m_dmg = self.m_dmg + amount
|
||||
end
|
||||
|
||||
--[[
|
||||
if (isoffhand) then
|
||||
self.off_amt = self.off_amt + 1
|
||||
self.off_dmg = self.off_dmg + amount
|
||||
else
|
||||
self.main_amt = self.main_amt + 1
|
||||
end
|
||||
--]]
|
||||
|
||||
if (resisted and resisted > 0) then
|
||||
self.r_dmg = self.r_dmg+amount --> tabela.total é o total de dano
|
||||
|
||||
@@ -65,6 +65,10 @@ local UsingCustomRightText = false
|
||||
local FormatTooltipNumber = ToKFunctions [8]
|
||||
local TooltipMaximizedMethod = 1
|
||||
|
||||
local headerColor = "yellow"
|
||||
local key_overlay = {1, 1, 1, .1}
|
||||
local key_overlay_press = {1, 1, 1, .2}
|
||||
|
||||
local info = _detalhes.janela_info
|
||||
local keyName
|
||||
|
||||
@@ -289,11 +293,11 @@ function atributo_energy:RefreshWindow (instancia, tabela_do_combate, forcar, ex
|
||||
local baseframe = instancia.baseframe
|
||||
|
||||
local use_animations = _detalhes.is_using_row_animations and (not baseframe.isStretching and not forcar and not baseframe.isResizing)
|
||||
|
||||
|
||||
if (total == 0) then
|
||||
total = 0.00000001
|
||||
end
|
||||
|
||||
|
||||
local myPos
|
||||
local following = instancia.following.enabled
|
||||
|
||||
@@ -578,7 +582,7 @@ function atributo_energy:RefreshBarra2 (esta_barra, instancia, tabela_anterior,
|
||||
end
|
||||
|
||||
esta_barra.last_value = esta_porcentagem --> reseta o ultimo valor da barra
|
||||
|
||||
|
||||
return self:RefreshBarra (esta_barra, instancia)
|
||||
|
||||
elseif (esta_porcentagem ~= esta_barra.last_value) then --> continua mostrando a mesma tabela então compara a porcentagem
|
||||
@@ -790,12 +794,8 @@ function atributo_energy:ToolTip (instancia, numero, barra, keydown)
|
||||
end
|
||||
--> tooltip locals
|
||||
local r, g, b
|
||||
local headerColor = "yellow"
|
||||
local barAlha = .6
|
||||
|
||||
local key_overlay = {1, 1, 1, .1}
|
||||
local key_overlay_press = {1, 1, 1, .2}
|
||||
|
||||
function atributo_energy:ToolTipRegenRecebido (instancia, numero, barra, keydown)
|
||||
|
||||
local owner = self.owner
|
||||
@@ -1097,6 +1097,7 @@ end
|
||||
SelectedToKFunction = ToKFunctions [_detalhes.ps_abbreviation]
|
||||
FormatTooltipNumber = ToKFunctions [_detalhes.tooltip.abbreviation]
|
||||
TooltipMaximizedMethod = _detalhes.tooltip.maximize_method
|
||||
headerColor = _detalhes.tooltip.header_text_color
|
||||
end
|
||||
|
||||
--> subtract total from a combat table
|
||||
|
||||
+172
-88
@@ -12,6 +12,7 @@ local _cstr = string.format
|
||||
local _table_insert = table.insert
|
||||
local _bit_band = bit.band
|
||||
local _math_min = math.min
|
||||
local _math_ceil = math.ceil
|
||||
--api locals
|
||||
local GetSpellInfo = GetSpellInfo
|
||||
local _GetSpellInfo = _detalhes.getspellinfo
|
||||
@@ -59,6 +60,10 @@ local UsingCustomLeftText = false
|
||||
local FormatTooltipNumber = ToKFunctions [8]
|
||||
local TooltipMaximizedMethod = 1
|
||||
|
||||
local headerColor = "yellow"
|
||||
local key_overlay = {1, 1, 1, .1}
|
||||
local key_overlay_press = {1, 1, 1, .2}
|
||||
|
||||
local info = _detalhes.janela_info
|
||||
local keyName
|
||||
|
||||
@@ -352,6 +357,7 @@ function atributo_heal:RefreshWindow (instancia, tabela_do_combate, forcar, expo
|
||||
return _detalhes:EndRefresh (instancia, total, tabela_do_combate, showing) --> retorna a tabela que precisa ganhar o refresh
|
||||
end
|
||||
|
||||
--estra mostrando ALL então posso seguir o padrão correto? primeiro, atualiza a scroll bar...
|
||||
instancia:AtualizarScrollBar (amount)
|
||||
|
||||
--depois faz a atualização normal dele através dos iterators
|
||||
@@ -361,10 +367,10 @@ function atributo_heal:RefreshWindow (instancia, tabela_do_combate, forcar, expo
|
||||
local baseframe = instancia.baseframe
|
||||
|
||||
local use_animations = _detalhes.is_using_row_animations and (not baseframe.isStretching and not forcar and not baseframe.isResizing)
|
||||
|
||||
|
||||
if (total == 0) then
|
||||
total = 0.00000001
|
||||
end
|
||||
end
|
||||
|
||||
local myPos
|
||||
local following = instancia.following.enabled
|
||||
@@ -753,7 +759,7 @@ function atributo_heal:RefreshBarra2 (esta_barra, instancia, tabela_anterior, fo
|
||||
end
|
||||
|
||||
esta_barra.last_value = esta_porcentagem --> reseta o ultimo valor da barra
|
||||
|
||||
|
||||
return self:RefreshBarra (esta_barra, instancia)
|
||||
|
||||
elseif (esta_porcentagem ~= esta_barra.last_value) then --> continua mostrando a mesma tabela então compara a porcentagem
|
||||
@@ -897,31 +903,36 @@ function atributo_heal:RefreshBarra (esta_barra, instancia, from_resize)
|
||||
|
||||
end
|
||||
|
||||
function _detalhes:CloseShields()
|
||||
function _detalhes:CloseShields (combat)
|
||||
|
||||
if (not _IsInRaid()) then
|
||||
return
|
||||
end
|
||||
|
||||
local name_table = {}
|
||||
for i = 1, _GetNumGroupMembers() do
|
||||
name_table [_UnitName ("raid" .. i)] = "raid" .. i
|
||||
end
|
||||
local escudos = _detalhes.escudos
|
||||
local container = combat[2]
|
||||
local time = time()
|
||||
local parser = _detalhes.parser
|
||||
local GetSpellInfo = GetSpellInfo --não colocar no cache de spells
|
||||
|
||||
local spells_table = {}
|
||||
|
||||
--não da de fechar os escudos, precisa saber o total dele, unitaura nao retorna o valor do escudo
|
||||
for alvo_name, spellid_table in _pairs (escudos) do
|
||||
for spellid, caster_table in _pairs (spellid_table) do
|
||||
if (not spells_table [spellid]) then
|
||||
|
||||
local tgt = container:PegarCombatente (_, alvo_name)
|
||||
if (tgt) then
|
||||
|
||||
for spellid, owner_table in _pairs (spellid_table) do
|
||||
|
||||
local spellname = GetSpellInfo (spellid)
|
||||
spells_table [spellid] = spellname
|
||||
end
|
||||
for caster_name, amount in _pairs (caster_table) do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = _UnitAura (name_table [alvo_name], buffIndex, nil, "HELPFUL")
|
||||
for owner, amount in _pairs (owner_table) do
|
||||
|
||||
if (amount > 0) then
|
||||
local obj = container:PegarCombatente (_, owner)
|
||||
if (obj) then
|
||||
parser:heal ("SPELL_AURA_REMOVED", time, obj.serial, owner, obj.flag_original, tgt.serial, alvo_name, tgt.flag_original, spellid, spellname, nil, 0, _math_ceil (amount), 0, 0, nil, true)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--escudo [alvo_name] [spellid] [who_name]
|
||||
@@ -950,10 +961,7 @@ function atributo_heal:ToolTip (instancia, numero, barra, keydown)
|
||||
end
|
||||
--> tooltip locals
|
||||
local r, g, b
|
||||
local headerColor = "yellow"
|
||||
local barAlha = .6
|
||||
local key_overlay = {1, 1, 1, .1}
|
||||
local key_overlay_press = {1, 1, 1, .2}
|
||||
|
||||
---------> HEALING TAKEN
|
||||
function atributo_heal:ToolTip_HealingTaken (instancia, numero, barra, keydown)
|
||||
@@ -1869,6 +1877,15 @@ function atributo_heal:MontaDetalhesHealingTaken (nome, barra)
|
||||
end
|
||||
end
|
||||
|
||||
local absorbed_table = {c = {180/255, 180/255, 180/255, 0.5}, p = 0}
|
||||
local overhealing_table = {c = {0.5, 0.1, 0.1, 0.9}, p = 0}
|
||||
local normal_table = {c = {255/255, 180/255, 0/255, 0.5}, p = 0}
|
||||
local multistrike_table = {c = {223/255, 249/255, 45/255, 0.5}, p = 0}
|
||||
local critical_table = {c = {249/255, 74/255, 45/255, 0.5}, p = 0}
|
||||
|
||||
local data_table = {}
|
||||
local t1, t2, t3, t4 = {}, {}, {}, {}
|
||||
|
||||
function atributo_heal:MontaDetalhesHealingDone (spellid, barra)
|
||||
|
||||
local esta_magia
|
||||
@@ -1883,10 +1900,8 @@ function atributo_heal:MontaDetalhesHealingDone (spellid, barra)
|
||||
end
|
||||
|
||||
--> icone direito superior
|
||||
local nome, rank, icone = _GetSpellInfo (spellid)
|
||||
local infospell = {nome, rank, icone}
|
||||
|
||||
info.spell_icone:SetTexture (infospell[3])
|
||||
local _, _, icone = _GetSpellInfo (spellid)
|
||||
info.spell_icone:SetTexture (icone)
|
||||
|
||||
local total = self.total
|
||||
|
||||
@@ -1899,13 +1914,16 @@ function atributo_heal:MontaDetalhesHealingDone (spellid, barra)
|
||||
elseif (_detalhes.time_type == 2) then
|
||||
meu_tempo = info.instancia.showing:GetCombatTime()
|
||||
end
|
||||
|
||||
--local total_hits = esta_magia.counter
|
||||
local total_hits = esta_magia.n_amt+esta_magia.c_amt
|
||||
|
||||
|
||||
local total_hits = esta_magia.counter
|
||||
local index = 1
|
||||
local data = data_table
|
||||
|
||||
local data = {}
|
||||
table.wipe (t1)
|
||||
table.wipe (t2)
|
||||
table.wipe (t3)
|
||||
table.wipe (t4)
|
||||
table.wipe (data)
|
||||
|
||||
if (esta_magia.total > 0) then
|
||||
|
||||
@@ -1914,18 +1932,25 @@ function atributo_heal:MontaDetalhesHealingDone (spellid, barra)
|
||||
|
||||
local this_hps = nil
|
||||
if (esta_magia.counter > esta_magia.c_amt) then
|
||||
this_hps = Loc ["STRING_HPS"]..": ".._cstr ("%.1f", esta_magia.total/meu_tempo) --> localiza-me
|
||||
this_hps = Loc ["STRING_HPS"] .. ": " .. _detalhes:comma_value (esta_magia.total/meu_tempo)
|
||||
else
|
||||
this_hps = Loc ["STRING_HPS"]..": "..Loc ["STRING_SEE_BELOW"]
|
||||
this_hps = Loc ["STRING_HPS"] .. ": " .. Loc ["STRING_SEE_BELOW"]
|
||||
end
|
||||
|
||||
gump:SetaDetalheInfoTexto ( index, 100, --> Localize-me
|
||||
Loc ["STRING_GERAL"], --> localiza-me
|
||||
Loc ["STRING_HEAL"]..": ".._detalhes:ToK (esta_magia.total), --> localiza-me
|
||||
Loc ["STRING_PERCENTAGE"]..": ".._cstr ("%.1f", esta_magia.total/total*100) .. "%", --> localiza-me
|
||||
Loc ["STRING_MEDIA"]..": ".._cstr ("%.1f", media), --> localiza-me
|
||||
local heal_string
|
||||
if (esta_magia.is_shield) then
|
||||
heal_string = Loc ["STRING_SHIELD_HEAL"]
|
||||
else
|
||||
heal_string = Loc ["STRING_HEAL"]
|
||||
end
|
||||
|
||||
gump:SetaDetalheInfoTexto ( index, 100,
|
||||
Loc ["STRING_GERAL"],
|
||||
heal_string .. ": " .. _detalhes:ToK (esta_magia.total),
|
||||
"", --Loc ["STRING_PERCENTAGE"] .. ": " .. _cstr ("%.1f", esta_magia.total/total*100) .. "%",
|
||||
Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (media),
|
||||
this_hps,
|
||||
Loc ["STRING_HITS"]..": " .. total_hits) --> localiza-me
|
||||
Loc ["STRING_HITS"] .. ": " .. total_hits)
|
||||
|
||||
--> NORMAL
|
||||
local normal_hits = esta_magia.n_amt
|
||||
@@ -1936,17 +1961,25 @@ function atributo_heal:MontaDetalhesHealingDone (spellid, barra)
|
||||
local P = media/media_normal*100
|
||||
T = P*T/100
|
||||
|
||||
data[#data+1] = {
|
||||
esta_magia.n_amt,
|
||||
normal_hits/total_hits*100,
|
||||
--esta_magia.n_curado/esta_magia.total*100,
|
||||
Loc ["STRING_HEAL"], --> localiza-me
|
||||
Loc ["STRING_MINIMUM"] .. ": " .. _detalhes:comma_value (esta_magia.n_min), --> localiza-me
|
||||
Loc ["STRING_MAXIMUM"] .. ": " .. _detalhes:comma_value (esta_magia.n_max), --> localiza-me
|
||||
Loc ["STRING_MEDIA"] .. ": " .. _cstr ("%.1f", media_normal), --> localiza-me
|
||||
Loc ["STRING_HPS"] .. ": " .. _cstr ("%.1f", normal_curado/T), --> localiza-me
|
||||
normal_hits .. " / ".. _cstr ("%.1f", normal_hits/total_hits*100).."%"
|
||||
}
|
||||
data[#data+1] = t1
|
||||
|
||||
if (esta_magia.is_shield) then
|
||||
t1[3] = Loc ["STRING_ABSORBED"]
|
||||
normal_table.p = esta_magia.total / (esta_magia.total+esta_magia.overheal) * 100
|
||||
else
|
||||
t1[3] = heal_string
|
||||
normal_table.p = normal_hits/total_hits*100
|
||||
end
|
||||
|
||||
t1[1] = esta_magia.n_amt
|
||||
t1[2] = normal_table
|
||||
|
||||
t1[4] = Loc ["STRING_MINIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.n_min)
|
||||
t1[5] = Loc ["STRING_MAXIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.n_max)
|
||||
t1[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (media_normal)
|
||||
t1[7] = Loc ["STRING_HPS"] .. ": " .. _detalhes:comma_value (normal_curado/T)
|
||||
t1[8] = normal_hits .. " / ".. _cstr ("%.1f", normal_hits/total_hits*100) .. "%"
|
||||
|
||||
end
|
||||
|
||||
--> CRITICO
|
||||
@@ -1960,59 +1993,109 @@ function atributo_heal:MontaDetalhesHealingDone (spellid, barra)
|
||||
crit_hps = 0
|
||||
end
|
||||
|
||||
data[#data+1] = {
|
||||
esta_magia.c_amt,
|
||||
esta_magia.c_amt/total_hits*100,
|
||||
--esta_magia.c_curado/esta_magia.total*100,
|
||||
Loc ["STRING_HEAL_CRIT"], --> localiza-me
|
||||
Loc ["STRING_MINIMUM"] .. ": " .. _detalhes:comma_value (esta_magia.c_min), --> localiza-me
|
||||
Loc ["STRING_MAXIMUM"] .. ": " .. _detalhes:comma_value (esta_magia.c_max), --> localiza-me
|
||||
Loc ["STRING_MEDIA"] .. ": " .. _cstr ("%.1f", media_critico), --> localiza-me
|
||||
Loc ["STRING_HPS"] .. ": " .. _cstr ("%.1f", crit_hps), --> localiza-me
|
||||
esta_magia.c_amt .. " / ".._cstr ("%.1f", esta_magia.c_amt/total_hits*100).."%"
|
||||
}
|
||||
data[#data+1] = t2
|
||||
critical_table.p = esta_magia.c_amt/total_hits*100
|
||||
|
||||
t2[1] = esta_magia.c_amt
|
||||
t2[2] = critical_table
|
||||
t2[3] = Loc ["STRING_HEAL_CRIT"]
|
||||
t2[4] = Loc ["STRING_MINIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.c_min)
|
||||
t2[5] = Loc ["STRING_MAXIMUM_SHORT"] .. ": " .. _detalhes:comma_value (esta_magia.c_max)
|
||||
t2[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (media_critico)
|
||||
t2[7] = Loc ["STRING_HPS"] .. ": " .. _detalhes:comma_value (crit_hps)
|
||||
t2[8] = esta_magia.c_amt .. " / ".. _cstr ("%.1f", esta_magia.c_amt/total_hits*100) .. "%"
|
||||
|
||||
end
|
||||
|
||||
--> MULTISTRIKE
|
||||
if (esta_magia.m_amt > 0) then
|
||||
|
||||
local multistrike_hits = esta_magia.m_amt
|
||||
local multistrike_heal = esta_magia.m_curado
|
||||
|
||||
local media_multistrike = multistrike_heal/multistrike_hits
|
||||
|
||||
local T
|
||||
if (media_multistrike > 0) then
|
||||
T = (meu_tempo*multistrike_heal)/esta_magia.total
|
||||
local P = (esta_magia.total/esta_magia.counter)/media_multistrike*100
|
||||
T = P*T/100
|
||||
else
|
||||
T = 1
|
||||
end
|
||||
|
||||
local overheal = esta_magia.m_overheal
|
||||
overheal = overheal / (multistrike_heal + overheal) * 100
|
||||
|
||||
data[#data+1] = t3
|
||||
multistrike_table.p = esta_magia.m_amt/total_hits*100
|
||||
|
||||
t3[1] = esta_magia.m_amt
|
||||
t3[2] = multistrike_table
|
||||
t3[3] = Loc ["STRING_MULTISTRIKE"]
|
||||
t3[4] = Loc ["STRING_OVERHEAL"] .. ": " .. _math_floor (overheal) .. "%"
|
||||
t3[5] = ""
|
||||
t3[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (esta_magia.m_curado/esta_magia.m_amt)
|
||||
t3[7] = Loc ["STRING_HPS"] .. ": " .. _detalhes:comma_value (esta_magia.m_curado/T)
|
||||
t3[8] = esta_magia.m_amt .. " / " .. _cstr ("%.1f", esta_magia.m_amt/total_hits*100) .. "%"
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
_table_sort (data, function (a, b) return a[1] > b[1] end)
|
||||
|
||||
--> Aqui pode vir a cura absorvida
|
||||
|
||||
_table_sort (data, _detalhes.Sort1)
|
||||
|
||||
--[[
|
||||
local absorbed = esta_magia.absorbed
|
||||
|
||||
if (absorbed > 0) then
|
||||
|
||||
local porcentagem_absorbed = absorbed/esta_magia.total*100
|
||||
data[#data+1] = {
|
||||
absorbed,
|
||||
{["p"] = porcentagem_absorbed, ["c"] = {117/255, 58/255, 0/255}},
|
||||
Loc ["STRING_HEAL_ABSORBED"], --> localiza-me
|
||||
"", --esta_magia.glacing.curado
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
absorbed.." / ".._cstr ("%.1f", porcentagem_absorbed).."%"
|
||||
}
|
||||
end
|
||||
data[#data+1] = t3
|
||||
|
||||
absorbed_table.p = porcentagem_absorbed
|
||||
|
||||
t3[1] = absorbed
|
||||
t3[2] = absorbed_table
|
||||
t3[3] = Loc ["STRING_HEAL_ABSORBED"]
|
||||
t3[4] = ""
|
||||
t3[5] = ""
|
||||
t3[6] = ""
|
||||
t3[7] = ""
|
||||
t3[8] = absorbed .. " / " .. _cstr ("%.1f", porcentagem_absorbed).."%"
|
||||
|
||||
end
|
||||
--]]
|
||||
|
||||
for i = #data+1, 3 do --> para o overheal aparecer na ultima barra
|
||||
data[i] = nil
|
||||
end
|
||||
|
||||
|
||||
--> overhealing
|
||||
|
||||
if (overheal > 0) then
|
||||
|
||||
local porcentagem_overheal = overheal/meu_total*100
|
||||
data[4] = {
|
||||
overheal,
|
||||
{["p"] = porcentagem_overheal, ["c"] = {0.5, 0.1, 0.1}},
|
||||
Loc ["STRING_OVERHEAL"], --> localiza-me
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
_detalhes:comma_value (overheal).." / ".._cstr ("%.1f", porcentagem_overheal).."%"
|
||||
}
|
||||
data[4] = t4
|
||||
|
||||
overhealing_table.p = porcentagem_overheal
|
||||
|
||||
t4[1] = overheal
|
||||
t4[2] = overhealing_table
|
||||
|
||||
if (esta_magia.is_shield) then
|
||||
t4[3] = Loc ["STRING_SHIELD_OVERHEAL"]
|
||||
else
|
||||
t4[3] = Loc ["STRING_OVERHEAL"]
|
||||
end
|
||||
|
||||
t4[4] = ""
|
||||
t4[5] = ""
|
||||
t4[6] = ""
|
||||
t4[7] = ""
|
||||
t4[8] = _detalhes:comma_value (overheal) .. " / " .. _cstr ("%.1f", porcentagem_overheal) .. "%"
|
||||
|
||||
end
|
||||
|
||||
for index = 1, 4 do
|
||||
@@ -2059,6 +2142,7 @@ end
|
||||
SelectedToKFunction = ToKFunctions [_detalhes.ps_abbreviation]
|
||||
FormatTooltipNumber = ToKFunctions [_detalhes.tooltip.abbreviation]
|
||||
TooltipMaximizedMethod = _detalhes.tooltip.maximize_method
|
||||
headerColor = _detalhes.tooltip.header_text_color
|
||||
end
|
||||
|
||||
--> subtract total from a combat table
|
||||
|
||||
@@ -28,6 +28,11 @@
|
||||
totalabsorb = 0,
|
||||
counter = 0,
|
||||
id = id,
|
||||
|
||||
--> multistrike
|
||||
m_amt = 0,
|
||||
m_curado = 0,
|
||||
m_overheal = 0,
|
||||
|
||||
--> normal hits
|
||||
n_min = 0,
|
||||
@@ -56,7 +61,7 @@
|
||||
return _newHealSpell
|
||||
end
|
||||
|
||||
function habilidade_cura:Add (serial, nome, flag, amount, who_nome, absorbed, critical, overhealing, is_shield)
|
||||
function habilidade_cura:Add (serial, nome, flag, amount, who_nome, absorbed, critical, overhealing, is_shield, multistrike)
|
||||
|
||||
self.counter = self.counter + 1
|
||||
|
||||
@@ -67,6 +72,12 @@
|
||||
alvo = self.targets._ActorTable [alvo]
|
||||
end
|
||||
|
||||
if (multistrike) then
|
||||
self.m_amt = self.m_amt + 1
|
||||
self.m_curado = self.m_curado + amount
|
||||
self.m_overheal = self.m_overheal + overhealing
|
||||
end
|
||||
|
||||
if (absorbed and absorbed > 0) then
|
||||
self.absorbed = self.absorbed + absorbed
|
||||
alvo.absorbed = alvo.absorbed + absorbed
|
||||
|
||||
@@ -654,12 +654,13 @@ function _detalhes:EstaAgrupada (esta_instancia, lado) --> lado //// 1 = encosto
|
||||
end
|
||||
|
||||
function _detalhes:BaseFrameSnap()
|
||||
|
||||
for meu_id, instancia in _ipairs (_detalhes.tabela_instancias) do
|
||||
if (instancia:IsAtiva()) then
|
||||
instancia.baseframe:ClearAllPoints()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local group = self:GetInstanceGroup()
|
||||
local scale = self.window_scale
|
||||
for _, instance in _ipairs (group) do
|
||||
@@ -789,7 +790,7 @@ end
|
||||
function _detalhes:agrupar_janelas (lados)
|
||||
|
||||
local instancia = self
|
||||
|
||||
|
||||
for lado, esta_instancia in _pairs (lados) do
|
||||
if (esta_instancia) then
|
||||
instancia.baseframe:ClearAllPoints()
|
||||
@@ -1867,6 +1868,7 @@ function _detalhes:TrocaTabela (instancia, segmento, atributo, sub_atributo, ini
|
||||
local atributo_changed = false
|
||||
|
||||
--> verifica se os valores passados são válidos
|
||||
|
||||
if (not segmento) then
|
||||
segmento = instancia.segmento
|
||||
elseif (_type (segmento) ~= "number") then
|
||||
@@ -2671,9 +2673,19 @@ function _detalhes:monta_relatorio (este_relatorio, custom)
|
||||
if (_type (amount) == "number" and amount > 0) then
|
||||
if (keyNameSec) then
|
||||
local dps = GetDpsHps (_thisActor, keyNameSec)
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:comma_value (_math_floor (dps)) .. ", " .. _detalhes:ToK ( _math_floor (amount) ) .. ")"
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _cstr ("%.2f", amount/total*100) .. "%)"
|
||||
elseif (_detalhes.report_schema == 2) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")"
|
||||
elseif (_detalhes.report_schema == 3) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")"
|
||||
end
|
||||
else
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount).." (".._cstr ("%.1f", amount/total*100).."%)"
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. _cstr ("%.1f", amount/total*100) .. "%)"
|
||||
else
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.1f", amount/total*100) .. "% (" .. _detalhes:ToKReport (amount) .. ")"
|
||||
end
|
||||
end
|
||||
|
||||
elseif (_type (amount) == "string") then
|
||||
@@ -2782,11 +2794,22 @@ function _detalhes:monta_relatorio (este_relatorio, custom)
|
||||
|
||||
if (_type (amount) == "number") then
|
||||
if (amount > 0) then
|
||||
|
||||
if (keyNameSec) then
|
||||
local dps = GetDpsHps (_thisActor, keyNameSec)
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:comma_value (_math_floor (dps)) .. ", " .. _detalhes:ToK ( _math_floor (amount) ) .. ")"
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _cstr ("%.2f", amount/total*100) .. "%)"
|
||||
elseif (_detalhes.report_schema == 2) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")"
|
||||
elseif (_detalhes.report_schema == 3) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")"
|
||||
end
|
||||
else
|
||||
report_lines [#report_lines+1] = i .. "." .. name .. " " .. _detalhes:comma_value ( _math_floor (amount) ).." (".._cstr ("%.1f", amount/total*100).."%)"
|
||||
if (_detalhes.report_schema == 1) then
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. _cstr ("%.1f", amount/total*100) .. "%)"
|
||||
else
|
||||
report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.1f", amount/total*100) .. "% (" .. _detalhes:ToKReport (amount) .. ")"
|
||||
end
|
||||
end
|
||||
|
||||
quantidade = quantidade + 1
|
||||
@@ -3006,9 +3029,9 @@ function _detalhes:envia_relatorio (linhas, custom)
|
||||
return
|
||||
end
|
||||
|
||||
if (to_who == "RAID") then
|
||||
if (to_who == "RAID" or to_who == "PARTY") then
|
||||
--LE_PARTY_CATEGORY_HOME - default
|
||||
--LE_PARTY_CATEGORY_INSTANCE - player's automatic group, raid finder?.
|
||||
--LE_PARTY_CATEGORY_INSTANCE - player's automatic group
|
||||
if (GetNumGroupMembers (LE_PARTY_CATEGORY_INSTANCE) > 0) then
|
||||
to_who = "INSTANCE_CHAT"
|
||||
end
|
||||
|
||||
@@ -69,6 +69,8 @@ local TooltipMaximizedMethod = 1
|
||||
local info = _detalhes.janela_info
|
||||
local keyName
|
||||
|
||||
local headerColor = "yellow"
|
||||
|
||||
function _detalhes.SortIfHaveKey (table1, table2)
|
||||
if (table1[keyName] and table2[keyName]) then
|
||||
return table1[keyName] > table2[keyName]
|
||||
@@ -651,7 +653,7 @@ function atributo_misc:RefreshWindow (instancia, tabela_do_combate, forcar, expo
|
||||
if (total == 0) then
|
||||
total = 0.00000001
|
||||
end
|
||||
|
||||
|
||||
UsingCustomLeftText = instancia.row_info.textL_enable_custom_text
|
||||
UsingCustomRightText = instancia.row_info.textR_enable_custom_text
|
||||
|
||||
@@ -814,7 +816,7 @@ function atributo_misc:RefreshBarra2 (esta_barra, instancia, tabela_anterior, fo
|
||||
end
|
||||
|
||||
esta_barra.last_value = esta_porcentagem --> reseta o ultimo valor da barra
|
||||
|
||||
|
||||
return self:RefreshBarra (esta_barra, instancia)
|
||||
|
||||
elseif (esta_porcentagem ~= esta_barra.last_value) then --> continua mostrando a mesma tabela então compara a porcentagem
|
||||
@@ -974,7 +976,6 @@ end
|
||||
|
||||
--> tooltip locals
|
||||
local r, g, b
|
||||
local headerColor = "yellow"
|
||||
local barAlha = .6
|
||||
|
||||
function atributo_misc:ToolTipDead (instancia, numero, barra)
|
||||
@@ -1384,7 +1385,7 @@ function _detalhes:CatchRaidBuffUptime (in_or_out)
|
||||
end
|
||||
|
||||
if (in_or_out == "BUFF_UPTIME_IN") then
|
||||
local string_output = "pre-potion: "
|
||||
local string_output = "pre-potion: " --> localize-me
|
||||
for playername, potspellid in _pairs (pot_usage) do
|
||||
local name, _, icon = _GetSpellInfo (potspellid)
|
||||
local _, class = UnitClass (playername)
|
||||
@@ -2142,6 +2143,7 @@ end
|
||||
SelectedToKFunction = ToKFunctions [_detalhes.ps_abbreviation]
|
||||
FormatTooltipNumber = ToKFunctions [_detalhes.tooltip.abbreviation]
|
||||
TooltipMaximizedMethod = _detalhes.tooltip.maximize_method
|
||||
headerColor = _detalhes.tooltip.header_text_color
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user