Module:Disque
Apparence
Fonction « tableau »[modifier]
Paramètres[modifier]
Certains paramètres sont accompagnés d'une ou plusieurs icône indiquant leur(s) caractéristique(s) :
|
- génération : numéro de la génération en chiffres arabes (1, 2, 3…)
- jeu
: si la capacité présente dans une Disque 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 le disque est présent tels que définies dans le Modèle:Jeu. Chaque jeu est séparé par un « / ».
- abréviation_du_jeu-emplacement
: emplacement du disque. À répéter pour chaque jeu.
- abréviation_du_jeu-achat
: prix d'achat du disque. À répéter pour chaque jeu.
- abréviation_du_jeu-achat-unité
: unité du prix d'achat du disque, par exemple « jetons ». Par défaut, le module considère qu'il s'agit de Pokédollars (
). À répéter pour chaque jeu.
- abréviation_du_jeu-vente
: prix de vente du disque. À répéter pour chaque jeu.
- abréviation_du_jeu-emplacement
- imagenuméro
: nom de l'image représentant la localisation du disque. La première image a « 1 » comme numéro, puis la suivante 2, puis 3…
- imagenuméro-description
: decription de l'image représentant la localisation du disque. La première image a « 1 » comme numéro, puis la suivante 2, puis 3…
- pokémon : liste des Pokémon pouvant apprendre le disque séparés par des « / ». Incompatible avec le paramètre tous.
- tous : si tous les Pokémon ou presque pouvant apprendre un disque 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
: 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 un disque. 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 DT00
{{#invoke:Disque|tableau | génération = 8 | jeu = Épée et Bouclier | capacité = Danse Lames | jeux = eb | eb-emplacement = Garderie Pokémon de la [[Prairie Entre-Ponts]] | eb-achat = 8000 | pokémon = Salamèche / Reptincel / Dracaufeu }}
donne :
Capacité | Type | Catégorie | Puissance | Précision | PP |
---|---|---|---|---|---|
Danse Lames | ![]() | ![]() | — | — | 20 |
Jeu | Emplacement | Achat | Vente | ||
EB | Garderie Pokémon de la Prairie Entre-Ponts | 8000 ![]() | — | ||
Pokémon aptes | |||||
0004 ![]() | 0005 ![]() | 0006 ![]() |
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
for i,jeu in ipairs(jeux) do
jeux[i] = mw.text.trim( jeu )
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", "Huitiè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:Miniature Pokédollar EB.png|10px|class=imagenoire|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:Miniature Pokédollar EB.png|10px|class=imagenoire|link=Pokédollar|alt=Pokédollar]]"
end
table.insert(infos_jeux, '<tr class="ligne-jeu"><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="tableau-capsule-pokémon tableau-disque-generation' .. 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 disque 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="tableau-capsule-pokémon tableau-disque-generation' .. 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, jeux)
local resultat = {}
table.insert(resultat, '<table class="tableaustandard centre ' .. donnees["type"] .. ' tableau-capsule tableau-capsule-generation' .. generation .. '" style="width: 90%;"><caption><h3>' .. titre.. '</h3></caption><tr class="ligne-1"><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 class="ligne-2"><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 class="ligne-3"><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="tableau-disque-generation' .. 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