- Fixed pets with the owner name showing twice in the pet name.

- Fixed tooltips not showing pets for the end segment created after a mythic dungeon.
This commit is contained in:
Tercio
2018-09-18 18:13:39 -03:00
parent 404f3c3ab4
commit d8134d51f1
14 changed files with 337 additions and 112 deletions
+10 -5
View File
@@ -4010,7 +4010,6 @@ function atributo_damage:MontaInfoDamageDone()
info:SetTopRightTexts()
end
--> add pets
local ActorPets = self.pets
--local class_color = RAID_CLASS_COLORS [self.classe] and RAID_CLASS_COLORS [self.classe].colorStr
@@ -5014,9 +5013,10 @@ end
function atributo_damage:r_connect_shadow (actor, no_refresh, combat_object)
--check if there's a custom combat, if not just use the overall container
local host_combat = combat_object or _detalhes.tabela_overall
--> criar uma shadow desse ator se ainda no tiver uma
--check if the host combat object has a shadow actor for this actor, if not, just create one new
local overall_dano = host_combat [1]
local shadow = overall_dano._ActorTable [overall_dano._NameIndexTable [actor.nome]]
@@ -5036,7 +5036,7 @@ end
shadow.end_time = time()
end
--> restaura a meta e indexes ao ator
--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
@@ -5049,7 +5049,12 @@ end
local tempo = end_time - actor.start_time
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
--> total de dano (captura de dados)
shadow.total = shadow.total + actor.total
shadow.totalabsorbed = shadow.totalabsorbed + actor.totalabsorbed
@@ -5114,7 +5119,7 @@ end
end
end
end
--> copia o container de friendly fire (captura de dados)
for target_name, ff_table in _pairs (actor.friendlyfire) do
--> cria ou pega a shadow
+5
View File
@@ -1422,6 +1422,11 @@ end
_detalhes.refresh:r_atributo_energy (actor, shadow)
end
--> pets (add unique pet names)
for _, petName in _ipairs (actor.pets) do
DetailsFramework.table.addunique (shadow.pets, petName)
end
--> total das energias (captura de dados)
shadow.total = shadow.total + actor.total
shadow.received = shadow.received + actor.received
+5
View File
@@ -2473,6 +2473,11 @@ end
local tempo = end_time - actor.start_time
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
--> total de cura (captura de dados)
shadow.total = shadow.total + actor.total
--> total de overheal (captura de dados)
+5
View File
@@ -2473,6 +2473,11 @@ function atributo_misc:r_connect_shadow (actor, no_refresh, combat_object)
if (not no_refresh) then
_detalhes.refresh:r_atributo_misc (actor, shadow)
end
--> pets (add unique pet names)
for _, petName in _ipairs (actor.pets) do
DetailsFramework.table.addunique (shadow.pets, petName)
end
if (actor.spell_cast) then
if (not shadow.spell_cast) then
+7 -8
View File
@@ -18,6 +18,8 @@
local _ipairs = ipairs --lua local
local _pairs = pairs --lua local
local AddUnique = DetailsFramework.table.addunique --framework
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> constants
@@ -485,7 +487,6 @@
if (container_pets [serial]) then --> um pet reconhecido
--[[statistics]]-- _detalhes.statistics.container_pet_calls = _detalhes.statistics.container_pet_calls + 1
local nome_dele, dono_nome, dono_serial, dono_flag = _detalhes.tabela_pets:PegaDono (serial, nome, flag)
if (nome_dele and dono_nome) then
nome = nome_dele
@@ -541,7 +542,7 @@
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "damage")
if (dono_do_pet) then
dono_do_pet.pets [#dono_do_pet.pets+1] = nome
AddUnique (dono_do_pet.pets, nome)
end
if (self.shadow) then
@@ -575,7 +576,7 @@
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "heal")
if (dono_do_pet) then
dono_do_pet.pets [#dono_do_pet.pets+1] = nome
AddUnique (dono_do_pet.pets, nome)
end
if (self.shadow) then
@@ -602,7 +603,7 @@
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "energy")
if (dono_do_pet) then
dono_do_pet.pets [#dono_do_pet.pets+1] = nome
AddUnique (dono_do_pet.pets, nome)
end
if (novo_objeto.classe == "UNGROUPPLAYER") then --> is a player
@@ -620,11 +621,9 @@
local shouldScanOnce = get_actor_class (novo_objeto, nome, flag, serial)
read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "misc")
--local teste_classe =
if (dono_do_pet) then
dono_do_pet.pets [#dono_do_pet.pets+1] = nome
AddUnique (dono_do_pet.pets, nome)
end
if (novo_objeto.classe == "UNGROUPPLAYER") then --> is a player
+21 -3
View File
@@ -43,7 +43,19 @@ function container_pets:PegaDono (pet_serial, pet_nome, pet_flags)
--> buscar pelo pet no container de pets
local busca = self.pets [pet_serial]
if (busca) then
return pet_nome .." <"..busca[1]..">", busca[1], busca[2], busca[3] --> [1] dono nome [2] dono serial [3] dono flag
--in merging operations, make sure to not add the owner name a second time in the name
--check if the pet name already has the owner name in, if not, add it
if (not pet_nome:find ("<")) then
--get the owner name
local ownerName = busca[1]
--add the owner name to the pet name
pet_nome = pet_nome .. " <".. ownerName ..">"
end
return pet_nome, busca[1], busca[2], busca[3] --> [1] dono nome [2] dono serial [3] dono flag
end
--> buscar pelo pet na raide
@@ -93,7 +105,12 @@ function container_pets:PegaDono (pet_serial, pet_nome, pet_flags)
if (dono_nome) then
self.pets [pet_serial] = {dono_nome, dono_serial, dono_flags, _detalhes._tempo, true} --> adicionada a flag emulada
return pet_nome .." <"..dono_nome..">", dono_nome, dono_serial, dono_flags
if (not pet_nome:find ("<")) then
pet_nome = pet_nome .. " <".. dono_nome ..">"
end
return pet_nome, dono_nome, dono_serial, dono_flags
else
if (pet_flags and _bit_band (pet_flags, OBJECT_TYPE_PET) ~= 0) then --> um pet
@@ -225,8 +242,9 @@ end
function _detalhes:LimparPets()
--> elimina pets antigos
local _new_PetTable = {}
--> minimum of 90 minutes to clean a pet from the pet table data
for PetSerial, PetTable in _pairs (_detalhes.tabela_pets.pets) do
if ( (PetTable[4] + _detalhes.intervalo_coleta > _detalhes._tempo + 1) or (PetTable[5] and PetTable[4] + 43200 > _detalhes._tempo) ) then
if ( (PetTable[4] + 5400 > _detalhes._tempo + 1) or (PetTable[5] and PetTable[4] + 43200 > _detalhes._tempo) ) then
_new_PetTable [PetSerial] = PetTable
end
end