Refactor encounter rendering and description formatting

This commit is contained in:
Roman Jaroš 2025-04-19 12:15:35 +02:00
parent f37808207e
commit a06edeb492
4 changed files with 213 additions and 32 deletions

View file

@ -147,7 +147,7 @@ local function RenderBossAbilities(data, parent, layer)
end
end
local function RenderBossEncounter(bossKey, bossName, encounterName)
local function RenderBossEncounter(bossKey, encounterName)
local frame = addon.EncounterFrame
HideOtherContent()
@ -159,21 +159,24 @@ local function RenderBossEncounter(bossKey, bossName, encounterName)
local tankHeader = frame:CreateHeader()
tankHeader.button.title:SetText("Tank")
local tankDescription = addon.API.FormatEncounterDescription(bossData.tank, ORIGINALS['Tanks'].description)
local originalTank = ORIGINALS['Tanks'] or ORIGINALS['Tank']
local tankDescription = addon.API.FormatEncounterDescription(bossData.tank, originalTank.description)
tankHeader.description:SetText(tankDescription)
table.insert(frame.headers, tankHeader)
SetAbilityTagIcon(tankHeader, 'tank')
local healHeader = frame:CreateHeader()
healHeader.button.title:SetText("Healer")
local healerDescription = addon.API.FormatEncounterDescription(bossData.healer, ORIGINALS['Healers'].description)
local originalHealer = ORIGINALS['Healers'] or ORIGINALS['Healer']
local healerDescription = addon.API.FormatEncounterDescription(bossData.healer, originalHealer.description)
healHeader.description:SetText(healerDescription)
table.insert(frame.headers, healHeader)
SetAbilityTagIcon(healHeader, 'healer')
local dpsHeader = frame:CreateHeader()
dpsHeader.button.title:SetText("Damage Dealer")
local dpsDescription = addon.API.FormatEncounterDescription(bossData.dps, ORIGINALS['Damage Dealers'].description)
local originalDps = ORIGINALS['Damage Dealers']
local dpsDescription = addon.API.FormatEncounterDescription(bossData.dps, originalDps.description)
dpsHeader.description:SetText(dpsDescription)
table.insert(frame.headers, dpsHeader)
SetAbilityTagIcon(dpsHeader, 'dps')
@ -182,7 +185,6 @@ local function RenderBossEncounter(bossKey, bossName, encounterName)
bossHeader.button.title:SetText(encounterName)
bossHeader.empty = true
table.insert(frame.headers, bossHeader)
SetEncounterPortraitIcon(bossHeader, bossName)
RenderBossAbilities(bossData.abilities, bossHeader, 1)
frame:GetParent():Show()
@ -193,14 +195,6 @@ local function StoreBossAbilities()
ORIGINALS = {}
local stack, _, _, _, curSectionID = {}, EJ_GetEncounterInfo(ENCOUNTER_ID)
local _, bossName, description, displayInfo, iconImage, uiModelSceneID = EJ_GetCreatureInfo(1, ENCOUNTER_ID)
ORIGINALS[bossName] = {}
ORIGINALS[bossName].description = description
ORIGINALS[bossName].creatureDisplayID = displayInfo
ORIGINALS[bossName].uiModelSceneID = uiModelSceneID
ORIGINALS[bossName].abilityIcon = iconImage
repeat
local info = C_EncounterJournal.GetSectionInfo(curSectionID)
if not info.filteredByDifficulty then
@ -224,7 +218,6 @@ local function DetectBossToRender()
local frame = addon.EncounterFrame
local encounterName = EJ_GetEncounterInfo(ENCOUNTER_ID)
local _, bossName = EJ_GetCreatureInfo(1, ENCOUNTER_ID)
local difficulty = 'lfg_raid' -- 17
if DIFFICULTY == 14 then
@ -255,7 +248,7 @@ local function DetectBossToRender()
if bossKey then
StoreBossAbilities()
RenderBossEncounter(bossKey, bossName, encounterName)
RenderBossEncounter(bossKey, encounterName)
end
if bossKey == nil then