Module:Imagerie
Paramètres[modifier]
Paramètres généraux[modifier]
- le premier paramètre, sans nom, est le numéro du Pokémon concerné, toujours en quatre chiffres arabes.
- le paramètre génération, par défaut la génération actuelle.
- il est aussi possible de définir, si nécessaire, la forme du Pokémon (le nom complet de la forme, en accord avec la nomenclature des images).
- si le Pokémon est Shiny Locked dans la génération concernée, définir le paramètre shinylock. À noter qu'il existe aussi aussi une famille de paramètres du type shinylock-jeu, pour un Pokémon Shiny Locked dans un jeu seulement, mais son usage est extrêmement rare à tel point qu'il est réduit à un seul Pokémon dans une seule génération : voir Mew/Imagerie#Septième génération.
Sprites[modifier]
Par défaut, le module produit une configuration initiale du tableau qui est - tout du moins théoriquement - la plus utilisée. Par exemple, pour la quatrième génération, il suppose que le sprite de face est le même dans Pokémon Diamant et Perle et Pokémon Platine, que celui-ci de Pokémon Or HeartGold et Argent SoulSilver est différent, et enfin que celui de dos est le même pour les trois jeux. Bien sûr, cette supposition se révèle fausse pour un bon nombre de Pokémon, et il faut alors pouvoir lui indiquer ce qu'il y a à changer. Deux familles de paramètres existent alors :
- sprite-face-jeu ;
- sprite-dos-jeu.
Le présence de jeu en italique montre une particularité de ces paramètres permise pour les modules : leur nom varie. On pourra ainsi aussi bien utiliser « sprite-face-rs », « sprite-dos-hgss », « sprite-face-lgpe », etc, le module comprendra et les gérera tous de la même façon. Comme vous pouvez le constater, l'abréviation du jeu est en minuscule, ceci pour respecter les conventions sur les paramètres de modèles (supposée étendue aux modules). Maintenant que nous savons quels paramètres existent, encore faut-il savoir que renseigner : l'abréviation du jeu dans lequel est apparu le sprite utilisé. Pour reprendre l'exemple précédemment cité, si l'on veut que Pokémon Diamant et Perle soit à part et que Pokémon Platine et Pokémon Or HeartGold et Argent SoulSilver utilisent le même sprite de face, on définira à la fois « sprite-face-pt=pt » et « sprite-face-hgss=pt ». Ici encore, l'abréviation renseignée est insensible à la casse.
Un deuxième cas est géré à part, celui-ci ou un Pokémon est absent d'un jeu. Par exemple, Keldeo n'est présent que dans Pokémon Noir 2 et Blanc 2 dans la cinquième génération et il faut donc indiquer au module qu'il est absent de Pokémon Noir et Blanc. Assez intuitivement, la catégorie de paramètre est de la forme absence-jeu avec, comme précédemment, l'abréviation du jeu en minuscule. Un cas particulier ici aussi : Pokémon : Let's Go, Pikachu et Let's Go, Évoli. Comme moins de 160 des plus de 800 Pokémon existants à l'époque sont présents dans le jeu, le module "triche" en renseignant par lui-même le paramètre « absence-lgpe » (autre possibilité des modules) si celui-ci n'est pas défini. Ainsi, pour indiquer qu'un Pokémon est présent dans Pokémon : Let's Go, Pikachu et Let's Go, Évoli, on indiquer plutôt qu'il n'est pas absent de ce jeu avec « absence-lgpe=non ». Trois paramètres sont possibles pour les différences entre les sprites femelles et mâles :
- diff-sprites-sexe, à l'effet classique, qui convient le plus souvent ;
- si seuls les sprites de face varient, et non ceux de dos, alors il faudra utiliser diff-sprites-face-sexe ;
- au contraire, si seuls les sprites de dos varient, c'est diff-sprites-dos-sexe qui sera nécessaire.
Enfin, dans le cas particulier où un Pokémon n'est jamais disponible de face ou de dos dans un jeu, il est possible de faire disparaître la colonne correspondante du tableau pour ce jeu ciblé, avec un des paramètres suivants :
- absence-face-jeu=oui ;
- absence-dos-jeu=oui.
La configuration par défaut actuelle, en absence de paramètre dédié, désactive automatiquement les sprites de dos de Pokémon HOME qui ne sont disponibles que pour un nombre limité de créatures.
Miniature(s)[modifier]
Il faut savoir que par défaut, et cela est suffisant dans l'immense majorité des cas, une miniature correspondant au premier jeu de la génération est affichée. Dans quelques cas, une deuxième miniature peut être nécessaire. Dans ce cas, renseigner miniature2 avec l'abréviation du jeu d'où provient cette deuxième miniature (insensible à la casse). Pour note, si le paramètre « diff-miniatures-sexe » est renseigné, ce paramètre-ci sera alors sans en effet, cela se justifie par le fait que ce cas ne s'est jusqu'alors jamais présenté.
Si les miniatures mâles et femelles sont différentes, dans de rares cas comme Mistigrix, la solution sera alors le paramètre diff-miniatures-sexe.
Enfin, dans le cas particulier où un Pokémon n'aurait pas de miniature (typiquement la génération 8 pour les Pokémon absents d'Épée/Bouclier), ajouter absence-miniature=oui permet de supprimer la colonne dédiée.
Artwork[modifier]
Pour afficher un artwork au-dessus de la galerie de miniature(s) et sprites, le paramètre artwork doit être renseigné avec l'abréviation du jeu d'où provient cet artwork. Par exemple, pour afficher « Fichier:Arcanin-RFVF.png » sur une page ou sous-page d'Arcanin, on utilisera « artwork=RFVF ». Cependant, il est aussi possible d'utiliser « artwork=oui » pour afficher le dernier artwork du Pokémon. Il est à noter que le nom du Pokémon est tiré du nom de la page où est appelé le module. Ainsi, tout essai de ce paramètre en dehors d'une page de Pokémon ne mènera qu'à l'apparition d'un point rouge.
Un paramètre supplémentaire est associé à l'artwork : artwork-précisions. Celui-ci est utile pour les Pokémon ayant plusieurs artworks, et correspond à la partie entre parenthèses dans le nom de l'artwork recherché. Deux exemples : pour afficher l'artwork de la forme Originelle de Giratina dans Pokémon Platine (« Fichier:Giratina (Forme Originelle)-Pt.png »), il est nécessaire de combiner « artwork=Pt » avec « artwork-précisions=Forme Originelle » ; pour celui-ci de Mistigrix femelle dans Pokémon X et Y (« Fichier:Mistigrix (Femelle)-XY.png »), ce sera « artwork=XY » et « artwork-précisions=Femelle ».
Animations d'attaque (sixième génération)[modifier]
Le module permet enfin de gérer les animations d'attaque de Pokémon X et Y. Il suffit pour cela de définir le nombre d'animations d'attaque avec le paramètre animations-attaque. Dans le cas particulier de Pikachu, on renseignera également diff-animations-attaque-sexe pour différencier les animations selon le sexe du Pokémon.
Images du Pokédex (neuvième génération)[modifier]
Un paramètre pokédex existe pour gérer les images du Pokédex de Pokémon Écarlate et Violet et de ses DLCs. Pour les Pokémon qui n'apparaissent pas dans Pokémon Écarlate et Violet, cette section n'apparaît pas. Sinon, quatre cas sont possibles à l'heure actuelle :
- le Pokémon a une seule image du Pokédex, apparue dans Pokémon Écarlate et Violet : c'est le cas par défaut ;
- le Pokémon n'a pas d'image du Pokédex bien qu'il soit présent dans Pokémon Écarlate et Violet : indiquer « pokédex=non » ;
- le Pokémon a une seule image du Pokédex, apparue dans Le Masque Turquoise : indiquer « pokédex=EVmt » ;
- le Pokémon a des images du Pokédex différentes dans Pokémon Écarlate et Violet et Le Masque Turquoise : indiquer « pokédex=EV/EVmt ».
Exemples[modifier]
Un cas classique[modifier]
{{#invoke:Imagerie|pokemon|0162|génération=2}}
Miniatures et sprites de la deuxième génération | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Miniature | Sprites de face | Sprites de dos | ||||||||
O | A | C | O | A | C | |||||
Chromatique |
Forme et paramètres de configuration[modifier]
{{#invoke:Imagerie|pokemon|0487|génération=4|forme=Alternative|sprite-face-pt=pt|sprite-dos-hgss=hgss}}
Miniatures et sprites de la quatrième génération | ||||||||
---|---|---|---|---|---|---|---|---|
Miniature | Sprites de face | Sprites de dos | CompagnonHGSS | |||||
DP | Pt | HGSS | DP | Pt | HGSS | |||
| ||||||||
Chromatique | |
Différences entre sprites mâles et femelles, et compagnons de Pokémon Or HeartGold et Argent SoulSilver[modifier]
{{#invoke:Imagerie|pokemon|0025|génération=4|diff-sprites-sexe=oui}}
Miniatures et sprites de la quatrième génération | ||||||||
---|---|---|---|---|---|---|---|---|
Miniature | Sprites de face | Sprites de dos | CompagnonHGSS | |||||
DP | Pt | HGSS | DP | Pt | HGSS | |||
♂ Mâle | | |||||||
♂ Mâle chromatique | ||||||||
♀ Femelle | | |||||||
♀ Femelle chromatique |
Différences entre sprites mâles et femelles seulement de dos[modifier]
{{#invoke:Imagerie|pokemon|0419|génération=5|diff-sprites-dos-sexe=oui}}
Miniatures et sprites de la cinquième génération | ||||||
---|---|---|---|---|---|---|
Miniature | Sprites de face | Sprites de dos | ||||
NB | N2B2 | NB | N2B2 | |||
♂ Mâle | ||||||
♂ Mâle chromatique | ||||||
♀ Femelle | ||||||
♀ Femelle chromatique |
Différences entre sprites et miniatures mâles et femelles[modifier]
{{#invoke:Imagerie|pokemon|0678|génération=6|diff-sprites-sexe=oui|diff-miniatures-sexe=oui}}
Miniatures et sprites de la sixième génération | ||||||
---|---|---|---|---|---|---|
Miniature | Sprites de face | Sprites de dos | ||||
XY | ROSA | XY | ROSA | |||
♂ Mâle | (mâle) (femelle) | |||||
♂ Mâle chromatique | ||||||
♀ Femelle | ||||||
♀ Femelle chromatique |
Forme, absence d'un jeu et Shiny Lock[modifier]
{{#invoke:Imagerie|pokemon|0647|génération=5|forme=Décidé|shinylock=oui|absence-nb=oui}}
Miniatures et sprites de la cinquième génération | |||||
---|---|---|---|---|---|
Miniature | Sprites de face | Sprites de dos | |||
N2B2 | N2B2 | ||||
Chromatique | Indisponible car ce Pokémon est Shiny Lock |
Le cas Pokémon : Let's Go, Pikachu et Let's Go, Évoli[modifier]
{{#invoke:Imagerie|pokemon|0006|génération=7|absence-lgpe=non|miniature2=LGPE}}
Miniatures et sprites de la septième génération | ||||||||
---|---|---|---|---|---|---|---|---|
Miniatures | Sprites de face | Sprites de dos | ||||||
SL | USUL | LGPE | SL | USUL | LGPE | |||
SLUSUL LGPE | ||||||||
Chromatique |
Cas de la neuvième génération[modifier]
{{#invoke:Imagerie|pokemon|1007|forme=Finale|shinylock=oui|génération=9}}
Miniatures et sprites de la neuvième génération | |||||||
---|---|---|---|---|---|---|---|
Miniature | Sprites de face | Sprites de dos | |||||
EV | HOME | EV | |||||
Fichier:Sprite 1007 Finale dos EV.png | |||||||
Chromatique | Indisponible car ce Pokémon est Shiny Lock | ||||||
Illustration du Pokédex | |||||||
local p = {} local ressources = { indexTableau = require("Module:Ressources/indexTableau"), tailleTableau = require("Module:Ressources/tailleTableau") } function p.pokemon( frame ) -- CONFIGURATION INITIALE local num, generation 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 = 9 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 jeux = {} -- tableau de deux éléments -- le premier liste les groupes de jeux ayant un sprite de face commun, -- le second 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 = {"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 = { { 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 = {"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 = {"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"} } } 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"} } } 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"} } } elseif generation == 8 then nom_gen = 'huitième' symbole_chromatique = '[[Fichier:Miniature Chromatique EB.png|x20px]]' jeux = {"EB", "DEPS", "LPA", "HOME"} sprites = { { EB = {"EB", "DEPS"}, LPA = {"LPA"}, HOME = {"HOME"} }, { EB = {"EB", "DEPS"}, LPA = {"LPA"}, HOME = {"HOME"} } } 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"} } } 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-dos-home'] then frame.args['absence-dos-home'] = 'oui' end if not frame.args['absence-miniature'] then frame.args['absence-miniature'] = 'non' 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 = { 'face', 'dos' } for numParam, paramSprites in ipairs(paramsSprites) do -- 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['sprite-' .. paramSprites .. '-' .. string.lower(jeu)] then local param = frame.args['sprite-' .. 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['absence-' .. paramSprites .. '-' .. string.lower(jeu)] and frame.args['absence-' .. paramSprites .. '-' .. 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 -- CREATION VIRTUELLE DU TABLEAU ET PARAMETRES DE CONFIGURATION SPECIFIQUES 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, "dos " .. jeu, sprites[2][jeu], 1}) end end elseif generation >= 4 and (frame.args['diff-sprites-sexe'] or frame.args['diff-sprites-face-sexe'] or frame.args['diff-sprites-dos-sexe']) then tableau = { { "♂<br />[[Sexe des Pokémon|Mâle]]", {}, {} }, { "♂ " .. symbole_chromatique .. "<br />[[Sexe des Pokémon|Mâle]] [[Pokémon chromatique|chromatique]]", {}, {} }, { "♀<br />[[Sexe des Pokémon|Femelle]]", {}, {} }, { "♀ " .. 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-sprites-sexe'] or frame.args['diff-sprites-face-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}) elseif 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-dos-sexe'] then table.insert(tableau[1][3], {jeu, forme .. "♂ dos " .. jeu, sprites[2][jeu], 1}) table.insert(tableau[2][3], {jeu, forme .. "♂ chromatique dos " .. jeu, sprites[2][jeu], 1}) table.insert(tableau[3][3], {jeu, forme .. "♀ dos " .. jeu, sprites[2][jeu], 1}) table.insert(tableau[4][3], {jeu, forme .. "♀ chromatique dos " .. jeu, sprites[2][jeu], 1}) else table.insert(tableau[1][3], {jeu, forme .. "dos " .. jeu, sprites[2][jeu], 2}) table.insert(tableau[3][3], {jeu, forme .. "chromatique dos " .. jeu, sprites[2][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 .. "dos " .. jeu, sprites[2][jeu], 1}) table.insert(tableau[2][3], {jeu, forme .. "chromatique dos " .. jeu, sprites[2][jeu], 1}) end end end -- ENTETE DU TABLEAU et ARTWORK local resultat = {'<table class="tableaustandard centre liensrougesreduits">'} local colspanMax = 2 * #jeux + 3 if frame.args['artwork'] then table.insert(resultat, '<tr><th colspan="' .. colspanMax .. '" style="background-color: #C0C0FF;">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 frame.args['artwork'] ~= "oui" then table.insert(resultat, '-' .. frame.args['artwork']) end table.insert(resultat, '.png|175px]]</td></tr>') end table.insert(resultat, '<tr>') if frame.args['absence-miniature'] == 'non' then table.insert(resultat, '<th colspan="' .. colspanMax .. '" style="background-color: #C0C0FF;">Miniatures et sprites de la [[' .. nom_gen .. ' génération]]</th>') else table.insert(resultat, '<th colspan="' .. colspanMax .. '" style="background-color: #C0C0FF;">Sprites de la [[' .. nom_gen .. ' génération]]</th>') end table.insert(resultat, '</tr>') local 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 colonnesFace = true colonnesDos = true if generation ~= 1 then table.insert(resultat, '<th') if colonnesFace or colonnesDos then table.insert(resultat, ' rowspan="2"') end table.insert(resultat, '></th>') end if frame.args['absence-miniature'] == 'non' then table.insert(resultat, '<th') if colonnesFace or colonnesDos then table.insert(resultat, ' rowspan="2"') end if frame.args['miniature2'] then table.insert(resultat, '>Miniatures</th>') else table.insert(resultat, '>Miniature</th>') end end local colspanFace = 0 local colspanDos = 0 for _, jeuSprite in ipairs(jeux) do if sprites[1][jeuSprite] then for _2, jeu in ipairs(sprites[1][jeuSprite]) do colspanFace = colspanFace + 1 end end if sprites[2][jeuSprite] then for _2, jeu in ipairs(sprites[2][jeuSprite]) do colspanDos = colspanDos + 1 end end end if colspanFace > 0 then table.insert(resultat, '<th') if colonnesFace then table.insert(resultat, ' colspan="' .. colspanFace .. '"') elseif 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 colonnesFace then table.insert(resultat, ' rowspan="2"') end table.insert(resultat, '>Sprites de dos</th>') end if generation == 4 then table.insert(resultat, '<th') if colonnesFace or colonnesDos then table.insert(resultat, ' rowspan="2"') end table.insert(resultat, '>Compagnon' .. frame:expandTemplate{ title = 'Sup', args = { 'HGSS' }} .. '</th>') end table.insert(resultat, '</tr>') if 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, '<th>' .. frame:expandTemplate{ title = 'Abréviation', args = { jeu, '' } } .. '</th>') end end end end if colonnesDos then for _, jeuSprite in ipairs(jeux) do if sprites[2][jeuSprite] then for _2, jeu in ipairs(sprites[2][jeuSprite]) do table.insert(resultat, '<th>' .. frame:expandTemplate{ title = 'Abréviation', args = { jeu, '' } } .. '</th>') end end end 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 local miniatExtension = "png" if generation >= 2 and generation <= 5 then miniatExtension = "gif" end if i == 1 and frame.args['absence-miniature'] == 'non' then table.insert(resultat, '<td rowspan="') if frame.args['diff-sprites-sexe'] or frame.args['diff-sprites-face-sexe'] or frame.args['diff-sprites-dos-sexe'] then table.insert(resultat, 4) else table.insert(resultat, 2) end table.insert(resultat, '">[[Fichier:Miniature ' .. num .. ' ' .. forme) if frame.args['diff-miniatures-sexe'] then table.insert(resultat, '♂ ') end table.insert(resultat, jeux[1] .. '.' .. miniatExtension .. '|class=miniature_' .. jeux[1] .. ']]') if frame.args['diff-miniatures-sexe'] then table.insert(resultat, ' (mâle)<br>[[Fichier:Miniature ' .. num .. ' ' .. forme .. '♀ ' .. jeux[1] .. '.' .. miniatExtension .. '|class=miniature_' .. jeux[1] .. ']] (femelle)') elseif frame.args['miniature2'] then local prochaine_miniature = mw.ustring.lower(frame.args['miniature2']) local prochain_numero = 2 for _, jeu in ipairs(jeux) do if mw.ustring.lower(jeu) == prochaine_miniature then table.insert(resultat, '<br>[[Fichier:Miniature ' .. num .. ' ' .. forme .. jeu .. '.' .. miniatExtension .. '|class=miniature_' .. jeu .. ']]') if frame.args['miniature' .. prochain_numero + 1] then prochain_numero = prochain_numero + 1 prochaine_miniature = mw.ustring.lower(frame.args['miniature' .. prochain_numero]) end end if jeu ~= "OA" and jeu ~= "HOME" then table.insert(resultat, frame:expandTemplate{ title = 'Sup', args = { jeu }}) end end end table.insert(resultat, '</td>') end if frame.args['shinylock'] and i % 2 == 0 then table.insert(resultat, '<td colspan="' .. colspanMax .. '">\'\'Indisponible car ce Pokémon est [[Shiny Lock]]\'\'</td>') else for _, sprite in ipairs(tableau[i][2]) do if frame.args['shinylock-' .. string.lower(sprite[1])] 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] .. '">[[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][3]) do if frame.args['shinylock-' .. string.lower(sprite[1])] 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] .. '">[[Fichier:Sprite ' .. num .. ' ' .. sprite[2] .. '.png|class=maxheight100px]]</td>') end end -- Compagnons HGSS if generation == 4 then if i == 1 then table.insert(resultat, '<td rowspan="' .. #tableau / 2 .. '">[[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>') elseif i == #tableau / 2 + 1 then table.insert(resultat, '<td rowspan="' .. #tableau / 2 .. '">[[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 colspan="' .. colspanMax .. ' style="background-color: #C0C0FF;">Animations d\'attaque</td></tr><tr><td colspan="' .. colspanMax .. '>') if frame.args['diff-animations-attaque-sexe'] then sexe = "♂ " table.insert(resultat, 'Mâle : ') else sexe = "" 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, '<br />Femelle : ') 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 colspan="' .. colspanMax .. '" style="background-color: #C0C0FF;">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>') return table.concat(resultat, '') end return p