Module:Fiche : Différence entre versions

De Binding of Isaac: Rebirth Wiki
Aller à : navigation, rechercher
(Optimisation et fonction Dlc inutile)
(Sauts de ligne)
 
(52 révisions intermédiaires par le même utilisateur non affichées)
Ligne 9 : Ligne 9 :
  
 
--[[ FONCTIONS ARGUMENTS INITIAUX : DEBUT ]]
 
--[[ FONCTIONS ARGUMENTS INITIAUX : DEBUT ]]
--[[ FONCTIONS ARGUMENTS OBJET ]]
+
--[[ 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'],
 +
miniBoss = f:getParent().args['miniboss'],
 +
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 )
 
function p.argsObjet( f )
Ligne 20 : Ligne 42 :
 
dlc = f:getParent().args['dlc'],
 
dlc = f:getParent().args['dlc'],
 
grille = f:getParent().args['grille'],
 
grille = f:getParent().args['grille'],
grilleold = f:getParent().args['gerilleold'],
+
grilleold = f:getParent().args['grilleold'],
 
id = f:getParent().args['id'],
 
id = f:getParent().args['id'],
 
imageCase = f:getParent().args['image-case'],
 
imageCase = f:getParent().args['image-case'],
Ligne 30 : Ligne 52 :
 
personnage = f:getParent().args['personnage'],
 
personnage = f:getParent().args['personnage'],
 
recharge = f:getParent().args['recharge'],
 
recharge = f:getParent().args['recharge'],
remplaceimage = f:getParent().args['remplaceimage'],
+
remplaceImage = f:getParent().args['remplaceimage'],
remplacenom = f:getParent().args['remplacenom'],
+
remplaceNom = f:getParent().args['remplacenom'],
 +
temp = f:getParent().args['temp'],
 
Type = f:getParent().args['type'],
 
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'],
 +
consommable = f:getParent().args['consommable'],
 +
deblocage = f:getParent().args['déblocage'],
 +
degats = f:getParent().args['dégâts'],
 +
nom = f:getParent().args['nom'],
 +
objet = f:getParent().args['objet'],
 +
portee = f:getParent().args['portée'],
 +
remplaceNom = f:getParent().args['remplacenom'],
 +
remplaceImage = f:getParent().args['remplaceimage'],
 +
sante = f:getParent().args['santé'],
 +
vitesse = f:getParent().args['vitesse'],
 +
vitesseLarmes = f:getParent().args['vitesselarmes'],
 
visible = f:getParent().args['visible']
 
visible = f:getParent().args['visible']
 
}
 
}
Ligne 39 : Ligne 83 :
 
--[[ FONCTIONS ARGUMENTS INITIAUX : FIN ]]
 
--[[ FONCTIONS ARGUMENTS INITIAUX : FIN ]]
  
