Binding of Isaac: Rebirth Wiki
(Problème de fonctionnement)
(Erreur)
Ligne 85 : Ligne 85 :
 
local args = p.argsObjet( f )
 
local args = p.argsObjet( f )
 
local page = modElements.page( args.nom )
 
local page = modElements.page( args.nom )
local blocage = mw.text.split( args.disp, '-')
+
local blocage = --[[mw.text.split(]] args.disp--[[, '-')]]
 
 
 
if blocage[2] == 'dlc' then
 
if blocage[2] == 'dlc' then

Version du 22 mai 2017 à 17:22

Template-info Documentation

Fonction mode( f, listeModes )

Cette fonction met en place la structure d'un module fiche.
ArgumentsRenvois
f (frame)
  • Frame de la page utilisée.
  • Nécessite trois paramètres, en plus de ceux spécifiques à chaque fiche :
    disp (string)
    • Mode d'affichage, utilisé lors d'une transclusion. Doit avoir pour valeur {{{2}}}.
    temp (string)
    • Nom de l'élément auquel la fiche est dédiée, utilisé lors d'une transclusion. Doit avoir pour valeur {{{1}}}.
    nom (string)
    • Nom de l'élément auquel la fiche est dédiée.
  • Toute valeur nulle sur ou syntaxe non respectée sur l'un de ces trois paramètres nuira directement au bon fonctionnement des Fiches.
listeModes (string)
  • Liste des modes utilisés par la fiche, séparés par  /  :
    • case
    • nom
    • tableau
    • tableauSimple (nécessite tableau)
    • phraseIntro
    • Le mode fiche est présent par défaut et n'a pas besoin d'être ajouté.
  • Type : (function)
  • Fonction correspondant au mode demandée de la fiche correspondante.
  • Renvoie deux arguments :
    args (table)
    • Renvoyé par la fonction args( f ) de la fiche correspondante.
    page (table)
  • Renvoie une valeur (string) si le mode demandé dans disp n'existe pas.

Fonction nom( nom, remplaceNom, mode )

Cette fonction gère l'affichage du titre d'une fiche.
ArgumentsRenvois
nom (string)
  • Valeur de l'argument nom contenu dans le tableau args de la fonction mode( f, listeModes ).
remplaceNom (string)
  • Texte à afficher, s'il est différent de la valeur de nom.
  • Peut prendre une valeur nulle.
mode (int)
  • Apparence du titre à renvoyer :
    • 0 ou nil renvoie le texte avec la police TeamMeat de la fonction titre( police, texte, taille ) du Module:Police.
    • 1 renvoie le contenu du paramètre |lien= d'une image MediaWiki.
    • 2 renvoie le titre avec un lien vers la page correspondante. À utiliser sur des transclusions.
    • 3 renvoie le titre sans autre modification.
  • Type : (string)
  • Dépend de la valeur de l'argument mode.

Fonction image( nom, remplaceNom, remplaceImage, _t, lien, _sD, _sF, _e )

Cette fonction renvoie un fichier selon les paramètres entrés par l'utilisateur.
ArgumentsRenvois
nom (string)
  • Valeur de l'argument nom contenu dans le tableau args de la fonction mode( f, listeModes ).
remplaceNom (string)
  • Texte à afficher sur le fichier, s'il est différent de la valeur de nom.
  • Peut prendre une valeur nulle.
remplaceImage (string)
  • Nom du fichier, sans l'espace de nom, l'extension et les chaînes de caractères supplémentaires s'il est différent de la valeur de nom.
  • Peut prendre une valeur nulle.
_t (string)
  • Taille initiale du fichier en pixels (ex. : 60x60px).
lien (boolean)
  • Indique si le fichier doit avoir un lien.
_sD (string)
  • Caractères à ajouter avant le nom du fichier (ex. : Boss_).
_sF (string)
  • Caractères à ajouter après le nom du fichier, avant l'extension (ex. : _App).
_e (string)
  • Optionnel. Extension initiale du fichier (ex. : .gif).
  • Prend pour valeur .png si sa valeur est nulle.
  • Type : (string)
  • Fichier au format MediaWiki.

Fonction citation( citation, italique )

Cette fonction affiche la citation d'un élément.
ArgumentsRenvois
citation (string)
  • Citation en anglais.
  • Pour la citation traduite en français, entrer : vo(CitationEN) vf(CitationFR).
italique (boolean)
  • Optionnel. Indique si le texte doit être en italique.
  • Type : (string)

Fonction recharge( recharge, mode )

Cette fonction affiche la recharge d'un objet activable.
ArgumentsRenvois
recharge (string)
  • Type de recharge :
    • 1, 2, 3, 4, 6 ou 12.
    • utilisation unique pour un objet disparaissant après utilisation.
    • infinie pour un objet sans recharge.
    • 6s pour un objet se rechargeant au fil du temps.
