Module:Ressources/infosPokemon

De Poképédia
Aller à la navigation Aller à la recherche

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 : Mélofée

  • Avec un Pokémon dont la forme est précisée :

ressources.infosPokemon("Deoxys forme(Vitesse)", "miniature") retourne : Deoxys (Forme Vitesse)

  • Avec une Forme d'Alola :

ressources.infosPokemon("Tadmorv forme(Alola)", "miniature") retourne : Tadmorv (Forme d'Alola)

  • Avec un sexe :

ressources.infosPokemon("Mistigrix sexe(f)", "miniature") retourne : Mistigrix (Femelle)

  • Avec un lien :

ressources.infosPokemon("Kyurem forme(Blanc) nom(Kyurem Blanc) lien(Kyurem Blanc)", "miniature") retourne : Kyurem (Kyurem Blanc)

  • Avec un jeu :

ressources.infosPokemon("Jirachi sup(E)", "miniature") retourne : JirachiE

  • Avec une forme et un jeu :

ressources.infosPokemon("Hoopa forme(Déchaîné) nom(Hoopa Déchaîné) sup(ROSA)", "miniature") retourne : Hoopa (Hoopa Déchaîné)ROSA

  • Avec un Pokémon inexistant :

ressources.infosPokemon("Machinbidule", "miniature") retourne : Machinbidule


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