diff --git a/Bindings.xml b/Bindings.xml index ddc3cf8a..45d73e25 100644 --- a/Bindings.xml +++ b/Bindings.xml @@ -1 +1,74 @@ - \ No newline at end of file + + + _detalhes.tabela_historico:resetar() + + + + DetailsKeyBindScrollDown() + + + + DetailsKeyBindScrollUp() + + + + _detalhes:FastReportWindow (1) + + + _detalhes:FastReportWindow (2) + + + + _detalhes:ToggleWindows() + + + + _detalhes:ToggleWindow (1) + + + _detalhes:ToggleWindow (2) + + + _detalhes:ToggleWindow (3) + + + _detalhes:ToggleWindow (4) + + + _detalhes:ToggleWindow (5) + + + + + DetailsChangeDisplayFromBookmark (1); + + + DetailsChangeDisplayFromBookmark (2); + + + DetailsChangeDisplayFromBookmark (3); + + + DetailsChangeDisplayFromBookmark (4); + + + DetailsChangeDisplayFromBookmark (5); + + + DetailsChangeDisplayFromBookmark (6); + + + DetailsChangeDisplayFromBookmark (7); + + + DetailsChangeDisplayFromBookmark (8); + + + DetailsChangeDisplayFromBookmark (9); + + + DetailsChangeDisplayFromBookmark (10); + + + + diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index 16ce70d9..5083be9b 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -1,6 +1,6 @@ -local dversion = 383 +local dversion = 384 local major, minor = "DetailsFramework-1.0", dversion local DF, oldminor = LibStub:NewLibrary(major, minor) diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua index 3279fe07..e68f5c51 100644 --- a/Libs/DF/panel.lua +++ b/Libs/DF/panel.lua @@ -6698,8 +6698,15 @@ end --]=] detailsFramework.StatusBarFunctions = { - SetTexture = function(self, texture) + SetTexture = function(self, texture, isTemporary) self.barTexture:SetTexture(texture) + if (not isTemporary) then + self.barTexture.currentTexture = texture + end + end, + + ResetTexture = function(self) + self.barTexture:SetTexture(self.barTexture.currentTexture) end, GetTexture = function(self) @@ -7285,6 +7292,7 @@ function detailsFramework:CreateHealthBar (parent, name, settingsOverride) detailsFramework:Mixin(healthBar, detailsFramework.StatusBarFunctions) healthBar:CreateTextureMask() + healthBar:SetTexture([[Interface\WorldStateFrame\WORLDSTATEFINALSCORE-HIGHLIGHT]]) --settings and hooks local settings = detailsFramework.table.copy({}, healthBarMetaFunctions.Settings) @@ -7549,6 +7557,7 @@ function detailsFramework:CreatePowerBar(parent, name, settingsOverride) detailsFramework:Mixin(powerBar, detailsFramework.StatusBarFunctions) powerBar:CreateTextureMask() + powerBar:SetTexture([[Interface\WorldStateFrame\WORLDSTATEFINALSCORE-HIGHLIGHT]]) --settings and hooks local settings = detailsFramework.table.copy({}, detailsFramework.PowerFrameFunctions.Settings) @@ -8571,6 +8580,8 @@ function detailsFramework:CreateCastBar(parent, name, settingsOverride) castBar:AddMaskTexture(castBar.background) castBar:AddMaskTexture(castBar.extraBackground) + castBar:SetTexture([[Interface\WorldStateFrame\WORLDSTATEFINALSCORE-HIGHLIGHT]]) + --settings and hooks local settings = detailsFramework.table.copy({}, detailsFramework.CastFrameFunctions.Settings) if (settingsOverride) then diff --git a/boot.lua b/boot.lua index 5e344705..55f06c9d 100644 --- a/boot.lua +++ b/boot.lua @@ -995,7 +995,7 @@ do end end - function dumpt(value) + function dumpt(value) --[[GLOBAL]] return Details:Dump(value) end @@ -1061,7 +1061,7 @@ do Details.failed_to_load = C_Timer.NewTimer(1, function() Details.Schedules.NewTimer(20, _detalhes.WelcomeMsgLogon) end) --key binds - --[=[ + --[= --header _G ["BINDING_HEADER_Details"] = "Details!" _G ["BINDING_HEADER_DETAILS_KEYBIND_SEGMENTCONTROL"] = Loc ["STRING_KEYBIND_SEGMENTCONTROL"] diff --git a/classes/container_actors.lua b/classes/container_actors.lua index ee51f486..d28f7b5c 100644 --- a/classes/container_actors.lua +++ b/classes/container_actors.lua @@ -539,7 +539,6 @@ end function container_combatentes:PegarCombatente (serial, nome, flag, criar) - --[[statistics]]-- _detalhes.statistics.container_calls = _detalhes.statistics.container_calls + 1 --if (flag and nome:find("Kastfall") and bit.band(flag, 0x2000) ~= 0) then @@ -547,7 +546,38 @@ --else --print(nome, flag) --end - + + local npcId = Details:GetNpcIdFromGuid(serial or "") + + --fix for rogue secret technich, can also be fixed by getting the time of the rogue's hit as the other hits go right after + if (npcId == 144961) then + pet_tooltip_frame:SetOwner(WorldFrame, "ANCHOR_NONE") + pet_tooltip_frame:SetHyperlink(("unit:" .. serial) or "") + + local pname = _G["DetailsPetOwnerFinderTextLeft1"] + if (pname) then + local text = pname:GetText() + if (text and type(text) == "string") then + local isInRaid = _detalhes.tabela_vigente.raid_roster[text] + if (isInRaid) then + serial = UnitGUID(text) + nome = text + flag = 0x514 + else + for playerName in text:gmatch("([^%s]+)") do + local isInRaid = _detalhes.tabela_vigente.raid_roster[playerName] + if (isInRaid) then + serial = UnitGUID(playerName) + nome = text + flag = 0x514 + break + end + end + end + end + end + end + --verifica se � um pet, se for confere se tem o nome do dono, se n�o tiver, precisa por local dono_do_pet serial = serial or "ns" diff --git a/core/gears.lua b/core/gears.lua index f37d6dcb..4b88452e 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -3105,6 +3105,13 @@ function Details:HandleRogueCombatSpecIconByGameVersion() rogueCombatCoords[2] = 64 / 512 rogueCombatCoords[3] = 384 / 512 rogueCombatCoords[4] = 448 / 512 + + --new versions of the game has a different icon for assassination + local rogueAssassinationCoords = Details.class_specs_coords[259] + rogueAssassinationCoords[1] = 64 / 512 + rogueAssassinationCoords[2] = 128 / 512 + rogueAssassinationCoords[3] = 384 / 512 + rogueAssassinationCoords[4] = 448 / 512 end end diff --git a/core/parser.lua b/core/parser.lua index 9dfd831f..87021c40 100755 --- a/core/parser.lua +++ b/core/parser.lua @@ -8,6 +8,10 @@ local isTBC = DetailsFramework.IsTBCWow() local isWOTLK = DetailsFramework.IsWotLKWow() + Details.UnregisteredTokens = {} + Details.IgnoredDamageEvents = {} + Details.RogueRaceCache = {} + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --local pointers @@ -26,7 +30,6 @@ local bitBand = bit.band local floor = math.floor local ipairs = ipairs - local pairs = pairs local type = type local ceil = math.ceil local wipe = table.wipe @@ -430,7 +433,6 @@ local is_using_spellId_override = false --is this a timewalking exp? - local is_classic_exp = DetailsFramework.IsClassicWow() local is_timewalk_exp = DetailsFramework.IsTimewalkWoW() --recording data options flags @@ -576,13 +578,17 @@ local hitLine = self.HitBy or "|cFFFFBB00First Hit|r: *?*" local targetLine = "" - for i = 1, 5 do - local boss = UnitExists("boss" .. i) - if (boss) then - local target = UnitName ("boss" .. i .. "target") - if (target and type(target) == "string") then - targetLine = " |cFFFFBB00Boss First Target|r: " .. target - break + if (Details.bossTargetAtPull) then + targetLine = " |cFFFFBB00Boss First Target|r: " .. Details.bossTargetAtPull + else + for i = 1, 5 do + local boss = UnitExists("boss" .. i) + if (boss) then + local target = UnitName ("boss" .. i .. "target") + if (target and type(target) == "string") then + targetLine = " |cFFFFBB00Boss First Target|r: " .. target + break + end end end end @@ -655,12 +661,14 @@ if (who_serial == "") then if (who_flags and bitBand(who_flags, OBJECT_TYPE_PETS) ~= 0) then --� um pet --pets must have a serial + Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"INVALID SERIAL", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected} return end end if (not alvo_name) then --no target name, just quit + Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"INVALID TARGET", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected} return elseif (not who_name) then @@ -672,19 +680,15 @@ --check if the spell isn't in the backlist if (damage_spells_to_ignore[spellid]) then + Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"SPELL IGNORED", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected} return end - if (is_classic_exp) then - spellid = spellname - - else --retail - --REMOVE ON 10.0 - if (spellid == SPELLID_KYRIAN_DRUID_DAMAGE) then - local ownerTable = druid_kyrian_bounds[who_name] - if (ownerTable) then - who_serial, who_name, who_flags = unpack(ownerTable) - end + --REMOVE ON 10.0 + if (spellid == SPELLID_KYRIAN_DRUID_DAMAGE) then + local ownerTable = druid_kyrian_bounds[who_name] + if (ownerTable) then + who_serial, who_name, who_flags = unpack(ownerTable) end end @@ -772,11 +776,6 @@ end end - --Jailer - if (_current_encounter_id == 2537) then - - end - --npcId check for ignored npcs local npcId = npcid_cache[alvo_serial] @@ -952,7 +951,7 @@ _detalhes.WhoAggroTimer:Cancel() end - _detalhes.WhoAggroTimer = C_Timer.NewTimer(0.5, who_aggro) + _detalhes.WhoAggroTimer = C_Timer.NewTimer(0.1, who_aggro) _detalhes.WhoAggroTimer.HitBy = "|cFFFFFF00First Hit|r: " .. (link or "") .. " from " .. (who_name or "Unknown") end @@ -2169,10 +2168,6 @@ return end - if (is_classic_exp) then - spellid = spellname - end - --spirit link toten if (spellid == SPELLID_SHAMAN_SLT) then return parser:SLT_healing (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, is_shield) @@ -5234,6 +5229,15 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 end function _detalhes.parser_functions:PLAYER_REGEN_DISABLED(...) + C_Timer.After(0, function() + if (UnitExists("boss1")) then + local bossTarget = UnitName("boss1target") + Details.bossTargetAtPull = bossTarget + else + Details.bossTargetAtPull = nil + end + end) + if (_detalhes.zone_type == "pvp" and not _detalhes.use_battleground_server_parser) then if (_in_combat) then _detalhes:SairDoCombate() @@ -5923,14 +5927,14 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 end) -- ~parserstart ~startparser ~cleu - - function _detalhes.OnParserEvent() + function _detalhes.OnParserEvent(...) local time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 = CombatLogGetCurrentEventInfo() local func = token_list[token] if (func) then return func(nil, token, time, who_serial, who_name, who_flags, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) else + Details.UnregisteredTokens[token] = {time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12} return end end @@ -6075,6 +6079,12 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 if (auto_regen_power_specs[_detalhes.cached_specs[UnitGUID("raid" .. i)]]) then auto_regen_cache[name] = auto_regen_power_specs[_detalhes.cached_specs[UnitGUID("raid" .. i)]] end + + local _, class = UnitClass("raid"..i) + if (class == "ROGUE") then + local _, race = UnitRace("raid"..i) + Details.RogueRaceCache[name] = race + end end elseif (IsInGroup()) then diff --git a/core/util.lua b/core/util.lua index 7b8b8fc0..13ba7e15 100644 --- a/core/util.lua +++ b/core/util.lua @@ -972,7 +972,7 @@ do -- logic OR for number values local function lor (x,y) - result = 0 + local result = 0 for p=1,8 do result = result + (((bit(x,p) or bit(y,p)) == true) and 2^(p-1) or 0) end return result end diff --git a/frames/window_aura_tracker.lua b/frames/window_aura_tracker.lua index c17d783d..0ab460db 100644 --- a/frames/window_aura_tracker.lua +++ b/frames/window_aura_tracker.lua @@ -179,6 +179,8 @@ function Details.AuraTracker.CreatePanel() DetailsFramework:ReskinSlider(debuffScroll) debuffScroll:SetPoint("topleft", buffScroll, "bottomleft", 0, -2) auraTrackerFrame.DebuffScroll = debuffScroll + + Details.AuraTracker.framesCreated = true end local cachedPoints = {} diff --git a/functions/spellcache.lua b/functions/spellcache.lua index 733f9712..a16f974a 100644 --- a/functions/spellcache.lua +++ b/functions/spellcache.lua @@ -182,6 +182,7 @@ do } else + --retail defaultSpellCustomization = { [1] = {name = Loc ["STRING_MELEE"], icon = [[Interface\ICONS\INV_Sword_04]]}, [2] = {name = Loc ["STRING_AUTOSHOT"], icon = [[Interface\ICONS\INV_Weapon_Bow_07]]}, @@ -196,28 +197,6 @@ do [196917] = {name = lightOfTheMartyr_Name .. " (" .. Loc ["STRING_DAMAGE"] .. ")", icon = lightOfTheMartyr_Icon}, [77535] = {name = GetSpellInfo(77535), icon = "Interface\\Addons\\Details\\images\\icon_blood_shield"}, - - --bfa trinkets (deprecated) - [278155] = {name = GetSpellInfo(278155) .. " (Trinket)"}, --[Twitching Tentacle of Xalzaix] - [279664] = {name = GetSpellInfo(279664) .. " (Trinket)"}, --[Vanquished Tendril of G'huun] - [278227] = {name = GetSpellInfo(278227) .. " (Trinket)"}, --[T'zane's Barkspines] - [278383] = {name = GetSpellInfo(278383) .. " (Trinket)"}, --[Azurethos' Singed Plumage] - [278862] = {name = GetSpellInfo(278862) .. " (Trinket)"}, --[Drust-Runed Icicle] - [278359] = {name = GetSpellInfo(278359) .. " (Trinket)"}, --[Doom's Hatred] - [278812] = {name = GetSpellInfo(278812) .. " (Trinket)"}, --[Lion's Grace] - [270827] = {name = GetSpellInfo(270827) .. " (Trinket)"}, --[Vessel of Skittering Shadows] - [271071] = {name = GetSpellInfo(271071) .. " (Trinket)"}, --[Conch of Dark Whispers] - [270925] = {name = GetSpellInfo(270925) .. " (Trinket)"}, --[Hadal's Nautilus] - [271115] = {name = GetSpellInfo(271115) .. " (Trinket)"}, --[Ignition Mage's Fuse] - [271462] = {name = GetSpellInfo(271462) .. " (Trinket)"}, --[Rotcrusted Voodoo Doll] - [271465] = {name = GetSpellInfo(271465) .. " (Trinket)"}, --[Rotcrusted Voodoo Doll] - [268998] = {name = GetSpellInfo(268998) .. " (Trinket)"}, --[Balefire Branch] - [271671] = {name = GetSpellInfo(271671) .. " (Trinket)"}, --[Lady Waycrest's Music Box] - [277179] = {name = GetSpellInfo(277179) .. " (Trinket)"}, --[Dread Gladiator's Medallion] - [277187] = {name = GetSpellInfo(277187) .. " (Trinket)"}, --[Dread Gladiator's Emblem] - [277181] = {name = GetSpellInfo(277181) .. " (Trinket)"}, --[Dread Gladiator's Insignia] - [277185] = {name = GetSpellInfo(277185) .. " (Trinket)"}, --[Dread Gladiator's Badge] - [278057] = {name = GetSpellInfo(278057) .. " (Trinket)"}, --[Vigilant's Bloodshaper] } end diff --git a/images/spec_icons_normal.tga b/images/spec_icons_normal.tga index ad1fc6c5..6146633a 100644 Binary files a/images/spec_icons_normal.tga and b/images/spec_icons_normal.tga differ diff --git a/images/spec_icons_normal_alpha.tga b/images/spec_icons_normal_alpha.tga index 78c688b6..e6ce70ae 100644 Binary files a/images/spec_icons_normal_alpha.tga and b/images/spec_icons_normal_alpha.tga differ diff --git a/startup.lua b/startup.lua index 58f3a457..75cafd31 100644 --- a/startup.lua +++ b/startup.lua @@ -328,7 +328,7 @@ function Details:StartMeUp() --I'll never stop! --restore cooltip anchor position, this is for the custom anchor in the screen DetailsTooltipAnchor:Restore() - --check is this is the first run + --check is this is the first run ever if (self.is_first_run) then if (#self.custom == 0) then Details:AddDefaultCustomDisplays()