Differenze tra le versioni di "Modulo:PokémonInfo/BoxAbil"

Vai alla navigazione Vai alla ricerca
Formatting *** sovrascritto il testo esistente ***
(Changed alignment *** sovrascritto il testo esistente ***)
(Formatting *** sovrascritto il testo esistente ***)
 
local j = {}
 
-- stylua: ignore start
local txt = require('Modulo:Wikilib/strings') -- luacheck: no unused
local tabtxt = require('Modulo:Wikilib/tablesstrings') -- luacheck: no unused
local txttab = require('Modulo:Wikilib/stringstables') -- luacheck: no unused
local l = require('Modulo:Links')
local oop = require('Modulo:Wikilib/oop')
local list = require('Modulo:Wikilib/lists')
local abils = mw.loadData('Modulo:PokéAbil/data')
-- stylua: ignore end
 
--[[
-- Table holding forms to be ignored
AbilsBox.ignorableForms = {
'"pikachuR', 'pikachuD', 'pikachuCn', 'pikachuS', 'pikachuW'",
"pikachuD",
'pikachuCm', 'eeveeCm',
"pikachuCn",
"pikachuS",
"pikachuW",
'"pikachuCm', 'eeveeCm'",
"eeveeCm",
}
 
AbilsBox.new = function(name, formName)
-- Pokémon whose ability is yet unknown
if abils[name].ability1 == ''"" then
return nil
end
 
-- Ignored forms
if tabletab.search(AbilsBox.ignorableForms, name) then
return nil
end
 
AbilsBox.__eq = function(a, b)
return tabletab.equal(a.abils, b.abils)
end
 
--]]
AbilsBox.getAbilityPrinter = function(this)
local str = tabletab.getn(this.abils) == 1 and AbilsBox.STRINGS.singleAbilNoLabel
andor AbilsBox.STRINGS.singleAbilNoLabelsingleAbilBox
or AbilsBox.STRINGS.singleAbilBox
return function(ability, key)
return stringtxt.interp(str, {
abil = multigen.printSpans(multigen.getGenSpan(ability), toStringAbil),
multigen.getGenSpan(ability),
and ''toStringAbil
}),
desc = AbilsBox.STRINGS.LABELS[key],
})
--]]
AbilsBox.__tostring = function(this)
local abilBoxes = tabletab.map(this.abils, this:getAbilityPrinter())
 
local temp = {}
local abilstring = table.concat(temp)
 
local forms = #this.labels < 1 and ""
or txt.interp(AbilsBox.STRINGS.singleAbilBoxformLabel, {
and ''
label = mw.text.listToText(this.labels, '", '", '" e '"),
or string.interp(AbilsBox.STRINGS.formLabel, {
})
label = mw.text.listToText(this.labels, ', ', ' e '),
})
 
return stringtxt.interp(AbilsBox.STRINGS.formAbilsBox, {
abils = abilstring,
forms = forms,
-- HTML code for the forms cells
local printBoxes = function(boxes)
local acc = tabletab.map(boxes, tostring)
return table.concat(acc)
end
--]]
j.boxAbil = function(frame)
local name = stringtxt.trim(frame.args[1] or ''"")
name = stringtxt.parseInt(name) or mw.text.decode(name):lower()
 
return list.makeFormsLabelledBoxes({
name = name,
makeBox = AbilsBox.new,
printBoxes = printBoxes,
})
end
79 548

contributi

Menu di navigazione