Module:Capsule

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

Fonction « tableau »[modifier]

Paramètres[modifier]

Légende des icônes
Certains paramètres sont accompagnés d'une ou plusieurs icône indiquant leur(s) caractéristique(s) :
Facultatif.png : Ce paramètre est facultatif, et n'a donc pas besoin d'être systématiquement défini.
Icône catégorie.png : Ce paramètre classe automatiquement l'article dans une catégorie.
Données sémantiques.png : Ce paramètre influe sur les données sémantiques présentes en pied de page.


  • génération : numéro de la génération en chiffres arabes (1, 2, 3…)
  • jeu Facultatif.png : si la capacité présente dans une Capsule varie dans les jeux d'une même génération, il faut utiliser plusieurs fois le module. Dans ce cas, on utilise ce paramètre pour préciser à quel jeu de la génération le tableau se rapporte.
  • capacité : nom de la capacité.
  • jeux : liste des abréviations des jeux dans lesquels la capsule est présente tels que définies dans le Modèle:Jeu. Chaque jeu est séparé par un « / ».
    • abréviation_du_jeu-emplacement Facultatif.png : emplacement de la capsule. À répéter pour chaque jeu.
    • abréviation_du_jeu-achat Facultatif.png : prix d'achat de la capsule. À répéter pour chaque jeu.
    • abréviation_du_jeu-achat-unité Facultatif.png : unité du prix d'achat de la capsule, par exemple « jetons ». Par défaut, le module considère qu'il s'agit de Pokédollars (Pokédollar). À répéter pour chaque jeu.
    • abréviation_du_jeu-vente Facultatif.png : prix de vente de la capsule. À répéter pour chaque jeu.
  • imagenuméro Facultatif.png : nom de l'image représentant la localisation de la capsule. La première image a « 1 » comme numéro, puis la suivante 2, puis 3…
  • imagenuméro-description Facultatif.png : decription de l'image représentant la localisation de la capsule. La première image a « 1 » comme numéro, puis la suivante 2, puis 3…
  • pokémon : liste des Pokémon pouvant apprendre la capsule séparés par des « / ». Incompatible avec le paramètre tous.
  • tous : si tous les Pokémon ou presque pouvant apprendre une capsule peuvent apprendre cette capacité, remplir ce paramètre avec oui. Si ce n'est le cas que pour les Pokémon sexués, indiquer tous=sexués. Incompatible avec le paramètre pokémon.
  • exceptions Facultatif.png : seulement dans les cas où tous=oui ou tous=sexués, il est possible de renseigner ce paramètre pour définir les exceptions, les Pokémon qui ne peuvent pas apprendre la capacité même s'ils peuvent une capsule. Par exemple, si les exceptions sont Tarsal, Kirlia et Méios, il faut taper « exceptions = [[Tarsal]], [[Kirlia]] et [[Méios]] ».

Exemples[modifier]

Données venant de la page CT01

{{#invoke:Capsule|tableau
| génération = 1
| capacité = Ultimapoing
| jeux = rbj
| rbj-emplacement = [[Mont Sélénite]], [[Centre commercial de Céladopole]]
| rbj-achat = 3 000
| rbj-vente = 1 500
| image1 = Cap ecran obtention ct01 sélénite rbj.png
| image1-description = CT01 au Mont Sélénite
| image2 = Cap ecran obtention ct01 céladopole rbj.png
| image2-description = Au Centre Commercial
| pokémon = Salamèche/Reptincel/Dracaufeu/Carapuce/Carabaffe/Tortank/Pikachu/Raichu/Nidoqueen/Nidoking/Mélofée/Mélodelfe/Rondoudou/Grodoudou/Psykokwak/Akwakwak/Férosinge/Colossinge/Têtarte/Tartard/Abra/Kadabra/Alakazam/Machoc/Machopeur/Mackogneur/Racaillou/Gravalanch/Grolem/Flagadoss/Ectoplasma/Soporifik/Hypnomade/Osselait/Ossatueur/Kicklee/Tygnon/Excelangue/Rhinoféros/Leveinard/Kangourex/M. Mime/Lippoutou/Élektek/Magmar/Ronflex/Mewtwo/Mew
}}

donne :

Première génération

