Anonymous

Module:Pets: Difference between revisions

From Melvor Idle
Update for v1.3
(getPetNavbox: Migrate to Module:Navboxes)
(Update for v1.3)
Line 6: Line 6:
local Constants = require('Module:Constants')
local Constants = require('Module:Constants')
local GameData = require('Module:GameData')
local GameData = require('Module:GameData')
local Modifiers = require('Module:Modifiers')
local Icons = require('Module:Icons')
local Icons = require('Module:Icons')


Line 13: Line 14:
local result = {}
local result = {}
for _, key in ipairs(areaDataKeys) do
for _, key in ipairs(areaDataKeys) do
local areas = GameData.getEntities(key, function(area) return area.pet ~= nil end)
local areas = GameData.getEntities(key,
function(area)
-- Lazy exclusion of event namespaces
local areaNS, areaLocalID = Shared.getLocalID(area.id)
if areaNS == 'melvorBirthday2023' or areaNS == 'melvorAprilFools2024' then
return false
end
return area.pet ~= nil
end
)
for i, area in ipairs(areas) do
for i, area in ipairs(areas) do
result[area.pet.petID] = {
result[area.pet.petID] = {
Line 52: Line 62:


function p._getPetSource(pet)
function p._getPetSource(pet)
local skillID = p._getPetSkill(pet)
if CombatPetSources ~= nil and CombatPetSources[pet.id] ~= nil then
if skillID ~= nil then
local skillName = Constants.getSkillName(skillID)
return { id = skillID, name = skillName, type = 'skill' }
elseif CombatPetSources ~= nil then
return CombatPetSources[pet.id]
return CombatPetSources[pet.id]
else
local skillID = p._getPetSkill(pet)
if skillID ~= nil then
local skillName = Constants.getSkillName(skillID)
return { id = skillID, name = skillName, type = 'skill' }
end
end
end
end
end
Line 107: Line 119:
for i, key in ipairs(modKeys) do
for i, key in ipairs(modKeys) do
if pet[key] ~= nil and not Shared.tableIsEmpty(pet[key]) then
if pet[key] ~= nil and not Shared.tableIsEmpty(pet[key]) then
for effectName, effectValue in pairs(pet[key]) do
local preText = (key == 'enemyModifiers' and 'All enemies have: ' or '')
local preText = (key == 'enemyModifiers' and 'All enemies have: ' or '')
table.insert(effects, preText .. Modifiers.getModifiersText(pet[key], false))
table.insert(effects, preText .. Constants._getModifierText(effectName, effectValue, false))
end
end
end
end
end