- Death Knight: Epidemic, Scourge Strike and Howling Blast now has a better description on the spell name.

- Fixed snap button showing when 'Hide Resize Buttons' are enabled.
- Fixed title bar icons not hiding when 'Auto Hide Buttons' is enabled.
- Several improvements to overall data, it should be more consistent now.
- Details! now passes to identify the tank role of the player even when out of a party or raid.
- Debug helper Details:DumpTable(table) now correctly shows the key name when it isn't a string.
- Improvements done on the Bookmark config frame accessed by the options panel > display section.
- New slash command: '/details spells'.
- Statistics for Legion has been closed! You can access statistics from the orange gear > statistics.
This commit is contained in:
Tercio
2018-08-07 15:55:19 -03:00
parent 5f55045b15
commit 2fb29a497d
45 changed files with 848 additions and 679 deletions
@@ -1,93 +0,0 @@
do
local INSTANCE_EJID = 768
local INSTANCE_MAPID = 1520
local HDPATH = "Details_RaidInfo-EmeraldNightmare"
local LOADINGSCREEN_FILE, LOADINGSCREEN_COORDS = "LoadScreen_EmeraldNightmareRaid_wide", {0, 1, 228/1024, 874/1024}
local EJ_LOREBG = "UI-EJ-LOREBG-TheEmeraldNightmare"
local PORTRAIT_LIST = {
"UI-EJ-BOSS-Nythendra",
"UI-EJ-BOSS-Elerethe Renferal",
"UI-EJ-BOSS-Ilgynoth Heart of Corruption",
"UI-EJ-BOSS-Ursoc",
"UI-EJ-BOSS-Dragons of Nightmare",
"UI-EJ-BOSS-Cenarius",
"UI-EJ-BOSS-Xavius",
}
local ENCOUNTER_ID_CL = {
[1853] = 1, --Nythendra
[1876] = 2, --Elerethe Renferal
[1873] = 3, --Il'gynoth, Heart of Corruption
[1841] = 4, --Ursoc
[1854] = 5, --Dragons of Nightmare
[1877] = 6, --Cenarius
[1864] = 7, --Xavius
}
local ENCOUNTER_ID_EJ = {
1703, 1744, 1738, 1667, 1704, 1750, 1726,
[1703] = 1, --Nythendra
[1744] = 2, --Elerethe Renferal
[1738] = 3, --Il'gynoth, Heart of Corruption
[1667] = 4, --Ursoc
[1704] = 5, --Dragons of Nightmare
[1750] = 6, --Cenarius
[1726] = 7, --Xavius
}
function Details:InstallEmeraldNightmareEncounter()
--load encounter journal
EJ_SelectInstance (INSTANCE_EJID)
local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID)
--build the boss names list
local BOSSNAMES = {}
local ENCOUNTERS = {}
for i = 1, #PORTRAIT_LIST do
local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID)
if (bossName) then
tinsert (BOSSNAMES, bossName)
local encounterTable = {
boss = bossName,
portrait = "Interface\\EncounterJournal\\" .. PORTRAIT_LIST [i],
}
tinsert (ENCOUNTERS, encounterTable)
else
break
end
end
_detalhes:InstallEncounter ({
id = INSTANCE_MAPID, --map id
ej_id = INSTANCE_EJID, --encounter journal id
name = InstanceName,
icons = "Interface\\AddOns\\" .. HDPATH .. "\\boss_faces",
icon = "Interface\\AddOns\\" .. HDPATH .. "\\icon256x128",
is_raid = true,
backgroundFile = {file = "Interface\\Glues\\LOADINGSCREENS\\" .. LOADINGSCREEN_FILE, coords = LOADINGSCREEN_COORDS},
backgroundEJ = "Interface\\EncounterJournal\\" .. EJ_LOREBG,
encounter_ids = ENCOUNTER_ID_EJ,
encounter_ids2 = ENCOUNTER_ID_CL,
boss_names = BOSSNAMES,
encounters = ENCOUNTERS,
boss_ids = { --npc ids
},
})
--remove the install from the memory
Details.InstallEmeraldNightmareEncounter = nil
end
--install the encounter
Details:ScheduleTimer ("InstallEmeraldNightmareEncounter", 2)
end
@@ -1,6 +0,0 @@
## Interface: 70300
## Title: Details: Emerald Nightmare
## Notes: Plugin for Details
## RequiredDeps: Details
Details_RaidInfo-EmeraldNightmare.lua
@@ -1,102 +0,0 @@
do
local INSTANCE_EJID = 786
local INSTANCE_MAPID = 1530--?
local HDPATH = "Details_RaidInfo-Nighthold"
local LOADINGSCREEN_FILE, LOADINGSCREEN_COORDS = "LoadScreen_SuramarRaid", {0, 1, 282/1024, 872/1024}
local EJ_LOREBG = "UI-EJ-LOREBG-TheNighthold"
local PORTRAIT_LIST = {
"UI-EJ-BOSS-Skorpyron",
"UI-EJ-BOSS-Chronomatic Anomaly",
"UI-EJ-BOSS-Trilliax",
"UI-EJ-BOSS-Spellblade Aluriel",
"UI-EJ-BOSS-Tichondrius",
"UI-EJ-BOSS-Krosus",
"UI-EJ-BOSS-Botanist",
"UI-EJ-BOSS-Star Augur Etraeus",
"UI-EJ-BOSS-Grand Magistrix Elisande",
"UI-EJ-BOSS-Guldan",
}
local ENCOUNTER_ID_CL = {
[1849] = 1, --Skorpyron
[1865] = 2, --Chronomatic Anomaly
[1867] = 3, --Trilliax
[1871] = 4, --Spellblade Aluriel
[1862] = 5, --Tichondrius
[1842] = 6, --Krosus
[1886] = 7, --High Botanist Tel'arn
[1863] = 8, --Star Augur Etraeus
[1872] = 9, --Grand Magistrix Elisande
[1866] = 10, --Gul'dan
}
local ENCOUNTER_ID_EJ = {
1706, 1725, 1731, 1751, 1762, 1713, 1761, 1732, 1743, 1737,
[1706] = 1, --Skorpyron
[1725] = 2, --Chronomatic Anomaly
[1731] = 3, --Trilliax
[1751] = 4, --Spellblade Aluriel
[1762] = 5, --Tichondrius
[1713] = 6, --Krosus
[1761] = 7, --High Botanist Tel'arn
[1732] = 8, --Star Augur Etraeus
[1743] = 9, --Grand Magistrix Elisande
[1737] = 10, --Gul'dan
}
function Details:InstallNightholdEncounter()
--load encounter journal
EJ_SelectInstance (INSTANCE_EJID)
local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID)
--build the boss names list
local BOSSNAMES = {}
local ENCOUNTERS = {}
for i = 1, #PORTRAIT_LIST do
local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID)
if (bossName) then
tinsert (BOSSNAMES, bossName)
local encounterTable = {
boss = bossName,
portrait = "Interface\\EncounterJournal\\" .. PORTRAIT_LIST [i],
}
tinsert (ENCOUNTERS, encounterTable)
else
break
end
end
_detalhes:InstallEncounter ({
id = INSTANCE_MAPID, --map id
ej_id = INSTANCE_EJID, --encounter journal id
name = InstanceName,
icons = "Interface\\AddOns\\" .. HDPATH .. "\\boss_faces",
icon = "Interface\\AddOns\\" .. HDPATH .. "\\icon256x128",
is_raid = true,
backgroundFile = {file = "Interface\\Glues\\LOADINGSCREENS\\" .. LOADINGSCREEN_FILE, coords = LOADINGSCREEN_COORDS},
backgroundEJ = "Interface\\EncounterJournal\\" .. EJ_LOREBG,
encounter_ids = ENCOUNTER_ID_EJ,
encounter_ids2 = ENCOUNTER_ID_CL,
boss_names = BOSSNAMES,
encounters = ENCOUNTERS,
boss_ids = { --npc ids
},
})
--remove the install from the memory
Details.InstallNightholdEncounter = nil
end
--install the encounter
Details:ScheduleTimer ("InstallNightholdEncounter", 2)
end
@@ -1,6 +0,0 @@
## Interface: 70300
## Title: Details: Nighthold
## Notes: Plugin for Details
## RequiredDeps: Details
Details_RaidInfo-Nighthold.lua
Binary file not shown.
Binary file not shown.
@@ -1,100 +0,0 @@
do
local INSTANCE_EJID = 875
local INSTANCE_MAPID = 1676
local HDPATH = "Details_RaidInfo-TombOfSargeras"
local LOADINGSCREEN_FILE, LOADINGSCREEN_COORDS = "LoadScreen_TombOfSargerasRAID_wide", {0, 1, 285/1024, 875/1024}
local EJ_LOREBG = "UI-EJ-LOREBG-TombOfSargeras"
local PORTRAIT_LIST = {
"UI-EJ-BOSS-Goroth", --1579934, --Goroth - Goroth
"UI-EJ-BOSS-Inquisition", --1579936, --Atrigan - Demonic Inquisition
"UI-EJ-BOSS-NagaBrute", --1579940, --Harjatan - Harjatan
"UI-EJ-BOSS-HuntressKasparian", --1579935, --Huntress Kasparian - Sisters of the Moon
"UI-EJ-BOSS-MistressSasszine", --1579939, --Mistress Sassz'ine - Mistress Sassz'ine
"UI-EJ-BOSS-Veliskarr", --1579943, --Engine of Souls - The Desolate Host
"UI-EJ-BOSS-FelTitan", --1579933, --Maiden of Vigilance - Maiden of Vigilance
"UI-EJ-BOSS-FallenAvatar", --1579932, --Fallen Avatar - Fallen Avatar
"UI-EJ-BOSS-KiljaedenLegion", --1385746, --Kil'jaeden - Kil'jaeden
}
local ENCOUNTER_ID_CL = {
2032, 2048, 2036, 2050, 2037, 2054, 2052, 2038, 2051,
[2032] = 1, --Goroth
[2048] = 2, --Demonic Inquisition
[2036] = 3, --Harjatan
[2050] = 4, --Sisters of the Moon
[2037] = 5, --Mistress Sassz'ine
[2054] = 6, --The Desolate Host
[2052] = 7, --Maiden of Vigilance
[2038] = 8, --Fallen Avatar
[2051] = 9, --Kil'jaeden
}
local ENCOUNTER_ID_EJ = {
1862, 1867, 1856, 1903, 1861, 1896, 1897, 1873, 1898,
[1862] = 1, --Goroth
[1867] = 2, --Demonic Inquisition
[1856] = 3, --Harjatan
[1903] = 4, --Sisters of the Moon
[1861] = 5, --Mistress Sassz'ine
[1896] = 6, --The Desolate Host
[1897] = 7, --Maiden of Vigilance
[1873] = 8, --Fallen Avatar
[1898] = 9, --Kil'jaeden
}
function Details:InstallTombOfSargerasEncounter()
--load encounter journal
EJ_SelectInstance (INSTANCE_EJID)
local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID)
--build the boss names list
local BOSSNAMES = {}
local ENCOUNTERS = {}
for i = 1, #PORTRAIT_LIST do
local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID)
if (bossName) then
tinsert (BOSSNAMES, bossName)
local encounterTable = {
boss = bossName,
portrait = "Interface\\EncounterJournal\\" .. PORTRAIT_LIST [i],
}
tinsert (ENCOUNTERS, encounterTable)
else
break
end
end
_detalhes:InstallEncounter ({
id = INSTANCE_MAPID, --map id
ej_id = INSTANCE_EJID, --encounter journal id
name = InstanceName,
icons = "Interface\\AddOns\\" .. HDPATH .. "\\boss_faces",
icon = "Interface\\AddOns\\" .. HDPATH .. "\\icon256x128",
is_raid = true,
backgroundFile = {file = "Interface\\Glues\\LOADINGSCREENS\\" .. LOADINGSCREEN_FILE, coords = LOADINGSCREEN_COORDS},
backgroundEJ = "Interface\\EncounterJournal\\" .. EJ_LOREBG,
encounter_ids = ENCOUNTER_ID_EJ,
encounter_ids2 = ENCOUNTER_ID_CL,
boss_names = BOSSNAMES,
encounters = ENCOUNTERS,
boss_ids = { --npc ids
},
})
--remove the install from the memory
Details.InstallTombOfSargerasEncounter = nil
end
--install the encounter
Details:ScheduleTimer ("InstallTombOfSargerasEncounter", 2)
end
@@ -1,6 +0,0 @@
## Interface: 70300
## Title: Details: Tomb of Sargeras
## Notes: Plugin for Details
## RequiredDeps: Details
Details_RaidInfo-TombOfSargeras.lua
@@ -1,81 +0,0 @@
do
local INSTANCE_EJID = 861
local INSTANCE_MAPID = 1648
local HDPATH = "Details_RaidInfo-TrialOfValor"
local LOADINGSCREEN_FILE, LOADINGSCREEN_COORDS = "LoadingScreen_TrialsofValor", {0, 1, 228/1024, 874/1024}
local EJ_LOREBG = "UI-EJ-LOREBG-TrialofValor"
local PORTRAIT_LIST = {
"UI-EJ-BOSS-Odyn",
"UI-EJ-BOSS-Guarm",
"UI-EJ-BOSS-Helya"
}
local ENCOUNTER_ID_CL = {
[1958] = 1, --Odyn
[1962] = 2, --Guarm
[2008] = 3, --Helya
}
local ENCOUNTER_ID_EJ = {
1819, 1830, 1829,
[1819] = 1, --Odyn
[1830] = 2, --Guarm
[1829] = 3, --Helya
}
function Details:InstallTrialOfValorRaidInfo()
--load encounter journal
EJ_SelectInstance (INSTANCE_EJID)
local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID)
--build the boss names list
local BOSSNAMES = {}
local ENCOUNTERS = {}
for i = 1, #PORTRAIT_LIST do
local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID)
if (bossName) then
tinsert (BOSSNAMES, bossName)
local encounterTable = {
boss = bossName,
portrait = "Interface\\EncounterJournal\\" .. PORTRAIT_LIST [i],
}
tinsert (ENCOUNTERS, encounterTable)
else
break
end
end
_detalhes:InstallEncounter ({
id = INSTANCE_MAPID, --map id
ej_id = INSTANCE_EJID, --encounter journal id
name = InstanceName,
icons = "Interface\\AddOns\\" .. HDPATH .. "\\boss_faces",
icon = "Interface\\AddOns\\" .. HDPATH .. "\\icon256x128",
is_raid = true,
backgroundFile = {file = "Interface\\Glues\\LOADINGSCREENS\\" .. LOADINGSCREEN_FILE, coords = LOADINGSCREEN_COORDS},
backgroundEJ = "Interface\\EncounterJournal\\" .. EJ_LOREBG,
encounter_ids = ENCOUNTER_ID_EJ,
encounter_ids2 = ENCOUNTER_ID_CL,
boss_names = BOSSNAMES,
encounters = ENCOUNTERS,
boss_ids = { --npc ids
},
})
--remove the install from the memory
Details.InstallTrialOfValorRaidInfo = nil
end
--install the encounter
Details:ScheduleTimer ("InstallTrialOfValorRaidInfo", 2)
end
@@ -1,6 +0,0 @@
## Interface: 70300
## Title: Details: Trial Of Valor
## Notes: Plugin for Details
## RequiredDeps: Details
Details_RaidInfo-TrialOfValor.lua
Binary file not shown.
@@ -14,7 +14,7 @@ local SOF = StreamOverlay.Frame
local fw = StreamOverlay.gump
local player_name
StreamOverlay.CurrentVersion = "v1.1"
StreamOverlay.CurrentVersion = "v1.2"
--> mantaing the tables for casts, has hash indexes of numbers pointing to tables, tables inside store data of the UNIT_CAST events
--> also mantain information about the cast, if is done, interrupted, channeled, instant.
@@ -1859,7 +1859,6 @@ function StreamOverlay.OpenOptionsPanel (from_options_panel)
end
options_frame.NewProfileButton = Details.gump:CreateButton (options_frame, add_profile, 60, 18, "New Profiile", _, _, _, _, _, _, Details.gump:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE"), Details.gump:GetTemplate ("font", "OPTIONS_FONT_TEMPLATE"))
options_frame.NewProfileButton:SetPoint ("left", dropdown_profile, "right", 4, 0)
end
options_frame:SetScript ("OnHide", function()
@@ -2013,7 +2012,8 @@ function StreamOverlay:OnEvent (_, event, ...)
SOF:RegisterEvent ("PLAYER_LOGOUT")
--profile name
local pname = UnitName ("player") .. " - " .. GetRealmName()
SOF.PlayerNameProfile = UnitName ("player") .. " - " .. GetRealmName()
local pname = SOF.PlayerNameProfile
--default if is first run
local next_pname = next (Details_StreamerDB.profiles or {})
Details_StreamerDB.characters [pname] = Details_StreamerDB.characters [pname] or next_pname or pname
@@ -2031,10 +2031,8 @@ function StreamOverlay:OnEvent (_, event, ...)
end
elseif (event == "PLAYER_LOGOUT") then
local pname = UnitName ("player") .. " - " .. GetRealmName()
local pname = SOF.PlayerNameProfile
Details_StreamerDB.profiles [ Details_StreamerDB.characters [pname] ] = StreamOverlay.db
end
end