CapacitéTypeCatégoriePuissancePrécisionPP
UltimapoingNormalPhysique8085 %20
JeuEmplacementAchatVente
RBJMont Sélénite, Centre commercial de Céladopole3 000 Pokédollar1 500 Pokédollar
Pokémon aptes
004 Salamèche005 Reptincel006 Dracaufeu007 Carapuce008 Carabaffe009 Tortank
025 Pikachu026 Raichu031 Nidoqueen034 Nidoking035 Mélofée036 Mélodelfe
039 Rondoudou040 Grodoudou054 Psykokwak055 Akwakwak056 Férosinge057 Colossinge
061 Têtarte062 Tartard063 Abra064 Kadabra065 Alakazam066 Machoc
067 Machopeur068 Mackogneur074 Racaillou075 Gravalanch076 Grolem080 Flagadoss
094 Ectoplasma096 Soporifik097 Hypnomade104 Osselait105 Ossatueur106 Kicklee
107 Tygnon108 Excelangue112 Rhinoféros113 Leveinard115 Kangourex122 M. Mime
124 Lippoutou125 Élektek126 Magmar143 Ronflex150 Mewtwo151 Mew




Données venant de la page CT89

{{#invoke:Capsule|tableau
| génération = 4
| capacité = Demi-Tour
| jeux = dpp/hgss/pbr
| dpp-emplacement = [[Joliberges]], [[Casino de Voilaroc]]
| dpp-achat = 6 000
| dpp-achat-unité = jetons
| dpp-vente = 2 500
| hgss-emplacement = Prix pour avoir battu [[Hector]], [[Zone de Combat (Quatrième génération)|Zone de Combat]]
| hgss-achat = 40
| hgss-achat-unité = PCo
| hgss-vente = 1 500
| pbr-emplacement = Boutique
| pokémon = Papilusion/Dardargnan/Roucool/Roucoups/Roucarnage/Rattata/Rattatac/Piafabec/Rapasdepic/Nosferapti/Nosferalto/Aéromite/Miaouss/Persian/Férosinge/Colossinge/Canarticho/Insécateur/Artikodin/Électhor/Sulfura/Mew/Fouinette/Fouinar/Coxy/Coxyclaque/Nostenfer/Natu/Xatu/Granivol/Floravol/Cotovol/Capumain/Yanma/Scorplane/Cizayox/Celebi/Charmillon/Papinox/Nirondelle/Hélédelle/Goélise/Bekipan/Maskadra/Ninjask/Muciole/Lumivole/Vibraninf/Libégon/Jirachi/Ouisticram/Chimpenfeu/Simiabraz/Étourmi/Étourvol/Étouraptor/Papilord/Apireine/Pachirisu/Capidextre/Chaglam/Chaffreux/Pijako/Écayon/Luminéon/Yanmega/Scorvol/Créhelf/Créfollet/Créfadet/Phione/Manaphy
}}

donne :

Quatrième génération

CapacitéTypeCatégoriePuissancePrécisionPPType concoursCharme
Demi-TourInsectePhysique70100 %20Grâce
JeuEmplacementAchatVente
DPPJoliberges, Casino de Voilaroc6 000 jetons2 500 Pokédollar
HGSSPrix pour avoir battu Hector, Zone de Combat40 PCo1 500 Pokédollar
PBRBoutique
Pokémon aptes
012 Papilusion015 Dardargnan016 Roucool017 Roucoups018 Roucarnage019 Rattata
020 Rattatac021 Piafabec022 Rapasdepic041 Nosferapti042 Nosferalto049 Aéromite
052 Miaouss053 Persian056 Férosinge057 Colossinge083 Canarticho123 Insécateur
144 Artikodin145 Électhor146 Sulfura151 Mew161 Fouinette162 Fouinar
165 Coxy166 Coxyclaque169 Nostenfer177 Natu178 Xatu187 Granivol
188 Floravol189 Cotovol190 Capumain193 Yanma207 Scorplane212 Cizayox
251 Celebi267 Charmillon269 Papinox276 Nirondelle277 Hélédelle278 Goélise
279 Bekipan284 Maskadra291 Ninjask313 Muciole314 Lumivole329 Vibraninf
330 Libégon385 Jirachi390 Ouisticram391 Chimpenfeu392 Simiabraz396 Étourmi
397 Étourvol398 Étouraptor414 Papilord416 Apireine417 Pachirisu424 Capidextre
431 Chaglam432 Chaffreux441 Pijako456 Écayon457 Luminéon469 Yanmega
472 Scorvol480 Créhelf481 Créfollet482 Créfadet489 Phione490 Manaphy




Données venant de la page CT94

