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.

62 lines
1.7 KiB

local addonName, addon = ...
-- Hunter Tame Tomes tab
TameTomesMixin = CreateFromMixins(ShapeshiftsMixin)
function TameTomesMixin:OnLoad()
if select(2, UnitClass("player")) ~= "HUNTER" then return end
self.shapeshiftEntryFrames = {};
self.shapeshiftLayoutData = {};
if not self.numKnownShapeshifts then self.numKnownShapeshifts = 0 end
if not self.numPossibleShapeshifts then self.numPossibleShapeshifts = 0 end
-- Refer to comments in PolymorphsMixin:OnLoad
local name = GetSpellInfo(1515)
self.tabName = name
if not name then
local ticker = C_Timer.NewTicker(1, function()
name = GetSpellInfo(1515)
if name then
self.tabName = name
ticker:Cancel()
end
end)
end
addon.ParentMixin.OnLoad(self)
end
function TameTomesMixin:SortShapeshiftsIntoEquipmentBuckets()
-- Sort them into equipment buckets
local equipBuckets = {};
for _, shapeshiftData in pairs(addon.TameTomesDB) do
local itemID, spellID = shapeshiftData.itemID, shapeshiftData.spellID
if not equipBuckets[1] then
equipBuckets[1] = {}
end
table.insert(equipBuckets[1], shapeshiftData)
if self:IsCollected(shapeshiftData) then
self.numKnownShapeshifts = self.numKnownShapeshifts + 1
end
self.numPossibleShapeshifts = self.numPossibleShapeshifts + 1
end
return equipBuckets;
end
function TameTomesMixin:IsCollected(data)
if data.questID then
return C_QuestLog.IsQuestFlaggedCompleted(data.questID)
else
return IsPlayerSpell(data.spellID)
end
end