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.
527 lines
21 KiB
527 lines
21 KiB
local PetJournalEnhanced = LibStub("AceAddon-3.0"):GetAddon("PetJournalEnhanced")
|
|
local breedInfo = LibStub("LibPetBreedInfo-1.0")
|
|
local L = LibStub("AceLocale-3.0"):GetLocale("PetJournalEnhanced")
|
|
|
|
local PetList = PetJournalEnhanced:NewModule("PetList", "AceEvent-3.0")
|
|
local Config = PetJournalEnhanced:GetModule("Config")
|
|
local Sorting = PetJournalEnhanced:GetModule("Sorting")
|
|
local DropDown = PetJournalEnhanced:GetModule("DropDown")
|
|
|
|
local rarityFormat = "|c%s%s|r"
|
|
local AVAILABLE = "|n|cffffcc00"..L["Available"]..":"
|
|
local COMPANION_BUTTON_HEIGHT = 46;
|
|
local MAX_ACTIVE_PETS = 3
|
|
local MAX_BALANCED = 1
|
|
local MAX_SPEED = 2
|
|
local MAX_STAMINA = 3
|
|
local MAX_ATTACK = 4
|
|
|
|
local function GetColor(confidence)
|
|
local color = "|cffffcc00"
|
|
if confidence < 2.5 then
|
|
color = "|cff888888"
|
|
end
|
|
return color
|
|
end
|
|
|
|
function PetList:Update()
|
|
self.PetJournal_FindPetCardIndex();
|
|
self.PetJournal_UpdatePetList();
|
|
PetJournal_UpdatePetLoadOut();
|
|
self.PetJournal_UpdatePetCard(PetJournalPetCard);
|
|
self.PetJournal_HidePetDropdown();
|
|
end
|
|
|
|
function PetList.PetJournal_HidePetDropdown()
|
|
if (UIDropDownMenu_GetCurrentDropDown() == DropDown.petMenuFrame) then
|
|
HideDropDownMenu(1);
|
|
end
|
|
end
|
|
|
|
function PetList.PetJournalListItem_OnClick(self, button)
|
|
if ( IsModifiedClick("CHATLINK") ) then
|
|
local id = self.petID;
|
|
if ( id and MacroFrame and MacroFrame:IsShown() ) then
|
|
-- Macros are not yet supported
|
|
elseif (id) then
|
|
local petLink = C_PetJournal.GetBattlePetLink(id);
|
|
ChatEdit_InsertLink(petLink);
|
|
end
|
|
elseif button == "RightButton" then
|
|
--if self.owned then
|
|
PetList.PetJournal_ShowPetDropdown(self.index, self, 80, 20);
|
|
--end
|
|
else
|
|
local type, petID = GetCursorInfo();
|
|
if type == "battlepet" then
|
|
PetList.PetJournal_UpdatePetLoadOut();
|
|
ClearCursor();
|
|
else
|
|
PetList.PetJournal_ShowPetCard(self.index);
|
|
end
|
|
end
|
|
PetList:Update()
|
|
end
|
|
|
|
function PetList.PetJournalDragButton_OnClick(self, button)
|
|
if ( IsModifiedClick("CHATLINK") ) then
|
|
local id = self:GetParent().petID;
|
|
if ( id and MacroFrame and MacroFrame:IsShown() ) then
|
|
-- Macros are not yet supported
|
|
elseif (id) then
|
|
local petLink = C_PetJournal.GetBattlePetLink(id);
|
|
ChatEdit_InsertLink(petLink);
|
|
end
|
|
elseif ( button == "RightButton" ) then
|
|
local parent = self:GetParent();
|
|
if ( parent.owned ) then
|
|
PetList.PetJournal_ShowPetDropdown(parent.index, self, 0, 0);
|
|
end
|
|
else
|
|
local type, petID = GetCursorInfo();
|
|
if type == "battlepet" then
|
|
PetList.PetJournal_UpdatePetLoadOut();
|
|
ClearCursor();
|
|
else
|
|
PetJournalDragButton_OnDragStart(self);
|
|
end
|
|
end
|
|
end
|
|
|
|
function PetList:SetHighStatShown(enabled)
|
|
for i=1,#self.listScroll.buttons do
|
|
local button = self.listScroll.buttons[i]
|
|
button.highStatIcon:SetShown(enabled)
|
|
button.name:ClearAllPoints()
|
|
|
|
local buttonAnchor = "PetJournalEnhancedListScrollFrameButton"..i
|
|
if enabled then
|
|
button.name:SetPoint("TOPLEFT",button.name:GetParent(),"TOPLEFT",5+button.highStatIcon:GetWidth(),-2)
|
|
else
|
|
button.name:SetPoint("TOPLEFT",buttonAnchor,"TOPLEFT",12,-2)
|
|
end
|
|
end
|
|
end
|
|
|
|
function PetList:PETJOURNAL_ENHANCED_OPTIONS_UPDATE()
|
|
self:SetHighStatShown(Config.display.maxStatIcon)
|
|
self:Update()
|
|
end
|
|
|
|
function PetList:PLAYER_REGEN_DISABLED()
|
|
PetJournalSummonButton:Disable()
|
|
end
|
|
|
|
function PetList:PLAYER_REGEN_ENABLED()
|
|
PetJournalSummonButton:Enable()
|
|
end
|
|
|
|
function PetList:OnInitialize()
|
|
|
|
Sorting.RegisterCallback(self,"PETS_SORTED","Update")
|
|
Config.RegisterCallback(self,"PETJOURNAL_ENHANCED_OPTIONS_UPDATE")
|
|
|
|
PetJournalListScrollFrame:Hide()
|
|
self.listScroll = CreateFrame("ScrollFrame","PetJournalEnhancedListScrollFrame",PetJournal,"HybridScrollFrameTemplate")
|
|
self.listScroll:SetPoint("TOPLEFT",PetJournal.LeftInset,3,-36)
|
|
self.listScroll:SetPoint("BOTTOMRIGHT",PetJournal.LeftInset,-2,5)
|
|
|
|
self:RegisterEvent("PET_JOURNAL_LIST_UPDATE","Update")
|
|
self:RegisterEvent("PLAYER_REGEN_DISABLED")
|
|
self:RegisterEvent("PLAYER_REGEN_ENABLED")
|
|
|
|
self.listScroll.scrollBar = CreateFrame("Slider","PetJournalEnhancedListScrollFrameScrollBar",self.listScroll,"HybridScrollBarTrimTemplate")
|
|
self.listScroll.scrollBar:SetPoint("TOPLEFT",self.listScroll.scrollBar:GetParent(),"TOPRIGHT",4,20)
|
|
self.listScroll.scrollBar:SetPoint("BOTTOMLEFT",self.listScroll.scrollBar:GetParent(),"BOTTOMRIGHT",4,11)
|
|
self.listScroll.scrollBar.trackBG:Show()
|
|
self.listScroll.scrollBar.trackBG:SetVertexColor(0, 0, 0, 0.75)
|
|
|
|
self.listScroll.update = PetList.PetJournal_UpdatePetList
|
|
self.listScroll.scrollBar.doNotHide = true
|
|
|
|
HybridScrollFrame_CreateButtons(self.listScroll, "CompanionListButtonTemplate", 44, 0)
|
|
|
|
PetJournalPetCardPetInfo:SetScript("OnClick",nil)
|
|
|
|
for i=1,#self.listScroll.buttons do
|
|
local button = self.listScroll.buttons[i]
|
|
local dragButton = button.dragButton
|
|
|
|
button:SetScript("OnClick",PetList.PetJournalListItem_OnClick)
|
|
dragButton:SetScript("OnClick",PetList.PetJournalDragButton_OnClick)
|
|
|
|
button.highStatIcon = button:CreateTexture(nil,"OVERLAY")
|
|
button.highStatIcon:SetTexture("Interface\\PetBattles\\PetBattle-StatIcons")
|
|
button.highStatIcon:SetTexCoord(0.0,0.5,0.0,0.5)
|
|
button.highStatIcon:SetSize(12,12)
|
|
button.highStatIcon:SetPoint("RIGHT",button.name,"LEFT",0,0)
|
|
button.highStatIcon:SetParent(button)
|
|
button.highStatIcon:SetDrawLayer("OVERLAY",7)
|
|
button.highStatIcon:Show()
|
|
|
|
dragButton.IsHidden = dragButton:CreateTexture(nil,"OVERLAY")
|
|
dragButton.IsHidden:SetTexture("Interface\\BUTTONS\\UI-GroupLoot-Pass-Up")
|
|
dragButton.IsHidden:SetSize(36,36)
|
|
dragButton.IsHidden:SetPoint("CENTER",dragButton,"CENTER",0,0)
|
|
dragButton.IsHidden:SetDrawLayer("OVERLAY",1)
|
|
end
|
|
|
|
self:SetHighStatShown(Config.display.maxStatIcon)
|
|
|
|
hooksecurefunc("PetJournal_UpdatePetCard", PetList.PetJournal_UpdatePetCard)
|
|
hooksecurefunc("PetJournal_ShowPetCard", PetList.PetJournal_ShowPetCard)
|
|
hooksecurefunc("PetJournal_FindPetCardIndex", PetList.PetJournal_FindPetCardIndex)
|
|
hooksecurefunc("PetJournal_SelectSpecies", PetList.PetJournal_SelectSpecies)
|
|
hooksecurefunc("PetJournal_SelectPet", PetList.PetJournal_SelectPet)
|
|
hooksecurefunc("PetJournal_UpdatePetLoadOut", PetList.PetJournal_UpdatePetLoadOut)
|
|
end
|
|
|
|
function PetList.PetJournal_UpdatePetCard(self)
|
|
local speciesID, customName, level, name, canBattle, breedIndex, confidence, _
|
|
if PetJournalPetCard.petID then
|
|
local petID = PetJournalPetCard.petID
|
|
speciesID, customName, level , _, _, _, _, name,_, _, _, _, _, _, canBattle, _, _ = C_PetJournal.GetPetInfoByPetID(petID)
|
|
if canBattle then
|
|
local health, maxHealth, power, speed, rarity = C_PetJournal.GetPetStats(petID)
|
|
if rarity then
|
|
breedIndex, confidence = breedInfo:GetBreedByPetID(petID)
|
|
if breedIndex and confidence then
|
|
local pHealth, pPower, pSpeed = breedInfo:GetPetPredictedStats(speciesID,breedIndex,rarity,25)
|
|
local color = GetColor(confidence)
|
|
|
|
--update breed info in pet cache
|
|
local pjePet = Sorting:GetPet(petID)
|
|
if pjePet then
|
|
pjePet.breed = breedIndex
|
|
pjePet.breedConfidence = confidence
|
|
end
|
|
|
|
if Config.display.Extrapolate and level and level < 25 then
|
|
local predictionFormat = "%s %s(%s)|r"
|
|
self.HealthFrame.health:SetText(string.format(predictionFormat,maxHealth,color,pHealth))
|
|
self.PowerFrame.power:SetText(string.format(predictionFormat,power,color,pPower))
|
|
self.SpeedFrame.speed:SetText(string.format(predictionFormat,speed,color,pSpeed))
|
|
end
|
|
end
|
|
|
|
local r, g, b,hex = GetItemQualityColor(rarity-1)
|
|
name = string.format(rarityFormat,hex,name)
|
|
if customName then
|
|
customName = string.format(rarityFormat,hex,customName)
|
|
end
|
|
end
|
|
end
|
|
elseif PetJournalPetCard.speciesID then
|
|
speciesID = PetJournalPetCard.speciesID
|
|
name, _, _, _, _, _, _, canBattle = C_PetJournal.GetPetInfoBySpeciesID(speciesID)
|
|
end
|
|
|
|
if Config.display.breedInfo then
|
|
local availableBreeds = breedInfo:GetAvailableBreeds(speciesID)
|
|
if availableBreeds then
|
|
local stringBuilder = {}
|
|
for _,v in ipairs(availableBreeds) do tinsert(stringBuilder,breedInfo:GetBreedName(v)) end
|
|
local availableBreedsText = table.concat(stringBuilder,", ")
|
|
wipe(stringBuilder)
|
|
tinsert(stringBuilder,name)
|
|
|
|
if breedIndex then
|
|
local breedName = string.format("%s%s|r", GetColor(confidence),breedInfo:GetBreedName(breedIndex))
|
|
tinsert(stringBuilder,breedName)
|
|
end
|
|
|
|
tinsert(stringBuilder,AVAILABLE)
|
|
tinsert(stringBuilder,availableBreedsText)
|
|
|
|
name = table.concat(stringBuilder," ")
|
|
end
|
|
end
|
|
|
|
if customName then
|
|
self.PetInfo.name:SetText(customName)
|
|
self.PetInfo.name:SetHeight(24)
|
|
self.PetInfo.subName:Show()
|
|
self.PetInfo.subName:SetText(name)
|
|
else
|
|
self.PetInfo.name:SetWidth(225)
|
|
self.PetInfo.name:SetText(name)
|
|
self.PetInfo.name:SetHeight(32)
|
|
self.PetInfo.subName:Hide()
|
|
end
|
|
|
|
if self.PetInfo.name:IsTruncated() then
|
|
self.PetInfo.name:SetWidth(300)
|
|
self.TypeInfo.type:SetText("")
|
|
end
|
|
end
|
|
|
|
function PetList.PetJournal_ShowPetDropdown(index, anchorTo, offsetX, offsetY)
|
|
if (not index) then
|
|
return
|
|
end
|
|
|
|
DropDown.petOptionsMenu.pet = Sorting:GetPetByIndex(index)
|
|
index = Sorting:GetPetByIndex(index).index
|
|
PetJournal.menuPetIndex = index
|
|
PetJournal.menuPetID = C_PetJournal.GetPetInfoByIndex(index)
|
|
|
|
ToggleDropDownMenu(1, nil, DropDown.petOptionsMenu, anchorTo, offsetX, offsetY)
|
|
end
|
|
|
|
|
|
|
|
function PetList.PetJournal_ShowPetCard(index)
|
|
PetList.PetJournal_HidePetDropdown()
|
|
PetJournalPetCard.petIndex = index
|
|
local owned
|
|
local pet = Sorting:GetPetByIndex(index)
|
|
if pet then
|
|
PetJournalPetCard.petID, PetJournalPetCard.speciesID, owned = C_PetJournal.GetPetInfoByIndex(pet.index, PetJournal.isWild);
|
|
if ( not owned ) then
|
|
PetJournalPetCard.petID = nil
|
|
PetJournal_ShowPetCardBySpeciesID(PetJournalPetCard.speciesID)
|
|
return
|
|
end
|
|
PetJournal_UpdatePetCard(PetJournalPetCard)
|
|
PetJournal_UpdatePetList()
|
|
PetJournal_UpdateSummonButtonState()
|
|
end
|
|
end
|
|
|
|
function PetList.PetJournal_SelectSpecies(self, targetSpeciesID)
|
|
local petIndex = nil
|
|
local numPets = Sorting:GetNumPets()
|
|
for i = 1,numPets do
|
|
local pet = Sorting:GetPetByIndex(i)
|
|
local petID, speciesID, owned = C_PetJournal.GetPetInfoByIndex(pet.index, PetJournal.isWild)
|
|
if (speciesID == targetSpeciesID) then
|
|
petIndex = i
|
|
break
|
|
end
|
|
end
|
|
if ( petIndex ) then
|
|
PetJournalPetList_UpdateScrollPos(PetList.listScroll, petIndex)
|
|
end
|
|
PetJournal_ShowPetCardBySpeciesID(targetSpeciesID)
|
|
end
|
|
|
|
function PetList.PetJournal_UpdatePetList()
|
|
|
|
local scrollFrame = PetList.listScroll
|
|
local offset = HybridScrollFrame_GetOffset(scrollFrame)
|
|
local petButtons = scrollFrame.buttons
|
|
local pet, index
|
|
local isWild = PetJournal.isWild
|
|
local numPets, numOwned = C_PetJournal.GetNumPets(isWild)
|
|
PetJournal.PetCount.Count:SetText(numOwned)
|
|
|
|
local summonedPetID = C_PetJournal.GetSummonedPetGUID()
|
|
|
|
for i = 1,#petButtons do
|
|
pet = petButtons[i]
|
|
index = offset + i
|
|
if index <= Sorting:GetNumPets() then
|
|
|
|
local mappedPet = Sorting:GetPetByIndex(index)
|
|
|
|
local petID, speciesID, isOwned, customName, level, favorite, isRevoked, name, icon, petType, creatureID, sourceText, description, isWildPet, canBattle = C_PetJournal.GetPetInfoByIndex(mappedPet.index, isWild)
|
|
|
|
pet.icon:SetTexture(icon)
|
|
pet.petTypeIcon:SetTexture(GetPetTypeTexture(petType))
|
|
pet.dragButton.favorite:SetShown(favorite)
|
|
|
|
local isHidden = Sorting:IsSpeciesHidden(speciesID)
|
|
pet.dragButton.IsHidden:SetShown(isHidden)
|
|
|
|
pet.highStatIcon:Hide()
|
|
if isOwned then
|
|
local health, maxHealth, attack, speed, rarity = C_PetJournal.GetPetStats(petID);
|
|
--compute and display max stat icon
|
|
if Config.display.maxStatIcon then
|
|
pet.highStatIcon:Hide()
|
|
if canBattle then
|
|
local maxStat = mappedPet.maxStat
|
|
--texture is the same, were just setting what part were rendering
|
|
--todo: move to a table of textures with precomputed texcoords
|
|
if maxStat == MAX_BALANCED then
|
|
|
|
else
|
|
if maxStat == MAX_ATTACK then
|
|
pet.highStatIcon:SetTexCoord(0.0,0.5,0.0,0.5)
|
|
elseif maxStat == MAX_STAMINA then
|
|
pet.highStatIcon:SetTexCoord(0.5,1.0,0.5,1.0)
|
|
elseif maxStat == MAX_SPEED then
|
|
pet.highStatIcon:SetTexCoord(0.0,0.5,0.5,1)
|
|
end
|
|
|
|
local h,w = pet.highStatIcon:GetSize()
|
|
|
|
--pet.highStat:SetSize(18,18)
|
|
pet.highStatIcon:Show()
|
|
end
|
|
end
|
|
else
|
|
pet.highStatIcon:Hide()
|
|
end
|
|
|
|
--color the names by their rarity
|
|
if Config.display.coloredNames and canBattle and rarity then
|
|
local r, g, b,hex = GetItemQualityColor(rarity-1)
|
|
|
|
name = string.format(rarityFormat,hex,name)
|
|
if customName then
|
|
string.format(rarityFormat,hex,customName)
|
|
end
|
|
end
|
|
|
|
pet.dragButton.levelBG:SetShown(canBattle)
|
|
pet.dragButton.level:SetShown(canBattle)
|
|
pet.dragButton.level:SetText(level)
|
|
|
|
pet.icon:SetDesaturated(false)
|
|
pet.name:SetFontObject("GameFontNormal")
|
|
pet.petTypeIcon:SetShown(canBattle)
|
|
pet.petTypeIcon:SetDesaturated(false)
|
|
pet.dragButton:Enable()
|
|
|
|
if (isWildPet) then
|
|
pet.iconBorder:Show();
|
|
pet.iconBorder:SetVertexColor(ITEM_QUALITY_COLORS[rarity-1].r, ITEM_QUALITY_COLORS[rarity-1].g, ITEM_QUALITY_COLORS[rarity-1].b)
|
|
elseif rarity and Config.display.coloredBorders and canBattle then
|
|
pet.iconBorder:SetVertexColor(ITEM_QUALITY_COLORS[rarity-1].r, ITEM_QUALITY_COLORS[rarity-1].g, ITEM_QUALITY_COLORS[rarity-1].b)
|
|
pet.iconBorder:Show()
|
|
else
|
|
pet.iconBorder:Hide()
|
|
end
|
|
|
|
if (health and health <= 0) then
|
|
pet.isDead:Show()
|
|
else
|
|
pet.isDead:Hide()
|
|
end
|
|
if(isRevoked == true) then
|
|
pet.dragButton.levelBG:Hide()
|
|
pet.dragButton.level:Hide()
|
|
pet.iconBorder:Hide()
|
|
pet.icon:SetDesaturated(true)
|
|
pet.petTypeIcon:SetDesaturated(true)
|
|
pet.dragButton:Disable()
|
|
end
|
|
else
|
|
pet.dragButton.levelBG:Hide()
|
|
pet.dragButton.level:Hide()
|
|
pet.icon:SetDesaturated(true)
|
|
pet.iconBorder:Hide()
|
|
pet.name:SetFontObject("GameFontDisable")
|
|
pet.petTypeIcon:SetShown(canBattle)
|
|
pet.petTypeIcon:SetDesaturated(true)
|
|
pet.dragButton:Disable()
|
|
pet.isDead:Hide()
|
|
end
|
|
|
|
local pjePet = Sorting:GetPet(petID)
|
|
local breed = ""
|
|
if Config.display.breedInfo and pjePet and pjePet.breed and pjePet.breed > 0 and pjePet.breedConfidence then
|
|
breed = string.format("%s%s|r", GetColor(pjePet.breedConfidence),breedInfo:GetBreedName(pjePet.breed))
|
|
end
|
|
|
|
if customName then
|
|
pet.name:SetText(string.format("%s %s",customName,breed))
|
|
pet.name:SetHeight(12)
|
|
pet.subName:Show()
|
|
pet.subName:SetText(name)
|
|
elseif name then
|
|
pet.name:SetText(string.format("%s %s",name,breed))
|
|
pet.name:SetHeight(30)
|
|
pet.subName:Hide()
|
|
else
|
|
pet.name:SetText(nil)
|
|
pet.name:SetHeight(30)
|
|
pet.subName:Hide()
|
|
end
|
|
|
|
if ( petID and petID == summonedPetID ) then
|
|
pet.dragButton.ActiveTexture:Show()
|
|
else
|
|
pet.dragButton.ActiveTexture:Hide()
|
|
end
|
|
|
|
pet.petID = petID
|
|
pet.speciesID = speciesID
|
|
pet.index = index
|
|
pet.owned = isOwned
|
|
pet:Show()
|
|
|
|
--Update Petcard Button
|
|
if PetJournalPetCard.petIndex == index then
|
|
pet.selected = true
|
|
pet.selectedTexture:Show()
|
|
else
|
|
pet.selected = false;
|
|
pet.selectedTexture:Hide()
|
|
end
|
|
else
|
|
pet:Hide()
|
|
end
|
|
end
|
|
|
|
local totalHeight = Sorting:GetNumPets() * COMPANION_BUTTON_HEIGHT
|
|
HybridScrollFrame_Update(scrollFrame, totalHeight, scrollFrame:GetHeight())
|
|
end
|
|
|
|
function PetList.PetJournal_FindPetCardIndex()
|
|
PetJournalPetCard.petIndex = nil
|
|
local numPets = Sorting:GetNumPets()
|
|
for i = 1, numPets do
|
|
local pet = Sorting:GetPetByIndex(i)
|
|
local petID, speciesID, owned = C_PetJournal.GetPetInfoByIndex(pet.index,false)
|
|
if (owned and petID == PetJournalPetCard.petID) or
|
|
(not owned and speciesID == PetJournalPetCard.speciesID) then
|
|
PetJournalPetCard.petIndex = i
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
function PetList.PetJournal_SelectPet(self, targetPetID)
|
|
local pet, index
|
|
for i =1 , Sorting:GetNumPets() do
|
|
pet = Sorting:GetPetByIndex(i)
|
|
if pet.petID == targetPetID then
|
|
pet = pet
|
|
index = i
|
|
break
|
|
end
|
|
end
|
|
|
|
if pet then
|
|
if ( index ) then --might be filtered out and have no index.
|
|
PetJournalPetList_UpdateScrollPos(PetList.listScroll, index)
|
|
end
|
|
PetJournal_ShowPetCardByID(targetPetID)
|
|
end
|
|
end
|
|
|
|
function PetList.PetJournal_UpdatePetLoadOut()
|
|
if Config.display.coloredNames then
|
|
for i=1, MAX_ACTIVE_PETS do
|
|
local Pet = PetJournal.Loadout["Pet"..i]
|
|
local petID, _, _, _, locked = C_PetJournal.GetPetLoadOutInfo(i)
|
|
if not locked and petID then
|
|
local _, customName, _, _, _, _, _,name = C_PetJournal.GetPetInfoByPetID(petID)
|
|
local rarity = select(5,C_PetJournal.GetPetStats(petID))
|
|
local hex = select(4,GetItemQualityColor(rarity-1))
|
|
local breedIndex, confidence = breedInfo:GetBreedByPetID(petID)
|
|
|
|
local breedName = (breedIndex and confidence --[[and PetList.db.display.breedInfo]]) and string.format("%s%s|r", GetColor(confidence),breedInfo:GetBreedName(breedIndex)) or ""
|
|
|
|
if customName then
|
|
Pet.subName:SetText(string.format(rarityFormat,hex,customName))
|
|
Pet.name:SetText(string.format("|c%s%s|r%s",hex,name,breedName))
|
|
else
|
|
Pet.name:SetText(string.format("|c%s%s|r %s",hex,name,breedName))
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|