79 547
contributi
m (Non mi piace per niente la soluzione, ma già che c'è ne approfitto per adesso. Prima o poi ci lavorerò) |
(Updating PokémonInfo-BoxAbil and the way gen spans are displayed by modules *** sovrascritto il testo esistente ***) |
||
local j = {}
local txt = require('Modulo:Wikilib/strings') -- luacheck: no unused
local tab = require('Modulo:Wikilib/tables') -- luacheck: no unused
local l = require('Modulo:Links')
local oop = require('Modulo:Wikilib/oop')
local multigen = require('Modulo:Wikilib/multigen')
local list = require('Modulo:Wikilib/lists')
local
--[[
--]]
local AbilsBox = oop.makeClass(list.Labelled)
--[[
Static fields and methods
--]]
AbilsBox.STRINGS = {
singleAbilBox = '<div class="width-xl-33 width-xs-50" style="padding: 0.2em;">${abil}<div class="small-text">${desc}</div></div>',
singleAbilNoLabel = '<div class="width-xl-33 width-xs-50" style="padding: 0.2em;">${abil}</div>',
formAbilsBox = '<div>${forms}</div><div class="flex flex-row flex-wrap flex-items-end flex-main-stretch" style="padding: 0.2em;">${abils}</div>',
formLabel = "<div class=\"width-xl-100\" style=\"padding-bottom: 0.2em;\">'''${label}'''</div>",
LABELS = {
ability1 = "Prima abilità",
ability2 = "Seconda abilità",
abilityd = "Abilità speciale",
abilitye = "Abilità evento",
},
}
-- Table holding forms to be ignored
AbilsBox.ignorableForms = {
'pikachuR', 'pikachuD', 'pikachuCn', 'pikachuS', 'pikachuW',
'pikachuCm', 'eeveeCm',
}
--[[
--]]
AbilsBox.new = function(name, formName)
-- Pokémon whose ability is yet unknown
if abils[name].ability1 == '' then
end
-- Ignored forms
if table.search(AbilsBox.ignorableForms, name) then
return nil
end
local this = AbilsBox.super.new(formName)
this.abils =
return setmetatable(this, AbilsBox)
AbilsBox.__eq = function(a, b)
return table.equal(a.
end
-- Prints a single ability. If it's "Nessuna", it returns a "-" without link
local toStringAbil = function(abil)
if abil == "Nessuna" then
return "—"
end
return l.aColor(abil)
end
--[[
Get the function to print a single ability.
--]]
AbilsBox.getAbilityPrinter = function(this)
local str = table.getn(this.abils) == 1
and AbilsBox.STRINGS.singleAbilNoLabel
or AbilsBox.STRINGS.singleAbilBox
return function(ability, key)
return string.interp(str, {
abil = multigen.printSpans(multigen.getGenSpan(ability), toStringAbil),
desc = AbilsBox.STRINGS.LABELS[key],
})
end
end
--]]
AbilsBox.__tostring = function(this)
local
local
-- Inserting ensures to avoid holes for concat
table.insert(temp, abilBoxes.ability1)
table.insert(temp, abilBoxes.ability2)
table.insert(temp, abilBoxes.abilityd)
table.insert(temp, abilBoxes.abilitye)
local abilstring = table.concat(temp)
local
and ''
or string.interp(AbilsBox.STRINGS.formLabel, {
return string.interp(AbilsBox.STRINGS.formAbilsBox, {
abils = abilstring,
forms = forms,
})
end
local printBoxes = function(boxes)
local acc = table.map(boxes, tostring)
return table.concat(acc)
end
|