- Make sure the actor isn't a fight component before the garbage collector erases it.

- Do not do trash cleanups during mythic+ dungeon runs.
- Do not overrite a fight component or group state if the new value is false during a merge.
This commit is contained in:
Tercioo
2019-03-14 20:30:51 -03:00
parent 5b90fbbf3c
commit b7b90f6d5e
9 changed files with 217 additions and 111 deletions
+36 -3
View File
@@ -5048,11 +5048,19 @@ end
shadow.end_time = time()
end
shadow.boss_fight_component = actor.boss_fight_component or shadow.boss_fight_component
shadow.fight_component = actor.fight_component or shadow.fight_component
shadow.grupo = actor.grupo or shadow.grupo
--check if need to restore meta tables and indexes for this actor
if (not no_refresh) then
_detalhes.refresh:r_atributo_damage (actor, shadow)
end
--a referência do .owner pode ter sido apagada?
--os 2 segmentos foram juntados porém a referência do owner de um pet criado ali em cima deve ser nula?
--teria que analisar se o novo objecto é de um pet e colocar a referência do owner no pet novamente, ou pelo menos verificar se a referência é valida
--> tempo decorrido (captura de dados)
local end_time = actor.end_time
if (not actor.end_time) then
@@ -5063,9 +5071,19 @@ end
shadow.start_time = shadow.start_time - tempo
--> pets (add unique pet names)
for _, petName in _ipairs (actor.pets) do
DetailsFramework.table.addunique (shadow.pets, petName)
end
for _, petName in _ipairs (actor.pets) do
local hasPet = false
for i = 1, #shadow.pets do
if (shadow.pets[i] == petName) then
hasPet = true
break
end
end
if (not hasPet) then
shadow.pets [#shadow.pets+1] = petName
end
end
--> total de dano (captura de dados)
shadow.total = shadow.total + actor.total
@@ -5172,6 +5190,21 @@ atributo_damage.__add = function (tabela1, tabela2)
tabela1.damage_from [nome] = true
end
--> pets (add unique pet names)
for _, petName in _ipairs (tabela2.pets) do
local hasPet = false
for i = 1, #tabela1.pets do
if (tabela1.pets[i] == petName) then
hasPet = true
break
end
end
if (not hasPet) then
tabela1.pets [#tabela1.pets+1] = petName
end
end
--> soma os containers de alvos
for target_name, amount in _pairs (tabela2.targets) do
tabela1.targets [target_name] = (tabela1.targets [target_name] or 0) + amount