This commit is contained in:
Tercio Jose
2023-07-11 14:11:03 -03:00
parent 6f92e054d8
commit fa65530a7c
19 changed files with 463 additions and 246 deletions
+58 -14
View File
@@ -405,6 +405,7 @@ end
--total: amount of damage done
total = alphabetical,
extra_bar = 0,
--totalabsorbed: amount of damage done absorbed by shields
totalabsorbed = alphabetical,
--total_without_pet: amount of damage done without pet damage
@@ -2125,18 +2126,17 @@ function damageClass:RefreshWindow(instancia, combatObject, forcar, exportar, re
instancia.top = actorTableContent[1] and actorTableContent[1][keyName]
elseif (windowMode == modo_ALL) then --mostrando ALL
--faz o sort da categoria e retorna o amount corrigido
--print(keyName)
if (subAttribute == 2) then
local combat_time = instancia.showing:GetCombatTime()
total = damageClass:ContainerRefreshDps (actorTableContent, combat_time)
total = damageClass:ContainerRefreshDps(actorTableContent, combat_time)
else
--pega o total ja aplicado na tabela do combate
total = combatObject.totals [class_type]
total = combatObject.totals[class_type]
end
amount = Details:ContainerSort (actorTableContent, amount, keyName)
amount = Details:ContainerSort(actorTableContent, amount, keyName)
--grava o total
instancia.top = actorTableContent[1][keyName]
@@ -2589,10 +2589,11 @@ local actor_class_color_r, actor_class_color_g, actor_class_color_b
perSecondText = perSecondText or ""
percentText = percentText or ""
-- local actorSerial = thisLine:GetActor().serial
-- local currentDps = Details.CurrentDps.GetCurrentDps(actorSerial) or perSecondText
-- perSecondText = currentDps
-- end
if (Details.time_type == 3 and Details.in_combat) then --real time
local actorSerial = thisLine:GetActor().serial
local currentDps = Details.CurrentDps.GetCurrentDps(actorSerial) or perSecondText
perSecondText = currentDps
end
--check if the instance is showing total, dps and percent
local instanceSettings = instance.row_info
@@ -2628,7 +2629,7 @@ local actor_class_color_r, actor_class_color_g, actor_class_color_b
end
-- ~atualizar ~barra ~update
function damageClass:RefreshLine(instance, lineContainer, whichRowLine, rank, total, sub_atributo, forcar, keyName, combat_time, percentage_type, use_animations, bars_show_data, bars_brackets, bars_separator)
function damageClass:RefreshLine(instance, lineContainer, whichRowLine, rank, total, sub_atributo, forcar, keyName, combat_time, percentage_type, bUseAnimations, bars_show_data, bars_brackets, bars_separator)
local thisLine = lineContainer[whichRowLine]
if (not thisLine) then
@@ -2888,11 +2889,34 @@ function damageClass:RefreshLine(instance, lineContainer, whichRowLine, rank, to
actor_class_color_r, actor_class_color_g, actor_class_color_b = self:GetBarColor()
return self:RefreshLineValue(thisLine, instance, previousData, forcar, percentNumber, whichRowLine, lineContainer, use_animations)
return self:RefreshLineValue(thisLine, instance, previousData, forcar, percentNumber, whichRowLine, lineContainer, bUseAnimations)
end
local alignExtraBar = function(thisLine, actorObject, instanceObject, percentAmount)
local extraAmount = actorObject.extra_bar
if (extraAmount > 0 and Details.combat_log.evoker_calc_damage) then
local bIsUsingBarStartAfterIcon = instanceObject.row_info.start_after_icon
local initialOffset = 0
if (bIsUsingBarStartAfterIcon) then
initialOffset = thisLine.icone_classe:GetWidth()
end
local whiteBarStartOffset = initialOffset + thisLine:GetWidth() * percentAmount / 100
local whiteBarWidth = (extraAmount / actorObject.total) * (percentAmount / 100) * thisLine:GetWidth()
thisLine.extraTexture:SetPoint("left", thisLine, "left", whiteBarStartOffset - 7, 0)
thisLine.extraTexture:SetWidth(whiteBarWidth)
thisLine.extraTexture:SetHeight(thisLine:GetHeight())
thisLine.extraTexture:Show()
end
end
function Details:RefreshLineValue(thisLine, instance, previousData, isForceRefresh, percent, whichRowLine, lineContainer, bUseAnimations) --[[ exported]]
if (self.spec ~= 1473) then
thisLine.extraTexture:Hide()
end
function Details:RefreshLineValue(thisLine, instance, previousData, isForceRefresh, percent, whichRowLine, lineContainer, useAnimations) --[[ exported]]
if (thisLine.colocacao == 1) then
thisLine.animacao_ignorar = true
@@ -2910,7 +2934,7 @@ function Details:RefreshLineValue(thisLine, instance, previousData, isForceRefre
else
if (thisLine.hidden or thisLine.fading_in or thisLine.faded) then
--setando o valor mesmo com animaes pq o barra esta hidada com o value do ltimo actor que ela mostrou
if (useAnimations) then
if (bUseAnimations and self.spec ~= 1473) then
thisLine.animacao_fim = percent
thisLine:SetValue(percent)
else
@@ -2920,11 +2944,15 @@ function Details:RefreshLineValue(thisLine, instance, previousData, isForceRefre
Details.FadeHandler.Fader(thisLine, "out")
if (self.spec == 1473) then
alignExtraBar(thisLine, self, instance, percent)
end
return self:RefreshBarra(thisLine, instance)
else
--agora esta comparando se a tabela da barra diferente da tabela na atualizao anterior
if (not previousData or previousData ~= thisLine.minha_tabela or isForceRefresh) then --aqui diz se a barra do jogador mudou de posio ou se ela apenas ser atualizada
if (useAnimations) then
if (bUseAnimations and self.spec ~= 1473) then
thisLine.animacao_fim = percent
else
thisLine:SetValue(percent)
@@ -2933,17 +2961,25 @@ function Details:RefreshLineValue(thisLine, instance, previousData, isForceRefre
thisLine.last_value = percent --reseta o ultimo valor da barra
if (self.spec == 1473) then
alignExtraBar(thisLine, self, instance, percent)
end
return self:RefreshBarra(thisLine, instance)
elseif (percent ~= thisLine.last_value) then --continua mostrando a mesma tabela ento compara a porcentagem
--apenas atualizar
if (useAnimations) then
if (bUseAnimations and self.spec ~= 1473) then
thisLine.animacao_fim = percent
else
thisLine:SetValue(percent)
end
thisLine.last_value = percent
if (self.spec == 1473) then
alignExtraBar(thisLine, self, instance, percent)
end
return self:RefreshBarra(thisLine, instance)
end
end
@@ -3044,6 +3080,14 @@ function Details:SetBarColors(bar, instance, r, g, b, a) --[[exported]]
a = a or 1
if (instance.row_info.texture_class_colors) then
if (self.classe == "UNGROUPPLAYER") then
if (self.spec) then
local specId, specName, specDescription, specIcon, specRole, specClass = DetailsFramework.GetSpecializationInfoByID(self.spec)
if (specClass) then
self.classe = specClass
end
end
end
bar.textura:SetVertexColor(r, g, b, a)
end