diff --git a/.gitignore b/.gitignore index e7deb61bc..c7bb7f339 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/Libs/LibOpenRaid/LibOpenRaid.lua b/Libs/LibOpenRaid/LibOpenRaid.lua index b49844262..5784797c2 100644 --- a/Libs/LibOpenRaid/LibOpenRaid.lua +++ b/Libs/LibOpenRaid/LibOpenRaid.lua @@ -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 diff --git a/Libs/LibOpenRaid/ThingsToMantain_Dragonflight.lua b/Libs/LibOpenRaid/ThingsToMantain_Dragonflight.lua index c64c61818..7de8f1364 100644 --- a/Libs/LibOpenRaid/ThingsToMantain_Dragonflight.lua +++ b/Libs/LibOpenRaid/ThingsToMantain_Dragonflight.lua @@ -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 diff --git a/boot.lua b/boot.lua index 6dc74acc3..3ff49401c 100644 --- a/boot.lua +++ b/boot.lua @@ -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 diff --git a/classes/class_damage.lua b/classes/class_damage.lua index 9b3fbfd64..b4a202c3d 100644 --- a/classes/class_damage.lua +++ b/classes/class_damage.lua @@ -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 diff --git a/core/parser.lua b/core/parser.lua index 91372b9e9..ad8b7ec8d 100755 --- a/core/parser.lua +++ b/core/parser.lua @@ -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 + local currentlyBuffedWithEbonMight = augmentation_cache.ebon_might[sourceSerial] + + for i, evokerInfo in ipairs(currentlyBuffedWithEbonMight) do + ---@cast evokerInfo evokerinfo + + ---@type serial, actorname, controlflags + local evokerSourceSerial, evokerSourceName, evokerSourceFlags = unpack(evokerInfo) - if (not roskashActor) then - roskashActor = _current_damage_container:PegarCombatente(rSourceSerial, rSourceName, rSourceFlags, true) + ---@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 (spellId == 404908 and augmentation_cache.prescience[sourceSerial]) then + ---actor buffed with prescience -> list of evokers whose buffed + ---@type table + 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 (roskashActor) then - roskashActor.extra_bar = roskashActor.extra_bar + (amount * 0.14) + 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 + if (buffs_makeyourown[spellid]) then + sourceSerial, sourceName, sourceFlags = targetSerial, targetName, targetFlags + end + + 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, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellName, "BUFF_UPTIME_REFRESH") + 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] == alvo_serial) then + 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 diff --git a/frames/window_breakdown/window_playerbreakdown_auras.lua b/frames/window_breakdown/window_playerbreakdown_auras.lua index b2371ff0c..ccd559112 100644 --- a/frames/window_breakdown/window_playerbreakdown_auras.lua +++ b/frames/window_breakdown/window_playerbreakdown_auras.lua @@ -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]) diff --git a/frames/window_breakdown/window_playerbreakdown_list.lua b/frames/window_breakdown/window_playerbreakdown_list.lua index 4a7bfb9af..ce08942e7 100644 --- a/frames/window_breakdown/window_playerbreakdown_list.lua +++ b/frames/window_breakdown/window_playerbreakdown_list.lua @@ -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() diff --git a/frames/window_options2_sections.lua b/frames/window_options2_sections.lua index 8959d9050..770c80c2e 100644 --- a/frames/window_options2_sections.lua +++ b/frames/window_options2_sections.lua @@ -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, }, diff --git a/functions/profiles.lua b/functions/profiles.lua index d9f21a54b..2954429ce 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -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 diff --git a/functions/skins.lua b/functions/skins.lua index 1c0553103..549c670ff 100644 --- a/functions/skins.lua +++ b/functions/skins.lua @@ -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!", diff --git a/images/skins/ten_years_skin.tga b/images/skins/ten_years_skin.tga deleted file mode 100644 index 71bccbbb5..000000000 Binary files a/images/skins/ten_years_skin.tga and /dev/null differ