You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
2.0 KiB
43 lines
2.0 KiB
|
4 years ago
|
local MDT = MDT
|
||
|
|
local countCache = {}
|
||
|
|
|
||
|
|
--- AddOn / WeakAura Creators can use these functions to retrieve data from MDT
|
||
|
|
|
||
|
|
--- GetEnemyForces
|
||
|
|
--- Usage: local count, maxCountNormal, maxCountTeeming, teemingCount = MDT:GetEnemyForcers(npcId)
|
||
|
|
function MDT:GetEnemyForces(npcId)
|
||
|
|
if countCache[npcId] then
|
||
|
|
return countCache[npcId].count,countCache[npcId].maxCountNormal,countCache[npcId].maxCountTeeming,countCache[npcId].teemingCount
|
||
|
|
else
|
||
|
|
for i = 1,self:GetNumDungeons() do
|
||
|
|
local data = self.dungeonEnemies[i]
|
||
|
|
if data then
|
||
|
|
for enemyIdx,enemy in pairs(data) do
|
||
|
|
if enemy.id == npcId then
|
||
|
|
--awakened fix
|
||
|
|
if enemy.corrupted then
|
||
|
|
local zoneId = C_Map.GetBestMapForUnit("player")
|
||
|
|
local dungeonIdx = self.zoneIdToDungeonIdx[zoneId] or i
|
||
|
|
data = self.dungeonEnemies[dungeonIdx]
|
||
|
|
for enemyIdx,enemy in pairs(data) do
|
||
|
|
if enemy.id == npcId then
|
||
|
|
return enemy.count,self.dungeonTotalCount[dungeonIdx].normal,self.dungeonTotalCount[dungeonIdx].teeming,enemy.teemingCount
|
||
|
|
end
|
||
|
|
end
|
||
|
|
else
|
||
|
|
countCache[npcId] = {
|
||
|
|
["count"] = enemy.count,
|
||
|
|
["maxCountNormal"] = self.dungeonTotalCount[i].normal,
|
||
|
|
["maxCountTeeming"] = self.dungeonTotalCount[i].teeming,
|
||
|
|
["teemingCount"] = enemy.teemingCount or enemy.count,
|
||
|
|
}
|
||
|
|
return countCache[npcId].count,countCache[npcId].maxCountNormal,countCache[npcId].maxCountTeeming,countCache[npcId].teemingCount
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
end
|
||
|
|
end
|