mode (int)
  • Apparence de la recharge à renvoyer :
    • 0 ou nil renvoie l'image de la recharge et le texte associé.
    • 1 renvoie l'image de la recharge de grande taille.
  • Type : (string)

Fonction grilleCollection( grille, maxColonne, maxLigne, texte )

Cette fonction renvoie une grille de collection, la case demandée sélectionnée.
ArgumentsRenvois
grille (string)
  • Position de la case à sélectionner.
  • Entrer la page, la colonne puis la ligne, en séparant les valeurs par un espace.
maxColonne (int)
  • Nombre de colonnes à afficher dans la grille.
maxLigne (int)
  • Nombre de lignes à afficher dans la grille.
texte (boolean)
  • Optionnel. Indique si l'emplacement de la case sélectionné doit être écrit au-dessus de la fiche.
  • Type : (string)

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 ]]
--[[ FONCTION ARGUMENTS MONSTRE ]]

function p.argsMonstre( f )
	return {
		description = f:getParent().args['description'],
		disp = f:getParent().args['disp'],
		dlc = f:getParent().args['dlc'],
		environnement = f:getParent().args['environnement'],
		imageCase = f:getParent().args['image-case'],
		imageNom = f:getParent().args['image-nom'],
		imageTableau = f:getParent().args['image-tableau'],
		nom = f:getParent().args['nom'],
		remplaceImage = f:getParent().args['remplaceimage'],
		remplaceNom = f:getParent().args['remplacenom'],
		santeBase = f:getParent().args['santébase'],
		santeEtage = f:getParent().args['santéétage'],
		Type = f:getParent().args['type'],
		visible = f:getParent().args['visible']
	}
end

