Module:ImagerieTest
Apparence
Ce module est une version test du Module:Imagerie.
local p = {}
local ressources = {
indexTableau = require("Module:Ressources/indexTableau"),
tailleTableau = require("Module:Ressources/tailleTableau")
}
function p.pokemon( frame )
-- CONFIGURATION INITIALE
local num, generation
local generationMax = 9
if frame.args[1] == nil then return "Erreur : le numéro du Pokémon n'a pas été défini." else num = frame.args[1] end
if frame.args['génération'] == nil then generation = generationMax else generation = tonumber( frame.args['génération'] ) end
if frame.args['forme'] then forme = frame.args['forme'] .. ' ' else forme = '' end
local nom_gen= ''
local symbole_chromatique = ''
local hasPermittedShinyLock = false
local pagename = frame:preprocess("{{PAGENAME}}")
local affichageArtwork = 'non'
if not frame.args['affichage-artwork']
then if pagename:find("Imagerie")
then affichageArtwork = 'non'
elseif pagename:find("Génération")
then affichageArtwork = 'précisé'
else affichageArtwork = 'général'
end
else affichageArtwork = frame.args['affichage-artwork']
end
local jeux = {}
-- tableau de trois éléments
-- le premier liste les groupes de jeux ayant une miniature commune,
-- le deuxième liste les groupes de jeux ayant un sprite de face commun,
-- le troisième liste les groupes de jeux ayant un sprite de dos commun
local sprites = {}
if generation == 1 then
nom_gen = 'première'
jeux = {"RV", "RB", "J"}
sprites = { { RV = {"RV", "RB", "J"} }, { RV = {"RV"}, RB = {"RB"}, J = {"J"} }, { RV = {"RV", "RB", "J"} } }
elseif generation == 2 then
nom_gen = 'deuxième'
symbole_chromatique = '[[Fichier:Miniature Chromatique OA.png]]'
jeux = {"OA", "O", "A", "C"}
sprites = { { OA = {"O", "A", "C"} }, { O = {"O"}, A = {"A"}, C = {"C"} }, { OA = {"O", "A", "C"} } }
elseif generation == 3 then
nom_gen = 'troisième'
symbole_chromatique = '[[Fichier:Miniature Chromatique RFVF.png]]'
jeux = {"RS", "RFVF", "E"}
sprites = { { RS = {"RS", "RFVF", "E"} }, { RS = {"RS", "RFVF"}, E = {"E"} }, { RS = {"RS", "RFVF", "E"} } }
elseif generation == 4 then
nom_gen = 'quatrième'
symbole_chromatique = '[[Fichier:Miniature Chromatique DP.png]]'
jeux = {"DP", "Pt", "HGSS"}
sprites = { { DP = {"DP", "Pt", "HGSS"} }, { DP = {"DP", "Pt"}, HGSS = {"HGSS"} }, { DP = {"DP", "Pt", "HGSS"} } }
elseif generation == 5 then
nom_gen = 'cinquième'
symbole_chromatique = '[[Fichier:Miniature Chromatique NB.png]]'
jeux = {"NB", "N2B2"}
sprites = { { NB = {"NB", "N2B2"} }, { NB = {"NB", "N2B2"} }, { NB = {"NB", "N2B2"} } }
elseif generation == 6 then
nom_gen = 'sixième'
symbole_chromatique = '[[Fichier:Miniature Chromatique XY.png]]'
jeux = {"XY", "ROSA"}
sprites = { { XY = {"XY", "ROSA"} }, { XY = {"XY", "ROSA"} }, { XY = {"XY", "ROSA"} } }
elseif generation == 7 then
nom_gen = 'septième'
symbole_chromatique = '[[Fichier:Miniature Chromatique SL.png]]'
jeux = {"SL", "USUL", "LGPE"}
sprites = { { SL = {"SL", "USUL"}, LGPE = {"LGPE"} }, { SL = {"SL", "USUL"}, LGPE = {"LGPE"} }, { SL = {"SL", "USUL"}, LGPE = {"LGPE"} } }
elseif generation == 8 then
nom_gen = 'huitième'
symbole_chromatique = '[[Fichier:Miniature Chromatique EB.png|x20px]]'
jeux = {"EB", "DEPS", "LPA"}
sprites = { { EB = {"EB"}, DEPS = {"DEPS"}, LPA = {"LPA"} }, { EB = {"EB", "DEPS"}, LPA = {"LPA"} }, { EB = {"EB", "DEPS"}, LPA = {"LPA"} } }
elseif generation == 9 then
nom_gen = 'neuvième'
symbole_chromatique = '[[Fichier:Miniature Chromatique EV.png|x20px]]'
jeux = {"EV", "HOME"}
sprites = { { EV = {"EV"}, HOME = {"HOME"} }, { EV = {"EV"}, HOME = {"HOME"} }, { EV = {"EV"}, HOME = {"HOME"} } }
else return "Erreur : génération inconnue."
end
-- GESTION DES PARAMETRES DE CONFIGURATION PRINCIPAUX
if not frame.args['absence-lgpe'] then frame.args['absence-lgpe'] = 'oui' end
if not frame.args['absence-miniature'] then frame.args['absence-miniature'] = 'non' end
if frame.args['absence-miniature'] == 'oui' then sprites[1] = {} end
local absences_dos = { 'eb', 'deps', 'lpa', 'ev', 'lpza', 'home' }
for _, jeu in ipairs(absences_dos) do
mw.log('absence-dos-' .. jeu)
mw.log(frame.args['absence-dos-' .. jeu])
if not frame.args['absence-dos-' .. jeu] then frame.args['absence-dos-' .. jeu] = 'oui' end
mw.log(frame.args['absence-dos-' .. jeu])
end
if not frame.args['diff-miniatures-sexe-lpa'] and (frame.args['diff-sprites-sexe'] == 'oui' or frame.args['diff-sprites-face-sexe'] == 'oui') then frame.args['diff-miniatures-sexe-lpa'] = 'oui' end
if not frame.args['miniature-chromatique-lpa'] then frame.args['miniature-chromatique-lpa'] = 'oui' end
local remove = {}
for _, jeu in ipairs(jeux) do
-- gestion des absences dans un jeu donné
-- si l'absence a lieu pour un jeu qui servait de référence à un groupe, le reste du groupe est éclaté afin de conserver les autres membres
-- (les valeurs deviennent des clés/valeurs supplémentaires du tableau parent)
if frame.args['absence-' .. string.lower(jeu)] and frame.args['absence-' .. string.lower(jeu)] ~= 'non' then
table.insert(remove, jeu)
for _2, spritesN in ipairs(sprites) do
if spritesN[jeu] then
if #spritesN[jeu] > 1 then
for _3, jeuN in ipairs(spritesN[jeu]) do
if jeuN ~= jeu then
spritesN[jeuN] = { jeuN }
end
end
end
spritesN[jeu] = nil
else
for _3, spriteN in pairs(spritesN) do
if ressources.indexTableau(spriteN, jeu) then
table.remove(spriteN, ressources.indexTableau(spriteN, jeu))
break
end
end
end
end
end
local paramsSprites = { 'miniature', 'sprite-face', 'sprite-dos' }
local paramsBackSprites = { 'absence-miniature', 'absence-face', 'absence-dos' }
for numParam = 1, #paramsSprites do
local paramSprites = paramsSprites[numParam]
local paramBackSprites = paramsBackSprites[numParam]
-- gestion des sprites de face/dos non prévus par le scénario standard, déclarés manuellement
-- (les sprites sont supposés communs par groupes de jeux mais des exceptions existent)
if frame.args[paramSprites .. '-' .. string.lower(jeu)] then
local param = frame.args[paramSprites .. '-' .. string.lower(jeu)]
for _2, jeu2 in ipairs(jeux) do
if string.lower(jeu2) == string.lower(param) then
param = jeu2
break
end
end
if sprites[numParam][jeu] then sprites[numParam][jeu] = nil
else
for _2, sprite in pairs(sprites[numParam]) do
if ressources.indexTableau(sprite, jeu) then
table.remove(sprite, ressources.indexTableau(sprite, jeu))
break
end
end
end
if sprites[numParam][param] then table.insert(sprites[numParam][param], jeu)
else sprites[numParam][param] = { jeu }
end
end
-- gestion des jeux sans sprite de face ou de dos
if frame.args[paramBackSprites .. '-' .. string.lower(jeu)] and frame.args[paramBackSprites .. '-' .. string.lower(jeu)] ~= 'non' then
if sprites[numParam][jeu] then sprites[numParam][jeu] = nil
else
for _2, sprite in pairs(sprites[numParam]) do
if ressources.indexTableau(sprite, jeu) then
table.remove(sprite, ressources.indexTableau(sprite, jeu))
break
end
end
end
end
end
end
for _, jeu in ipairs(remove) do
table.remove(jeux, ressources.indexTableau(jeux, jeu))
end
-- gestion des paramètres par jeu des diff de miniatures
local found = false
for _, jeu in ipairs(remove) do
if frame.args['diff-miniatures-sexe-' .. string.lower(jeu)] then found = true end
end
if found
then frame.args['diff-miniatures-sexe'] = 'non'
for _, jeu in ipairs(remove) do
if frame.args['diff-miniatures-sexe-' .. string.lower(jeu)] ~= 'oui'
then frame.args['diff-miniatures-sexe-' .. string.lower(jeu)] = 'non'
end
end
end
-- CRÉATION VIRTUELLE DU TABLEAU ET PARAMÈTRES DE CONFIGURATION SPÉCIFIQUES
local tableau = {}
if generation == 1 then
tableau[1] = { "", {}, {}, {} }
for _, jeu in ipairs(jeux) do
if sprites[1][jeu] then
table.insert(tableau[1][2], {jeu, jeu, sprites[1][jeu], 1})
end
if sprites[2][jeu] then
table.insert(tableau[1][3], {jeu, jeu, sprites[2][jeu], 1})
end
if sprites[3][jeu] then
table.insert(tableau[1][4], {jeu, "dos " .. jeu, sprites[3][jeu], 1})
end
end
elseif generation >= 4 and (frame.args['diff-miniatures-sexe'] or frame.args['diff-sprites-sexe'] or frame.args['diff-sprites-face-sexe'] or frame.args['diff-sprites-dos-sexe']) then
tableau = {
{ "[[Fichier:Miniature Mâle HOME.png|20px|Mâle|link=Sexe des Pokémon]]<br />[[Sexe des Pokémon|Mâle]]", {}, {}, {} },
{ "[[Fichier:Miniature Mâle HOME.png|20px|Mâle|link=Sexe des Pokémon]] " .. symbole_chromatique .. "<br />[[Sexe des Pokémon|Mâle]] [[Pokémon chromatique|chromatique]]", {}, {}, {} },
{ "[[Fichier:Miniature Femelle HOME.png|20px|Femelle|link=Sexe des Pokémon]]<br />[[Sexe des Pokémon|Femelle]]", {}, {}, {} },
{ "[[Fichier:Miniature Femelle HOME.png|20px|Femelle|link=Sexe des Pokémon]] " .. symbole_chromatique .. "<br />[[Sexe des Pokémon|Femelle]] [[Pokémon chromatique|chromatique]]", {}, {}, {} }
}
for _, jeu in ipairs(jeux) do
if sprites[1][jeu] then
if frame.args['diff-miniatures-sexe'] == 'oui' or frame.args['diff-miniatures-sexe-' .. string.lower(jeu)] == 'oui' then
table.insert(tableau[1][2], {jeu, forme .. "♂ " .. jeu, sprites[1][jeu], 1})
table.insert(tableau[2][2], {jeu, forme .. "♂ chromatique " .. jeu, sprites[1][jeu], 1})
table.insert(tableau[3][2], {jeu, forme .. "♀ " .. jeu, sprites[1][jeu], 1})
table.insert(tableau[4][2], {jeu, forme .. "♀ chromatique " .. jeu, sprites[1][jeu], 1})
elseif frame.args['diff-sprites-sexe'] or frame.args['diff-sprites-face-sexe'] or frame.args['diff-sprites-dos-sexe'] then
table.insert(tableau[1][2], {jeu, forme .. jeu, sprites[1][jeu], 1})
table.insert(tableau[2][2], {jeu, forme .. "chromatique " .. jeu, sprites[1][jeu], 1})
table.insert(tableau[3][2], {jeu, forme .. jeu, sprites[1][jeu], 1})
table.insert(tableau[4][2], {jeu, forme .. "chromatique " .. jeu, sprites[1][jeu], 1})
else
table.insert(tableau[1][2], {jeu, forme .. jeu, sprites[1][jeu], 2})
table.insert(tableau[3][2], {jeu, forme .. "chromatique " .. jeu, sprites[1][jeu], 2})
end
end
if sprites[2][jeu] then
if frame.args['diff-sprites-sexe'] or frame.args['diff-sprites-face-sexe'] then
table.insert(tableau[1][3], {jeu, forme .. "♂ " .. jeu, sprites[2][jeu], 1})
table.insert(tableau[2][3], {jeu, forme .. "♂ chromatique " .. jeu, sprites[2][jeu], 1})
table.insert(tableau[3][3], {jeu, forme .. "♀ " .. jeu, sprites[2][jeu], 1})
table.insert(tableau[4][3], {jeu, forme .. "♀ chromatique " .. jeu, sprites[2][jeu], 1})
elseif frame.args['diff-miniatures-sexe'] or frame.args['diff-sprites-dos-sexe'] then
table.insert(tableau[1][3], {jeu, forme .. jeu, sprites[2][jeu], 1})
table.insert(tableau[2][3], {jeu, forme .. "chromatique " .. jeu, sprites[2][jeu], 1})
table.insert(tableau[3][3], {jeu, forme .. jeu, sprites[2][jeu], 1})
table.insert(tableau[4][3], {jeu, forme .. "chromatique " .. jeu, sprites[2][jeu], 1})
else
table.insert(tableau[1][3], {jeu, forme .. jeu, sprites[2][jeu], 2})
table.insert(tableau[3][3], {jeu, forme .. "chromatique " .. jeu, sprites[2][jeu], 2})
end
end
if sprites[3][jeu] then
if frame.args['diff-sprites-sexe'] or frame.args['diff-sprites-dos-sexe'] then
table.insert(tableau[1][4], {jeu, forme .. "♂ dos " .. jeu, sprites[3][jeu], 1})
table.insert(tableau[2][4], {jeu, forme .. "♂ chromatique dos " .. jeu, sprites[3][jeu], 1})
table.insert(tableau[3][4], {jeu, forme .. "♀ dos " .. jeu, sprites[3][jeu], 1})
table.insert(tableau[4][4], {jeu, forme .. "♀ chromatique dos " .. jeu, sprites[3][jeu], 1})
elseif frame.args['diff-miniatures-sexe'] or frame.args['diff-sprites-face-sexe'] then
table.insert(tableau[1][4], {jeu, forme .. "dos " .. jeu, sprites[3][jeu], 1})
table.insert(tableau[2][4], {jeu, forme .. "chromatique dos " .. jeu, sprites[3][jeu], 1})
table.insert(tableau[3][4], {jeu, forme .. "dos " .. jeu, sprites[3][jeu], 1})
table.insert(tableau[4][4], {jeu, forme .. "chromatique dos " .. jeu, sprites[3][jeu], 1})
else
table.insert(tableau[1][4], {jeu, forme .. "dos " .. jeu, sprites[3][jeu], 2})
table.insert(tableau[3][4], {jeu, forme .. "chromatique dos " .. jeu, sprites[3][jeu], 2})
end
end
end
else
tableau = { { "", {}, {}, {} }, { symbole_chromatique .. "<br />[[Pokémon chromatique|Chromatique]]", {}, {}, {} } }
for _, jeu in ipairs(jeux) do
if sprites[1][jeu] then
table.insert(tableau[1][2], {jeu, forme .. jeu, sprites[1][jeu], 1})
table.insert(tableau[2][2], {jeu, forme .. "chromatique " .. jeu, sprites[1][jeu], 1})
end
if sprites[2][jeu] then
table.insert(tableau[1][3], {jeu, forme .. jeu, sprites[2][jeu], 1})
table.insert(tableau[2][3], {jeu, forme .. "chromatique " .. jeu, sprites[2][jeu], 1})
end
if sprites[3][jeu] then
table.insert(tableau[1][4], {jeu, forme .. "dos " .. jeu, sprites[3][jeu], 1})
table.insert(tableau[2][4], {jeu, forme .. "chromatique dos " .. jeu, sprites[3][jeu], 1})
end
end
end
-- EN-TÊTE DU TABLEAU et ARTWORK
local colonnesMiniatures, colonnesFace, colonnesDos
-- if ressources.tailleTableau(sprites[1]) == 1 then colonnesFace = false else colonnesFace = true end
-- if ressources.tailleTableau(sprites[2]) == 1 then colonnesDos = false else colonnesDos = true end
local colonnesMiniatures = true
local colonnesFace = true
local colonnesDos = true
local colonnesCompagnon = false
local colspanMiniatures = 0
local colspanFace = 0
local colspanDos = 0
local colspanCompagnon = 0
for _, jeuSprite in ipairs(jeux) do
if sprites[1][jeuSprite] then
for _2, jeu in ipairs(sprites[1][jeuSprite]) do
colspanMiniatures = colspanMiniatures + 1
end
end
if sprites[2][jeuSprite] then
for _2, jeu in ipairs(sprites[2][jeuSprite]) do
colspanFace = colspanFace + 1
end
end
if sprites[3][jeuSprite] then
for _2, jeu in ipairs(sprites[3][jeuSprite]) do
colspanDos = colspanDos + 1
end
end
if generation == 4
then colspanCompagnon = 1
colonnesCompagnon = true
end
end
local resultat = {'<div class="center"><table class="tableaustandard centre tableau-overflow liensrougesreduits">'}
local colspanMax = 1 + colspanMiniatures + colspanFace + colspanDos + colspanCompagnon
if (frame.args['artwork'] and affichageArtwork ~= 'non') or affichageArtwork == 'général' then
table.insert(resultat, '<tr><th class="transition" colspan="' .. colspanMax .. '">Artwork officiel</th></tr><tr><td colspan="' .. colspanMax .. '">[[Fichier:' .. mw.text.split(frame:getParent():getTitle(),"/",true)[1])
if frame.args['artwork-précisions'] then table.insert(resultat, ' (' .. frame.args['artwork-précisions'] .. ')') end
if affichageArtwork == 'précisé' then table.insert(resultat, '-' .. frame.args['artwork']) end
table.insert(resultat, '.png|175px]]</td></tr>')
end
table.insert(resultat, '<tr>')
if colspanMiniatures ~= 0 then
table.insert(resultat, '<th class="transition" colspan="' .. colspanMax .. '">Miniatures et sprites de la [[' .. nom_gen .. ' génération]]</th>')
else
table.insert(resultat, '<th class="transition" colspan="' .. colspanMax .. '">Sprites de la [[' .. nom_gen .. ' génération]]</th>')
end
table.insert(resultat, '</tr>')
table.insert(resultat, '<tr>')
if generation ~= 1
then table.insert(resultat, '<th')
if colonnesMiniatures or colonnesFace or colonnesDos then table.insert(resultat, ' rowspan="2"') end
table.insert(resultat, '></th>')
end
if colspanMiniatures > 0 then
table.insert(resultat, '<th')
if colonnesMiniatures then table.insert(resultat, ' colspan="' .. colspanMiniatures .. '"')
elseif colonnesFace or colonnesDos then table.insert(resultat, ' rowspan="2"')
end
table.insert(resultat, '>Miniatures</th>')
end
if colspanFace > 0 then
table.insert(resultat, '<th')
if colonnesFace then table.insert(resultat, ' colspan="' .. colspanFace .. '"')
elseif colonnesMiniatures or colonnesDos then table.insert(resultat, ' rowspan="2"')
end
table.insert(resultat, '>Sprites de face</th>')
end
if colspanDos > 0 then
table.insert(resultat, '<th')
if colonnesDos then table.insert(resultat, ' colspan="' .. colspanDos .. '"')
elseif colonnesMiniatures or colonnesFace then table.insert(resultat, ' rowspan="2"')
end
table.insert(resultat, '>Sprites de dos</th>')
end
if generation == 4 then
table.insert(resultat, '<th>Compagnon</th>')
end
table.insert(resultat, '</tr>')
if colonnesMiniature or colonnesFace or colonnesDos then
table.insert(resultat, '<tr>')
if colonnesFace then
for _, jeuSprite in ipairs(jeux) do
if sprites[1][jeuSprite] then
for _2, jeu in ipairs(sprites[1][jeuSprite]) do
table.insert(resultat, '<td class="' .. frame:expandTemplate{ title = 'Bordure', args = { jeu } } .. '">' .. frame:expandTemplate{ title = 'Abréviation', args = { jeu, '' } } .. '</th>')
end
end
end
end
if colonnesFace then
for _, jeuSprite in ipairs(jeux) do
if sprites[2][jeuSprite] then
for _2, jeu in ipairs(sprites[2][jeuSprite]) do
table.insert(resultat, '<td class="' .. frame:expandTemplate{ title = 'Bordure', args = { jeu } } .. '">' .. frame:expandTemplate{ title = 'Abréviation', args = { jeu, '' } } .. '</th>')
end
end
end
end
if colonnesDos then
for _, jeuSprite in ipairs(jeux) do
if sprites[3][jeuSprite] then
for _2, jeu in ipairs(sprites[3][jeuSprite]) do
table.insert(resultat, '<td class="' .. frame:expandTemplate{ title = 'Bordure', args = { jeu } } .. '">' .. frame:expandTemplate{ title = 'Abréviation', args = { jeu, '' } } .. '</th>')
end
end
end
end
if colonnesCompagnon then table.insert(resultat, '<td class="' .. frame:expandTemplate{ title = 'Bordure', args = { 'HGSS' } } .. '">' .. frame:expandTemplate{ title = 'Abréviation', args = { 'HGSS', '' } } .. '</th>') end
table.insert(resultat, '</tr>')
end
-- CORPS DU TABLEAU
local i = 1
while tableau[i] do
if generation ~= 1 then table.insert(resultat, '<tr><th>' .. tableau[i][1] .. '</th>') end
if frame.args['shinylock'] and generation == generationMax and i % 2 == 0 then
table.insert(resultat, '<td colspan="' .. colspanMax - 1 .. '">\'\'Indisponible car ce Pokémon est [[Shiny Lock]]\'\'</td>')
else
if frame.args['absence-miniature'] == 'non' then
for _, sprite in ipairs(tableau[i][2]) do
if frame.args['shinylock-' .. string.lower(sprite[1])] and generation == generationMax and i % 2 == 0 then
table.insert(resultat, '<td>\'\'Indisponible car ce<br>Pokémon est [[Shiny Lock]]\'\'</td>')
else
if frame.args['miniature-chromatique-' .. string.lower(sprite[1])] == "oui" or i % 2 == 1 then
local rowspanMult = 1
local skip = false
if (frame.args['diff-sprites-sexe'] or frame.args['diff-sprites-face-sexe'] or frame.args['diff-sprites-dos-sexe'])
and (frame.args['diff-miniatures-sexe'] ~= 'oui' and frame.args['diff-miniatures-sexe-' .. string.lower(sprite[1])] ~= 'oui')
and frame.args['miniature-chromatique-' .. string.lower(sprite[1])] ~= "oui"
then if i == 1
then rowspanMult = 2
else skip = true
end
end
if not skip
then
table.insert(resultat, '<td')
if colonnesMiniatures then table.insert(resultat, ' colspan="' .. #sprite[3] .. '"') end
if frame.args['miniature-chromatique-' .. string.lower(sprite[1])] ~= "oui" and not (generation == generationMax and (frame.args['shinylock'] or frame.args['shinylock-' .. string.lower(sprite[1])]))
then rowspanMult = rowspanMult * 2
else rowspanMult = 1
end
table.insert(resultat, ' rowspan="' .. rowspanMult * sprite[4] .. '" style="min-width:50px')
if (frame.args['shinylock'] or frame.args['shinylock-' .. string.lower(sprite[1])]) and i % 2 == 0
then table.insert(resultat, '; border: 2px solid #995124; background: #E2DAD5')
hasPermittedShinyLock = true
end
table.insert(resultat, '">[[Fichier:Miniature ' .. num .. ' ' .. sprite[2] .. '.')
local miniatExtension = "png"
if generation >= 2 and generation <= 5 then miniatExtension = "gif" end
table.insert(resultat, miniatExtension)
table.insert(resultat, '|class=miniature_' .. sprite[1] .. ']]</td>')
end
end
end
end
end
for _, sprite in ipairs(tableau[i][3]) do
if frame.args['shinylock-' .. string.lower(sprite[1])] and generation == generationMax and i % 2 == 0 then
table.insert(resultat, '<td>\'\'Indisponible car ce<br>Pokémon est [[Shiny Lock]]\'\'</td>')
else
table.insert(resultat, '<td')
if colonnesFace then table.insert(resultat, ' colspan="' .. #sprite[3] .. '"') end
table.insert(resultat, ' rowspan="' .. sprite[4] .. '" style="min-width:50px')
if (frame.args['shinylock'] or frame.args['shinylock-' .. string.lower(sprite[1])]) and i % 2 == 0
then table.insert(resultat, '; border: 2px solid #995124; background: #E2DAD5')
hasPermittedShinyLock = true
end
table.insert(resultat, '">[[Fichier:Sprite ' .. num .. ' ' .. sprite[2] .. '.')
if sprite[1] == "C" or sprite[1] == "E" then table.insert(resultat, 'gif') else table.insert(resultat, 'png') end
table.insert(resultat, '|class=maxheight100px]]</td>')
end
end
for _, sprite in ipairs(tableau[i][4]) do
if frame.args['shinylock-' .. string.lower(sprite[1])] and generation == generationMax and i % 2 == 0 then
table.insert(resultat, '<td>\'\'Indisponible car ce<br>Pokémon est [[Shiny Lock]]\'\'</td>')
else
table.insert(resultat, '<td')
if colonnesDos then table.insert(resultat, ' colspan="' .. #sprite[3] .. '"') end
table.insert(resultat, ' rowspan="' .. sprite[4] .. '" style="min-width:50px')
if (frame.args['shinylock'] or frame.args['shinylock-' .. string.lower(sprite[1])]) and i % 2 == 0
then table.insert(resultat, '; border: 2px solid #995124; background: #E2DAD5')
hasPermittedShinyLock = true
end
table.insert(resultat, '">[[Fichier:Sprite ' .. num .. ' ' .. sprite[2] .. '.png|class=maxheight100px]]</td>')
end
end
-- Compagnons HGSS
if generation == 4 then
if i % 2 == 1 then table.insert(resultat, '<td>[[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'ouest HGSS.gif]] [[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'est HGSS.gif]]<br>[[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'sud HGSS.gif]] [[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'nord HGSS.gif]]</td>')
else table.insert(resultat, '<td')
if frame.args['shinylock']
then table.insert(resultat, ' style="border: 2px solid #995124; background: #E2DAD5')
hasPermittedShinyLock = true
end
table.insert(resultat, '>[[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'chromatique ouest HGSS.gif]] [[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'chromatique est HGSS.gif]]<br>[[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'chromatique sud HGSS.gif]] [[Fichier:Compagnon ' .. num .. ' ' .. forme .. 'chromatique nord HGSS.gif]]</td>')
end
end
end
table.insert(resultat, '</tr>')
i = i + 1
end
-- Animations d'attaque 6G
if generation == 6 then
if frame.args['animations-attaque'] then
table.insert(resultat, '<tr><th class="transition" colspan="' .. colspanMax .. '">Animations d\'attaque</td></tr>')
if frame.args['diff-animations-attaque-sexe']
then
sexe = "♂ "
table.insert(resultat, '<tr><th>[[Fichier:Miniature Mâle HOME.png|20px|Mâle|link=Sexe des Pokémon]]<br>[[Sexe des Pokémon|Mâle]]</th><td colspan="' .. colspanMax - 1 .. '">')
else sexe = ""
table.insert(resultat, '<tr><td colspan="' .. colspanMax .. '">')
end
for i = 1, frame.args['animations-attaque'] do
table.insert(resultat, '[[Fichier:Sprite ' .. num .. ' ' .. forme .. sexe .. i .. ' XY.png]]')
end
if frame.args['diff-animations-attaque-sexe'] then
sexe = "♀ "
table.insert(resultat, '</tr><tr><th>[[Fichier:Miniature Femelle HOME.png|20px|Femelle|link=Sexe des Pokémon]]<br>[[Sexe des Pokémon|Femelle]]</th><td colspan="' .. colspanMax - 1 .. '">')
for i = 1, frame.args['animations-attaque'] do
table.insert(resultat, '[[Fichier:Sprite ' .. num .. ' ' .. forme .. sexe .. i .. ' XY.png]]')
end
end
table.insert(resultat, '</td></tr>')
end
end
-- Images du Pokédex 9G
local pokedex = frame.args['pokédex']
if generation == 9 and pokedex ~= "non" and frame.args['absence-ev'] ~= "oui" then
local forme_split = mw.text.split(forme, " ")
local forme_pokedex = ""
if forme_split[1] == "Alola" or forme_split[1] == "Galar" or forme_split[1] == "Hisui" or forme_split[1] == "Paldea" then forme_pokedex = " " .. forme_split[1] end
table.insert(resultat, '<tr><th class="transition" colspan="' .. colspanMax .. '">Illustration du Pokédex</td></tr>')
if pokedex == nil then pokedex = 'EV' end
local pokedex_split = mw.text.split(pokedex, '/')
for _,jeu in ipairs(pokedex_split) do
table.insert(resultat, '<tr><td colspan="' .. colspanMax .. '>[[Fichier:Pokédex ' .. num .. forme_pokedex .. ' ' .. jeu .. '.png|x200px]]')
if #pokedex_split > 1 then table.insert(resultat, '<br />' .. frame:expandTemplate{ title = 'Jeu', args = { jeu }}) end
table.insert(resultat, '</td></tr>')
end
end
table.insert(resultat, '</table>')
if hasPermittedShinyLock
then table.insert(resultat, '<div style="transform: translateY(calc(-1em - 4px))"><small><i>Les images sur fond foncé ne sont pas visibles en jeu sans outil de triche. [[Aide:Data mining|En savoir plus...]]</i></small></div>')
elseif frame.args['phrase-datamine'] == 'oui'
then table.insert(resultat, '<div style="transform: translateY(calc(-1em - 4px))"><small><i>Les images de ce tableau ne sont pas visibles en jeu sans outil de triche. [[Aide:Data mining|En savoir plus...]]</i></small></div>')
end
table.insert(resultat, '</div>')
return table.concat(resultat, '')
end
return p