Module:Disque
Aller à la navigation
Aller à la recherche
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.
- 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 Salamèche | 0005 Reptincel | 0006 Dracaufeu |
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><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="tableauDisque' .. 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="tableauDisque' .. 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"] .. '" 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="tableauDisque' .. 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