--[[ FONCTION 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'],
		temp = f:getParent().args['temp'],
		Type = f:getParent().args['type'],
		visible = f:getParent().args['visible']
	}
end

--[[ FONCTION ARGUMENTS PERSONNAGE ]]

function p.argsPersonnage( f )
	return {
		cadenceTir = f:getParent().args['cadencetir'],
		chance = f:getParent().args['chance'],
		degats = f:getParent().args['dégâts'],
		description = f:getParent().args['description'],
		nom = f:getParent().args['nom'],
		remplaceNom = f:getParent().args['remplacenom'],
		remplaceImage = f:getParent().args['remplaceimage'],
		vie = f:getParent().args['vie'],
		vitesse = f:getParent().args['vitesse'],
		vitesseLarmes = f:getParent().args['vitesselarmes'],
		visible = f:getParent().args['visible']
	}
end

--[[ FONCTIONS ARGUMENTS INITIAUX : FIN ]]

--[[ FONCTIONS MODES 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.temp == args.nom or args.temp == '{{{2}}}' then
  	if args.disp == '{{{1}}}' then
  		return p.ficheObjet( f )
  	elseif args.disp == 'case' then
  		return p.modeObjetCase( f )
  	elseif args.disp == 'nom' then
  		return p.modeObjetNom( f, page.valeur.dlc )
  	elseif args.disp == 'tableau' then
  		return p.modeObjetTableau( f, page.valeur.dlc, true )
  	else
  		return "''Mode d'affichage inconnu <sup>[<nowiki/>[" .. args.nom .. "]<nowiki/>]</sup>'' [[Catégorie:Mode de modèle manquant]]"
  	end
  end
end

--[[ FONCTION MODE OBJET CASE ]]

function p.modeObjetCase( f )
	local args = p.argsObjet( f )
	
	Tableau = p.image( args.nom, args.remplaceNom, args.imageCase, '40x40px', true, '', '_Icon' )
	
	return Tableau
end

--[[ FONCTION MODE OBJET NOM ]]

function p.modeObjetNom( f, iconeDlc )
	local args = p.argsObjet( f )
	
	if args.dlc ~= nil and iconeDlc then
		Tableau = modDlc.icon( args.dlc )
	end
	
	Tableau = Tableau .. p.image( args.nom, args.remplaceNom, args.imageNom, '20x20px', true, '', '_Icon' )
	
	Tableau = Tableau .. p.nom( args.nom, args.remplaceNom, 2 )
	
	return Tableau
end

--[[ FONCTION MODE OBJET TABLEAU ]]

function p.modeObjetTableau( f, iconeDlc, tComplet )
	local args = p.argsObjet( f )
	
	Tableau = '|-\n|'
	
	if args.Type == 'carte' or args.Type == 'rune' then
	  Tableau = Tableau .. p.nom( args.nom, args.remplaceNom, 1 )
	else
	  Tableau = Tableau .. p.nom( args.nom, args.remplaceNom, 2 )
	end
	
	if args.dlc ~= nil and iconeDlc then
		Tableau = Tableau .. modDlc.icon( args.dlc )
	end
	
	Tableau = Tableau .. '\n| style="text-align:center" | ' .. p.image( args.nom, args.remplaceNom, args.imageTableau, '45x45px', true, '', '_Icon' )
	
	if tComplet then
	  Tableau = Tableau .. '\n| style="text-align:center" | ' .. args.id
	end
	
	if args.Type == 'rune' then
	  Tableau = Tableau .. '\n|' .. modSucces.deblocage( args.deblocage, false )
	end
	
	if tComplet then
	  Tableau = Tableau .. '\n|' .. args.citation
	end
	
	Tableau = Tableau .. '\n|' .. args.description
	
	if args.Type == 'objet actif' then
	  Tableau = Tableau .. '\n|' .. p.recharge( args.recharge )
	end
	
	Tableau = Tableau .. '|}'
	
	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, 0 )
		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
		
		Tableau = Tableau .. '\n|-\n| style="text-align:center; font-size:9pt" |' .. p.image( args.nom, args.remplaceNom, args.remplaceImage, '70px', false, '', '_Icon' )
		
		if args.personnage ~= nil and args.personnage ~= '' then
			Tableau = Tableau .. '\n|-\n! Apparence du personnage\n|-\n| style="text-align:center; font-weight:normal" |' .. p.image( args.nom, args.remplaceNom, args.personnage, '100px', false, '', '_App' )
		end
		
		if args.larmes ~= nil and args.larmes ~= '' then
			Tableau = Tableau .. '\n|-\n! Apparence des larmes\n|-\n| style="text-align:center; font-weight:normal" |' .. p.image( args.nom, args.remplaceNom, args.larmes, '100px', false, '', '_Tears' )
		end
		
		Tableau = Tableau .. '\n|-\n! Type d\'objet\n|-\n| style="text-align:center; font-weight:normal" |' .. p.type( args.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
			Tableau = Tableau .. '\n|-\n! Temps de rechargement\n|-\n| style="text-align:center; font-weight:normal" |' .. p.recharge( args.recharge )
		end
		
		if args.liste ~= nil and args.liste ~= '' then
			Tableau = Tableau .. '\n|-\n! Liste de génération\n|-\n| style="text-align:center; font-weight:normal" |' .. p.liste( args.liste )
		end
		
		if args.deblocage ~= nil and args.deblocage ~= '' then
			Tableau = Tableau .. '\n|-\n! Méthode de déblocage\n|-\n| style="text-align:center; font-weight:normal" |' .. modSucces.deblocage( args.deblocage, false )
		end
		
		Tableau = Tableau .. '\n|}'
	end
	
	return Tableau
end

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

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

function p.nom( nom, remplaceNom, mode )
	local nomFinal = nom
	
	if remplaceNom ~= nil and remplaceNom ~= '' then
		nomFinal = remplaceNom
	end
	if mode == 1 then
		return nom .. '|' .. nomFinal
	elseif mode == 2 then
		return '[[' .. nom .. '|' .. nomFinal .. ']]'
	else
		return nomFinal
	end
end

--[[ FONCTION IMAGE ]]

function p.image( nom, remplaceNom, remplaceImage, _t, lien, _sD, _sF )
	local n = 1
	local _i = nom
	local _e = '.png'
	local _l = ''
	local autres = false
	
	if remplaceImage then
		local image = mw.text.split( remplaceImage, '%s' )
		
		if image[1] then
			repeat
				if image[n]:find( '%.' ) then
					_e = image[n]
				elseif image[n]:find( 'px' ) or image[n]:find( '%%' ) then
					_t = image[n]
				elseif not autres then
					_i = image[n]
					autres = true
				else
					_c = '[[Catégorie:Paramètres d\'image inconnus]]'
				end
				n = n + 1
			until not image[n]
		end
	end
	if lien then
		_l = p.nom( nom, remplaceNom, 1 )
	else
		_l = ''
	end
	
	return '[[Image:' .. _sD .. _i .. _sF .. _e .. '|' .. _t .. '|lien=' .. _l .. ']]'
end

--[[ FONCTION TYPE ]]

function p.type( 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( recharge )
	local args = mw.text.split( recharge, ', ' )
	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;' .. recharge
end

--[[ FONCTION LISTE ]]

function p.liste( liste )
	local args = mw.text.split( liste, ', ' )
	
	return modIcone.liste( args, 'm' )
end

--[[ FONCTIONS GRILLE COLLECTION ]]

function p.grillecollection( grille )
	local args = mw.text.split( grille, '%s' )

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

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

--[[ FONCTIONS GENERALES : FIN ]]

return p