Module:Fiche

De Binding of Isaac: Rebirth Wiki
Révision de 19 mai 2017 à 16:06 par Derugon (discussion | contributions) (Optimisation et fonction Dlc inutile)

Aller à : navigation, rechercher

local p = {}
local Tableau

local modDlc = require( 'Module:Dlc' )
local modElements = require( 'Module:Elements' )
local modIcone = require( 'Module:Icone' )
local modSucces = require( 'Module:Succes' )


--[[ FONCTIONS ARGUMENTS INITIAUX : DEBUT ]]
--[[ FONCTIONS ARGUMENTS OBJET ]]

function p.argsObjet( f )
	return {
		animation = f:getParent().args['animation'],
		citation = f:getParent().args['citation'],
		deblocage = f:getParent().args['déblocage'],
		description = f:getParent().args['description'],
		disp = f:getParent().args['disp'],
		dlc = f:getParent().args['dlc'],
		grille = f:getParent().args['grille'],
		grilleold = f:getParent().args['gerilleold'],
		id = f:getParent().args['id'],
		imageCase = f:getParent().args['image-case'],
		imageNom = f:getParent().args['image-nom'],
		imageTableau = f:getParent().args['image-tableau'],
		larmes = f:getParent().args['larmes'],
		liste = f:getParent().args['liste'],
		nom = f:getParent().args['nom'],
		personnage = f:getParent().args['personnage'],
		recharge = f:getParent().args['recharge'],
		remplaceimage = f:getParent().args['remplaceimage'],
		remplacenom = f:getParent().args['remplacenom'],
		Type = f:getParent().args['type'],
		visible = f:getParent().args['visible']
	}
end

--[[ FONCTIONS ARGUMENTS INITIAUX : FIN ]]

