Module:Ressources/infosPokemon

De Poképédia
Sauter à la navigation Sauter à 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.

Exemples (mode classique)

  • Avec un Pokémon basique :

ressources.infosPokemon("Mélofée") retourne :
035 Mélofée

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

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

  • Avec une Forme d'Alola :

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

  • Avec un sexe :

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

  • Avec un lien :

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

  • Avec un jeu :

ressources.infosPokemon("Jirachi jeu(E)") retourne :
385 JirachiÉ

  • Avec une forme et un jeu :

ressources.infosPokemon("Hoopa forme(Déchaînée) jeu(ROSA)") retourne :
720 HoopaROSA
Forme Déchaîné

  • Avec un Pokémon inexistant :

ressources.infosPokemon("Machinbidule") retourne :
??? Machinbidule

Exemples (mode miniature)

  • 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 jeu(E)", "miniature") retourne : JirachiÉ

  • Avec une forme et un jeu :

ressources.infosPokemon("Hoopa forme(Déchaînée) jeu(ROSA)", "miniature") retourne : Hoopa (Forme Déchaînée)ROSA

  • Avec un Pokémon inexistant :

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


return function( poke, mode )
	local forme, sexe, nom, lien, jeu
	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 = mw.getCurrentFrame():expandTemplate{ title = 'Sup', args = { string.sub(string.match(poke, "jeu%([^)]*%)"), 5, -2) } }
		poke = string.gsub( poke, "jeu%([^)]*%)", "" )
	else jeu = "" 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 == " 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 ressources = { indexTableau = require("Module:Ressources/indexTableau") }
	local pokemon = mw.loadData("Module:Data/Pokémon")
	local num = ressources.indexTableau( pokemon, poke )
	if num == nil then num = "???"
	elseif num < 10 then num = "00" .. num
	elseif num < 100 then num = "0" .. num
	end
	
	if mode == "miniature" then 
		if nom == "" then return "[[Fichier:Miniature " .. num .. forme .. sexe .. ".png|link=" .. lien .. "|alt=" .. lien .. "|" .. lien .. "]]" .. jeu
		else return "[[Fichier:Miniature " .. num .. forme .. sexe .. ".png|link=" .. lien .. "|alt=" .. poke .. " (" .. nom .. ")|" .. poke .. " (" .. nom .. ")]]" .. jeu
		end
	else
		if nom == "" then return "<span style='white-space: nowrap;'>" .. num .. " [[Fichier:Miniature  " .. num .. forme .. sexe .. ".png|link=" .. lien .. "|alt=]] [[" .. lien .. "|" .. poke .. "]]" .. jeu .. "</span>"
		else return "<span style='white-space: nowrap;'>" .. num .. " [[Fichier:Miniature " .. num .. forme .. sexe .. ".png|link=" .. lien .. "|alt=]] [[" .. lien .. "|" .. poke .. "]]" .. jeu .. "</span><br /><span style='font-style: italic; font-size: 90%;'>" .. nom .. "</span>"
		end
	end
end