Differenze tra le versioni di "Modulo:PokémonData"

Vai alla navigazione Vai alla ricerca
Bugfix with alternate forms
(Aggiunte interfacce per ottenere i tipi da nome o ndex)
(Bugfix with alternate forms)
-- Data modules aren't loaded here because they probably won't be used
 
local txt = require('Modulo:Wikilib/strings') -- luacheck: no unused
local form = require('Modulo:Wikilib/forms')
local data
local abils
 
local loadData = function(tab, moduleName, useRequire)
if not tab then
local loadFunction = useRequire and require or mw.loadData
return loadFunction('Modulo:' .. moduleName)
end
return tab
end
 
--[[
 
-- Returns ndex given the name
Ritorna l'abilità richiesta al secondo argomento
del Pokémon il cui nome o ndex è passato al primo
argomento
 
--]]
 
local getAbil = function(name, abilityNumber)
abils = loadData(abils, 'PokéAbil/data')
return abils[tonumber(name) or name]['ability' .. abilityNumber]
end
 
-- Ritorna il dex nazionale dato il nome
 
b.getNdex = function(frame)
data = loadData(data, 'Poké/data')
return string.tf(data[string.trim(frame.args[1] or ''):lower()].ndex)
end
 
b.get_ndex = b.getNdex
 
-- Returns the name given ndex
-- Ritorna il nome dato il dex nazionale
 
b.getName = function(frame)
data = loadData(data, 'Poké/data')
return data[tonumber(string.trim(frame.args[1] or ''))].name
end
 
b.get_name = b.getName
 
 
-- Ritorna la prima abilità dato il nome o dex nazionale
--[[
 
Returns a Pokémon's ability (specified by the second parameter) given its name
or ndex.
The name can contain a form abbreviation, and if it's a Pokémon name (not an
ndex) it should be lowercase but the first letter, that can be both upper or
lower case.
 
--]]
 
local getAbil = function(name, abilityNumber)
abils = loadData(abils, 'PokéAbil/data')
return abils[tonumberform.nameToDataindex(name) or name]['ability' .. abilityNumber]
end
 
-- Returns a Pokémon's first ability given its name or ndex
 
b.getAbil1 = function(frame)
return getAbil(string.trim(frame.args[1] or ''):lower(), '1')
end
 
b.get_abil_1 = b.getAbil1
 
-- Returns a Pokémon's second ability given its name or ndex
-- Ritorna la seconda abilità dato il nome o dex nazionale
 
b.getAbil2 = function(frame)
return getAbil(string.trim(frame.args[1] or ''):lower(), '2')
end
 
b.get_abil_2 = b.getAbil2
 
-- Returns a Pokémon's hidden ability given its name or ndex
-- Ritorna l'abilità nascosta dato il nome o dex nazionale
 
b.getAbild = function(frame)
return getAbil(string.trim(frame.args[1] or ''):lower(), 'd')
end
 
b.get_abil_d, b.get_abil_h, b.get_abil_n = b.getAbild, b.getAbild, b.getAbild
 
 
--[[
 
Returns a Pokémon's type (specified by the second parameter) given its name or
ndex.
ndex. Transform 'coleot' into 'coleottero'
The name can contain a form abbreviation, and if it's a Pokémon name (not an
ndex) it should be lowercase but the first letter, that can be both upper or
lower case.
 
--]]
 
local getType = function(name, typeNumber)
data = loadData(data, 'Poké/data')
local pkmnType = return data[tonumberform.nameToDataindex(name) or name]['type' .. typeNumber]
 
local pkmnType = data[tonumber(name) or name]['type' .. typeNumber]
pkmnType = pkmnType == 'coleot' and 'coleottero' or pkmnType
return pkmnType
end
 
 
b.getType1 = function(frame)
return getType(string.trim(frame.args[1] or ''):lower(), '1')
end
 
 
b.getType2 = function(frame)
return getType(string.trim(frame.args[1] or ''):lower(), '2')
end
 
 
b.getLink = function(frame)
forms = loadData(forms, 'Wikilib/forms', true)
 
local name, black = string.trim(frame.args[1]), string.trim(frame.args[2])
local link = forms.getLink(name, black)
if link ~= '' then
return link
else
forms.loadUseless(false)
return forms.getLink(name, black)
end
end
 

Menu di navigazione