Real Time DPS, ten years old
This commit is contained in:
@@ -40,3 +40,4 @@ plugins/Details_RaidCheck/.github/workflows/release.yml
|
||||
plugins/Details_Streamer/.github/workflows/release.yml
|
||||
plugins/Details_TinyThreat/.github/workflows/release.yml
|
||||
plugins/Details_Vanguard/.github/workflows/release.yml
|
||||
photoshop/ten_years_skin.tga
|
||||
|
||||
@@ -37,7 +37,7 @@ if (WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE and not isExpansion_Dragonflight()) t
|
||||
end
|
||||
|
||||
local major = "LibOpenRaid-1.0"
|
||||
local CONST_LIB_VERSION = 104
|
||||
local CONST_LIB_VERSION = 105
|
||||
|
||||
if (not LIB_OPEN_RAID_MAX_VERSION) then
|
||||
LIB_OPEN_RAID_MAX_VERSION = CONST_LIB_VERSION
|
||||
|
||||
@@ -730,6 +730,7 @@ do
|
||||
--evoker
|
||||
-- 1467 - Devastation
|
||||
-- 1468 - Preservation
|
||||
-- 1473 - Augmentation
|
||||
[374251] = {cooldown = 60, duration = 0, specs = {1467, 1468}, talent = false, charges = 1, class = "EVOKER", type = 7}, --Cauterizing Flame
|
||||
[365585] = {cooldown = 8, duration = 0, specs = {1467}, talent = false, charges = 1, class = "EVOKER", type = 7}, --Expunge
|
||||
[360823] = {cooldown = 8, duration = 0, specs = {1468}, talent = false, charges = 1, class = "EVOKER", type = 7}, --Naturalize
|
||||
@@ -750,6 +751,20 @@ do
|
||||
[374968] = {cooldown = 120, duration = 10, specs = {1467, 1468}, talent = false, charges = 1, class = "EVOKER", type = 5}, --Time Spiral
|
||||
[374227] = {cooldown = 120, duration = 8, specs = {1467, 1468}, talent = false, charges = 1, class = "EVOKER", type = 4}, --Zephyr
|
||||
[360806] = {cooldown = 15, duration = 20, specs = {1467, 1468}, talent = false, charges = 1, class = "EVOKER", type = 8}, --Sleep Walk
|
||||
|
||||
[360827] = {cooldown = 30, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 3}, --Blistering Scales
|
||||
[395152] = {cooldown = 30, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 1}, --Ebon Might
|
||||
--[395160] = {cooldown = 0, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 0}, --Eruption
|
||||
[396286] = {cooldown = 40, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 1}, --Upheaval
|
||||
--[403208] = {cooldown = 0, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 0}, --Draconic Attunements
|
||||
--[403264] = {cooldown = 3, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 0}, --Black Attunement
|
||||
--[403265] = {cooldown = 3, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 0}, --Bronze Attunement
|
||||
[403631] = {cooldown = 120, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 1}, --Breath of Eons
|
||||
[404977] = {cooldown = 180, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 1}, --Time Skip
|
||||
[406732] = {cooldown = 120, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 3}, --Spatial Paradox
|
||||
[408233] = {cooldown = 60, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 5}, --Bestow Weyrnstone
|
||||
[409311] = {cooldown = 12, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 1}, --Prescience
|
||||
--[412710] = {cooldown = 0, duration = 0, specs = {1473}, talent = false, charges = 1, class = "EVOKER", type = 0}, --Timelessness
|
||||
}
|
||||
|
||||
--this table store all cooldowns the player currently have available
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
--test if the packager will deploy to wago
|
||||
--https://github.com/LuaLS/lua-language-server/wiki/Annotations#documenting-types
|
||||
|
||||
--make an option to show death in the order of newest to oldest
|
||||
|
||||
_ = nil
|
||||
_G.Details = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
|
||||
|
||||
@@ -15,12 +13,12 @@
|
||||
local addonName, Details222 = ...
|
||||
local version, build, date, tocversion = GetBuildInfo()
|
||||
|
||||
Details.build_counter = 11023
|
||||
Details.alpha_build_counter = 11023 --if this is higher than the regular counter, use it instead
|
||||
Details.build_counter = 11700
|
||||
Details.alpha_build_counter = 11700 --if this is higher than the regular counter, use it instead
|
||||
Details.dont_open_news = true
|
||||
Details.game_version = version
|
||||
Details.userversion = version .. " " .. Details.build_counter
|
||||
Details.realversion = 153 --core version, this is used to check API version for scripts and plugins (see alias below)
|
||||
Details.realversion = 154 --core version, this is used to check API version for scripts and plugins (see alias below)
|
||||
Details.APIVersion = Details.realversion --core version
|
||||
Details.version = Details.userversion .. " (core " .. Details.realversion .. ")" --simple stirng to show to players
|
||||
|
||||
|
||||
+22
-13
@@ -2663,19 +2663,28 @@ function damageClass:RefreshLine(instance, lineContainer, whichRowLine, rank, to
|
||||
|
||||
--calculate the actor dps
|
||||
if ((Details.time_type == 2 and self.grupo) or not Details:CaptureGet("damage") or instance.segmento == -1 or Details.time_type == 3) then
|
||||
if (instance.segmento == -1 and combat_time == 0) then
|
||||
local actor = currentCombat(1, self.nome)
|
||||
if (actor) then
|
||||
local combatTime = actor:Tempo()
|
||||
dps = damageTotal / combatTime
|
||||
self.last_dps = dps
|
||||
if (Details.time_type == 3 and Details.in_combat) then
|
||||
local currentDps = Details.CurrentDps.GetCurrentDps(self.serial)
|
||||
if (currentDps) then
|
||||
dps = currentDps
|
||||
end
|
||||
end
|
||||
|
||||
if (not dps) then
|
||||
if (instance.segmento == -1 and combat_time == 0) then
|
||||
local actor = currentCombat(1, self.nome)
|
||||
if (actor) then
|
||||
local combatTime = actor:Tempo()
|
||||
dps = damageTotal / combatTime
|
||||
self.last_dps = dps
|
||||
else
|
||||
dps = damageTotal / combat_time
|
||||
self.last_dps = dps
|
||||
end
|
||||
else
|
||||
dps = damageTotal / combat_time
|
||||
self.last_dps = dps
|
||||
end
|
||||
else
|
||||
dps = damageTotal / combat_time
|
||||
self.last_dps = dps
|
||||
end
|
||||
else
|
||||
if (not self.on_hold) then
|
||||
@@ -3500,7 +3509,7 @@ function damageClass:ToolTip_DamageDone (instancia, numero, barra, keydown)
|
||||
local timeInCombat = 0
|
||||
if (Details.time_type == 1 or not self.grupo) then
|
||||
timeInCombat = petActorObject:Tempo()
|
||||
elseif (Details.time_type == 2) then
|
||||
elseif (Details.time_type == 2 or Details.time_type == 3) then
|
||||
timeInCombat = petActorObject:GetCombatTime()
|
||||
end
|
||||
|
||||
@@ -4721,7 +4730,7 @@ function damageClass:MontaInfoDamageDone() --I guess this fills the list of spel
|
||||
local actorCombatTime
|
||||
if (Details.time_type == 1 or not actorObject.grupo) then
|
||||
actorCombatTime = actorObject:Tempo()
|
||||
elseif (Details.time_type == 2) then
|
||||
elseif (Details.time_type == 2 or Details.time_type == 3) then
|
||||
actorCombatTime = breakdownWindowFrame.instancia.showing:GetCombatTime()
|
||||
end
|
||||
|
||||
@@ -5700,7 +5709,7 @@ function damageClass:MontaDetalhesDamageDone (spellId, spellLine, instance) --th
|
||||
if (Details.time_type == 1 or not self.grupo) then
|
||||
meu_tempo = self:Tempo()
|
||||
|
||||
elseif (Details.time_type == 2) then
|
||||
elseif (Details.time_type == 2 or Details.time_type == 3) then
|
||||
meu_tempo = breakdownWindowFrame.instancia.showing:GetCombatTime()
|
||||
end
|
||||
|
||||
@@ -6266,7 +6275,7 @@ function damageClass:MontaTooltipAlvos (thisLine, index, instancia) --~deprecate
|
||||
local meu_tempo
|
||||
if (Details.time_type == 1 or not self.grupo) then
|
||||
meu_tempo = self:Tempo()
|
||||
elseif (Details.time_type == 2) then
|
||||
elseif (Details.time_type == 2 or Details.time_type == 3) then
|
||||
meu_tempo = breakdownWindowFrame.instancia.showing:GetCombatTime()
|
||||
end
|
||||
|
||||
|
||||
+165
-38
@@ -170,6 +170,24 @@
|
||||
[406785] = true, --invigorating spore cloud
|
||||
}
|
||||
|
||||
--list of buffs given by another player but should be considered as a self buff
|
||||
local buffs_makeyourown = {
|
||||
[395152] = true, --ebon might (evoker 10.1.5)
|
||||
[410089] = true, --prescience (evoker 10.1.5)
|
||||
}
|
||||
|
||||
---@class evokerinfo : table
|
||||
---@field key1 serial
|
||||
---@field key2 actorname
|
||||
---@field key3 controlflags
|
||||
---@field key4 valueamount
|
||||
|
||||
--store all information about augmentation evokers ~roskash
|
||||
local augmentation_cache = {
|
||||
ebon_might = {},
|
||||
prescience = {},
|
||||
}
|
||||
|
||||
local empower_cache = {}
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -1181,17 +1199,57 @@
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--amount add ~roskash
|
||||
if (Details222.Roskash[sourceSerial]) then
|
||||
local rSourceSerial, rSourceName, rSourceFlags = unpack(Details222.Roskash[sourceSerial])
|
||||
local roskashActor = damage_cache[rSourceSerial]
|
||||
--amount add
|
||||
--~roskash - augmentation evoker damage buff
|
||||
if (augmentation_cache.ebon_might[sourceSerial]) then
|
||||
---actor buffed with ebonmight -> list of evokers whose buffed
|
||||
---@type table<serial, evokerinfo[]>
|
||||
local currentlyBuffedWithEbonMight = augmentation_cache.ebon_might[sourceSerial]
|
||||
|
||||
if (not roskashActor) then
|
||||
roskashActor = _current_damage_container:PegarCombatente(rSourceSerial, rSourceName, rSourceFlags, true)
|
||||
for i, evokerInfo in ipairs(currentlyBuffedWithEbonMight) do
|
||||
---@cast evokerInfo evokerinfo
|
||||
|
||||
---@type serial, actorname, controlflags
|
||||
local evokerSourceSerial, evokerSourceName, evokerSourceFlags = unpack(evokerInfo)
|
||||
|
||||
---@type actor
|
||||
local evokerActor = damage_cache[evokerSourceSerial]
|
||||
|
||||
if (not evokerActor) then
|
||||
evokerActor = _current_damage_container:PegarCombatente(evokerSourceSerial, evokerSourceName, evokerSourceFlags, true)
|
||||
end
|
||||
|
||||
if (evokerActor) then
|
||||
if (Details.zone_type == "raid") then
|
||||
evokerActor.extra_bar = evokerActor.extra_bar + (amount * 0.1389541)
|
||||
else
|
||||
evokerActor.extra_bar = evokerActor.extra_bar + (amount * 0.1966044)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (roskashActor) then
|
||||
roskashActor.extra_bar = roskashActor.extra_bar + (amount * 0.14)
|
||||
if (spellId == 404908 and augmentation_cache.prescience[sourceSerial]) then
|
||||
---actor buffed with prescience -> list of evokers whose buffed
|
||||
---@type table<serial, evokerinfo[]>
|
||||
local currentlyBuffedWithPrescience = augmentation_cache.prescience[sourceSerial]
|
||||
|
||||
for i, evokerInfo in ipairs(currentlyBuffedWithPrescience) do
|
||||
---@cast evokerInfo evokerinfo
|
||||
|
||||
---@type serial, actorname, controlflags
|
||||
local evokerSourceSerial, evokerSourceName, evokerSourceFlags = unpack(evokerInfo)
|
||||
|
||||
---@type actor
|
||||
local evokerActor = damage_cache[evokerSourceSerial]
|
||||
|
||||
if (not evokerActor) then
|
||||
evokerActor = _current_damage_container:PegarCombatente(evokerSourceSerial, evokerSourceName, evokerSourceFlags, true)
|
||||
end
|
||||
|
||||
if (evokerActor) then
|
||||
evokerActor.extra_bar = evokerActor.extra_bar + amount
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1200,11 +1258,11 @@
|
||||
ownerActor.total = ownerActor.total + amount --e adiciona o dano ao pet
|
||||
|
||||
--add owner targets
|
||||
ownerActor.targets [targetName] = (ownerActor.targets [targetName] or 0) + amount
|
||||
ownerActor.targets[targetName] = (ownerActor.targets[targetName] or 0) + amount
|
||||
|
||||
ownerActor.last_event = _tempo
|
||||
|
||||
if (RAID_TARGET_FLAGS [targetRaidFlags]) then
|
||||
if (RAID_TARGET_FLAGS[targetRaidFlags]) then
|
||||
--add the amount done for the owner
|
||||
ownerActor.raid_targets [targetRaidFlags] = (ownerActor.raid_targets [targetRaidFlags] or 0) + amount
|
||||
end
|
||||
@@ -2460,7 +2518,20 @@
|
||||
end
|
||||
|
||||
if (spellId == 395152) then --~roskash
|
||||
Details222.Roskash[targetSerial] = {sourceSerial, sourceName, sourceFlags}
|
||||
augmentation_cache.ebon_might[targetSerial] = augmentation_cache.ebon_might[targetSerial] or {}
|
||||
---@type evokerinfo
|
||||
local evokerInfo = {sourceSerial, sourceName, sourceFlags, amount}
|
||||
table.insert(augmentation_cache.ebon_might[targetSerial], evokerInfo)
|
||||
|
||||
elseif (spellId == 410089) then
|
||||
augmentation_cache.prescience[targetSerial] = augmentation_cache.prescience[targetSerial] or {}
|
||||
---@type evokerinfo
|
||||
local evokerInfo = {sourceSerial, sourceName, sourceFlags, amount}
|
||||
table.insert(augmentation_cache.prescience[targetSerial], evokerInfo)
|
||||
end
|
||||
|
||||
if (buffs_makeyourown[spellId]) then
|
||||
sourceSerial, sourceName, sourceFlags = targetSerial, targetName, targetFlags
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -2716,7 +2787,7 @@
|
||||
end
|
||||
end
|
||||
|
||||
function parser:buff_refresh(token, time, sourceSerial, sourceName, sourceFlags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, spellschool, tipo, amount)
|
||||
function parser:buff_refresh(token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, spellschool, tipo, amount)
|
||||
if (not sourceName) then
|
||||
sourceName = names_cache[spellName]
|
||||
if (not sourceName) then
|
||||
@@ -2748,36 +2819,69 @@
|
||||
end
|
||||
|
||||
if (spellid == 395152) then --~roskash
|
||||
Details222.Roskash[alvo_serial] = {sourceSerial, sourceName, sourceFlags}
|
||||
local bFound = false
|
||||
augmentation_cache.ebon_might[targetSerial] = augmentation_cache.ebon_might[targetSerial] or {}
|
||||
|
||||
for index, evokerInfo in ipairs(augmentation_cache.ebon_might[targetSerial]) do
|
||||
if (evokerInfo[1] == sourceSerial) then
|
||||
evokerInfo[4] = amount
|
||||
bFound = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if (not bFound) then
|
||||
table.insert(augmentation_cache.ebon_might[targetSerial], {sourceSerial, sourceName, sourceFlags, amount})
|
||||
end
|
||||
|
||||
elseif (spellid == 410089) then
|
||||
local bFound = false
|
||||
augmentation_cache.prescience[targetSerial] = augmentation_cache.prescience[targetSerial] or {}
|
||||
|
||||
for index, evokerInfo in ipairs(augmentation_cache.prescience[targetSerial]) do
|
||||
if (evokerInfo[1] == sourceSerial) then
|
||||
evokerInfo[4] = amount
|
||||
bFound = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if (not bFound) then
|
||||
table.insert(augmentation_cache.prescience[targetSerial], {sourceSerial, sourceName, sourceFlags, amount})
|
||||
end
|
||||
end
|
||||
|
||||
if (sourceName == alvo_name and raid_members_cache [sourceSerial] and _in_combat) then
|
||||
--call record buffs uptime
|
||||
parser:add_buff_uptime (token, time, sourceSerial, sourceName, sourceFlags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, "BUFF_UPTIME_REFRESH")
|
||||
if (buffs_makeyourown[spellid]) then
|
||||
sourceSerial, sourceName, sourceFlags = targetSerial, targetName, targetFlags
|
||||
end
|
||||
|
||||
elseif (container_pets [sourceSerial] and container_pets [sourceSerial][2] == alvo_serial) then
|
||||
if (sourceName == targetName and raid_members_cache [sourceSerial] and _in_combat) then
|
||||
--call record buffs uptime
|
||||
parser:add_buff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "BUFF_UPTIME_REFRESH")
|
||||
|
||||
elseif (container_pets [sourceSerial] and container_pets [sourceSerial][2] == targetSerial) then
|
||||
--um pet colocando uma aura do dono
|
||||
parser:add_buff_uptime (token, time, alvo_serial, alvo_name, alvo_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, "BUFF_UPTIME_REFRESH")
|
||||
parser:add_buff_uptime (token, time, targetSerial, targetName, targetFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "BUFF_UPTIME_REFRESH")
|
||||
|
||||
elseif (buffs_to_other_players[spellid]) then
|
||||
parser:add_buff_uptime(token, time, alvo_serial, alvo_name, alvo_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, "BUFF_UPTIME_REFRESH")
|
||||
parser:add_buff_uptime(token, time, targetSerial, targetName, targetFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "BUFF_UPTIME_REFRESH")
|
||||
end
|
||||
|
||||
if (_use_shield_overheal) then
|
||||
if (shield_spellid_cache[spellid] and amount) then
|
||||
if (shield_cache[alvo_name] and shield_cache[alvo_name][spellid] and shield_cache[alvo_name][spellid][sourceName]) then
|
||||
if (shield_cache[targetName] and shield_cache[targetName][spellid] and shield_cache[targetName][spellid][sourceName]) then
|
||||
if (ignored_overheal[spellid]) then
|
||||
shield_cache[alvo_name][spellid][sourceName] = amount --refresh gives the updated amount
|
||||
shield_cache[targetName][spellid][sourceName] = amount --refresh gives the updated amount
|
||||
return
|
||||
end
|
||||
|
||||
--get the shield overheal
|
||||
local overhealAmount = shield_cache[alvo_name][spellid][sourceName]
|
||||
local overhealAmount = shield_cache[targetName][spellid][sourceName]
|
||||
--set the new shield amount
|
||||
shield_cache[alvo_name][spellid][sourceName] = amount
|
||||
shield_cache[targetName][spellid][sourceName] = amount
|
||||
|
||||
if (overhealAmount > 0) then
|
||||
return parser:heal(token, time, sourceSerial, sourceName, sourceFlags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, nil, 0, ceil (overhealAmount), 0, nil, true)
|
||||
return parser:heal(token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, nil, 0, ceil (overhealAmount), 0, nil, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2790,7 +2894,7 @@
|
||||
if (isWOTLK) then --buff refresh
|
||||
if (spellid == 27162 and false) then --Judgement Of Light
|
||||
--which player applied the judgement of light on this mob
|
||||
TBC_JudgementOfLightCache[alvo_name] = {sourceSerial, sourceName, sourceFlags}
|
||||
TBC_JudgementOfLightCache[targetName] = {sourceSerial, sourceName, sourceFlags}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2799,16 +2903,16 @@
|
||||
--buff uptime
|
||||
if (raid_members_cache [sourceSerial]) then
|
||||
--call record debuffs uptime
|
||||
parser:add_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, "DEBUFF_UPTIME_REFRESH")
|
||||
elseif (raid_members_cache [alvo_serial] and not raid_members_cache [sourceSerial]) then --alvo � da raide e o caster � inimigo
|
||||
parser:add_bad_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, spellschool, "DEBUFF_UPTIME_REFRESH", amount)
|
||||
parser:add_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "DEBUFF_UPTIME_REFRESH")
|
||||
elseif (raid_members_cache [targetSerial] and not raid_members_cache [sourceSerial]) then --alvo � da raide e o caster � inimigo
|
||||
parser:add_bad_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, spellschool, "DEBUFF_UPTIME_REFRESH", amount)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ~unbuff
|
||||
function parser:unbuff(token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, spellSchool, tipo, amount)
|
||||
function parser:unbuff(token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, spellSchool, tipo, amount)
|
||||
if (not sourceName) then
|
||||
sourceName = names_cache[spellName]
|
||||
if (not sourceName) then
|
||||
@@ -2821,7 +2925,28 @@
|
||||
|
||||
if (tipo == "BUFF") then
|
||||
if (spellid == 395152) then --~roskash
|
||||
Details222.Roskash[targetSerial] = nil
|
||||
if (augmentation_cache.ebon_might[targetSerial]) then
|
||||
for index, evokerInfo in ipairs(augmentation_cache.ebon_might[targetSerial]) do
|
||||
if (evokerInfo[1] == sourceSerial) then
|
||||
table.remove(augmentation_cache.ebon_might[targetSerial], index)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
elseif (spellid == 410089) then
|
||||
if (augmentation_cache.prescience[targetSerial]) then
|
||||
for index, evokerInfo in ipairs(augmentation_cache.prescience[targetSerial]) do
|
||||
if (evokerInfo[1] == sourceSerial) then
|
||||
table.remove(augmentation_cache.prescience[targetSerial], index)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (buffs_makeyourown[spellid]) then
|
||||
sourceSerial, sourceName, sourceFlags = targetSerial, targetName, targetFlags
|
||||
end
|
||||
|
||||
if (spellid == 272790 and cacheAnything.track_hunter_frenzy) then --hunter pet Frenzy spellid
|
||||
@@ -2835,20 +2960,20 @@
|
||||
|
||||
if (sourceName == targetName and raid_members_cache [sourceSerial] and _in_combat) then
|
||||
--call record buffs uptime
|
||||
parser:add_buff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, "BUFF_UPTIME_OUT")
|
||||
parser:add_buff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "BUFF_UPTIME_OUT")
|
||||
elseif (container_pets [sourceSerial] and container_pets [sourceSerial][2] == targetSerial) then
|
||||
--um pet colocando uma aura do dono
|
||||
parser:add_buff_uptime (token, time, targetSerial, targetName, targetFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, "BUFF_UPTIME_OUT")
|
||||
parser:add_buff_uptime (token, time, targetSerial, targetName, targetFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "BUFF_UPTIME_OUT")
|
||||
|
||||
elseif (buffs_to_other_players[spellid]) then
|
||||
parser:add_buff_uptime(token, time, targetSerial, targetName, targetFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, "BUFF_UPTIME_OUT")
|
||||
parser:add_buff_uptime(token, time, targetSerial, targetName, targetFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "BUFF_UPTIME_OUT")
|
||||
end
|
||||
|
||||
if (spellid == SPELLID_MONK_GUARD) then
|
||||
--BfA monk talent
|
||||
if (monk_guard_talent [sourceSerial]) then
|
||||
local damage_prevented = monk_guard_talent [sourceSerial] - (amount or 0)
|
||||
parser:heal (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, spellSchool, damage_prevented, ceil (amount or 0), 0, 0, true)
|
||||
parser:heal (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, spellSchool, damage_prevented, ceil (amount or 0), 0, 0, true)
|
||||
end
|
||||
|
||||
elseif (spellid == 388007 or spellid == 388011) then --buff: bleesing of the summer
|
||||
@@ -2869,7 +2994,7 @@
|
||||
--can't use monk guard since its overheal is computed inside the unbuff
|
||||
if (amount > 0 and spellid ~= SPELLID_MONK_GUARD) then
|
||||
--removing the nil at the end before true for is_shield, I have no documentation change about it, not sure the reason why it was addded
|
||||
return parser:heal (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, nil, 0, ceil (amount), 0, 0, true) --0, 0, nil, true
|
||||
return parser:heal (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, nil, 0, ceil (amount), 0, 0, true) --0, 0, nil, true
|
||||
else
|
||||
return
|
||||
end
|
||||
@@ -2928,9 +3053,9 @@
|
||||
--buff uptime
|
||||
if (raid_members_cache [sourceSerial]) then
|
||||
--call record debuffs uptime
|
||||
parser:add_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, "DEBUFF_UPTIME_OUT")
|
||||
parser:add_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, "DEBUFF_UPTIME_OUT")
|
||||
elseif (raid_members_cache [targetSerial] and not raid_members_cache [sourceSerial]) then --alvo � da raide e o caster � inimigo
|
||||
parser:add_bad_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, alvo_flags2, spellid, spellName, spellSchool, "DEBUFF_UPTIME_OUT")
|
||||
parser:add_bad_debuff_uptime (token, time, sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags, targetFlags2, spellid, spellName, spellSchool, "DEBUFF_UPTIME_OUT")
|
||||
end
|
||||
|
||||
if ((bitfield_debuffs[spellName] or bitfield_debuffs[spellid]) and targetSerial) then
|
||||
@@ -6203,7 +6328,9 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
|
||||
Details:Destroy(cacheAnything.paladin_vivaldi_blessings)
|
||||
Details:Destroy(cacheAnything.rampage_cast_amount)
|
||||
Details:Destroy(Details222.Roskash) --~roskash
|
||||
|
||||
Details:Destroy(augmentation_cache.ebon_might) --~roskash
|
||||
Details:Destroy(augmentation_cache.prescience)
|
||||
|
||||
cacheAnything.track_hunter_frenzy = Details.combat_log.track_hunter_frenzy
|
||||
|
||||
|
||||
@@ -7,9 +7,9 @@ local CreateFrame = CreateFrame
|
||||
local GetSpellInfo = GetSpellInfo
|
||||
|
||||
local createAuraTabOnBreakdownWindow = function(tab, frame)
|
||||
local scroll_line_amount = 22
|
||||
local scroll_line_amount = 25
|
||||
local scroll_width = 410
|
||||
local scrollHeight = 445
|
||||
local scrollHeight = 495
|
||||
local scroll_line_height = 19
|
||||
local text_size = 10
|
||||
|
||||
@@ -55,29 +55,34 @@ local createAuraTabOnBreakdownWindow = function(tab, frame)
|
||||
local iconTexture = line:CreateTexture("$parentIcon", "overlay")
|
||||
iconTexture:SetSize(scroll_line_height -2 , scroll_line_height - 2)
|
||||
local nameLabel = line:CreateFontString("$parentName", "overlay", "GameFontNormal")
|
||||
local uptimeLabel = line:CreateFontString("$parentName", "overlay", "GameFontNormal")
|
||||
local applyLabel = line:CreateFontString("$parentName", "overlay", "GameFontNormal")
|
||||
local refreshLabel = line:CreateFontString("$parentName", "overlay", "GameFontNormal")
|
||||
local uptimeLabel = line:CreateFontString("$parentUptime", "overlay", "GameFontNormal")
|
||||
local uptimePercentLabel = line:CreateFontString("$parentPercent", "overlay", "GameFontNormal")
|
||||
local applyLabel = line:CreateFontString("$parentApplyed", "overlay", "GameFontNormal")
|
||||
local refreshLabel = line:CreateFontString("$parentRefreshed", "overlay", "GameFontNormal")
|
||||
|
||||
detailsFramework:SetFontSize(nameLabel, text_size)
|
||||
detailsFramework:SetFontSize(uptimeLabel, text_size)
|
||||
detailsFramework:SetFontSize(uptimePercentLabel, text_size)
|
||||
detailsFramework:SetFontSize(applyLabel, text_size)
|
||||
detailsFramework:SetFontSize(refreshLabel, text_size)
|
||||
|
||||
iconTexture:SetPoint("left", line, "left", 2, 0)
|
||||
nameLabel:SetPoint("left", iconTexture, "right", 2, 0)
|
||||
uptimeLabel:SetPoint("left", line, "left", 186, 0)
|
||||
uptimePercentLabel:SetPoint("left", line, "left", 220, 0)
|
||||
applyLabel:SetPoint("left", line, "left", 276, 0)
|
||||
refreshLabel:SetPoint("left", line, "left", 322, 0)
|
||||
|
||||
line.Icon = iconTexture
|
||||
line.Name = nameLabel
|
||||
line.Uptime = uptimeLabel
|
||||
line.UptimePercent = uptimePercentLabel
|
||||
line.Apply = applyLabel
|
||||
line.Refresh = refreshLabel
|
||||
|
||||
nameLabel:SetJustifyH("left")
|
||||
uptimeLabel:SetJustifyH("left")
|
||||
uptimePercentLabel:SetJustifyH("left")
|
||||
|
||||
applyLabel:SetJustifyH("center")
|
||||
refreshLabel:SetJustifyH("center")
|
||||
@@ -102,7 +107,8 @@ local createAuraTabOnBreakdownWindow = function(tab, frame)
|
||||
line.Icon:SetTexCoord(.1, .9, .1, .9)
|
||||
|
||||
line.Name:SetText(aura[2])
|
||||
line.Uptime:SetText(detailsFramework:IntegerToTimer(aura[3]) .. "(|cFFBBAAAA" .. math.floor(aura[6]) .. "%|r)")
|
||||
line.Uptime:SetText(detailsFramework:IntegerToTimer(aura[3]))
|
||||
line.UptimePercent:SetText("|cFFBBAAAA" .. math.floor(aura[6]) .. "%|r")
|
||||
line.Apply:SetText(aura[4])
|
||||
line.Refresh:SetText(aura[5])
|
||||
|
||||
|
||||
@@ -119,10 +119,12 @@ function breakdownWindowPlayerList.CreatePlayerListFrame()
|
||||
local playerObject = data[index]
|
||||
if (playerObject) then
|
||||
local line = self:GetLine(i)
|
||||
line.playerObject = playerObject
|
||||
line.combatObject = combatObject
|
||||
line.index = index
|
||||
line:UpdateLine(topResult, encounterId, difficultyId)
|
||||
if (line) then
|
||||
line.playerObject = playerObject
|
||||
line.combatObject = combatObject
|
||||
line.index = index
|
||||
line:UpdateLine(topResult, encounterId, difficultyId)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -472,7 +474,7 @@ function breakdownWindowPlayerList.CreatePlayerListFrame()
|
||||
local updatePlayerList = function()
|
||||
refreshPluginButtons()
|
||||
|
||||
playerScroll:SetNumFramesShown(math.floor(playerScroll:GetHeight() / player_line_height))
|
||||
playerScroll:SetNumFramesShown(math.floor(playerScroll:GetHeight() / player_line_height)) --looks like it is not updating the 'totalLines' at the refresh function
|
||||
|
||||
---@type actor[]
|
||||
local playerList = breakdownWindowPlayerList.BuildPlayerList()
|
||||
|
||||
@@ -7066,8 +7066,8 @@ do
|
||||
afterUpdate()
|
||||
Details:ClearParserCache()
|
||||
end,
|
||||
name = DF:AddClassIconToText("Predict Augmentation Damage", false, "EVOKER"),
|
||||
desc = "Predict Augmentation Damage",
|
||||
name = DF:AddClassIconToText("Predict Augmentation Buffs", false, "EVOKER"),
|
||||
desc = "Calculate how much the Augmentation Evoker are buffing other players",
|
||||
boxfirst = true,
|
||||
},
|
||||
|
||||
|
||||
@@ -1153,7 +1153,7 @@ local default_player_data = {
|
||||
merge_gemstones_1007 = false,
|
||||
merge_critical_heals = false,
|
||||
evoker_calc_damage = false,
|
||||
evoker_show_realtimedps = true,
|
||||
evoker_show_realtimedps = false,
|
||||
},
|
||||
|
||||
--this is used by the new data capture for charts
|
||||
|
||||
@@ -2524,191 +2524,6 @@ local addonName, Details222 = ...
|
||||
})
|
||||
|
||||
|
||||
_detalhes:InstallSkin ("10 Years Anniversary", {
|
||||
file = [[Interface\AddOns\Details\images\skins\ten_years_skin.tga]],
|
||||
author = "Details!",
|
||||
version = "1.0",
|
||||
site = "unknown",
|
||||
desc = "based on AddonSkins for ElvUI, this skin has opaque title bar and background.",
|
||||
no_cache = true,
|
||||
|
||||
--general
|
||||
can_change_alpha_head = true,
|
||||
|
||||
--icon anchors
|
||||
icon_anchor_main = {-4, -5},
|
||||
icon_anchor_plugins = {-7, -13},
|
||||
icon_plugins_size = {19, 18},
|
||||
|
||||
--micro frames
|
||||
micro_frames = {
|
||||
color = {0.525490, 0.525490, 0.525490, 1},
|
||||
font = "FORCED SQUARE",
|
||||
size = 11,
|
||||
textymod = 1,
|
||||
},
|
||||
|
||||
-- the four anchors (for when the toolbar is on the top side)
|
||||
icon_point_anchor = {-35, -0.5},
|
||||
left_corner_anchor = {-107, 0},
|
||||
right_corner_anchor = {96, 0},
|
||||
|
||||
-- the four anchors (for when the toolbar is on the bottom side)
|
||||
icon_point_anchor_bottom = {-37, 12},
|
||||
left_corner_anchor_bottom = {-107, 0},
|
||||
right_corner_anchor_bottom = {96, 0},
|
||||
|
||||
--[[ callback function execute after all changes on the window, first argument is this skin table, second is the instance where the skin was applied --]]
|
||||
callback = function(self, instance) end,
|
||||
--[[ control_script is a OnUpdate script, it start right after all changes on the window and also after the callback --]]
|
||||
--[[ control_script_on_start run before the control_script, use it to reset values if needed --]]
|
||||
control_script_on_start = nil,
|
||||
control_script = nil,
|
||||
|
||||
--instance overwrites
|
||||
--[[ when a skin is selected, all customized properties of the window is reseted and then the overwrites are applied]]
|
||||
--[[ for the complete cprop list see the file classe_instancia_include.lua]]
|
||||
|
||||
icon_on_top = true,
|
||||
icon_ignore_alpha = true,
|
||||
icon_titletext_position = {2, 5},
|
||||
|
||||
instance_cprops = {
|
||||
menu_icons_alpha = 0.92,
|
||||
["show_statusbar"] = false,
|
||||
["color"] = {1,1,1,1},
|
||||
["menu_anchor"] = {17, 2, ["side"] = 2},
|
||||
["bg_r"] = 0.517647058823529,
|
||||
["color_buttons"] = {1,1,1,1},
|
||||
["bars_sort_direction"] = 1,
|
||||
["instance_button_anchor"] = {-27,1},
|
||||
["row_info"] = {
|
||||
["textR_outline"] = false,
|
||||
["textL_outline"] = false,
|
||||
["use_spec_icons"] = true,
|
||||
["textL_enable_custom_text"] = false,
|
||||
["icon_file"] = "Interface\\AddOns\\Details\\images\\spec_icons_normal",
|
||||
["texture_background_file"] = "Interface\\AddOns\\Details\\images\\BantoBar",
|
||||
["start_after_icon"] = true,
|
||||
["texture_highlight"] = "Interface\\FriendsFrame\\UI-FriendsList-Highlight",
|
||||
["textR_enable_custom_text"] = false,
|
||||
["textR_custom_text"] = "{data1} ({data2}, {data3}%)",
|
||||
["percent_type"] = 1,
|
||||
["fixed_text_color"] = {0.905882352941177,0.905882352941177,0.905882352941177,1},
|
||||
["space"] = {
|
||||
["right"] = -3,
|
||||
["right_noborder"] = -3,
|
||||
["left"] = 1,
|
||||
["left_noborder"] = 1,
|
||||
["between"] = 1,
|
||||
},
|
||||
["texture"] = "DGround",
|
||||
["texture_background_class_color"] = false,
|
||||
["fixed_texture_background_color"] = {0,0,0,0.295484036207199},
|
||||
["font_face_file"] = "Fonts\\ARIALN.TTF",
|
||||
["alpha"] = 1,
|
||||
["textR_class_colors"] = false,
|
||||
["models"] = {
|
||||
["upper_model"] = "Spells\\AcidBreath_SuperGreen.M2",
|
||||
["lower_model"] = "World\\EXPANSION02\\DOODADS\\Coldarra\\COLDARRALOCUS.m2",
|
||||
["upper_alpha"] = 0.5,
|
||||
["lower_enabled"] = false,
|
||||
["lower_alpha"] = 0.1,
|
||||
["upper_enabled"] = false,
|
||||
},
|
||||
["backdrop"] = {
|
||||
["enabled"] = false,
|
||||
["size"] = 5,
|
||||
["color"] = {0, 0, 0, 1},
|
||||
["texture"] = "Details BarBorder 1",
|
||||
},
|
||||
["texture_background"] = "BantoBar",
|
||||
["textL_custom_text"] = "{data1}. {data3}{data2}",
|
||||
["no_icon"] = false,
|
||||
["font_size"] = 16,
|
||||
["height"] = 21,
|
||||
["textL_class_colors"] = false,
|
||||
["font_face"] = "FORCED SQUARE",
|
||||
["texture_class_colors"] = true,
|
||||
["texture_file"] = "Interface\\AddOns\\Details\\images\\bar_background",
|
||||
["textL_show_number"] = true,
|
||||
["fixed_texture_color"] = {0.862745098039216,0.862745098039216,0.862745098039216,1},
|
||||
},
|
||||
["bars_grow_direction"] = 1,
|
||||
["menu_alpha"] = {
|
||||
["enabled"] = false,
|
||||
["onleave"] = 1,
|
||||
["ignorebars"] = false,
|
||||
["iconstoo"] = true,
|
||||
["onenter"] = 1,
|
||||
},
|
||||
["total_bar"] = {
|
||||
["enabled"] = false,
|
||||
["only_in_group"] = true,
|
||||
["icon"] = "Interface\\ICONS\\INV_Sigil_Thorim",
|
||||
["color"] = {1,1,1},
|
||||
},
|
||||
["plugins_grow_direction"] = 1,
|
||||
["strata"] = "LOW",
|
||||
["show_sidebars"] = true,
|
||||
["show_sidebars_need_resize_by"] = 1,
|
||||
["hide_in_combat_alpha"] = 0,
|
||||
["menu_icons"] = {true, true, true, true, true, false, ["space"] = -1, ["shadow"] = true},
|
||||
["desaturated_menu"] = false,
|
||||
["auto_hide_menu"] = {
|
||||
["left"] = false,
|
||||
["right"] = false,
|
||||
},
|
||||
["window_scale"] = 1.0,
|
||||
["grab_on_top"] = false,
|
||||
["menu_anchor_down"] = {16, -2},
|
||||
["statusbar_info"] = {
|
||||
["alpha"] = 1,
|
||||
["overlay"] = {1,1,1},
|
||||
},
|
||||
["hide_icon"] = true,
|
||||
["micro_displays_side"] = 2,
|
||||
["bg_alpha"] = 1,
|
||||
["auto_current"] = true,
|
||||
["toolbar_side"] = 1,
|
||||
["bg_g"] = 0.517647058823529,
|
||||
["backdrop_texture"] = "Details Ground",
|
||||
["hide_in_combat"] = false,
|
||||
["skin"] = "ElvUI Style II",
|
||||
["menu_icons_size"] = 0.850000023841858,
|
||||
["wallpaper"] = {
|
||||
["enabled"] = true,
|
||||
["width"] = 265.999979475717,
|
||||
["texcoord"] = {0.0480000019073486,0.298000011444092,0.630999984741211,0.755999984741211},
|
||||
["overlay"] = {0.999997794628143,0.999997794628143,0.999997794628143,0.799998223781586},
|
||||
["anchor"] = "all",
|
||||
["height"] = 226.000007591173,
|
||||
["alpha"] = 0.800000071525574,
|
||||
["texture"] = "Interface\\AddOns\\Details\\images\\skins\\elvui",
|
||||
},
|
||||
["stretch_button_side"] = 1,
|
||||
["attribute_text"] = {
|
||||
["enabled"] = true,
|
||||
["shadow"] = true,
|
||||
["side"] = 1,
|
||||
["enable_custom_text"] = false,
|
||||
["custom_text"] = "{name}",
|
||||
["text_face"] = "FORCED SQUARE",
|
||||
["anchor"] = {-18, 5},
|
||||
["text_color"] = {1,1,1,0.7},
|
||||
["text_size"] = 12,
|
||||
},
|
||||
["bg_b"] = 0.517647058823529,
|
||||
},
|
||||
|
||||
skin_options = {
|
||||
{spacement = true, type = "button", name = Loc ["STRING_OPTIONS_SKIN_ELVUI_BUTTON1"], func = align_right_chat, desc = Loc ["STRING_OPTIONS_SKIN_ELVUI_BUTTON1_DESC"]},
|
||||
{type = "button", name = Loc ["STRING_OPTIONS_SKIN_ELVUI_BUTTON2"], func = set_tooltip_elvui1, desc = Loc ["STRING_OPTIONS_SKIN_ELVUI_BUTTON2_DESC"]},
|
||||
{type = "button", name = Loc ["STRING_OPTIONS_SKIN_ELVUI_BUTTON3"], func = set_tooltip_elvui2, desc = Loc ["STRING_OPTIONS_SKIN_ELVUI_BUTTON3_DESC"]},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
_detalhes:InstallSkin ("Safe Skin Legion Beta", {
|
||||
file = [[Interface\AddOns\Details\images\skins\classic_skin_v1.blp]],
|
||||
author = "Details!",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.0 MiB |
Reference in New Issue
Block a user