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
62 lines
1.7 KiB
|
2 years ago
|
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
|