--[[ FONCTIONS D'OBJETS : DEBUT ]]
--[[ FONCTION MODE OBJET ]]

function p.modeObjet( f )
	local args = p.argsObjet( f )
	local page = modElements.page( args.nom )
	local blocage = mw.text.split( args.disp, '-')
	
	if blocage[2] == 'dlc' then
		page.valeur.dlc = args.dlc
	end
	
	if args.disp == 'nom' then
		return p.modeObjetNom( f, page.valeur.dlc )
	else
		return "''Mode d'affichage inconnu <sup>[<nowiki/>[" .. args.nom .. "]<nowiki/>]</sup>'' [[Catégorie:Mode de modèle manquant]]"
	end
end

--[[ FONCTION MODE OBJET NOM ]]

function p.modeObjetNom( f, icone )
	local dlc = p.dlc( f )
	if dlc ~= nil and icone then
		Tableau = dlc
	end
	
	local lien = p.lien( f, true )
	Tableau = Tableau .. lien
	
	return Tableau
end

--[[ FONCTION FICHE OBJET ]]

function p.ficheObjet( f )
	local args = p.argsObjet( f )
	local affichage = mw.text.split( args.disp, ', ' )
	
	if args.visible ~= 0 then
		local nom = p.nom( args.nom, args.remplacenom )
		Tableau = '{| class="wikitable" style="border:solid #45264D; float:right; max-width:400px"' .. '\n! style="background:#45264D; width:300px; font-size:10pt; color:#FFFFFF; font-weight:bold" |' .. nom
		
		local dlc = modDlc.icon( args.dlc )
		if dlc ~= nil then
			Tableau = Tableau .. '<br>' .. dlc
		end
		
		local image = p.image( f , false )
		Tableau = Tableau .. '\n|-\n| style="text-align:center; font-size:9pt" | ' .. image
		
		if args.personnage ~= nil and args.personnage ~= '' then
			local personnage = p.images( f , 'personnage' )
			Tableau = Tableau .. '\n|-\n! Apparence du personnage\n|-\n| style="text-align:center; font-weight:normal" | ' .. personnage
		end
		
		if args.larmes ~= nil and args.larmes ~= '' then
			local larmes = p.images( f , 'larmes' )
			Tableau = Tableau .. '\n|-\n! Apparence des larmes\n|-\n| style="text-align:center; font-weight:normal" | ' .. larmes
		end
		
		local Type = p.type( f )
		Tableau = Tableau .. '\n|-\n! Type d\'objet\n|-\n| style="text-align:center;font-weight:normal" | ' .. Type
		
		Tableau = Tableau .. '\n|-\n! ID de l\'objet\n|-\n| style="text-align:center;font-weight:normal" | ' .. args.id
		
		Tableau = Tableau .. '\n|-\n! Citation\n|-\n| style="text-align:center;font-weight:normal" | ' .. args.citation
		
		if args.animation == nil and args.animation == '' then
			Tableau = Tableau .. '\n|-\n! Animation\n|-\n| style="text-align:center; font-weight:normal" | ' .. args.animation
		end
		
		if args.recharge ~= nil and args.recharge ~= '' then
			local recharge = p.recharge( args.recharge )
			Tableau = Tableau .. '\n|-\n! Temps de rechargement\n|-\n| style="text-align:center; font-weight:normal" | ' .. recharge
		end
		
		if args.liste ~= nil and args.liste ~= '' then
			local liste = p.liste( f )
			Tableau = Tableau .. '\n|-\n! Liste de génération\n|-\n| style="text-align:center; font-weight:normal" | ' .. liste
		end
		
		if args.deblocage ~= nil and args.deblocage ~= '' then
			local deblocage = p.deblocage( f )
			Tableau = Tableau .. '\n|-\n! Méthode de déblocage\n|-\n| style="text-align:center; font-weight:normal" | ' .. deblocage
		end
		
		Tableau = Tableau .. '\n|}'
	end
	
	return Tableau
end

--[[ FONCTIONS D'OBJETS : FIN ]]

--[[ FONCTIONS GENERALES : DEBUT ]]
--[[ FONCTION NOM ]]

function p.nom( nom, remplacenom )
	if remplacenom == nil or remplacenom == '' then
		return nom
	else
		return remplacenom
	end
end

--[[ FONCTION LIEN ]]

function p.lien( f, mode )
	local nom = p.nom( f )
	
	if mode then
		return '[[' .. f:getParent().args['nom'] .. '|' .. nom .. ']]'
	else
		return f:getParent().args['nom'] .. '|' .. nom
	end
end

--[[ FONCTION IMAGE ]]

function p.image( f , lien )
	local image = f:getParent().args['nom']
	local remplaceimage = f:getParent().args['remplaceimage']
	local typeimage = f:getParent().args['typeimage']
	local taillepcpl = f:getParent().args['taille-pcpl']
	
	if remplaceimage == nil or remplaceimage == '' then
		image = '[[Image:' .. image .. '_Icon.'
		if typeimage == nil or typeimage == '' then
			image = image .. 'png'
		else
			image = image .. typeimage
		end
	else
		image = '[[Image:' .. remplaceimage
	end
	
	if lien then
		
	else
		if taillepcpl == nil or taillepcpl == '' then
			image = image .. '|70px]]'
		else
			image = image .. '|' .. taillepcpl .. 'px]]'
		end
	end
	
	return image
end

--[[ FONCTION AUTRES IMAGES ]]

function p.images( f , arg )
	local image = mw.text.split( f:getParent().args[arg], '%s' )
	local nom = mw.text.split( image[1], '%.' )
	local ext = ''
	
	if nom[1] == nil or nom[1] == '' then
		nom[1] = f:getParent().args['nom']
	end
	if nom[2] == nil or nom[2] == '' then
		nom[2] = 'png'
	end
	if arg == 'personnage' then
		ext = '_App'
	elseif arg == 'larmes' then
		ext = '_Tears'
	end
	
	return '[[Image:' .. nom[1] .. ext .. '.' .. nom[2] .. '|' .. image[2] .. ']]'
end

--[[ FONCTION TYPE ]]

function p.type( f )
	local Type = f:getParent().args['type']
	
	if Type == 'objet actif' then
		return '[[Objets#Objets Actifs|Objet Actif]]'
	elseif Type == 'objet passif' then
		return '[[Objets#Objets Passifs|Objet Passif]]'
	elseif Type == 'babiole' then
		return '[[Babioles|Babiole]]'
	elseif Type == 'carte' then
		return '[[Cartes et Runes#Cartes|Carte]]'
	elseif Type == 'carte spéciale' then
		return '[[Cartes et Runes#Cartes Spéciales|Carte Spéciale]]'
	elseif Type == 'rune' then
		return '[[Cartes et Runes#Runes|Rune]]'
	elseif Type == 'consommable' then
		return '[[Cartes et Runes#Autres|Consommable]]'
	else
		return Type
	end
end

--[[ FONCTION RECHARGE ]]

function p.recharge( f )
	local args = mw.text.split( f, ', ' )
	local _i = ''
	
	if args[1] == '1' then
		_i = '[[Image:Recharge_1.png]]'
	elseif args[1] == '2' then
		_i = '[[Image:Recharge_2.png]]'
	elseif args[1] == '3' then
		_i = '[[Image:Recharge_3.png]]'
	elseif args[1] == '4' then
		_i = '[[Image:Recharge_4.png]]'
	elseif args[1] == '6' then
		_i = '[[Image:Recharge_6.png]]'
	elseif args[1] == '12' then
		_i = '[[Image:Recharge_12.png]]'
	elseif args[1] == 'utilisation unique' then
		_i = '[[Image:Recharge_one_time.png]]'
	elseif string.find( args[1], 's' ) then
		_i = '[[Image:Recharge_time.png]]'
	end
	
	return _i .. ' &nbsp;' .. f
end

--[[ FONCTION LISTE ]]

function p.liste( f )
	local args = f:getParent().args['liste']
	local listes = mw.text.split( args, ', ' )
	
	local icones = modIcone.liste( listes, 'm' )
	
	return icones
end

--[[ FONCTION DÉBLOCAGE ]]

function p.deblocage( f )
	local args = f:getParent().args['déblocage']
	
	local deblocage = modSucces.deblocage( args )
	
	return deblocage
end

--[[ FONCTIONS GRILLE COLLECTION ]]

function p.grillecollection( f )
	local args = f:getParent().args['grille']
	local arg = mw.text.split( args, '%s' )

	return '{{GrilleCollection |' .. arg[1] .. '|' .. arg[2] .. '|' .. arg[3] .. '}}'
end

function p.grillecollectionold( f )
	local args = f:getParent().args['grilleold']
	local arg = mw.text.split( args, '%s' )
	
	return '{{GrilleCollectionOld |' .. arg[1] .. '|' .. arg[2] .. '|' .. arg[3] .. '}}'
end

--[[ FONCTIONS GENERALES : FIN ]]

return p