addon/Addon/Code/EncounterDataApi.lua

62 lines
1.9 KiB
Lua
Raw Normal View History

local _, addon = ...
local function ParseAbilities(input, delimiter)
local result = {}
local pattern = "([^" .. delimiter .. "]*)"
local normalizedAbility = string.gsub(input, "||", "|???|")
local lastPos = 1
for part in string.gmatch(normalizedAbility, pattern) do
table.insert(result, part)
lastPos = lastPos + #part + 1
end
if input:sub(-1) == delimiter then
table.insert(result, "")
end
return result
end
addon.API.ParseAbilities = ParseAbilities
local function SetAbilityDescription(text, original)
local withNumbers = addon.API.FillNumbers(text, original)
return addon.API.ColorSpellNames(withNumbers)
end
addon.API.SetAbilityDescription = SetAbilityDescription
local function SetSummaryDescription(text, original)
local withNumbers = addon.API.FillNumbers(text, original)
local lines = {}
for part in string.gmatch(withNumbers, "([^\n]+)") do
table.insert(lines, part)
end
local description = ""
for i, line in pairs(lines) do
description = description
.. "- "
.. addon.API.ColorSpellNames(line)
.. (i == #lines and "" or "\n\n")
end
return description
end
addon.API.SetSummaryDescription = SetSummaryDescription
local function GetEncounterAbility(abilityKey)
return addon.data.encounter[abilityKey].m or nil
end
addon.API.GetEncounterAbility = GetEncounterAbility
local function GetEncounter(bossKey)
return {
abilities = addon.data.encounter[bossKey] or nil,
overview = addon.data.encounter[bossKey .. "_summary_instance"].m or nil,
tank = addon.data.encounter[bossKey .. "_summary_tank"].m or nil,
healer = addon.data.encounter[bossKey .. "_summary_healer"].m or nil,
dps = addon.data.encounter[bossKey .. "_summary_dps"].m or nil,
}
end
addon.API.GetEncounter = GetEncounter