Module:Ressources/infosPokemon
Cette fonction permet de mettre en forme les informations d'un Pokémon à partir de son nom. Il comporte un seul paramètre : le nom du Pokémon et des précisions sur celui-ci au besoin. Cinq précisions peuvent être données pour le nom d'un Pokémon (forme, sexe, nom, lien, jeu) suivis de la valeur entre parenthèses.
Attention à ne pas le modifier sans savoir précisément ce que l'on fait : il est utilisé sur des milliers de pages (toutes les pages de Pokémon, de capacités et de routes !) et toute modification impacte donc fortement le wiki.
Exemples (mode classique)[modifier]
- Avec un Pokémon basique :
ressources.infosPokemon("Mélofée")
retourne :
0035 Mélofée
- Avec un Pokémon dont la forme est précisée :
ressources.infosPokemon("Deoxys forme(Vitesse)")
retourne :
0386 Deoxys
Forme Vitesse
- Avec une Forme d'Alola :
ressources.infosPokemon("Tadmorv forme(Alola)")
retourne :
0088 Tadmorv
Forme d'Alola
- Avec un sexe :
ressources.infosPokemon("Mistigrix sexe(f)")
retourne :
0678 Mistigrix
Femelle
- Avec un lien :
ressources.infosPokemon("Kyurem forme(Blanc) nom(Kyurem Blanc) lien(Kyurem Blanc)")
retourne :
0646 Kyurem
Kyurem Blanc
- Avec un jeu :
ressources.infosPokemon("Jirachi sup(E)")
retourne :
0385 JirachiE
- Avec une forme et un jeu :
ressources.infosPokemon("Hoopa forme(Déchaîné) sup(ROSA)")
retourne :
0720 HoopaROSA
Forme Déchaîné
- Avec un Pokémon inexistant :
ressources.infosPokemon("Machinbidule")
retourne :
???? Machinbidule
Exemples (mode miniature)[modifier]
- Avec un Pokémon basique :
ressources.infosPokemon("Mélofée", "miniature")
retourne :
- Avec un Pokémon dont la forme est précisée :
ressources.infosPokemon("Deoxys forme(Vitesse)", "miniature")
retourne :
- Avec une Forme d'Alola :
ressources.infosPokemon("Tadmorv forme(Alola)", "miniature")
retourne :
- Avec un sexe :
ressources.infosPokemon("Mistigrix sexe(f)", "miniature")
retourne :
- Avec un lien :
ressources.infosPokemon("Kyurem forme(Blanc) nom(Kyurem Blanc) lien(Kyurem Blanc)", "miniature")
retourne :
- Avec un jeu :
ressources.infosPokemon("Jirachi sup(E)", "miniature")
retourne : E
- Avec une forme et un jeu :
ressources.infosPokemon("Hoopa forme(Déchaîné) nom(Hoopa Déchaîné) sup(ROSA)", "miniature")
retourne : ROSA
- Avec un Pokémon inexistant :
ressources.infosPokemon("Machinbidule", "miniature")
retourne :
local numeros = mw.loadData("Module:Data/NumérosPokémon")
return function( poke, mode )
local forme, sexe, nom, lien, jeu, sup
if ( string.match(poke, "forme%([^)]*%)") ) then
forme = " " .. string.sub(string.match(poke, "forme%([^)]*%)"), 7, -2)
poke = string.gsub( poke, "forme%([^)]*%)", "" )
else forme = "" end
if ( string.match(poke, "sexe%([^)]*%)") ) then
sexe = string.sub(string.match(poke, "sexe%([^)]*%)"), 6, -2)
if sexe == "f" then sexe = " ♀" else sexe = " ♂" end
poke = string.gsub( poke, "sexe%([^)]*%)", "" )
else sexe = "" end
if ( string.match(poke, "jeu%([^)]*%)") ) then
jeu = "_" .. string.sub(string.match(poke, "jeu%([^)]*%)"), 5, -2)
poke = string.gsub( poke, "jeu%([^)]*%)", "" )
else jeu = "" end
if ( string.match(poke, "sup%([^)]*%)") ) then
sup = mw.getCurrentFrame():expandTemplate{ title = 'Sup', args = { string.sub(string.match(poke, "sup%([^)]*%)"), 5, -2) } }
poke = string.gsub( poke, "sup%([^)]*%)", "" )
else sup = "" end
if forme == " Alola" then
poke = mw.text.trim( poke )
nom = "Forme d'Alola"
lien = poke .. " d'Alola"
elseif forme == " Galar" then
poke = mw.text.trim( poke )
nom = "Forme de Galar"
lien = poke .. " de Galar"
elseif forme == " Hisui" then
poke = mw.text.trim( poke )
nom = "Forme de Hisui"
lien = poke .. " de Hisui"
elseif forme == " Paldea" then
poke = mw.text.trim( poke )
nom = "Forme de Paldea"
lien = poke .. " de Paldea"
elseif forme == " Gigamax" then
poke = mw.text.trim( poke )
nom = "Gigamax"
lien = poke .. " Gigamax"
else
if ( string.match(poke, "nom%([^)]*%)") ) then
nom = string.sub(string.match(poke, "nom%([^)]*%)"), 5, -2)
poke = string.gsub( poke, "nom%([^)]*%)", "" )
elseif forme ~= "" then nom = "Forme" .. forme
elseif sexe == " ♀" then nom = "Femelle"
elseif sexe == " ♂" then nom = "Mâle"
else nom = "" end
if ( string.match(poke, "lien%([^)]*%)") ) then
lien = string.sub(string.match(poke, "lien%([^)]*%)"), 6, -2)
poke = string.gsub( poke, "lien%([^)]*%)", "" )
else lien = mw.text.trim( poke ) end
end
poke = mw.text.trim( poke )
local num = numeros[poke]
if num == nil then num = "???" end
if mode == "miniature" then
if nom == "" then return "[[Fichier:Miniature " .. num .. forme .. sexe .. jeu .. ".png|link=" .. lien .. "|alt=" .. lien .. "|" .. lien .. "|class=miniature" .. jeu .. "]]" .. sup
else return "[[Fichier:Miniature " .. num .. forme .. sexe .. jeu .. ".png|link=" .. lien .. "|alt=" .. poke .. " (" .. nom .. ")|" .. poke .. " (" .. nom .. ")|class=miniature" .. jeu .. "]]" .. sup
end
else
if nom == "" then return "<span style='white-space: nowrap;' class='miniat-poke'>" .. num .. " [[Fichier:Miniature " .. num .. forme .. sexe .. jeu .. ".png|link=" .. lien .. "|alt=|class=miniature" .. jeu .. "]] [[" .. lien .. "|" .. poke .. "]]" .. sup .. "</span>"
else return "<span style='white-space: nowrap;' class='miniat-poke'>" .. num .. " [[Fichier:Miniature " .. num .. forme .. sexe .. jeu .. ".png|link=" .. lien .. "|alt=|class=miniature" .. jeu .. "]] [[" .. lien .. "|" .. poke .. "]]" .. sup .. "</span><br /><span style='font-style: italic; font-size: 90%;'>" .. nom .. "</span>"
end
end
end