--[[ FONCTIONS D'OBJETS : DEBUT ]]
+
--[[ FONCTIONS MODES : DEBUT ]]
 
--[[ FONCTION MODE OBJET ]]
 
--[[ FONCTION MODE OBJET ]]
  
Ligne 49 : Ligne 93 :
 
if blocage[2] == 'dlc' then
 
if blocage[2] == 'dlc' then
 
page.valeur.dlc = args.dlc
 
page.valeur.dlc = args.dlc
 +
elseif blocage[2] == 'nodlc' then
 +
  page.valeur.dlc = 'Booster Pack 10'
 
end
 
end
 
 
if args.disp == 'nom' then
+
if args.temp == args.nom or args.temp == '{{{1}}}' then
return p.modeObjetNom( f, page.valeur.dlc )
+
  if args.disp == '{{{2}}}' then
else
+
  return p.ficheObjet( f )
return "''Mode d'affichage inconnu <sup>[<nowiki/>[" .. args.nom .. "]<nowiki/>]</sup>'' [[Catégorie:Mode de modèle manquant]]"
+
  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
 
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
 
end
  
--[[ FONCTION MODE OBJET NOM ]]
+
--[[ FONCTION MODE OBJET TABLEAU ]]
  
function p.modeObjetNom( f, icone )
+
function p.modeObjetTableau( f, iconeDlc, tComplet )
local dlc = p.dlc( f )
+
local args = p.argsObjet( f )
if dlc ~= nil and icone then
+
Tableau = dlc
+
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
 +
 +
if tComplet then
 +
  Tableau = Tableau .. '\n| style="text-align:center" | ' .. args.id
 +
end
 +
 +
Tableau = Tableau .. '\n| style="text-align:center" | ' .. p.image( args.nom, args.remplaceNom, args.remplaceImage, '45x45px', true, '', '_Icon' )
 +
 +
if args.Type == 'rune' then
 +
  Tableau = Tableau .. '\n|' .. modSucces.deblocage( args.deblocage, false )
 +
end
 +
 +
if tComplet and args.citation ~= nil and args.citation ~= '' then
 +
  Tableau = Tableau .. '\n|' .. p.citation( args.citation, true )
 
end
 
end
 
 
local lien = p.lien( f, true )
+
Tableau = Tableau .. '\n|' .. args.description
Tableau = Tableau .. lien
+
 +
if args.Type == 'objet actif' then
 +
  Tableau = Tableau .. '\n|' .. p.recharge( args.recharge )
 +
end
 
 
 
return Tableau
 
return Tableau
Ligne 79 : Ligne 185 :
 
 
 
if args.visible ~= 0 then
 
if args.visible ~= 0 then
local nom = p.nom( args.nom, args.remplacenom )
+
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
 
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
 
 
Ligne 87 : Ligne 193 :
 
end
 
end
 
 
local image = p.image( f , false )
+
Tableau = Tableau .. '\n|-\n| style="text-align:center; font-size:9pt" |' .. p.image( args.nom, args.remplaceNom, args.remplaceImage, '70px', false, '', '_Icon' )
Tableau = Tableau .. '\n|-\n| style="text-align:center; font-size:9pt" | ' .. image
+
 +
if args.Type == 'objet actif' or args.Type == 'objet passif' then
 +
    Tableau = Tableau .. '\n[[Fichier:Item_altar.png|100px|centre|lien=]]'
 +
end
 
 
 
if args.personnage ~= nil and args.personnage ~= '' then
 
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" |' .. p.image( args.nom, args.remplaceNom, args.personnage, '100px', false, '', '_App' )
Tableau = Tableau .. '\n|-\n! Apparence du personnage\n|-\n| style="text-align:center; font-weight:normal" | ' .. personnage
 
 
end
 
end
 
 
 
if args.larmes ~= nil and args.larmes ~= '' then
 
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" |' .. p.image( args.nom, args.remplaceNom, args.larmes, '100px', false, '', '_Tears' )
Tableau = Tableau .. '\n|-\n! Apparence des larmes\n|-\n| style="text-align:center; font-weight:normal" | ' .. larmes
 
 
end
 
end
 
 
local Type = p.type( f )
+
Tableau = Tableau .. '\n|-\n! Type d\'objet\n|-\n| style="text-align:center; font-weight:normal" |' .. p.type( args.Type )
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! 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.citation ~= nil and args.citation ~= '' then
 +
    Tableau = Tableau .. '\n|-\n! Citation\n|-\n| style="text-align:center; font-weight:normal" |' .. p.citation( args.citation, true )
 +
end
 
 
if args.animation == nil and args.animation == '' then
+
if args.animation ~= nil and args.animation ~= '' then
Tableau = Tableau .. '\n|-\n! Animation\n|-\n| style="text-align:center; font-weight:normal" | ' .. args.animation
+
Tableau = Tableau .. '\n|-\n! Animation\n|-\n| style="text-align:center; font-weight:normal" |' .. args.animation
 
end
 
end
 
 
 
if args.recharge ~= nil and args.recharge ~= '' then
 
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" |' .. p.recharge( args.recharge )
Tableau = Tableau .. '\n|-\n! Temps de rechargement\n|-\n| style="text-align:center; font-weight:normal" | ' .. recharge
 
 
end
 
end
 
 
 
if args.liste ~= nil and args.liste ~= '' then
 
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" |' .. p.liste( args.liste )
Tableau = Tableau .. '\n|-\n! Liste de génération\n|-\n| style="text-align:center; font-weight:normal" | ' .. liste
 
 
end
 
end
 
 
 
if args.deblocage ~= nil and args.deblocage ~= '' then
 
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" |' .. modSucces.deblocage( args.deblocage, false )
Tableau = Tableau .. '\n|-\n! Méthode de déblocage\n|-\n| style="text-align:center; font-weight:normal" | ' .. deblocage
 
 
end
 
end
 
 
 +
if args.grille ~= nil and args.grille ~= '' then
 +
    Tableau = Tableau .. '\n|-\n! Grille de collection\n|-\n| style="text-align:center; font-weight:normal" |'
 +
    if args.grilleold ~= nil and args.grilleold ~= '' then
 +
        Tableau = Tableau .. modDlc.icon( 'Afterbirth' ) .. ' <u>Afterbirth</u>\n' .. p.grilleCollection( args.grille, 20, 6, true ) .. '<u>Rebirth</u>\n' .. p.grilleCollection( args.grilleold, 10, 10, true )
 +
    else
 +
        Tableau = Tableau .. p.grilleCollection( args.grille, 20, 6, true )
 +
    end
 +
    end
 +
   
 
Tableau = Tableau .. '\n|}'
 
Tableau = Tableau .. '\n|}'
 
end
 
end
Ligne 137 : Ligne 251 :
 
--[[ FONCTION NOM ]]
 
--[[ FONCTION NOM ]]
  
function p.nom( nom, remplacenom )
+
function p.nom( nom, remplaceNom, mode )
if remplacenom == nil or remplacenom == '' then
+
local nomFinal = nom
return nom
+
else
+
if remplaceNom ~= nil and remplaceNom ~= '' then
return remplacenom
+
nomFinal = remplaceNom
 
end
 
end
end
+
if mode == 1 then
 
+
return nom .. '|' .. nomFinal
--[[ FONCTION LIEN ]]
+
elseif mode == 2 then
 
+
return '[[' .. nom .. '|' .. nomFinal .. ']]'
function p.lien( f, mode )
 
local nom = p.nom( f )
 
 
if mode then
 
return '[[' .. f:getParent().args['nom'] .. '|' .. nom .. ']]'
 
 
else
 
else
return f:getParent().args['nom'] .. '|' .. nom
+
return nomFinal
 
end
 
end
 
end
 
end
Ligne 159 : Ligne 268 :
 
--[[ FONCTION IMAGE ]]
 
--[[ FONCTION IMAGE ]]
  
function p.image( f , lien )
+
function p.image( nom, remplaceNom, remplaceImage, _t, lien, _sD, _sF )
local image = f:getParent().args['nom']
+
local n = 1
local remplaceimage = f:getParent().args['remplaceimage']
+
local _i = nom
local typeimage = f:getParent().args['typeimage']
+
local _e = '.png'
local taillepcpl = f:getParent().args['taille-pcpl']
+
local _l = ''
 +
local autres = false
 
 
if remplaceimage == nil or remplaceimage == '' then
+
if remplaceImage then
image = '[[Image:' .. image .. '_Icon.'
+
local image = mw.text.split( remplaceImage, '%s' )
if typeimage == nil or typeimage == '' then
+
image = image .. 'png'
+
if image[1] then
else
+
repeat
image = image .. typeimage
+
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
else
 
image = '[[Image:' .. remplaceimage
 
 
end
 
end
 
 
if lien then
 
if lien then
+
_l = p.nom( nom, remplaceNom, 1 )
 
else
 
else
if taillepcpl == nil or taillepcpl == '' then
+
_l = ''
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
 
end
 
 
return '[[Image:' .. nom[1] .. ext .. '.' .. nom[2] .. '|' .. image[2] .. ']]'
+
return '[[Image:' .. _sD .. _i .. _sF .. _e .. '|' .. _t .. '|lien=' .. _l .. ']]'
 
end
 
end
  
 
--[[ FONCTION TYPE ]]
 
--[[ FONCTION TYPE ]]
  
function p.type( f )
+
function p.type( Type )
local Type = f:getParent().args['type']
 
 
 
if Type == 'objet actif' then
 
if Type == 'objet actif' then
 
return '[[Objets#Objets Actifs|Objet Actif]]'
 
return '[[Objets#Objets Actifs|Objet Actif]]'
Ligne 233 : Ligne 323 :
 
return Type
 
return Type
 
end
 
end
 +
end
 +
 +
--[[ FONCTION CITATION ]]
 +
 +
function p.citation( citation, italique )
 +
    local phrase
 +
    local _c = ''
 +
   
 +
    if citation:find( 'vf' ) then
 +
        phrase = mw.text.split( citation, '%)%s' )
 +
        phrase[1] = mw.text.trim( phrase[1], 'vo%(' )
 +
        phrase[2] = mw.text.trim( phrase[2], 'vf%(' )
 +
        phrase[2] = mw.text.trim( phrase[2], '%)' )
 +
        _c = "[[Fichier:Drapeau_EN.png|18px|lien=|Texte original]] ''\"" .. phrase[1] .. "\"''\n[[Fichier:Drapeau_FR.png|18px|lien=|Traduction française]] ''\"" .. phrase[2] .. "\"''"
 +
    else
 +
        phrase = mw.text.trim( citation, 'vo%(' )
 +
        phrase = mw.text.trim( citation, '%)' )
 +
        _c = "''\"" .. phrase .. "\"''"
 +
    end
 +
   
 +
    return _c
 
end
 
end
  
 
--[[ FONCTION RECHARGE ]]
 
--[[ FONCTION RECHARGE ]]
  
function p.recharge( f )
+
function p.recharge( recharge )
local args = mw.text.split( f, ', ' )
+
local args = mw.text.split( recharge, ',%s' )
 
local _i = ''
 
local _i = ''
 
 
 
if args[1] == '1' then
 
if args[1] == '1' then
_i = '[[Image:Recharge_1.png]]'
+
_i = '[[Image:Recharge_1.png|lien=|Recharge à 1 cran]]'
 
elseif args[1] == '2' then
 
elseif args[1] == '2' then
_i = '[[Image:Recharge_2.png]]'
+
_i = '[[Image:Recharge_2.png|lien=|Recharge à 2 crans]]'
 
elseif args[1] == '3' then
 
elseif args[1] == '3' then
_i = '[[Image:Recharge_3.png]]'
+
_i = '[[Image:Recharge_3.png|lien=|Recharge à 3 crans]]'
 
elseif args[1] == '4' then
 
elseif args[1] == '4' then
_i = '[[Image:Recharge_4.png]]'
+
_i = '[[Image:Recharge_4.png|lien=|Recharge à 4 crans]]'
 
elseif args[1] == '6' then
 
elseif args[1] == '6' then
_i = '[[Image:Recharge_6.png]]'
+
_i = '[[Image:Recharge_6.png|lien=|Recharge à 6 crans]]'
 
elseif args[1] == '12' then
 
elseif args[1] == '12' then
_i = '[[Image:Recharge_12.png]]'
+
_i = '[[Image:Recharge_12.png|lien=|Recharge à 12 crans]]'
 
elseif args[1] == 'utilisation unique' then
 
elseif args[1] == 'utilisation unique' then
_i = '[[Image:Recharge_one_time.png]]'
+
_i = '[[Image:Recharge_one_time.png|lien=|Utilisation unique]]'
 
elseif string.find( args[1], 's' ) then
 
elseif string.find( args[1], 's' ) then
_i = '[[Image:Recharge_time.png]]'
+
_i = '[[Image:Recharge_time.png|lien=|Recharge en ' .. mw.text.trim( args[1], 's' ) .. ' secondes]]'
 
end
 
end
 
 
return _i .. ' &nbsp;' .. f
+
return _i .. ' &nbsp;' .. recharge
 
end
 
end
  
 
--[[ FONCTION LISTE ]]
 
--[[ FONCTION LISTE ]]
  
function p.liste( f )
+
function p.liste( liste )
local args = f:getParent().args['liste']
+
local args = mw.text.split( liste, ',%s' )
local listes = mw.text.split( args, ', ' )
 
 
 
local icones = modIcone.liste( listes, 'm' )
+
return modIcone.liste( args, '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
 
end
  
 
--[[ FONCTIONS GRILLE COLLECTION ]]
 
--[[ FONCTIONS GRILLE COLLECTION ]]
  
function p.grillecollection( f )
+
function p.grilleCollection( grille, maxColonne, maxLigne, texte )
local args = f:getParent().args['grille']
+
local args = mw.text.split( grille, '%s' )
local arg = mw.text.split( args, '%s' )
+
    local colonne = tonumber( args[2] )
 
+
    local ligne = tonumber( args[3] )
return '{{GrilleCollection |' .. arg[1] .. '|' .. arg[2] .. '|' .. arg[3] .. '}}'
+
    local _t = ''
end
+
    local _g = ''
 
+
   
function p.grillecollectionold( f )
+
    if texte then
local args = f:getParent().args['grilleold']
+
        _t = '(page ' .. args[1] .. ', colonne ' .. args[2] .. ', ligne ' .. args[3] .. ')'
local arg = mw.text.split( args, '%s' )
+
    end
+
   
return '{{GrilleCollectionOld |' .. arg[1] .. '|' .. arg[2] .. '|' .. arg[3] .. '}}'
+
    _g = '\n{| class="wikitable" style="margin:1em auto 1em auto; line-height:0"\n|-'
 +
   
 +
    for i=1, maxLigne, 1 do
 +
        if ligne == i then
 +
            _g = _g .. '\n|- style="background-color:#CCC"'
 +
        else
 +
            _g = _g .. '\n|-'
 +
        end
 +
        for j=1, maxColonne, 1 do
 +
            if colonne == j and ligne == i then
 +
                _g = _g .. '\n| style="background-color:#888" |'
 +
            elseif colonne == j then
 +
                _g = _g .. '\n| style="background-color:#CCC" |'
 +
            else
 +
                _g = _g .. '\n|'
 +
            end
 +
        end
 +
    end
 +
   
 +
    _g = _g .. '\n|}'
 +
   
 +
return _t .. _g
 
end
 
end
  

Version actuelle en date du 24 mai 2017 à 19:24


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'],
		miniBoss = f:getParent().args['miniboss'],
		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['grilleold'],
		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'],
		consommable = f:getParent().args['consommable'],
		deblocage = f:getParent().args['déblocage'],
		degats = f:getParent().args['dégâts'],
		nom = f:getParent().args['nom'],
		objet = f:getParent().args['objet'],
		portee = f:getParent().args['portée'],
		remplaceNom = f:getParent().args['remplacenom'],
		remplaceImage = f:getParent().args['remplaceimage'],
		sante = f:getParent().args['santé'],
		vitesse = f:getParent().args['vitesse'],
		vitesseLarmes = f:getParent().args['vitesselarmes'],
		visible = f:getParent().args['visible']
	}
end

--[[ FONCTIONS ARGUMENTS INITIAUX : FIN ]]

--[[ FONCTIONS MODES : 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
	elseif blocage[2] == 'nodlc' then
	  page.valeur.dlc = 'Booster Pack 10'
	end
	
	if args.temp == args.nom or args.temp == '{{{1}}}' then
  	if args.disp == '{{{2}}}' 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
	
	if tComplet then
	  Tableau = Tableau .. '\n| style="text-align:center" | ' .. args.id
	end
	
	Tableau = Tableau .. '\n| style="text-align:center" | ' .. p.image( args.nom, args.remplaceNom, args.remplaceImage, '45x45px', true, '', '_Icon' )
	
	if args.Type == 'rune' then
	  Tableau = Tableau .. '\n|' .. modSucces.deblocage( args.deblocage, false )
	end
	
	if tComplet and args.citation ~= nil and args.citation ~= '' then
	  Tableau = Tableau .. '\n|' .. p.citation( args.citation, true )
	end
	
	Tableau = Tableau .. '\n|' .. args.description
	
	if args.Type == 'objet actif' then
	  Tableau = Tableau .. '\n|' .. p.recharge( args.recharge )
	end
	
	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.Type == 'objet actif' or args.Type == 'objet passif' then
		    Tableau = Tableau .. '\n[[Fichier:Item_altar.png|100px|centre|lien=]]'
		end
		
		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
		
		if args.citation ~= nil and args.citation ~= '' then
		    Tableau = Tableau .. '\n|-\n! Citation\n|-\n| style="text-align:center; font-weight:normal" |' .. p.citation( args.citation, true )
		end
		
		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
		
		if args.grille ~= nil and args.grille ~= '' then
		    Tableau = Tableau .. '\n|-\n! Grille de collection\n|-\n| style="text-align:center; font-weight:normal" |'
		    if args.grilleold ~= nil and args.grilleold ~= '' then
		        Tableau = Tableau .. modDlc.icon( 'Afterbirth' ) .. ' <u>Afterbirth</u>\n' .. p.grilleCollection( args.grille, 20, 6, true ) .. '<u>Rebirth</u>\n' .. p.grilleCollection( args.grilleold, 10, 10, true )
		    else
		        Tableau = Tableau .. p.grilleCollection( args.grille, 20, 6, true )
		    end
	    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 CITATION ]]

function p.citation( citation, italique )
    local phrase
    local _c = ''
    
    if citation:find( 'vf' ) then
        phrase = mw.text.split( citation, '%)%s' )
        phrase[1] = mw.text.trim( phrase[1], 'vo%(' )
        phrase[2] = mw.text.trim( phrase[2], 'vf%(' )
        phrase[2] = mw.text.trim( phrase[2], '%)' )
        _c = "[[Fichier:Drapeau_EN.png|18px|lien=|Texte original]] ''\"" .. phrase[1] .. "\"''\n[[Fichier:Drapeau_FR.png|18px|lien=|Traduction française]] ''\"" .. phrase[2] .. "\"''"
    else
        phrase = mw.text.trim( citation, 'vo%(' )
        phrase = mw.text.trim( citation, '%)' )
        _c = "''\"" .. phrase .. "\"''"
    end
    
    return _c
end

--[[ FONCTION RECHARGE ]]

function p.recharge( recharge )
	local args = mw.text.split( recharge, ',%s' )
	local _i = ''
	
	if args[1] == '1' then
		_i = '[[Image:Recharge_1.png|lien=|Recharge à 1 cran]]'
	elseif args[1] == '2' then
		_i = '[[Image:Recharge_2.png|lien=|Recharge à 2 crans]]'
	elseif args[1] == '3' then
		_i = '[[Image:Recharge_3.png|lien=|Recharge à 3 crans]]'
	elseif args[1] == '4' then
		_i = '[[Image:Recharge_4.png|lien=|Recharge à 4 crans]]'
	elseif args[1] == '6' then
		_i = '[[Image:Recharge_6.png|lien=|Recharge à 6 crans]]'
	elseif args[1] == '12' then
		_i = '[[Image:Recharge_12.png|lien=|Recharge à 12 crans]]'
	elseif args[1] == 'utilisation unique' then
		_i = '[[Image:Recharge_one_time.png|lien=|Utilisation unique]]'
	elseif string.find( args[1], 's' ) then
		_i = '[[Image:Recharge_time.png|lien=|Recharge en ' .. mw.text.trim( args[1], 's' ) .. ' secondes]]'
	end
	
	return _i .. ' &nbsp;' .. recharge
end

--[[ FONCTION LISTE ]]

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

--[[ FONCTIONS GRILLE COLLECTION ]]

function p.grilleCollection( grille, maxColonne, maxLigne, texte )
	local args = mw.text.split( grille, '%s' )
    local colonne = tonumber( args[2] )
    local ligne = tonumber( args[3] )
    local _t = ''
    local _g = ''
    
    if texte then
        _t = '(page ' .. args[1] .. ', colonne ' .. args[2] .. ', ligne ' .. args[3] .. ')'
    end
    
    _g = '\n{| class="wikitable" style="margin:1em auto 1em auto; line-height:0"\n|-'
    
    for i=1, maxLigne, 1 do
        if ligne == i then
            _g = _g .. '\n|- style="background-color:#CCC"'
        else
            _g = _g .. '\n|-'
        end
        for j=1, maxColonne, 1 do
            if colonne == j and ligne == i then
                _g = _g .. '\n| style="background-color:#888" |'
            elseif colonne == j then
                _g = _g .. '\n| style="background-color:#CCC" |'
            else
                _g = _g .. '\n|'
            end
        end
    end
    
    _g = _g .. '\n|}'
    
	return _t .. _g
end

--[[ FONCTIONS GENERALES : FIN ]]

return p