Module:Pets: Difference between revisions
From Melvor Idle
ByteFoolish (talk | contribs) m (TODOs) |
ByteFoolish (talk | contribs) (getPetBySkill getPetTableBySkill) |
||
Line 1: | Line 1: | ||
--This module contains all sorts of functions for getting data on pets | --This module contains all sorts of functions for getting data on pets | ||
local p = {} | local p = {} | ||
Line 17: | Line 7: | ||
local Shared = require( "Module:Shared" ) | local Shared = require( "Module:Shared" ) | ||
local Icons = require('Module:Icons') | local Icons = require('Module:Icons') | ||
local Skills = require('Module:Skills') | |||
Line 35: | Line 26: | ||
local PetName = string.gsub(pet.name, '#', '') | local PetName = string.gsub(pet.name, '#', '') | ||
if(name == PetName) then | if(name == PetName) then | ||
result = Shared.clone(pet) | |||
--Make sure every pet has an id, and account for Lua being 1-index | |||
result.id = i - 1 | |||
break | |||
end | |||
end | |||
return result | |||
end | |||
function p.getPetBySkill(skillName) | |||
local result = nil | |||
skillName = string.gsub(skillName, "%%27", "'") | |||
skillName = string.gsub(skillName, "'", "'") | |||
skillName = string.gsub(skillName, "'", "'") | |||
for i, pet in pairs(PetData.Pets) do | |||
if(Skills.getSkillID(skillName) == pet.skill) then | |||
result = Shared.clone(pet) | result = Shared.clone(pet) | ||
--Make sure every pet has an id, and account for Lua being 1-index | --Make sure every pet has an id, and account for Lua being 1-index | ||
Line 53: | Line 60: | ||
result = result..'||[['..pet.name..']]||'..pet.description | result = result..'||[['..pet.name..']]||'..pet.description | ||
result = result..'\r\n|}' | result = result..'\r\n|}' | ||
return result | |||
end | |||
function p.getPetTableBySkill(frame) | |||
local result = nil | |||
local skillName = frame.args ~= nil and frame.args[1] or frame | |||
skillName = string.gsub(skillName, "%%27", "'") | |||
skillName = string.gsub(skillName, "'", "'") | |||
skillName = string.gsub(skillName, "'", "'") | |||
local pet = p.getPetBySkill(skillName) | |||
result = p.getPetTable(pet.name) | |||
return result | return result | ||
end | end |
Revision as of 20:56, 13 January 2021
Data for this page is stored in Module:GameData/data
--This module contains all sorts of functions for getting data on pets
local p = {}
local PetData = mw.loadData('Module:Pets/data')
local Shared = require( "Module:Shared" )
local Icons = require('Module:Icons')
local Skills = require('Module:Skills')
function p.getPetByID(ID)
local result = Shared.clone(PetData.Pets[ID + 1])
if result ~= nil then
result.id = ID
end
return result
end
function p.getPet(name)
local result = nil
name = string.gsub(name, "%%27", "'")
name = string.gsub(name, "'", "'")
name = string.gsub(name, "'", "'")
for i, pet in pairs(PetData.Pets) do
local PetName = string.gsub(pet.name, '#', '')
if(name == PetName) then
result = Shared.clone(pet)
--Make sure every pet has an id, and account for Lua being 1-index
result.id = i - 1
break
end
end
return result
end
function p.getPetBySkill(skillName)
local result = nil
skillName = string.gsub(skillName, "%%27", "'")
skillName = string.gsub(skillName, "'", "'")
skillName = string.gsub(skillName, "'", "'")
for i, pet in pairs(PetData.Pets) do
if(Skills.getSkillID(skillName) == pet.skill) then
result = Shared.clone(pet)
--Make sure every pet has an id, and account for Lua being 1-index
result.id = i - 1
break
end
end
return result
end
function p.getPetTable(frame)
local petName = frame.args ~= nil and frame.args[1] or frame
local pet = p.getPet(petName)
local result = '{| class="wikitable"\r\n'
result = result..'!Pet!!Name!!Effect'
result = result..'\r\n|-\r\n|'..Icons.Icon({pet.name, type='pet', size='60', notext=true})
--result = result..'\r\n|-\r\n|[[File:'..pet.name..'_(pet).png|60px]]'
result = result..'||[['..pet.name..']]||'..pet.description
result = result..'\r\n|}'
return result
end
function p.getPetTableBySkill(frame)
local result = nil
local skillName = frame.args ~= nil and frame.args[1] or frame
skillName = string.gsub(skillName, "%%27", "'")
skillName = string.gsub(skillName, "'", "'")
skillName = string.gsub(skillName, "'", "'")
local pet = p.getPetBySkill(skillName)
result = p.getPetTable(pet.name)
return result
end