{{#invoke:Capsule|tableau
| génération = 6
| jeu = Rubis Oméga et Saphir Alpha
| capacité = Force Cachée
| jeux = rosa
| rosa-emplacement = Offerte par [[Millepertuis]] sur la [[Route 111]]
| tous = oui
| exceptions = [[Zarbi]], [[Qulbutoké]], [[Okéoké]], [[Crikzik]], [[Cheniti]], [[Anchwatt]] et [[Pérégrain]]
}}

donne :

Sixième génération - Rubis Oméga et Saphir Alpha

CapacitéTypeCatégoriePuissancePrécisionPP
Force CachéeNormalPhysique70100 %20
JeuEmplacementAchatVente
ROSAOfferte par Millepertuis sur la Route 111
Pokémon aptes
Tout Pokémon pouvant apprendre une capacité par capsule peut apprendre Force Cachée sauf Zarbi, Qulbutoké, Okéoké, Crikzik, Cheniti, Anchwatt et Pérégrain.

local p = {}
local ressources = {
	["infosPokemon"] = require("Module:Ressources/infosPokemon"),
	["donneesCapacite"] = require("Module:Ressources/donneesCapacite")
}

function p.tableau( frame )
	local generation = tonumber( mw.text.trim( frame.args['génération'] ) )
	local capacite = mw.text.trim( frame.args['capacité'] )
	local jeux = frame.args['jeux']
	local poke_aptes = frame.args['pokémon']
	if generation == nil then generation = "" end
	if capacite == nil then return "Pas de nom de capacité renseigné" end
	if jeux ~= nil then jeux = mw.text.split( jeux, "/" ) else jeux = {} end
	if poke_aptes ~= nil then poke_aptes = mw.text.split( poke_aptes, "/" ) else poke_aptes = {} end
	local generations = {"Première", "Deuxième", "Troisième", "Quatrième", "Cinquième", "Sixième", "Septième"}
	local titre
	if generations[generation] then titre = generations[generation] end
	titre = titre .. ' génération'
	if frame.args['jeu'] then titre = titre .. ' - <i>' .. frame.args['jeu'] .. '</i>' end
	
	local colspan = 6
	if generation == 3 then colspan = 9
	elseif generation == 4 then colspan = 8
	end

	local i = 1
	local infos_jeux = {}
	local emplacement, achat, vente
	while jeux[i] ~= nil do
		jeux[i] = mw.text.trim( jeux[i] )
		if frame.args[string.lower( jeux[i] ) .. '-emplacement'] == nil then emplacement = "Inconnu"
		else emplacement = mw.text.trim( frame.args[string.lower( jeux[i] ) .. '-emplacement'] )
		end
		if frame.args[string.lower( jeux[i] ) .. '-achat'] == nil or frame.args[string.lower( jeux[i] ) .. '-achat'] == "-" or frame.args[string.lower( jeux[i] ) .. '-achat'] == "—" then achat = "—"
		else 
			if frame.args[string.lower( jeux[i] ) .. '-achat-unité'] then achat = mw.text.trim( frame.args[string.lower( jeux[i] ) .. '-achat'] ) .. " " .. mw.text.trim( frame.args[string.lower( jeux[i] ) .. '-achat-unité'] )
			else achat = mw.text.trim( frame.args[string.lower( jeux[i] ) .. '-achat'] ) .. " [[Fichier:Pokedollar.png|link=Pokédollar|alt=Pokédollar]]"
			end
		end
		if frame.args[string.lower( jeux[i] ) .. '-vente'] == nil or frame.args[string.lower( jeux[i] ) .. '-vente'] == "-" or frame.args[string.lower( jeux[i] ) .. '-vente'] == "—" then vente = "—"
		else vente = mw.text.trim( frame.args[string.lower( jeux[i] ) .. '-vente'] ) .. " [[Fichier:Pokedollar.png|link=Pokédollar|alt=Pokédollar]]"
		end
		table.insert(infos_jeux, '<tr><td>' .. frame:expandTemplate{ title = 'Abréviation', args = { jeux[i] } } .. '</td><td colspan="' .. colspan - 3 .. '">' .. emplacement .. '</td><td>' .. achat .. '</td><td>' .. vente .. '</td></tr>')
		i = i + 1
	end

	local poke = {}
	local aucun = "non"
	table.insert(poke, '<tr class="tableauCapsule' .. generation)
	if frame.args['jeu'] then table.insert(poke, frame.args['jeu']) end
	table.insert(poke, '">')
	if frame.args['tous'] == "oui" or frame.args['tous'] == "sexués" then
		table.insert(poke, '<td colspan="' .. colspan .. '">Tout Pokémon')
		if frame.args['tous'] == "sexués" then table.insert(poke, ' sexué') end
		table.insert(poke, ' pouvant apprendre une capacité par capsule peut apprendre ' .. capacite)
		if frame.args['exceptions'] then table.insert(poke, ' sauf ' .. frame.args['exceptions']) end
		table.insert(poke, '.</td>')
	else
		local y = 1
		local z = 1
		local colspan_poke
		if poke_aptes[1] == "" then
			aucun = "oui"
			table.insert(poke, '<td colspan="' .. colspan .. '">\'\'Incomplet\'\'</td>')
		end
		while poke_aptes[y] and aucun == "non" do
			if generation == 3 then
				if z == 1 or z == 3 or z == 5 then colspan_poke = 2  else colspan_poke = 1 end
			elseif generation == 4 then
				if z == 3 or z == 4 then colspan_poke = 2  else colspan_poke = 1 end
			else colspan_poke = 1
			end
			table.insert(poke, '<td colspan="' .. colspan_poke .. '" style="text-align: left;">' .. ressources.infosPokemon( poke_aptes[y] ) .. '</td>')
			y = y + 1
			 if z == 6 then
			 	table.insert(poke, '</tr><tr class="tableauCapsule' .. generation)
				if frame.args['jeu'] then table.insert(poke, frame.args['jeu']) end
				table.insert(poke, '">')
			 	z = 1
			 else z = z + 1 end
		end
	end
	table.insert(poke, '</tr>')

	local donnees = ressources.donneesCapacite(generation, capacite)
	local resultat = {}
	table.insert(resultat, '<table class="tableaustandard centre ' .. donnees["type"] .. '" style="width: 90%;"><caption><h3>' .. titre.. '</h3></caption><tr><th>Capacité</th><th>Type</th><th>Catégorie</th><th>Puissance</th><th>Précision</th><th>PP</th>')
	if generation == 3 then table.insert(resultat, '<th>[[Concours Pokémon|Type concours]]</th><th>[[Charme (concours)|Charme]]</th><th>[[Blocage]]</th>')
	elseif generation == 4 then table.insert(resultat, '<th>[[Concours Pokémon|Type concours]]</th><th>[[Charme (concours)|Charme]]</th>')
	end
	table.insert(resultat, '</tr><tr><td>[[' .. donnees[1] .. ']]</td><td>' .. donnees[2] .. '</td><td>' .. donnees[3] .. '</td><td>' .. donnees[4] .. '</td><td>' .. donnees[5] .. '</td><td>' .. donnees[6] .. '</td>')
	if generation == 3 then table.insert(resultat, '<td>' .. donnees[7] .. '</td><td>' .. donnees[8] .. '</td><td>' .. donnees[9] .. '</td>')
	elseif generation == 4 then table.insert(resultat, '<td>' .. donnees[7] .. '</td><td>' .. donnees[8] .. '</td>')
	end
	table.insert(resultat, '</tr><tr><th>Jeu</th><th colspan="' .. colspan - 3 .. '">Emplacement</th><th>Achat</th><th>Vente</th></tr>' .. table.concat(infos_jeux, ""))
	
	local j = 1
	local galerie = {}
	if frame.args['image1'] then table.insert(galerie, '<gallery widths="180px" heights="120px">') end
	while frame.args['image' .. j] do
		if frame.args['image' .. j .. '-description'] == nil then frame.args['image' .. j .. '-description'] = "" end
		table.insert(galerie, frame.args['image' .. j] .. '|' .. frame.args['image' .. j .. '-description'] .. '\n')
		j = j + 1
	end
	if frame.args['image1'] then
		table.insert(galerie, '</gallery>')
		table.insert(resultat, '<tr><td colspan="' .. colspan .. '">' .. frame:preprocess( table.concat(galerie, "") .. '</td></tr>' ) )
	end
	
	table.insert(resultat, '<tr><th colspan=' .. colspan .. '>Pokémon aptes</th></tr>')
	if frame.args['tous'] ~= "oui" and frame.args['tous'] ~= "sexués" and aucun ~= "oui" then 
		table.insert(resultat, '<tr><td colspan="' .. colspan .. '"><button type="button" name="tableauCapsule' .. generation)
		if frame.args['jeu'] then table.insert(resultat, frame.args['jeu']) end
		table.insert(resultat, '" value="afficher" style="font-size:80%" title="[-] Masquer les Pokémon aptes">[+] Afficher les Pokémon aptes</button></td></tr>')
	end
	table.insert(resultat, table.concat(poke, "") .. '</table>')

	return table.concat(resultat, "")
end

return p