diff --git a/.gitignore b/.gitignore index 995a5cf68..0982f5bd3 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ Libs/DF/cooltip_background.blp Libs/DF/feedback_sites.blp Libs/DF/icons.blp Libs/DF/mail.blp +plugins/Details_EncounterDetails/images/boss_icons.png diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index 1755acdf6..c0cdfc652 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -1,5 +1,5 @@ -local dversion = 149 +local dversion = 151 local major, minor = "DetailsFramework-1.0", dversion local DF, oldminor = LibStub:NewLibrary (major, minor) @@ -25,6 +25,94 @@ DF.AuthorInfo = { Discord = "https://discord.gg/AGSzAZX", } +if (not PixelUtil) then + --check if is in classic wow, if it is, build a replacement for PixelUtil + local gameVersion = GetBuildInfo() + if (gameVersion:match("%d") == "1") then + PixelUtil = { + SetWidth = function (self, width) self:SetWidth (width) end, + SetHeight = function (self, height) self:SetHeight (height) end, + SetSize = function (self, width, height) self:SetSize (width, height) end, + SetPoint = function (self, ...) self:SetPoint (...) end, + } + end +end + +function DF.IsClassicWow() + local gameVersion = GetBuildInfo() + if (gameVersion:match ("%d") == "1") then + return true + end + return false +end + +function DF.UnitGroupRolesAssigned (unitId) + if (UnitGroupRolesAssigned) then + return UnitGroupRolesAssigned (unitId) + else + --attempt to guess the role by the player spec + + --at the moment just return none + return "NONE" + end +end + +--return the specialization of the player it self +function DF.GetSpecialization() + if (GetSpecialization) then + return GetSpecialization() + end + + return nil +end + +function DF.GetSpecializationInfoByID (...) + if (GetSpecializationInfoByID) then + return GetSpecializationInfoByID (...) + end + + return nil +end + +function DF.GetSpecializationInfo (...) + if (GetSpecializationInfo) then + return GetSpecializationInfo (...) + end + + return nil +end + +function DF.GetSpecializationRole (...) + if (GetSpecializationRole) then + return GetSpecializationRole (...) + end + + return nil +end + +--build dummy encounter journal functions if they doesn't exists +--this is done for compatibility with classic and if in the future EJ_ functions are moved to C_ +DF.EncounterJournal = { + EJ_GetCurrentInstance = EJ_GetCurrentInstance or function() return nil end, + EJ_GetInstanceForMap = EJ_GetInstanceForMap or function() return nil end, + EJ_GetInstanceInfo = EJ_GetInstanceInfo or function() return nil end, + EJ_SelectInstance = EJ_SelectInstance or function() return nil end, + + EJ_GetEncounterInfoByIndex = EJ_GetEncounterInfoByIndex or function() return nil end, + EJ_GetEncounterInfo = EJ_GetEncounterInfo or function() return nil end, + EJ_SelectEncounter = EJ_SelectEncounter or function() return nil end, + + EJ_GetSectionInfo = EJ_GetSectionInfo or function() return nil end, + EJ_GetCreatureInfo = EJ_GetCreatureInfo or function() return nil end, + EJ_SetDifficulty = EJ_SetDifficulty or function() return nil end, + EJ_GetNumLoot = EJ_GetNumLoot or function() return 0 end, + EJ_GetLootInfoByIndex = EJ_GetLootInfoByIndex or function() return nil end, +} + +if (not EJ_GetCurrentInstance) then + +end + --> will always give a very random name for our widgets local init_counter = math.random (1, 1000000) @@ -2496,9 +2584,9 @@ function DF:ReskinSlider (slider, heightOffset) end function DF:GetCurrentSpec() - local specIndex = GetSpecialization() + local specIndex = DF.GetSpecialization() if (specIndex) then - local specID = GetSpecializationInfo (specIndex) + local specID = DF.GetSpecializationInfo (specIndex) if (specID and specID ~= 0) then return specID end @@ -2786,8 +2874,8 @@ DF.CLEncounterID = { function DF:GetPlayerRole() local assignedRole = UnitGroupRolesAssigned ("player") if (assignedRole == "NONE") then - local spec = GetSpecialization() - return spec and GetSpecializationRole (spec) or "NONE" + local spec = DF.GetSpecialization() + return spec and DF.GetSpecializationRole (spec) or "NONE" end return assignedRole end diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua index a256d0730..2131335e0 100644 --- a/Libs/DF/panel.lua +++ b/Libs/DF/panel.lua @@ -14,6 +14,8 @@ local _type = type --> lua local local _math_floor = math.floor --> lua local local loadstring = loadstring --> lua local +local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned + local cleanfunction = function() end local APIFrameFunctions @@ -4459,7 +4461,7 @@ function DF:CreateKeybindBox (parent, name, data, callback, width, height, line_ for index, specId in ipairs (specIds) do local button = new_keybind_frame ["SpecButton" .. index] - local spec_id, spec_name, spec_description, spec_icon, spec_background, spec_role, spec_class = GetSpecializationInfoByID (specId) + local spec_id, spec_name, spec_description, spec_icon, spec_background, spec_role, spec_class = DetailsFramework.GetSpecializationInfoByID (specId) button.text = spec_name button:SetClickFunction (switch_spec, specId) button:SetIcon (spec_icon) @@ -4584,9 +4586,9 @@ function DF:CreateKeybindBox (parent, name, data, callback, width, height, line_ if (type (dispel) == "table") then local dispelString = "\n" for specID, spellid in pairs (dispel) do - local specid, specName = GetSpecializationInfoByID (specID) + local specid, specName = DetailsFramework.GetSpecializationInfoByID (specID) local spellName = GetSpellInfo (spellid) - dispelString = dispelString .. "|cFFE5E5E5" .. specName .. "|r: |cFFFFFFFF" .. spellName .. "\n" + dispelString = dispelString .. "|cFFE5E5E5" .. (specName or "") .. "|r: |cFFFFFFFF" .. spellName .. "\n" end dispel = dispelString else @@ -4608,9 +4610,9 @@ function DF:CreateKeybindBox (parent, name, data, callback, width, height, line_ for specID, t in pairs (new_keybind_frame.Data) do if (specID ~= new_keybind_frame.EditingSpec) then local key = CopyTable (keybind) - local specid, specName = GetSpecializationInfoByID (specID) + local specid, specName = DetailsFramework.GetSpecializationInfoByID (specID) tinsert (new_keybind_frame.Data [specID], key) - DF:Msg ("Keybind copied to " .. specName) + DF:Msg ("Keybind copied to " .. (specName or "")) end end DF:QuickDispatch (callback) @@ -5653,9 +5655,9 @@ function DF:CreateLoadFilterParser (callback) elseif (event == "PLAYER_ROLES_ASSIGNED") then local assignedRole = UnitGroupRolesAssigned ("player") if (assignedRole == "NONE") then - local spec = GetSpecialization() + local spec = DetailsFramework.GetSpecialization() if (spec) then - assignedRole = GetSpecializationRole (spec) + assignedRole = DetailsFramework.GetSpecializationRole (spec) end end @@ -5705,9 +5707,9 @@ function DF:PassLoadFilters (loadTable, encounterID) end if (canCheckTalents) then - local specIndex = GetSpecialization() + local specIndex = DetailsFramework.GetSpecialization() if (specIndex) then - local specID = GetSpecializationInfo (specIndex) + local specID = DetailsFramework.GetSpecializationInfo (specIndex) if (not loadTable.spec [specID]) then return false end @@ -5767,9 +5769,9 @@ function DF:PassLoadFilters (loadTable, encounterID) if (loadTable.role.Enabled) then local assignedRole = UnitGroupRolesAssigned ("player") if (assignedRole == "NONE") then - local spec = GetSpecialization() + local spec = DetailsFramework.GetSpecialization() if (spec) then - assignedRole = GetSpecializationRole (spec) + assignedRole = DetailsFramework.GetSpecializationRole (spec) end end if (not loadTable.role [assignedRole]) then @@ -5927,7 +5929,7 @@ function DF:OpenLoadConditionsPanel (optionsTable, callback, frameOptions) --create the radio group for character spec local specs = {} for _, specID in ipairs (DF:GetClassSpecIDs (select (2, UnitClass ("player")))) do - local specID, specName, specDescription, specIcon, specBackground, specRole, specClass = GetSpecializationInfoByID (specID) + local specID, specName, specDescription, specIcon, specBackground, specRole, specClass = DetailsFramework.GetSpecializationInfoByID (specID) tinsert (specs, { name = specName, set = f.OnRadioCheckboxClick, diff --git a/Libs/DF/spells.lua b/Libs/DF/spells.lua index c4b980a5b..bb1cefcec 100644 --- a/Libs/DF/spells.lua +++ b/Libs/DF/spells.lua @@ -834,8 +834,8 @@ DF.RuneIDs = { function DF:GetSpellsForEncounterFromJournal (instanceEJID, encounterEJID) - EJ_SelectInstance (instanceEJID) - local name, description, encounterID, rootSectionID, link = EJ_GetEncounterInfo (encounterEJID) --taloc (primeiro boss de Uldir) + DetailsFramework.EncounterJournal.EJ_SelectInstance (instanceEJID) + local name, description, encounterID, rootSectionID, link = DetailsFramework.EncounterJournal.EJ_GetEncounterInfo (encounterEJID) --taloc (primeiro boss de Uldir) if (not name) then print ("DetailsFramework: Encounter Info Not Found!", instanceEJID, encounterEJID) diff --git a/Libs/libs.xml b/Libs/libs.xml index 3e41efab8..fecf64dbb 100644 --- a/Libs/libs.xml +++ b/Libs/libs.xml @@ -16,6 +16,6 @@ - + diff --git a/classes/classe_custom.lua b/classes/classe_custom.lua index 46995bf0c..9156b24d4 100644 --- a/classes/classe_custom.lua +++ b/classes/classe_custom.lua @@ -1920,9 +1920,9 @@ local player local pet_attribute - local role = UnitGroupRolesAssigned ("player") - local spec = GetSpecialization() - role = spec and GetSpecializationRole (spec) or role + local role = DetailsFramework.UnitGroupRolesAssigned ("player") + local spec = DetailsFramework.GetSpecialization() + role = spec and DetailsFramework.GetSpecializationRole (spec) or role if (role == "DAMAGER") then player = combat (DETAILS_ATTRIBUTE_DAMAGE, _detalhes.playername) @@ -1980,7 +1980,7 @@ local GC = GameCooltip GC:SetOption ("YSpacingMod", 0) - local role = UnitGroupRolesAssigned ("player") + local role = DetailsFramework.UnitGroupRolesAssigned ("player") if (spell.n_dmg) then diff --git a/classes/classe_instancia.lua b/classes/classe_instancia.lua index 14114de87..50993e7fe 100644 --- a/classes/classe_instancia.lua +++ b/classes/classe_instancia.lua @@ -18,7 +18,7 @@ local _GetChannelName = GetChannelName --> wow api locals local _UnitExists = UnitExists --> wow api locals local _UnitName = UnitName --> wow api locals local _UnitIsPlayer = UnitIsPlayer --> wow api locals -local _UnitGroupRolesAssigned = UnitGroupRolesAssigned --> wow api locals +local _UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned --> wow api locals local _detalhes = _G._detalhes local gump = _detalhes.gump @@ -1284,19 +1284,6 @@ end --> setup default wallpaper new_instance.wallpaper.texture = "Interface\\AddOns\\Details\\images\\background" - --[[ 7.1.5 isn't sending the background on the 5� return value ~cleanup - local spec = GetSpecialization() - if (spec) then - local id, name, description, icon, _background, role = GetSpecializationInfo (spec) - if (_background) then - local bg = "Interface\\TALENTFRAME\\" .. _background - if (new_instance.wallpaper) then - new_instance.wallpaper.texture = bg - new_instance.wallpaper.texcoord = {0, 1, 0, 0.703125} - end - end - end - --]] --> finish return new_instance @@ -1315,19 +1302,7 @@ end new_instance:ResetInstanceConfig() --> setup default wallpaper new_instance.wallpaper.texture = "Interface\\AddOns\\Details\\images\\background" - --[[ 7.1.5 isn't sending the background on the 5� return value ~cleanup - local spec = GetSpecialization() - if (spec) then - local id, name, description, icon, _background, role = GetSpecializationInfo (spec) - if (_background) then - local bg = "Interface\\TALENTFRAME\\" .. _background - if (new_instance.wallpaper) then - new_instance.wallpaper.texture = bg - new_instance.wallpaper.texcoord = {0, 1, 0, 0.703125} - end - end - end - --]] + --> internal stuff new_instance.barras = {} --container que ir� armazenar todas as barras new_instance.barraS = {nil, nil} --de x at� x s�o as barras que est�o sendo mostradas na tela diff --git a/classes/container_combatentes.lua b/classes/container_combatentes.lua index 7284e6ea2..9297e8597 100644 --- a/classes/container_combatentes.lua +++ b/classes/container_combatentes.lua @@ -19,6 +19,7 @@ local _pairs = pairs --lua local local AddUnique = DetailsFramework.table.addunique --framework + local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned --framework ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> constants @@ -290,7 +291,7 @@ if (name == nome) then local spec = GetArenaOpponentSpec (i) if (spec) then - local id, name, description, icon, role, class = GetSpecializationInfoByID (spec) --thanks pas06 + local id, name, description, icon, role, class = DetailsFramework.GetSpecializationInfoByID (spec) --thanks pas06 novo_objeto.role = role novo_objeto.classe = class novo_objeto.enemy = true diff --git a/core/control.lua b/core/control.lua index d27724dd6..99d7b1c72 100644 --- a/core/control.lua +++ b/core/control.lua @@ -33,6 +33,8 @@ local atributo_custom = _detalhes.atributo_custom --details local local info = _detalhes.janela_info --details local + local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> constants @@ -115,7 +117,7 @@ local mapID = C_Map.GetBestMapForUnit ("player") local ejid if (mapID) then - ejid = EJ_GetInstanceForMap (mapID) + ejid = DetailsFramework.EncounterJournal.EJ_GetInstanceForMap (mapID) end if (not mapID) then @@ -123,7 +125,6 @@ return end - --local ejid = EJ_GetCurrentInstance() if (ejid == 0) then ejid = _detalhes:GetInstanceEJID() end @@ -551,9 +552,7 @@ mapID = 0 end - local ejid = EJ_GetInstanceForMap (mapID) - - --local ejid = EJ_GetCurrentInstance() + local ejid = DetailsFramework.EncounterJournal.EJ_GetInstanceForMap (mapID) if (ejid == 0) then ejid = _detalhes:GetInstanceEJID() @@ -575,7 +574,7 @@ end --> tag as a mythic dungeon segment, can be any type of segment, this tag also avoid the segment to be tagged as trash - local mythicLevel = C_ChallengeMode.GetActiveKeystoneInfo() + local mythicLevel = C_ChallengeMode and C_ChallengeMode.GetActiveKeystoneInfo() if (mythicLevel and mythicLevel >= 2) then _detalhes.tabela_vigente.is_mythic_dungeon_segment = true _detalhes.tabela_vigente.is_mythic_dungeon_run_id = _detalhes.mythic_dungeon_id @@ -1070,10 +1069,10 @@ return end local _, playerClass = UnitClass ("player") - local specIndex = GetSpecialization() + local specIndex = DetailsFramework.GetSpecialization() local playerSpecID if (specIndex) then - playerSpecID = GetSpecializationInfo (specIndex) + playerSpecID = DetailsFramework.GetSpecializationInfo (specIndex) end if (playerSpecID and playerClass) then diff --git a/core/gears.lua b/core/gears.lua index 07d55cfd8..2a52091cd 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -3,14 +3,21 @@ local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) local UnitName = UnitName local UnitGUID = UnitGUID -local UnitGroupRolesAssigned = UnitGroupRolesAssigned +local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned local select = select local floor = floor local GetNumGroupMembers = GetNumGroupMembers + local ItemUpgradeInfo = LibStub ("LibItemUpgradeInfo-1.0") -local LibGroupInSpecT = LibStub ("LibGroupInSpecT-1.1") ---local LibGroupInSpecT = false +--local LibGroupInSpecT = LibStub ("LibGroupInSpecT-1.1") --disabled due to classic wow +local ItemUpgradeInfo +local LibGroupInSpecT + +if (DetailsFramework.IsClassicWow()) then + ItemUpgradeInfo = false + LibGroupInSpecT = false +end local storageDebug = false local store_instances = _detalhes.InstancesToStoreData @@ -423,9 +430,9 @@ function _detalhes:ResetSpecCache (forced) table.wipe (_detalhes.cached_specs) if (_detalhes.track_specs) then - local my_spec = GetSpecialization() + local my_spec = DetailsFramework.GetSpecialization() if (type (my_spec) == "number") then - local spec_number = GetSpecializationInfo (my_spec) + local spec_number = DetailsFramework.GetSpecializationInfo (my_spec) if (type (spec_number) == "number") then local pguid = UnitGUID (_detalhes.playername) if (pguid) then @@ -1793,29 +1800,33 @@ function ilvl_core:CalcItemLevel (unitid, guid, shout) end end - local spec = GetInspectSpecialization (unitid) - if (spec and spec ~= 0) then - _detalhes.cached_specs [guid] = spec - end + local spec + local talents = {} --------------------------------------------------------------------------------------------------------- + if (not DetailsFramework.IsClassicWow()) then + spec = GetInspectSpecialization (unitid) + if (spec and spec ~= 0) then + _detalhes.cached_specs [guid] = spec + end - local talents = {} - for i = 1, 7 do - for o = 1, 3 do - local talentID, name, texture, selected, available = GetTalentInfo (i, o, 1, true, unitid) - if (selected) then - tinsert (talents, talentID) - break +-------------------------------------------------------------------------------------------------------- + + for i = 1, 7 do + for o = 1, 3 do + --need to review this in classic + local talentID, name, texture, selected, available = GetTalentInfo (i, o, 1, true, unitid) + if (selected) then + tinsert (talents, talentID) + break + end end end - end - if (talents [1]) then - _detalhes.cached_talents [guid] = talents - --print (UnitName (unitid), "talents:", unpack (talents)) + if (talents [1]) then + _detalhes.cached_talents [guid] = talents + --print (UnitName (unitid), "talents:", unpack (talents)) + end end - -------------------------------------------------------------------------------------------------------- if (ilvl_core.forced_inspects [guid]) then diff --git a/core/network.lua b/core/network.lua index 2071d9dba..2473f16ed 100644 --- a/core/network.lua +++ b/core/network.lua @@ -86,6 +86,12 @@ return end + if (DetailsFramework.IsClassicWow()) then + --average item level doesn't exists + --talent information is very different + return + end + --> check the player level local playerLevel = UnitLevel ("player") if (not playerLevel) then @@ -116,10 +122,10 @@ end --> get the spec ID - local spec = GetSpecialization() + local spec = DetailsFramework.GetSpecialization() local currentSpec if (spec) then - local specID = GetSpecializationInfo (spec) + local specID = DetailsFramework.GetSpecializationInfo (spec) if (specID and specID ~= 0) then currentSpec = specID end diff --git a/core/parser.lua b/core/parser.lua index 93158eff3..aceae9859 100644 --- a/core/parser.lua +++ b/core/parser.lua @@ -18,7 +18,7 @@ local _IsInRaid = IsInRaid --wow api local local _IsInGroup = IsInGroup --wow api local local _GetNumGroupMembers = GetNumGroupMembers --wow api local - local _UnitGroupRolesAssigned = UnitGroupRolesAssigned --wow api local + local _UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned local _GetTime = GetTime local _select = select local _UnitBuff = UnitBuff @@ -361,7 +361,7 @@ else local db = _detalhes.GetStorage() - local role = UnitGroupRolesAssigned ("player") + local role = _UnitGroupRolesAssigned ("player") local isDamage = (role == "DAMAGER") or (role == "TANK") --or true local bestRank, encounterTable = _detalhes.storage:GetBestFromPlayer (diff, encounterID, isDamage and "damage" or "healing", _detalhes.playername, true) @@ -4641,9 +4641,15 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 end function _detalhes.parser_functions:PLAYER_SPECIALIZATION_CHANGED() - local specIndex = GetSpecialization() + + --some parts of details! does call this function, check first for past expansions + if (DetailsFramework.IsClassicWow()) then + return + end + + local specIndex = DetailsFramework.GetSpecialization() if (specIndex) then - local specID = GetSpecializationInfo (specIndex) + local specID = DetailsFramework.GetSpecializationInfo (specIndex) if (specID and specID ~= 0) then local guid = UnitGUID ("player") if (guid) then @@ -5191,9 +5197,9 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 if (role == "TANK") then tanks_members_cache [_UnitGUID ("player")] = true else - local spec = GetSpecialization() + local spec = DetailsFramework.GetSpecialization() if (spec and spec ~= 0) then - if (GetSpecializationRole (spec) == "TANK") then + if (DetailsFramework.GetSpecializationRole (spec) == "TANK") then tanks_members_cache [_UnitGUID ("player")] = true end end diff --git a/core/plugins_statusbar.lua b/core/plugins_statusbar.lua index a415cd23c..1902ccbfa 100644 --- a/core/plugins_statusbar.lua +++ b/core/plugins_statusbar.lua @@ -18,7 +18,8 @@ local _math_floor = math.floor --> api local local _ipairs = ipairs --> api local - + local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> status bar core functions diff --git a/functions/boss.lua b/functions/boss.lua index e33993c25..eeb58eb4c 100644 --- a/functions/boss.lua +++ b/functions/boss.lua @@ -212,14 +212,14 @@ do end function _detalhes:GetEncounterInfoFromEncounterName (EJID, encountername) - EJ_SelectInstance (EJID) + DetailsFramework.EncounterJournal.EJ_SelectInstance (EJID) for i = 1, 20 do - local name = EJ_GetEncounterInfoByIndex (i, EJID) + local name = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, EJID) if (not name) then return end if (name == encountername or name:find (encountername)) then - return i, EJ_GetEncounterInfoByIndex (i, EJID) + return i, DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, EJID) end end end @@ -242,7 +242,7 @@ do end if (ejID and ejID ~= 0) then - local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = EJ_GetInstanceInfo (ejID) + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (ejID) if (name) then if (instanceType == "party") then return loreImage --bgImage @@ -292,7 +292,7 @@ do if (encounterName and ejID and ejID ~= 0) then local index, name, description, encounterID, rootSectionID, link = _detalhes:GetEncounterInfoFromEncounterName (ejID, encounterName) if (index and name and encounterID) then - local id, name, description, displayInfo, iconImage = EJ_GetCreatureInfo (1, encounterID) + local id, name, description, displayInfo, iconImage = DetailsFramework.EncounterJournal.EJ_GetCreatureInfo (1, encounterID) if (iconImage) then return iconImage end @@ -306,9 +306,14 @@ do function _detalhes:GetEncounterActorsName (EJ_EncounterID) --code snippet from wowpedia local actors = {} - local stack, encounter, _, _, curSectionID = {}, EJ_GetEncounterInfo (EJ_EncounterID) + local stack, encounter, _, _, curSectionID = {}, DetailsFramework.EncounterJournal.EJ_GetEncounterInfo (EJ_EncounterID) + + if (not curSectionID) then + return actors + end + repeat - local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = EJ_GetSectionInfo (curSectionID) + local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = DetailsFramework.EncounterJournal.EJ_GetSectionInfo (curSectionID) if (displayInfo ~= 0 and abilityIcon == "") then actors [title] = {model = displayInfo, info = description} end @@ -332,7 +337,6 @@ do end function _detalhes:GetCurrentDungeonBossListFromEJ() - --local EJ_CInstance = EJ_GetCurrentInstance() local mapID = C_Map.GetBestMapForUnit ("player") @@ -341,26 +345,26 @@ do return end - local EJ_CInstance = EJ_GetInstanceForMap(mapID) + local EJ_CInstance = DetailsFramework.EncounterJournal.EJ_GetInstanceForMap(mapID) if (EJ_CInstance and EJ_CInstance ~= 0) then if (_detalhes.encounter_dungeons [EJ_CInstance]) then return _detalhes.encounter_dungeons [EJ_CInstance] end - EJ_SelectInstance (EJ_CInstance) + DetailsFramework.EncounterJournal.EJ_SelectInstance (EJ_CInstance) - local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = EJ_GetInstanceInfo (EJ_CInstance) + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (EJ_CInstance) local boss_list = { [EJ_CInstance] = {name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link} } for i = 1, 20 do - local encounterName, description, encounterID, rootSectionID, link = EJ_GetEncounterInfoByIndex (i, EJ_CInstance) + local encounterName, description, encounterID, rootSectionID, link = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, EJ_CInstance) if (encounterName) then for o = 1, 6 do - local id, creatureName, creatureDescription, displayInfo, iconImage = EJ_GetCreatureInfo (o, encounterID) + local id, creatureName, creatureDescription, displayInfo, iconImage = DetailsFramework.EncounterJournal.EJ_GetCreatureInfo (o, encounterID) if (id) then boss_list [creatureName] = {encounterName, encounterID, creatureName, iconImage, EJ_CInstance} else diff --git a/functions/link.lua b/functions/link.lua index ca26686d7..0fe23672e 100644 --- a/functions/link.lua +++ b/functions/link.lua @@ -28,6 +28,8 @@ --templates + local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned + _detalhes:GetFramework():InstallTemplate ("button", "DETAILS_FORGE_TEXTENTRY_TEMPLATE", { backdrop = {bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}, --edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, backdropcolor = {0, 0, 0, .1}, @@ -3690,7 +3692,7 @@ if (data [7]) then local spellid = data[7]:gsub ("ej", "") spellid = tonumber (spellid) - local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = EJ_GetSectionInfo (spellid) + local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = DetailsFramework.EncounterJournal.EJ_GetSectionInfo (spellid) spellname, spellicon = title, abilityIcon else return @@ -3818,7 +3820,7 @@ if (type (spellid) == "number") then if (spellid < 0) then - local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = EJ_GetSectionInfo (abs (spellid)) + local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = DetailsFramework.EncounterJournal.EJ_GetSectionInfo (abs (spellid)) spellname, spellicon = title, abilityIcon else spellname, _, spellicon = GetSpellInfo (spellid) diff --git a/functions/profiles.lua b/functions/profiles.lua index 12c88490e..322261cc0 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -1476,12 +1476,16 @@ function _detalhes:UpdateState_CurrentMythicDungeonRun (stillOngoing, segmentID, end function _detalhes:RestoreState_CurrentMythicDungeonRun() + + --no need to check for mythic+ if the user is playing on classic wow + if (DetailsFramework.IsClassicWow()) then + return + end + local savedTable = _detalhes.mythic_dungeon_currentsaved local mythicLevel = C_ChallengeMode.GetActiveKeystoneInfo() local zoneName, _, _, _, _, _, _, currentZoneID = GetInstanceInfo() - --local ejID = EJ_GetCurrentInstance() --removed on 8.0 - local mapID = C_Map.GetBestMapForUnit ("player") if (not mapID) then @@ -1491,7 +1495,7 @@ function _detalhes:RestoreState_CurrentMythicDungeonRun() local ejID = 0 if (mapID) then - ejID = EJ_GetInstanceForMap (mapID) or 0 + ejID = DetailsFramework.EncounterJournal.EJ_GetInstanceForMap (mapID) or 0 end --> is there a saved state for the dungeon? diff --git a/functions/raidinfo.lua b/functions/raidinfo.lua index be4daf8ba..2a02fb1c5 100644 --- a/functions/raidinfo.lua +++ b/functions/raidinfo.lua @@ -33,16 +33,16 @@ do C_Timer.After (10, function() --load encounter journal - EJ_SelectInstance (INSTANCE_EJID) + DetailsFramework.EncounterJournal.EJ_SelectInstance (INSTANCE_EJID) - local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID) + local InstanceName = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (INSTANCE_EJID) --build the boss name list local BOSSNAMES = {} local ENCOUNTERS = {} for i = 1, #PORTRAIT_LIST do - local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) + local bossName = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) if (bossName) then tinsert (BOSSNAMES, bossName) local encounterTable = { @@ -134,16 +134,16 @@ do C_Timer.After (10, function() --load encounter journal - EJ_SelectInstance (INSTANCE_EJID) + DetailsFramework.EncounterJournal.EJ_SelectInstance (INSTANCE_EJID) - local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID) + local InstanceName = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (INSTANCE_EJID) --build the boss name list local BOSSNAMES = {} local ENCOUNTERS = {} for i = 1, #PORTRAIT_LIST do - local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) + local bossName = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) if (bossName) then tinsert (BOSSNAMES, bossName) local encounterTable = { @@ -242,16 +242,16 @@ do C_Timer.After (10, function() --load encounter journal - EJ_SelectInstance (INSTANCE_EJID) + DetailsFramework.EncounterJournal.EJ_SelectInstance (INSTANCE_EJID) - local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID) + local InstanceName = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (INSTANCE_EJID) --build the boss name list local BOSSNAMES = {} local ENCOUNTERS = {} for i = 1, #PORTRAIT_LIST do - local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) + local bossName = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) if (bossName) then tinsert (BOSSNAMES, bossName) local encounterTable = { @@ -350,16 +350,16 @@ do function Details:ScheduleInstallRaidDataForAntorus() --load encounter journal - EJ_SelectInstance (INSTANCE_EJID) + DetailsFramework.EncounterJournal.EJ_SelectInstance (INSTANCE_EJID) - local InstanceName = EJ_GetInstanceInfo (INSTANCE_EJID) + local InstanceName = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (INSTANCE_EJID) --build the boss name list local BOSSNAMES = {} local ENCOUNTERS = {} for i = 1, #PORTRAIT_LIST do - local bossName = EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) + local bossName = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, INSTANCE_EJID) if (bossName) then tinsert (BOSSNAMES, bossName) local encounterTable = { diff --git a/functions/slash.lua b/functions/slash.lua index 3f898567c..358b60571 100644 --- a/functions/slash.lua +++ b/functions/slash.lua @@ -423,7 +423,7 @@ function SlashCmdList.DETAILS (msg, editbox) --[[ get the EJ_ raid id local wantRaids = true -- set false to get 5-man list for i=1,1000 do - instanceID,name,description,bgImage,buttonImage,loreImage, dungeonAreaMapID, link = EJ_GetInstanceByIndex(i,wantRaids) + instanceID,name,description,bgImage,buttonImage,loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceByIndex(i,wantRaids) if not instanceID then break end DEFAULT_CHAT_FRAME:AddMessage( instanceID.." "..name ,1,0.7,0.5) end @@ -432,7 +432,7 @@ function SlashCmdList.DETAILS (msg, editbox) local iid=362 for i=1, 100 do - local name, description, encounterID, rootSectionID, link = EJ_GetEncounterInfoByIndex (i, iid) + local name, description, encounterID, rootSectionID, link = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, iid) if not encounterID then break end local msg = encounterID .. " , " .. name .. ", ".. rootSectionID.. ", "..link @@ -1156,20 +1156,20 @@ Damage Update Status: @INSTANCEDAMAGESTATUS ) elseif (msg == "ejloot") then - EJ_SelectInstance (669) -- hellfire citadel - EJ_SetDifficulty (16) + DetailsFramework.EncounterJournal.EJ_SelectInstance (669) -- hellfire citadel + DetailsFramework.EncounterJournal.EJ_SetDifficulty (16) local r = {} local total = 0 for i = 1, 100 do - local name, description, encounterID, rootSectionID, link = EJ_GetEncounterInfoByIndex (i, 669) + local name, description, encounterID, rootSectionID, link = DetailsFramework.EncounterJournal.EJ_GetEncounterInfoByIndex (i, 669) if (name) then - EJ_SelectEncounter (encounterID) - print (name, encounterID, EJ_GetNumLoot()) + DetailsFramework.EncounterJournal.EJ_SelectEncounter (encounterID) + print (name, encounterID, DetailsFramework.EncounterJournal.EJ_GetNumLoot()) - for o = 1, EJ_GetNumLoot() do - local name, icon, slot, armorType, itemID, link, encounterID = EJ_GetLootInfoByIndex (o) + for o = 1, DetailsFramework.EncounterJournal.EJ_GetNumLoot() do + local name, icon, slot, armorType, itemID, link, encounterID = DetailsFramework.EncounterJournal.EJ_GetLootInfoByIndex (o) r[slot] = r[slot] or {} tinsert (r[slot], {itemID, encounterID}) total = total + 1 @@ -1359,9 +1359,9 @@ Damage Update Status: @INSTANCEDAMAGESTATUS elseif (msg == "spec") then - local spec = GetSpecialization() + local spec = DetailsFramework.GetSpecialization() if (spec) then - local specID = GetSpecializationInfo (spec) + local specID = DetailsFramework.GetSpecializationInfo (spec) if (specID and specID ~= 0) then print ("Current SpecID: ", specID) end @@ -1478,10 +1478,10 @@ Damage Update Status: @INSTANCEDAMAGESTATUS local spellIDs = {} --uldir - EJ_SelectInstance (1031) + DetailsFramework.EncounterJournal.EJ_SelectInstance (1031) -- pega o root section id do boss - local name, description, encounterID, rootSectionID, link = EJ_GetEncounterInfo (2168) --taloc (primeiro boss de Uldir) + local name, description, encounterID, rootSectionID, link = DetailsFramework.EncounterJournal.EJ_GetEncounterInfo (2168) --taloc (primeiro boss de Uldir) --overview local sectionInfo = C_EncounterJournal.GetSectionInfo (rootSectionID) diff --git a/functions/spellcache.lua b/functions/spellcache.lua index eca0df3e5..a8a29ca0e 100644 --- a/functions/spellcache.lua +++ b/functions/spellcache.lua @@ -59,66 +59,81 @@ do lightOfTheMartyr_Name = lightOfTheMartyr_Name or "Deprecated Spell - Light of the Martyr" lightOfTheMartyr_Icon = lightOfTheMartyr_Icon or "" - local default_user_spells = { - [1] = {name = Loc ["STRING_MELEE"], icon = [[Interface\ICONS\INV_Sword_04]]}, - [2] = {name = Loc ["STRING_AUTOSHOT"], icon = [[Interface\ICONS\INV_Weapon_Bow_07]]}, - [3] = {name = Loc ["STRING_ENVIRONMENTAL_FALLING"], icon = [[Interface\ICONS\Spell_Magic_FeatherFall]]}, - [4] = {name = Loc ["STRING_ENVIRONMENTAL_DROWNING"], icon = [[Interface\ICONS\Ability_Suffocate]]}, - [5] = {name = Loc ["STRING_ENVIRONMENTAL_FATIGUE"], icon = [[Interface\ICONS\Spell_Arcane_MindMastery]]}, - [6] = {name = Loc ["STRING_ENVIRONMENTAL_FIRE"], icon = [[Interface\ICONS\INV_SummerFest_FireSpirit]]}, - [7] = {name = Loc ["STRING_ENVIRONMENTAL_LAVA"], icon = [[Interface\ICONS\Ability_Rhyolith_Volcano]]}, - [8] = {name = Loc ["STRING_ENVIRONMENTAL_SLIME"], icon = [[Interface\ICONS\Ability_Creature_Poison_02]]}, - - [196917] = {name = lightOfTheMartyr_Name .. " (" .. Loc ["STRING_DAMAGE"] .. ")", icon = lightOfTheMartyr_Icon}, - - [98021] = {name = Loc ["STRING_SPIRIT_LINK_TOTEM"]}, - - [44461] = {name = GetSpellInfo (44461) .. " (" .. Loc ["STRING_EXPLOSION"] .. ")"}, --> Living Bomb (explosion) + local default_user_spells - [59638] = {name = GetSpellInfo (59638) .. " (" .. Loc ["STRING_MIRROR_IMAGE"] .. ")"}, --> Mirror Image's Frost Bolt (mage) - [88082] = {name = GetSpellInfo (88082) .. " (" .. Loc ["STRING_MIRROR_IMAGE"] .. ")"}, --> Mirror Image's Fireball (mage) - - [94472] = {name = GetSpellInfo (94472) .. " (" .. Loc ["STRING_CRITICAL_ONLY"] .. ")"}, --> Atonement critical hit (priest) - - [33778] = {name = GetSpellInfo (33778) .. " (Bloom)"}, --lifebloom (bloom) - - [121414] = {name = GetSpellInfo (121414) .. " (Glaive #1)"}, --> glaive toss (hunter) - [120761] = {name = GetSpellInfo (120761) .. " (Glaive #2)"}, --> glaive toss (hunter) - - [212739] = {name = GetSpellInfo (212739) .. " (Main Target)"}, --DK Epidemic - [215969] = {name = GetSpellInfo (215969) .. " (AoE)"}, --DK Epidemic - - [70890] = {name = GetSpellInfo (70890) .. " (Shadow)"}, --DK Scourge Strike - [55090] = {name = GetSpellInfo (55090) .. " (Physical)"}, --DK Scourge Strike - - [49184] = {name = GetSpellInfo (49184) .. " (Main Target)"}, --DK Howling Blast - [237680] = {name = GetSpellInfo (237680) .. " (AoE)"}, --DK Howling Blast - - [228649] = {name = GetSpellInfo (228649) .. " (Passive)"}, --Monk Mistweaver Blackout kick - Passive Teachings of the Monastery - - --> bfa trinkets - [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] + if (DetailsFramework.IsClassicWow()) then + default_user_spells = { + [1] = {name = Loc ["STRING_MELEE"], icon = [[Interface\ICONS\INV_Sword_04]]}, + [2] = {name = Loc ["STRING_AUTOSHOT"], icon = [[Interface\ICONS\INV_Weapon_Bow_07]]}, + [3] = {name = Loc ["STRING_ENVIRONMENTAL_FALLING"], icon = [[Interface\ICONS\Spell_Magic_FeatherFall]]}, + [4] = {name = Loc ["STRING_ENVIRONMENTAL_DROWNING"], icon = [[Interface\ICONS\Ability_Suffocate]]}, + [5] = {name = Loc ["STRING_ENVIRONMENTAL_FATIGUE"], icon = [[Interface\ICONS\Spell_Arcane_MindMastery]]}, + [6] = {name = Loc ["STRING_ENVIRONMENTAL_FIRE"], icon = [[Interface\ICONS\INV_SummerFest_FireSpirit]]}, + [7] = {name = Loc ["STRING_ENVIRONMENTAL_LAVA"], icon = [[Interface\ICONS\Ability_Rhyolith_Volcano]]}, + [8] = {name = Loc ["STRING_ENVIRONMENTAL_SLIME"], icon = [[Interface\ICONS\Ability_Creature_Poison_02]]}, + } + else + default_user_spells = { + [1] = {name = Loc ["STRING_MELEE"], icon = [[Interface\ICONS\INV_Sword_04]]}, + [2] = {name = Loc ["STRING_AUTOSHOT"], icon = [[Interface\ICONS\INV_Weapon_Bow_07]]}, + [3] = {name = Loc ["STRING_ENVIRONMENTAL_FALLING"], icon = [[Interface\ICONS\Spell_Magic_FeatherFall]]}, + [4] = {name = Loc ["STRING_ENVIRONMENTAL_DROWNING"], icon = [[Interface\ICONS\Ability_Suffocate]]}, + [5] = {name = Loc ["STRING_ENVIRONMENTAL_FATIGUE"], icon = [[Interface\ICONS\Spell_Arcane_MindMastery]]}, + [6] = {name = Loc ["STRING_ENVIRONMENTAL_FIRE"], icon = [[Interface\ICONS\INV_SummerFest_FireSpirit]]}, + [7] = {name = Loc ["STRING_ENVIRONMENTAL_LAVA"], icon = [[Interface\ICONS\Ability_Rhyolith_Volcano]]}, + [8] = {name = Loc ["STRING_ENVIRONMENTAL_SLIME"], icon = [[Interface\ICONS\Ability_Creature_Poison_02]]}, + + [196917] = {name = lightOfTheMartyr_Name .. " (" .. Loc ["STRING_DAMAGE"] .. ")", icon = lightOfTheMartyr_Icon}, + + [98021] = {name = Loc ["STRING_SPIRIT_LINK_TOTEM"]}, + + [44461] = {name = GetSpellInfo (44461) .. " (" .. Loc ["STRING_EXPLOSION"] .. ")"}, --> Living Bomb (explosion) - } + [59638] = {name = GetSpellInfo (59638) .. " (" .. Loc ["STRING_MIRROR_IMAGE"] .. ")"}, --> Mirror Image's Frost Bolt (mage) + [88082] = {name = GetSpellInfo (88082) .. " (" .. Loc ["STRING_MIRROR_IMAGE"] .. ")"}, --> Mirror Image's Fireball (mage) + + [94472] = {name = GetSpellInfo (94472) .. " (" .. Loc ["STRING_CRITICAL_ONLY"] .. ")"}, --> Atonement critical hit (priest) + + [33778] = {name = GetSpellInfo (33778) .. " (Bloom)"}, --lifebloom (bloom) + + [121414] = {name = GetSpellInfo (121414) .. " (Glaive #1)"}, --> glaive toss (hunter) + [120761] = {name = GetSpellInfo (120761) .. " (Glaive #2)"}, --> glaive toss (hunter) + + [212739] = {name = GetSpellInfo (212739) .. " (Main Target)"}, --DK Epidemic + [215969] = {name = GetSpellInfo (215969) .. " (AoE)"}, --DK Epidemic + + [70890] = {name = GetSpellInfo (70890) .. " (Shadow)"}, --DK Scourge Strike + [55090] = {name = GetSpellInfo (55090) .. " (Physical)"}, --DK Scourge Strike + + [49184] = {name = GetSpellInfo (49184) .. " (Main Target)"}, --DK Howling Blast + [237680] = {name = GetSpellInfo (237680) .. " (AoE)"}, --DK Howling Blast + + [228649] = {name = GetSpellInfo (228649) .. " (Passive)"}, --Monk Mistweaver Blackout kick - Passive Teachings of the Monastery + + --> bfa trinkets + [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 function _detalhes:UserCustomSpellUpdate (index, name, icon) local t = _detalhes.savedCustomSpells [index] diff --git a/gumps/janela_custom.lua b/gumps/janela_custom.lua index 7d2fdc4cb..07c625244 100644 --- a/gumps/janela_custom.lua +++ b/gumps/janela_custom.lua @@ -1180,7 +1180,7 @@ GameTooltip:AddLine (button.MyObject.actor) GameTooltip:Show() - local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = EJ_GetInstanceInfo (button.MyObject.ej_id) + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (button.MyObject.ej_id) modelFrameTexture:SetTexture (bgImage) modelFrameTexture:SetTexCoord (3/512, 370/512, 5/512, 429/512) @@ -1388,7 +1388,7 @@ GameTooltip:AddLine (button.MyObject.actor) GameTooltip:Show() - local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = EJ_GetInstanceInfo (button.MyObject.ej_id) + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (button.MyObject.ej_id) modelFrameTexture:SetTexture (bgImage) modelFrameTexture:SetTexCoord (3/512, 370/512, 5/512, 429/512) diff --git a/gumps/janela_info.lua b/gumps/janela_info.lua index 5e3c2f2dc..1613f5567 100644 --- a/gumps/janela_info.lua +++ b/gumps/janela_info.lua @@ -33,12 +33,31 @@ local IconTexCoord = {5/64, 59/64, 5/64, 59/64} local CONST_BAR_HEIGHT = 20 local CONST_TARGET_HEIGHT = 18 -local PLAYER_DETAILS_WINDOW_WIDTH = 790 -local PLAYER_DETAILS_WINDOW_HEIGHT = 474 +local PLAYER_DETAILS_WINDOW_WIDTH = 890 +local PLAYER_DETAILS_WINDOW_HEIGHT = 574 local PLAYER_DETAILS_STATUSBAR_HEIGHT = 20 local PLAYER_DETAILS_STATUSBAR_ALPHA = 1 +local containerSettings = { + spells = { + width = 419, + height = 290, + point = {"TOPLEFT", DetailsPlayerDetailsWindow, "TOPLEFT", 2, -76}, + scrollHeight = 264, + }, + targets = { + width = 418, + height = 150, + point = {"BOTTOMLEFT", DetailsPlayerDetailsWindow, "BOTTOMLEFT", 2, 6 + PLAYER_DETAILS_STATUSBAR_HEIGHT}, + }, +} + +local spellInfoSettings = { + width = 430, + amount = 6, +} + ------------------------------------------------------------------------------------------------------------------------------ --self = instancia --jogador = classe_damage ou classe_heal @@ -239,7 +258,7 @@ function gump:TrocaBackgroundInfo() info.report_direita:Hide() - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do info ["right_background" .. i]:Show() end @@ -264,7 +283,7 @@ function gump:TrocaBackgroundInfo() info.bg2_sec_texture:Show() info.tipo = 2 - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do info ["right_background" .. i]:Hide() end @@ -283,7 +302,7 @@ function gump:TrocaBackgroundInfo() info.bg2_sec_texture:Show() info.tipo = 3 - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do info ["right_background" .. i]:Hide() end @@ -300,7 +319,7 @@ function gump:TrocaBackgroundInfo() info.bg2_sec_texture:Show() info.tipo = 3 - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do info ["right_background" .. i]:Hide() end @@ -329,7 +348,7 @@ function gump:TrocaBackgroundInfo() info.bg2_sec_texture:Show() info.tipo = 2 - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do info ["right_background" .. i]:Hide() end @@ -404,7 +423,7 @@ end --> esconde as 5 barras a direita na janela de info ------------------------------------------------------------------------------------------------------------------------------ function gump:HidaAllDetalheInfo() - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do gump:HidaDetalheInfo (i) end for _, barra in _ipairs (info.barras3) do @@ -532,7 +551,7 @@ function gump:CriaDetalheInfo (index) end function info:SetDetailInfoConfigs (texture, color, x, y) - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do if (texture) then info.grupos_detalhes [i].bg:SetStatusBarTexture (texture) end @@ -553,7 +572,9 @@ end function gump:SetaDetalheInfoAltura (index, xmod, ymod) local info = _detalhes.janela_info.grupos_detalhes [index] local janela = _detalhes.janela_info.container_detalhes - local altura = {-10, -63, -118, -173, -228} + + local altura = {-10, -63, -118, -173, -228, -279} + local x1 = 64 + (xmod or 0) local x2 = 00 + (ymod or 0) @@ -561,26 +582,35 @@ function gump:SetaDetalheInfoAltura (index, xmod, ymod) local background - local y = -74 - ((index-1) * 76) + local y = -74 - ((index-1) * 79.5) if (index == 1) then _detalhes.janela_info.right_background1:SetPoint ("topleft", _detalhes.janela_info, "topleft", 357 + (xmod or 0), y) background = _detalhes.janela_info.right_background1 + elseif (index == 2) then _detalhes.janela_info.right_background2:SetPoint ("topleft", _detalhes.janela_info, "topleft", 357 + (xmod or 0), y) background = _detalhes.janela_info.right_background2 + elseif (index == 3) then _detalhes.janela_info.right_background3:SetPoint ("topleft", _detalhes.janela_info, "topleft", 357 + (xmod or 0), y) background = _detalhes.janela_info.right_background3 + elseif (index == 4) then _detalhes.janela_info.right_background4:SetPoint ("topleft", _detalhes.janela_info, "topleft", 357 + (xmod or 0), y) background = _detalhes.janela_info.right_background4 + elseif (index == 5) then _detalhes.janela_info.right_background5:SetPoint ("topleft", _detalhes.janela_info, "topleft", 357 + (xmod or 0), y) background = _detalhes.janela_info.right_background5 + + elseif (index == 6) then + _detalhes.janela_info.right_background6:SetPoint ("topleft", _detalhes.janela_info, "topleft", 357 + (xmod or 0), y) + background = _detalhes.janela_info.right_background6 + end - background:SetHeight (65) + background:SetHeight (75) --3 textos da esquerda e direita local y = -3 @@ -597,7 +627,7 @@ function gump:SetaDetalheInfoAltura (index, xmod, ymod) info.bg:SetPoint ("TOPLEFT", background, "TOPLEFT", 1, -1) info.bg:SetHeight (background:GetHeight() - 2) - info.bg:SetWidth (info.bg:GetWidth() - 2) --ofcourse why not + info.bg:SetWidth (background:GetWidth()) info.bg_end:SetPoint ("LEFT", info.bg, "LEFT", info.bg:GetValue()*2.19, 0) info.bg_end:SetHeight (background:GetHeight()+2) @@ -623,14 +653,9 @@ function gump:SetaDetalheInfoTexto (index, p, arg1, arg2, arg3, arg4, arg5, arg6 info.bg:SetValue (p) info.bg:SetStatusBarColor (1, 1, 1, .5) end - - --if (index == 1) then - -- info.bg_end:Hide() - --else - info.bg_end:Show() - info.bg_end:SetPoint ("LEFT", info.bg, "LEFT", (info.bg:GetValue() * (info.bg:GetWidth()/100)) - 3, 0) -- 2.19 - --end - + + info.bg_end:Show() + info.bg_end:SetPoint ("LEFT", info.bg, "LEFT", (info.bg:GetValue() * (info.bg:GetWidth( ) / 100)) - 3, 0) -- 2.19 info.bg:Show() end @@ -679,17 +704,10 @@ end ------------------------------------------------------------------------------------------------------------------------------ local function cria_barras_detalhes() _detalhes.janela_info.grupos_detalhes = {} - - gump:CriaDetalheInfo (1) - gump:SetaDetalheInfoAltura (1) - gump:CriaDetalheInfo (2) - gump:SetaDetalheInfoAltura (2) - gump:CriaDetalheInfo (3) - gump:SetaDetalheInfoAltura (3) - gump:CriaDetalheInfo (4) - gump:SetaDetalheInfoAltura (4) - gump:CriaDetalheInfo (5) - gump:SetaDetalheInfoAltura (5) + for i = 1, spellInfoSettings.amount do + gump:CriaDetalheInfo (i) + gump:SetaDetalheInfoAltura (i) + end end @@ -1044,9 +1062,10 @@ local default_skin = function() for i, infoblock in ipairs (_detalhes.janela_info.grupos_detalhes) do infoblock.bg:SetSize (219, 47) --219 original end - local xLocation = {-85, -136, -191, -246, -301} - local heightTable = {43, 48, 48, 48, 48} - for i = 1, 5 do + local xLocation = {-85, -136, -191, -246, -301, -356} + local heightTable = {43, 48, 48, 48, 48, 48} + + for i = 1, spellInfoSettings.amount do window ["right_background" .. i]:SetPoint ("topleft", window, "topleft", 357, xLocation [i]) --357 original window ["right_background" .. i]:SetSize (220, heightTable [i]) --220 end @@ -1160,7 +1179,7 @@ local elvui_skin = function() window.bg1:SetVertexColor (0.27, 0.27, 0.27) window.bg1:SetVertTile (true) window.bg1:SetHorizTile (true) - window.bg1:SetSize (790, 454) + window.bg1:SetSize (PLAYER_DETAILS_WINDOW_WIDTH, PLAYER_DETAILS_WINDOW_HEIGHT) window:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1}) window:SetBackdropColor (1, 1, 1, 1) @@ -1234,14 +1253,15 @@ local elvui_skin = function() window.avatar:SetParent (titlebar) --bar container - window.container_barras:SetSize (419, 195) - window.container_barras:SetPoint ("TOPLEFT", window, "TOPLEFT", 2, -76) + window.container_barras:SetPoint (unpack (containerSettings.spells.point)) + window.container_barras:SetSize (containerSettings.spells.width, containerSettings.spells.height) + --target container - window.container_alvos:SetPoint ("BOTTOMLEFT", window, "BOTTOMLEFT", 2, 6 + PLAYER_DETAILS_STATUSBAR_HEIGHT) - window.container_alvos:SetSize (418, 150) + window.container_alvos:SetPoint (unpack (containerSettings.targets.point)) + window.container_alvos:SetSize (containerSettings.targets.width, containerSettings.targets.height) --texts - window.targets:SetPoint ("TOPLEFT", window, "TOPLEFT", 3, -281) + window.targets:SetPoint ("topleft", window.container_alvos, "topleft", 3, 18) window.nome:SetPoint ("TOPLEFT", window, "TOPLEFT", 105, -48) --report button @@ -1263,23 +1283,22 @@ local elvui_skin = function() window.bg2_sec_texture:SetDesaturated (true) window.bg2_sec_texture:SetAlpha (0) - --window.bg2_sec_texture:SetAlpha (0.3) - window.bg3_sec_texture:SetPoint ("topleft", window.bg2_sec_texture, "topleft", 0, 0) window.bg3_sec_texture:SetPoint ("bottomright", window.bg2_sec_texture, "bottomright", 0, 0) window.bg3_sec_texture:SetTexture (0, 0, 0, 0.3) - --the 5 spell details blocks + --the 5 spell details blocks - not working for i, infoblock in ipairs (_detalhes.janela_info.grupos_detalhes) do - infoblock.bg:SetSize (330, 47) --227 original + infoblock.bg:SetSize (330, 47) end local xLocation = {-85, -136, -191, -246, -301} - local heightTable = {43, 48, 48, 48, 47} - for i = 1, 5 do - window ["right_background" .. i]:SetPoint ("topleft", window, "topleft", 351, xLocation [i]) --451 original - window ["right_background" .. i]:SetSize (330, heightTable [i]) --230 - end + local heightTable = {50, 50, 50, 50, 50, 48} + for i = 1, spellInfoSettings.amount do + window ["right_background" .. i]:SetPoint ("topleft", window, "topleft", 351, xLocation [i]) + window ["right_background" .. i]:SetSize (spellInfoSettings.width, heightTable [i]) + + end --seta configs dos 5 blocos da direita info:SetDetailInfoConfigs ("Interface\\AddOns\\Details\\images\\bar_serenity", {1, 1, 1, 0.35}, -6 + 100, 0) @@ -1287,7 +1306,6 @@ local elvui_skin = function() window.bg1_sec_texture:SetPoint ("topleft", window.bg1, "topleft", 446, -86) window.bg1_sec_texture:SetWidth (337) window.bg1_sec_texture:SetHeight (362) - --container 3 bars local x_start = 56 @@ -1374,7 +1392,7 @@ local elvui_skin = function() window.container_barras.slider:SetBackdropColor (0, 0, 0, 0.35) window.container_barras.slider:SetBackdropBorderColor (0, 0, 0, 1) - window.container_barras.slider:Altura (164) + window.container_barras.slider:Altura (containerSettings.spells.scrollHeight) window.container_barras.slider:cimaPoint (0, 13) window.container_barras.slider:baixoPoint (0, -13) @@ -1650,7 +1668,7 @@ function gump:CriaJanelaInfo() local right_background_X = 457 local right_background_Y = {-85, -136, -191, -246, -301} - for i = 1, 5 do + for i = 1, spellInfoSettings.amount do local right_background1 = CreateFrame ("frame", "DetailsPlayerDetailsWindow_right_background" .. i, SWW) right_background1:EnableMouse (false) right_background1:SetPoint ("topleft", este_gump, "topleft", right_background_X, right_background_Y [i]) @@ -1659,42 +1677,6 @@ function gump:CriaJanelaInfo() este_gump ["right_background" .. i] = right_background1 end ---[=[ - local right_background1 = SWW:CreateTexture ("DetailsPlayerDetailsWindow_right_background1", "background") - right_background1:SetTexture ([[Interface\DialogFrame\UI-DialogBox-Background-Dark]]) - right_background1:SetPoint ("topleft", este_gump, "topleft", right_background_X, -85) - right_background1:SetSize (220, 43) - right_background1:SetAlpha (alpha_bgs) - - local right_background2 = SWW:CreateTexture ("DetailsPlayerDetailsWindow_right_background2", "background") - right_background2:SetTexture ([[Interface\DialogFrame\UI-DialogBox-Background-Dark]]) - right_background2:SetPoint ("topleft", este_gump, "topleft", right_background_X, -136) - right_background2:SetSize (220, 48) - right_background2:SetAlpha (alpha_bgs) - este_gump.right_background2 = right_background2 - - local right_background3 = SWW:CreateTexture ("DetailsPlayerDetailsWindow_right_background3", "background") - right_background3:SetTexture ([[Interface\DialogFrame\UI-DialogBox-Background-Dark]]) - right_background3:SetPoint ("topleft", este_gump, "topleft", right_background_X, -191) - right_background3:SetSize (220, 48) - right_background3:SetAlpha (alpha_bgs) - este_gump.right_background3 = right_background3 - - local right_background4 = SWW:CreateTexture ("DetailsPlayerDetailsWindow_right_background4", "background") - right_background4:SetTexture ([[Interface\DialogFrame\UI-DialogBox-Background-Dark]]) - right_background4:SetPoint ("topleft", este_gump, "topleft", right_background_X, -246) - right_background4:SetSize (220, 48) - right_background4:SetAlpha (alpha_bgs) - este_gump.right_background4 = right_background4 - - local right_background5 = SWW:CreateTexture ("DetailsPlayerDetailsWindow_right_background5", "background") - right_background5:SetTexture ([[Interface\DialogFrame\UI-DialogBox-Background-Dark]]) - right_background5:SetPoint ("topleft", este_gump, "topleft", right_background_X, -301) - right_background5:SetSize (220, 48) - right_background5:SetAlpha (alpha_bgs) - este_gump.right_background5 = right_background5 ---]=] - -- fundos especiais de friendly fire e outros este_gump.bg1_sec_texture = SWW:CreateTexture ("DetailsPlayerDetailsWindow_BG1_SEC_Texture", "BORDER") este_gump.bg1_sec_texture:SetDrawLayer ("BORDER", 4) @@ -2594,11 +2576,24 @@ function gump:CriaJanelaInfo() local auras_tab_create = function (tab, frame) local DF = _detalhes.gump - local scroll_line_amount = 17 + local scroll_line_amount = 22 local scroll_line_height = 19 - local scroll_width = 350 + local scroll_width = 410 + local scrollHeight = 445 local scroll_line_height = 19 - local text_size = 9 + local text_size = 10 + + local debuffScrollStartX = 445 + + local headerOffsetsBuffs = { + --buff label, uptime, applications, refreshes, wa + 6, 190, 290, 336, 380 + } + + local headerOffsetsDebuffs = { + --debuff label, uptime, applications, refreshes, wa + 426, 630, 729, 775, 820 + } local line_onenter = function (self) GameTooltip:SetOwner (self, "ANCHOR_TOPRIGHT") @@ -2654,9 +2649,9 @@ function gump:CriaJanelaInfo() icon:SetPoint ("left", line, "left", 2, 0) name:SetPoint ("left", icon, "right", 2, 0) uptime:SetPoint ("left", line, "left", 186, 0) - apply:SetPoint ("left", line, "left", 260, 0) - refresh:SetPoint ("left", line, "left", 290, 0) - waButton:SetPoint ("left", line, "left", 322, 0) + apply:SetPoint ("left", line, "left", 276, 0) + refresh:SetPoint ("left", line, "left", 322, 0) + waButton:SetPoint ("left", line, "left", 372, 0) line.Icon = icon line.Name = name @@ -2670,8 +2665,8 @@ function gump:CriaJanelaInfo() apply:SetJustifyH ("center") refresh:SetJustifyH ("center") - apply:SetWidth (20) - refresh:SetWidth (20) + apply:SetWidth (26) + refresh:SetWidth (26) return line end @@ -2730,24 +2725,26 @@ function gump:CriaJanelaInfo() return f end + + local buffLabel = DF:CreateLabel (frame, "Buff Name") - buffLabel:SetPoint (6, -10) + buffLabel:SetPoint (headerOffsetsBuffs[1], -10) local uptimeLabel = DF:CreateLabel (frame, "Uptime") - uptimeLabel:SetPoint (200, -10) + uptimeLabel:SetPoint (headerOffsetsBuffs[2], -10) local appliedLabel = DF:CreateLabel (frame, "A") - appliedLabel:SetPoint (270, -10) + appliedLabel:SetPoint (headerOffsetsBuffs[3], -10) create_titledesc_frame (appliedLabel.widget, "applications") local refreshedLabel = DF:CreateLabel (frame, "R") - refreshedLabel:SetPoint (301, -10) + refreshedLabel:SetPoint (headerOffsetsBuffs[4], -10) create_titledesc_frame (refreshedLabel.widget, "refreshes") local waLabel = DF:CreateLabel (frame, "WA") - waLabel:SetPoint (330, -10) + waLabel:SetPoint (headerOffsetsBuffs[5], -10) create_titledesc_frame (waLabel.widget, "create weak aura") - local buffScroll = DF:CreateScrollBox (frame, "$parentBuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, 340, scroll_line_amount, scroll_line_height) + local buffScroll = DF:CreateScrollBox (frame, "$parentBuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, scrollHeight, scroll_line_amount, scroll_line_height) buffScroll:SetPoint ("topleft", frame, "topleft", 5, -30) for i = 1, scroll_line_amount do local line = buffScroll:CreateLine (scroll_createline) @@ -2759,25 +2756,28 @@ function gump:CriaJanelaInfo() --debuff scroll --icon - name - applications - refreshes - uptime -- + local debuffLabel = DF:CreateLabel (frame, "Debuff Name") - debuffLabel:SetPoint (406, -10) + debuffLabel:SetPoint (headerOffsetsDebuffs[1], -10) local uptimeLabel2 = DF:CreateLabel (frame, "Uptime") - uptimeLabel2:SetPoint (600, -10) + uptimeLabel2:SetPoint (headerOffsetsDebuffs[2], -10) local appliedLabel2 = DF:CreateLabel (frame, "A") - appliedLabel2:SetPoint (668, -10) + appliedLabel2:SetPoint (headerOffsetsDebuffs[3], -10) create_titledesc_frame (appliedLabel2.widget, "applications") local refreshedLabel2 = DF:CreateLabel (frame, "R") - refreshedLabel2:SetPoint (699, -10) + refreshedLabel2:SetPoint (headerOffsetsDebuffs[4], -10) create_titledesc_frame (refreshedLabel2.widget, "refreshes") local waLabel2 = DF:CreateLabel (frame, "WA") - waLabel2:SetPoint (728, -10) + waLabel2:SetPoint (headerOffsetsDebuffs[5], -10) create_titledesc_frame (waLabel2.widget, "create weak aura") - local debuffScroll = DF:CreateScrollBox (frame, "$parentDebuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, 340, scroll_line_amount, scroll_line_height) - debuffScroll:SetPoint ("topleft", frame, "topleft", 405, -30) + + + local debuffScroll = DF:CreateScrollBox (frame, "$parentDebuffUptimeScroll", scroll_buff_refresh, {}, scroll_width, scrollHeight, scroll_line_amount, scroll_line_height) + debuffScroll:SetPoint ("topleft", frame, "topleft", debuffScrollStartX, -30) for i = 1, scroll_line_amount do local line = debuffScroll:CreateLine (scroll_createline) line.AuraType = "DEBUFF" @@ -4445,7 +4445,7 @@ function gump:CriaJanelaInfo() for i = 1, 5 do local bg_line1 = tooltip:CreateTexture (nil, "artwork") bg_line1:SetTexture (bg_texture) - bg_line1:SetPoint ("topleft", tooltip, "topleft", 0, -2 + (((i-1) * 12) * -1) + (y * (i-1)) + 2) --it's physics, okay? physics... + bg_line1:SetPoint ("topleft", tooltip, "topleft", 0, -2 + (((i-1) * 12) * -1) + (y * (i-1)) + 2) bg_line1:SetPoint ("topright", tooltip, "topright", -0, -2 + (((i-1) * 12) * -1) + (y * (i-1)) + 2) bg_line1:SetHeight (bg_height + 4) bg_line1:SetAlpha (bg_alpha) @@ -4755,6 +4755,7 @@ function gump:CriaJanelaInfo() width = 16, height = 14, } + _detalhes:CreatePlayerDetailsTab ("Compare", Loc ["STRING_INFO_TAB_COMPARISON"], --[1] tab name [2] localized name function (tabOBject, playerObject) --[2] condition @@ -4832,21 +4833,29 @@ function gump:CriaJanelaInfo() compare_create, --[5] oncreate iconTableCompare --icon table ) + + -- ~compare ~newcompare + -- ~compare + + + + -- ~tab ~tabs function este_gump:ShowTabs() - local amt_positive = 0 + local tabsShown = 0 + local secondRowIndex = 1 + local breakLine = 6 --th tab it'll start the second line - for index = #_detalhes.player_details_tabs, 1, -1 do + for index = 1, #_detalhes.player_details_tabs do local tab = _detalhes.player_details_tabs [index] if (tab:condition (info.jogador, info.atributo, info.sub_atributo)) then + --test if can show the tutorial for the comparison tab if (tab.tabname == "Compare") then - --_detalhes:SetTutorialCVar ("DETAILS_INFO_TUTORIAL1", false) - if (not _detalhes:GetTutorialCVar ("DETAILS_INFO_TUTORIAL1")) then _detalhes:SetTutorialCVar ("DETAILS_INFO_TUTORIAL1", true) @@ -4857,28 +4866,44 @@ function gump:CriaJanelaInfo() alert:SetPoint ("bottom", tab.widget or tab, "top", 5, 28) alert:Show() end - end tab:Show() - amt_positive = amt_positive + 1 + tabsShown = tabsShown + 1 + tab:ClearAllPoints() --get the button width local buttonTemplate = gump:GetTemplate ("button", "DETAILS_TAB_BUTTON_TEMPLATE") local buttonWidth = buttonTemplate.width + 1 - PixelUtil.SetSize (tab, buttonTemplate.width, buttonTemplate.height) - PixelUtil.SetPoint (tab, "bottomright", info, "topright", -9 - (buttonWidth * (amt_positive-1)), -72) - tab:SetAlpha (0.8) + --pixelutil might not be compatible with classic wow + if (PixelUtil) then + PixelUtil.SetSize (tab, buttonTemplate.width, buttonTemplate.height) + if (tabsShown >= breakLine) then --next row of icons + PixelUtil.SetPoint (tab, "bottomright", info, "topright", -514 + (buttonWidth * (secondRowIndex)), -50) + secondRowIndex = secondRowIndex + 1 + else + PixelUtil.SetPoint (tab, "bottomright", info, "topright", -514 + (buttonWidth * tabsShown), -72) + end + else + tab:SetSize (buttonTemplate.width, buttonTemplate.height) + if (tabsShown >= breakLine) then --next row of icons + tab:SetPoint ("bottomright", info, "topright", -514 + (buttonWidth * (secondRowIndex)), -50) + secondRowIndex = secondRowIndex + 1 + else + tab:SetPoint ("bottomright", info, "topright", -514 + (buttonWidth * tabsShown), -72) + end + end + tab:SetAlpha (0.8) else tab.frame:Hide() tab:Hide() end end - if (amt_positive < 2) then + if (tabsShown < 2) then _detalhes.player_details_tabs[1]:SetPoint ("BOTTOMLEFT", info.container_barras, "TOPLEFT", 490 - (94 * (1-0)), 1) end @@ -4942,6 +4967,9 @@ function _detalhes:CreatePlayerDetailsTab (tabname, localized_name, condition, f local overlay, textdistance, leftpadding, textheight, short_method --nil newTabButton:SetIcon (texture, width, height, "overlay", coords, overlay, textdistance, leftpadding, textheight, short_method) + if (iconSettings.desaturated) then + newTabButton.icon:SetDesaturated (true) + end end if (newTabButton.fillfunction) then diff --git a/gumps/janela_options.lua b/gumps/janela_options.lua index c57088641..92288a9a2 100644 --- a/gumps/janela_options.lua +++ b/gumps/janela_options.lua @@ -9356,16 +9356,6 @@ function window:CreateFrame9() if (value) then --> primeira vez que roda: if (not instance.wallpaper.texture) then - --[[ 7.1.5 isn't sending the background on the 5� return value ~cleanup - local spec = GetSpecialization() - if (spec) then - local id, name, description, icon, _background, role = GetSpecializationInfo (spec) - if (_background) then - instance.wallpaper.texture = "Interface\\TALENTFRAME\\".._background - end - end - instance.wallpaper.texcoord = {0, 1, 0, 0.703125} - --]] instance.wallpaper.texture = "Interface\\AddOns\\Details\\images\\background" end diff --git a/gumps/janela_principal.lua b/gumps/janela_principal.lua index 79444e7c4..595eebc33 100644 --- a/gumps/janela_principal.lua +++ b/gumps/janela_principal.lua @@ -612,7 +612,7 @@ local movement_onupdate = function (self, elapsed) show_instance_ids() instance_ids_shown = nil - if (need_show_group_guide) then + if (need_show_group_guide and not DetailsFramework.IsClassicWow()) then _detalhes.MicroButtonAlert.Text:SetText (Loc ["STRING_WINDOW1ATACH_DESC"]) _detalhes.MicroButtonAlert:SetPoint ("bottom", need_show_group_guide.baseframe, "top", 0, 30) _detalhes.MicroButtonAlert:SetHeight (320) @@ -748,10 +748,12 @@ local movement_onupdate = function (self, elapsed) instancia_alvo:SnapAlert() _detalhes.snap_alert.playing = true - _detalhes.MicroButtonAlert.Text:SetText (string.format (Loc ["STRING_ATACH_DESC"], self.instance.meu_id, instancia_alvo.meu_id)) - _detalhes.MicroButtonAlert:SetPoint ("bottom", instancia_alvo.baseframe.cabecalho.modo_selecao.widget, "top", 0, 18) - _detalhes.MicroButtonAlert:SetHeight (200) - _detalhes.MicroButtonAlert:Show() + if (not DetailsFramework.IsClassicWow()) then + _detalhes.MicroButtonAlert.Text:SetText (string.format (Loc ["STRING_ATACH_DESC"], self.instance.meu_id, instancia_alvo.meu_id)) + _detalhes.MicroButtonAlert:SetPoint ("bottom", instancia_alvo.baseframe.cabecalho.modo_selecao.widget, "top", 0, 18) + _detalhes.MicroButtonAlert:SetHeight (200) + _detalhes.MicroButtonAlert:Show() + end end end end @@ -1018,7 +1020,10 @@ local function move_janela (baseframe, iniciando, instancia, just_updating) _detalhes.snap_alert.playing = false _detalhes.snap_alert.animIn:Stop() _detalhes.snap_alert.animOut:Play() - _detalhes.MicroButtonAlert:Hide() + + if (not DetailsFramework.IsClassicWow()) then + _detalhes.MicroButtonAlert:Hide() + end if (instancia_alvo and instancia_alvo.ativa and instancia_alvo.baseframe) then instancia_alvo.h_esquerda:Stop() @@ -2179,7 +2184,7 @@ local icon_frame_on_enter = function (self) local class_icon, class_L, class_R, class_T, class_B = _detalhes:GetClassIcon (class) - local spec_id, spec_name, spec_description, spec_icon, spec_role, spec_class = GetSpecializationInfoByID (spec or 0) --thanks pas06 + local spec_id, spec_name, spec_description, spec_icon, spec_role, spec_class = DetailsFramework.GetSpecializationInfoByID (spec or 0) --thanks pas06 local spec_L, spec_R, spec_T, spec_B if (spec_id) then spec_L, spec_R, spec_T, spec_B = unpack (_detalhes.class_specs_coords [spec]) @@ -4882,15 +4887,6 @@ function _detalhes:InstanceWallpaper (texture, anchor, alpha, texcoord, width, h end if (not wallpaper.texture and not texture) then - --[[ 7.1.5 isn't sending the background on the 5� return value ~cleanup - local spec = GetSpecialization() - if (spec) then - local _, _, _, _, _background = GetSpecializationInfo (spec) - if (_background) then - texture = "Interface\\TALENTFRAME\\".._background - end - end - --]] texture = "Interface\\AddOns\\Details\\images\\background" texcoord = {0, 1, 0, 0.7} @@ -6088,7 +6084,7 @@ function _detalhes:GetSegmentInfo (index) elseif (combat.instance_type == "party") then local ej_id = combat.is_boss.ej_instance_id if (ej_id) then - local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = EJ_GetInstanceInfo (ej_id) + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (ej_id) if (bgImage) then background = bgImage background_coords = party_wallpaper_tex @@ -6359,7 +6355,7 @@ local build_segment_list = function (self, elapsed) if (index and name and encounterID) then --EJ_SelectInstance (instanceID) --creature info pode ser sempre 1, n�o usar o index do boss - local id, name, description, displayInfo, iconImage = EJ_GetCreatureInfo (1, encounterID) + local id, name, description, displayInfo, iconImage = DetailsFramework.EncounterJournal.EJ_GetCreatureInfo (1, encounterID) if (iconImage) then CoolTip:AddIcon (iconImage, 2, "top", 128, 64) end @@ -6376,7 +6372,7 @@ local build_segment_list = function (self, elapsed) else local ej_id = thisCombat.is_boss.ej_instance_id if (ej_id and ej_id ~= 0) then - local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = EJ_GetInstanceInfo (ej_id) + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (ej_id) if (name) then if (thisCombat.instance_type == "party") then CoolTip:SetWallpaper (2, bgImage, party_wallpaper_tex, party_wallpaper_color, true) @@ -6629,7 +6625,7 @@ local build_segment_list = function (self, elapsed) if (encounter_name and instanceID and instanceID ~= 0) then local index, name, description, encounterID, rootSectionID, link = _detalhes:GetEncounterInfoFromEncounterName (instanceID, encounter_name) if (index and name and encounterID) then - local id, name, description, displayInfo, iconImage = EJ_GetCreatureInfo (index, encounterID) + local id, name, description, displayInfo, iconImage = DetailsFramework.EncounterJournal.EJ_GetCreatureInfo (index, encounterID) if (iconImage) then CoolTip:AddIcon (iconImage, 2, "top", 128, 64) end @@ -6644,7 +6640,7 @@ local build_segment_list = function (self, elapsed) else local ej_id = _detalhes.tabela_vigente.is_boss.ej_instance_id if (ej_id and ej_id ~= 0) then - local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = EJ_GetInstanceInfo (ej_id) + local name, description, bgImage, buttonImage, loreImage, dungeonAreaMapID, link = DetailsFramework.EncounterJournal.EJ_GetInstanceInfo (ej_id) if (name) then if (_detalhes.tabela_vigente.instance_type == "party") then CoolTip:SetWallpaper (2, bgImage, party_wallpaper_tex, party_wallpaper_color, true) diff --git a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua index 8f1eb65ba..fd6c356f3 100644 --- a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua +++ b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua @@ -2216,6 +2216,10 @@ function EncounterDetails:OnEvent (_, event, ...) if (_G._detalhes and _G._detalhes:InstallOkey()) then + if (DetailsFramework.IsClassicWow()) then + return + end + --> create widgets CreatePluginFrames (data) diff --git a/plugins/Details_EncounterDetails/frames.lua b/plugins/Details_EncounterDetails/frames.lua index 54d096c38..4e5a1aae3 100644 --- a/plugins/Details_EncounterDetails/frames.lua +++ b/plugins/Details_EncounterDetails/frames.lua @@ -2094,7 +2094,6 @@ _detalhes.EncounterDetailsTempWindow = function (EncounterDetails) local spellname, _, spellicon = _GetSpellInfo (spell) tinsert (t, {label = spellname, value = {timer_table [2], spellname, spellIcon or spellicon, timer_table.id, timer_table [7]}, icon = spellIcon or spellicon, onclick = on_select_dbm_bar}) else - --local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = EJ_GetSectionInfo (spell) local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = C_EncounterJournal.GetSectionInfo (spell) tinsert (t, {label = title, value = {timer_table [2], title, spellIcon or abilityIcon, timer_table.id, timer_table [7]}, icon = spellIcon or abilityIcon, onclick = on_select_dbm_bar}) end @@ -2122,7 +2121,6 @@ _detalhes.EncounterDetailsTempWindow = function (EncounterDetails) local spellname = timer_table [2]:gsub (" %(.%)", "") tinsert (t, {label = spellname, value = {timer_table [2], spellname, timer_table [5], timer_table.id}, icon = timer_table [5], onclick = on_select_bw_bar}) elseif (int_spell < 0) then - --local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = EJ_GetSectionInfo (abs (int_spell)) local title, description, depth, abilityIcon, displayInfo, siblingID, nextSectionID, filteredByDifficulty, link, startsOpen, flag1, flag2, flag3, flag4 = C_EncounterJournal.GetSectionInfo (abs (int_spell)) tinsert (t, {label = title, value = {timer_table [2], title, timer_table [5] or abilityIcon, timer_table.id}, icon = timer_table [5] or abilityIcon, onclick = on_select_bw_bar}) else diff --git a/plugins/Details_RaidCheck/Details_RaidCheck.lua b/plugins/Details_RaidCheck/Details_RaidCheck.lua index 8a825de1a..66ce209bf 100644 --- a/plugins/Details_RaidCheck/Details_RaidCheck.lua +++ b/plugins/Details_RaidCheck/Details_RaidCheck.lua @@ -4,11 +4,12 @@ local UnitBuff = UnitBuff local GetSpellInfo = GetSpellInfo local UnitClass = UnitClass local UnitName = UnitName -local UnitGroupRolesAssigned = UnitGroupRolesAssigned local CLASS_ICON_TCOORDS = CLASS_ICON_TCOORDS local DF = DetailsFramework +local UnitGroupRolesAssigned = DF.UnitGroupRolesAssigned + --> build the list of buffs to track local flask_list = DetailsFramework.FlaskIDs @@ -869,6 +870,10 @@ end if (_G._detalhes) then + if (DetailsFramework.IsClassicWow()) then + return + end + --> create widgets CreatePluginFrames() diff --git a/plugins/Details_Streamer/Details_Streamer.lua b/plugins/Details_Streamer/Details_Streamer.lua index 6fe2a1bb8..d9041d11a 100644 --- a/plugins/Details_Streamer/Details_Streamer.lua +++ b/plugins/Details_Streamer/Details_Streamer.lua @@ -1895,6 +1895,10 @@ function StreamOverlay:OnEvent (_, event, ...) player_name = UnitName ("player") if (_G._detalhes) then + + if (DetailsFramework.IsClassicWow()) then + return + end --> create widgets CreatePluginFrames() diff --git a/plugins/Details_TinyThreat/Details_TinyThreat.lua b/plugins/Details_TinyThreat/Details_TinyThreat.lua index 2411583d3..134b26504 100644 --- a/plugins/Details_TinyThreat/Details_TinyThreat.lua +++ b/plugins/Details_TinyThreat/Details_TinyThreat.lua @@ -8,7 +8,7 @@ local _UnitName = UnitName --> wow api local _UnitDetailedThreatSituation = UnitDetailedThreatSituation local _IsInRaid = IsInRaid --> wow api local _IsInGroup = IsInGroup --> wow api -local _UnitGroupRolesAssigned = UnitGroupRolesAssigned --> wow api +local _UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned --> wow api local GetUnitName = GetUnitName local _ipairs = ipairs --> lua api @@ -639,6 +639,10 @@ function ThreatMeter:OnEvent (_, event, ...) if (AddonName == "Details_TinyThreat") then if (_G._detalhes) then + + if (DetailsFramework.IsClassicWow()) then + return + end --> create widgets CreatePluginFrames (data) diff --git a/plugins/Details_Vanguard/Details_Vanguard.lua b/plugins/Details_Vanguard/Details_Vanguard.lua index dc6d3de33..6f5b60855 100644 --- a/plugins/Details_Vanguard/Details_Vanguard.lua +++ b/plugins/Details_Vanguard/Details_Vanguard.lua @@ -13,7 +13,7 @@ local _UFC = UnitAffectingCombat --> wow api local local _IsInRaid = IsInRaid --> wow api local local _IsInGroup = IsInGroup --> wow api local local _UnitName = UnitName --> wow api local -local _UnitGroupRolesAssigned = UnitGroupRolesAssigned --> wow api local +local _UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned local _UnitHealth = UnitHealth --> wow api local local _UnitHealthMax = UnitHealthMax --> wow api local local _UnitIsPlayer = UnitIsPlayer --> wow api local @@ -826,6 +826,10 @@ function Vanguard:OnEvent (_, event, arg1, token, time, who_serial, who_name, wh if (AddonName == "Details_Vanguard") then if (_G._detalhes) then + + if (DetailsFramework.IsClassicWow()) then + return + end local MINIMAL_DETAILS_VERSION_REQUIRED = 1 local default_saved_table = { diff --git a/startup.lua b/startup.lua index 32280f375..80ceb0c19 100644 --- a/startup.lua +++ b/startup.lua @@ -1,5 +1,5 @@ - +local UnitGroupRolesAssigned = DetailsFramework.UnitGroupRolesAssigned --> check unloaded files: if ( @@ -273,18 +273,19 @@ function _G._detalhes:Start() self.listener:RegisterEvent ("START_TIMER") self.listener:RegisterEvent ("UNIT_NAME_UPDATE") - self.listener:RegisterEvent ("PET_BATTLE_OPENING_START") - self.listener:RegisterEvent ("PET_BATTLE_CLOSE") - self.listener:RegisterEvent ("PLAYER_ROLES_ASSIGNED") self.listener:RegisterEvent ("ROLE_CHANGED_INFORM") self.listener:RegisterEvent ("UNIT_FACTION") - self.listener:RegisterEvent ("PLAYER_SPECIALIZATION_CHANGED") - self.listener:RegisterEvent ("PLAYER_TALENT_UPDATE") - - self.listener:RegisterEvent ("CHALLENGE_MODE_START") - self.listener:RegisterEvent ("CHALLENGE_MODE_COMPLETED") + + if (not DetailsFramework.IsClassicWow()) then + self.listener:RegisterEvent ("PET_BATTLE_OPENING_START") + self.listener:RegisterEvent ("PET_BATTLE_CLOSE") + self.listener:RegisterEvent ("PLAYER_SPECIALIZATION_CHANGED") + self.listener:RegisterEvent ("PLAYER_TALENT_UPDATE") + self.listener:RegisterEvent ("CHALLENGE_MODE_START") + self.listener:RegisterEvent ("CHALLENGE_MODE_COMPLETED") + end --test immersion stuff ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ @@ -338,13 +339,14 @@ function _G._detalhes:Start() local newFrame = CreateFrame ("frame", "DetailsMythicPlusFrame", UIParent) newFrame.DevelopmentDebug = false - --[ + --disabnling the mythic+ feature if the user is playing in wow classic + if (not DetailsFramework.IsClassicWow()) then newFrame:RegisterEvent ("CHALLENGE_MODE_START") newFrame:RegisterEvent ("CHALLENGE_MODE_COMPLETED") newFrame:RegisterEvent ("ZONE_CHANGED_NEW_AREA") newFrame:RegisterEvent ("ENCOUNTER_END") newFrame:RegisterEvent ("START_TIMER") - --]] + end --[[ all mythic segments have: @@ -958,7 +960,7 @@ function _G._detalhes:Start() return end - local ejID = EJ_GetInstanceForMap (mapID) + local ejID = DetailsFramework.EncounterJournal.EJ_GetInstanceForMap (mapID) --> setup the mythic run info self.MythicPlus.Started = true @@ -1822,7 +1824,10 @@ function _G._detalhes:Start() --> auto run frame to dispatch scrtips for some events that details! doesn't handle local auto_run_code_dispatch = CreateFrame ("frame") - auto_run_code_dispatch:RegisterEvent ("PLAYER_SPECIALIZATION_CHANGED") + + if (not DetailsFramework.IsClassicWow()) then + auto_run_code_dispatch:RegisterEvent ("PLAYER_SPECIALIZATION_CHANGED") + end auto_run_code_dispatch.OnEventFunc = function (self, event) --> ignore events triggered more than once in a small time window