« Module:SPECIAL » : différence entre les versions

De Les Archives de Vault-Tec
Kharmitch (discussion | contributions)
Aucun résumé des modifications
Kharmitch (discussion | contributions)
mAucun résumé des modifications
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 8 : Ligne 8 :
local params = outils.extractArgs(frame)
local params = outils.extractArgs(frame)
local main = special.main
local main = special.main
local res = mw.html.create( 'ul' ):addClass( 'avt-special' )
local res = mw.html.create( 'ul' ):addClass( 'avt-simple-list' )
for i, attribut in ipairs(main) do
for i, attribut in ipairs(main) do
res :tag( 'li' )
res :tag( 'li' )
:tag('span')
:tag('span')
:addClass( 'avt-special-attr' )
:addClass( 'avt-special-label' )
:wikitext('[['..attribut..']] : ')
:wikitext('[['..attribut..']] : ')
:done()
:done()
Ligne 31 : Ligne 31 :
local derived = special.derived
local derived = special.derived
local value = nil
local value = nil
local res = mw.html.create('ul'):addClass('avt-special-list')
local res = mw.html.create('ul'):addClass('avt-simple-list')
for index, label in ipairs(derived) do
for index, label in ipairs(derived) do
Ligne 38 : Ligne 38 :
res
res
:tag('li')
:tag('li')
:tag('span'):wikitext('[['..label:gsub("^%l", string.upper)..']]'):done()
:tag('span')
:tag('span'):wikitext(value):done()
:addClass( 'avt-special-label' )
:wikitext('[['..label:gsub("^%l", string.upper)..']] : ')
:done()
:tag('span')
:wikitext(value)
:done()
:done()
:done()
end
end
Ligne 52 : Ligne 57 :
res
res
:tag('li')
:tag('li')
:tag('span'):wikitext(resist[1]):done()
:tag('span')
:tag('span'):wikitext((params[resist[2]] or '?')..'/'..(params[resist[3]] or '?')..' %'):done()
:addClass( 'avt-special-label' )
:wikitext(resist[1] .. ' : ')
:done()
:tag('span')
:wikitext((params[resist[2]] or '?')..' · '..(params[resist[3]] or '?')..' %'):done()
:done()
:done()
end
end
Ligne 69 : Ligne 78 :
local skills = special.skill
local skills = special.skill
local value = nil
local value = nil
local res = mw.html.create('ul'):addClass('avt-special-list')
local res = mw.html.create('ul'):addClass('avt-simple-list')
for index, label in ipairs(skills) do
for index, label in ipairs(skills) do
Ligne 76 : Ligne 85 :
res
res
:tag('li')
:tag('li')
:tag('span'):wikitext('[['..label:gsub("^%l", string.upper)..']]'):done()
:tag('span')
:tag('span'):wikitext(value):done()
:addClass( 'avt-special-label' )
:wikitext('[['..label:gsub("^%l", string.upper)..']] : ')
:done()
:tag('span')
:wikitext(value)
:done()
:done()
:done()
end
end

Dernière version du 4 septembre 2021 à 11:23

La documentation pour ce module peut être créée à Module:SPECIAL/doc

local p = {}

local special = require('Module:SPECIAL/Données')
local outils = require('Module:Outils')

-- Liste verticale des attributs fondamentaux SPECIAL
function p.mainAttributs(frame)
	local params = outils.extractArgs(frame)
	local main = special.main
	local res = mw.html.create( 'ul' ):addClass( 'avt-simple-list' )
	
	for i, attribut in ipairs(main) do
		res	:tag( 'li' )
				:tag('span')
					:addClass( 'avt-special-label' )
					:wikitext('[['..attribut..']] : ')
					:done()
				:tag('span')
					:wikitext(outils.trim(params[i]) or '?')
					:done()
				:done()
	end
	
	res:allDone()
	return tostring(res)
end

-- Liste de statistiques dérivées
function p.derivedStats(frame)
	local params = outils.extractArgs(frame)
	local derived = special.derived
	local value = nil
	local res = mw.html.create('ul'):addClass('avt-simple-list')
	
	for index, label in ipairs(derived) do
		value = outils.trim(params[label])
		if value then
			res
				:tag('li')
					:tag('span')
						:addClass( 'avt-special-label' )
						:wikitext('[['..label:gsub("^%l", string.upper)..']] : ')
						:done()
					:tag('span')
						:wikitext(value)
						:done()
					:done()
		end
	end
	
	-- Types de résistance
	local sdrd = derived.sdrd
	
	for index, resist in ipairs(sdrd) do
		if params[resist[2]] or params[resist[3]] then
			for index, resist in ipairs(sdrd) do
				res
					:tag('li')
						:tag('span')
							:addClass( 'avt-special-label' )
							:wikitext(resist[1] .. ' : ')
							:done()
						:tag('span')
							:wikitext((params[resist[2]] or '?')..' · '..(params[resist[3]] or '?')..' %'):done()
						:done()
			end
			break
		end
	end
	
	res:allDone()
	return res
end

-- Liste de compétences
function p.skills(frame)
	local params = outils.extractArgs(frame)
	local skills = special.skill
	local value = nil
	local res = mw.html.create('ul'):addClass('avt-simple-list')
	
	for index, label in ipairs(skills) do
		value = outils.trim(params[label])
		if value then
			res
				:tag('li')
					:tag('span')
						:addClass( 'avt-special-label' )
						:wikitext('[['..label:gsub("^%l", string.upper)..']] : ')
						:done()
					:tag('span')
						:wikitext(value)
						:done()
					:done()
		end
	end
	
	res:allDone()
	return res
end

return p