Module:Représentations antérieures
Apparence
Fonction « capacite »[modifier]
Utilisation[modifier]
Ce module sert à générer automatiquement un tableau de fichiers qui montre différentes représentations d'une même capacité. L'application stricte des règles de nomenclature permet au module de détecter les bons éléments qui permettent de former les noms de fichier.
Paramètres[modifier]
Certains paramètres sont accompagnés d'une ou plusieurs icône indiquant leur(s) caractéristique(s) :
|
- paramètre non nommé : définit les jeux pour lesquels il faut afficher des images. Les jeux sont à indiquer avec leurs abréviations définies par le Modèle:Jeu, et séparés par des slashs
/
, de la façon suivante :ROSA/EB/DEPS
.- Ajouter des parenthèses aux codes des jeux permet aussi de préciser de préciser les jeux dans lesquels la capacité est ainsi illustrée. Ainsi, pour afficher l'animation de Pokémon Platine, en précisant qu'elle est aussi utilisée dans Pokémon Or HeartGold et Argent SoulSilver, on indiquera
Pt (Pt, HGSS)
au lieu de simplementPt
.
- Ajouter des parenthèses aux codes des jeux permet aussi de préciser de préciser les jeux dans lesquels la capacité est ainsi illustrée. Ainsi, pour afficher l'animation de Pokémon Platine, en précisant qu'elle est aussi utilisée dans Pokémon Or HeartGold et Argent SoulSilver, on indiquera
- précision
: permet d'ajouter une précision entre parenthèses aux noms des fichiers du tableau, notamment lorsque la capacité a plusieurs animations selon le contexte. Par exemple, Champlification a une animation différente lorsqu'un Champ Brumeux est actif. On peut donc rajouter
précision=Champ Brumeux
(sans les parenthèses) pour faire appel à des fichiers de la formeFichier:Champlification (Champ Brumeux) EV.mp4
. - nom
: permet de forcer le nom à partir duquel former les noms de fichier. Par défaut, le nom est réglé sur celui de la page en cours (
{{PAGENAME}}
). - type
: permet de forcer la coloration de type de la table, s'il n'est pas bien ou s'il doit changer pour une certaine raison, par exemple dans le cas de Ball'Météo. Par défaut, la coloration est automatiquement déterminée selon le nom de la capacité.
Exemples[modifier]
On prend en exemple Ball'Météo :
Exemple basique[modifier]
{{#invoke:Représentations antérieures|capacite|E/HGSS/N2B2/ROSA/USUL/EB}}
donne :
![]() | ![]() | ![]() |
Troisième génération | Quatrième génération | Cinquième génération |
Sixième génération | Septième génération | Huitième génération |
Exemple avec précision et coloration de type[modifier]
{{#invoke:Représentations antérieures|capacite|HGSS/ROSA|précision=Soleil|type=feu}}
donne :
![]() | |
Quatrième génération | Sixième génération |
local p = {}
function p.capacite(frame)
local game_to_extension = {
RV = "gif",
RB = "gif",
J = "gif",
O = "gif",
A = "gif",
OA = "gif",
C = "gif",
RS = "gif",
RFVF = "gif",
E = "gif",
DP = "gif",
HGSS = "gif",
Pt = "gif",
NB = "gif",
N2B2 = "gif",
XY = "mp4|300px",
ROSA = "mp4|300px",
SL = "mp4|300px",
USUL = "mp4|300px",
LGPE = "mp4|300px",
EB = "mp4|300px",
DEPS = "mp4|300px",
LPA = "mp4|300px",
EV = "mp4|300px",
LPZA = "mp4|300px",
St1 = "png|300px",
Colo = "mp4|300px",
XD = "mp4|300px",
PDM1 = "png",
PDMRB = "png",
PRR = "mp4|200px"
}
-- Seuls les jeux principaux sont à renseigner
local game_to_generation = {
RV = 1,
RB = 1,
J = 1,
O = 2,
A = 2,
OA = 2,
C = 2,
RS = 3,
RFVF = 3,
E = 3,
DP = 4,
HGSS = 4,
Pt = 4,
NB = 5,
N2B2 = 5,
XY = 6,
ROSA = 6,
SL = 7,
USUL = 7,
LGPE = 7,
EB = 8,
DEPS = 8,
LPA = 8,
EV = 9,
LPZA = 9,
}
local generation_number_to_text = {"[[Première génération]]", "[[Deuxième génération]]", "[[Troisième génération]]", "[[Quatrième génération]]", "[[Cinquième génération]]", "[[Sixième génération]]", "[[Septième génération]]", "[[Huitième génération]]", "[[Neuvième génération]]"}
local name_untouched = frame.args["nom"]
if name_untouched == nil
then name_untouched = frame:preprocess("{{PAGENAME}}")
end
if name_untouched == nil
then name_untouched = "Charge"
end
local name = string.gsub(name_untouched, " %(capacité%)", "")
local table_type = frame.args["type"]
if table_type == nil
then local datatype = require("Module:Data/TypesCapacités")
table_type = datatype[name_untouched]
if table_type == nil
then table_type = ""
else table_type = mw.ustring.lower(table_type)
end
end
local precision = frame.args["précision"]
if precision
then precision = " (" .. precision .. ")"
else precision = ""
end
local result = {"<table class='tableaustandard centre " .. table_type .. "'>"}
local games = frame.args[1]
local games_split = {}
if games ~= nil
then games_split = mw.text.split(games, "/")
end
-- First pass to check duplicate generations
local generations_seen = {}
local duplicate_generations = {}
local i = 1
while games_split[i] ~= nil do
local game_image = mw.ustring.gsub(games_split[i], "(.-) %((.-)%)", "%1")
local generation_number = game_to_generation[game_image]
if generation_number == nil
then generation_number = 1
end
if generations_seen[generation_number] == nil
then generations_seen[generation_number] = true
else duplicate_generations[generation_number] = true
end
i = i + 1
end
local i = 1
local image_line = {}
local game_line = {}
while games_split[i] ~= nil do
-- Start of line
if i % 3 == 1
then table.insert(image_line, "<tr>")
table.insert(game_line, "<tr>")
end
local game_input = games_split[i]
local game_image = mw.ustring.gsub(game_input, "(.-) %((.-)%)", "%1")
local game_text_list = {game_input}
local custom_game_text = false
if game_image ~= game_input
then local game_text_list_unsplit = mw.ustring.gsub(game_input, "(.-) %((.-)%)", "%2")
game_text_list = mw.text.split(game_text_list_unsplit, ", ")
custom_game_text = true
end
local game_text = ""
local first_game_text = true
local j = 1
while game_text_list[j] do
if first_game_text
then first_game_text = false
else game_text = game_text .. ", "
end
game_text = game_text .. frame:expandTemplate{title='Jeu', args={game_text_list[j]}}
j = j + 1
end
local extension = game_to_extension[game_image]
if extension == nil
then extension = "mp4"
end
local generation_number = game_to_generation[game_image]
if generation_number == nil
then generation_number = 0
end
local generation
if generation_number == 0
then generation = frame:expandTemplate{title='Jeu', args={game_image}}
else generation = generation_number_to_text[generation_number]
end
-- Cell
table.insert(image_line, "<td>[[Fichier:" .. name .. precision .. " " .. game_image .. "." .. extension .. "]]</td>")
table.insert(game_line, "<td>" .. generation)
-- Adding game for duplicate generations
if custom_game_text or (generation ~= 0 and (generation_number >= 8 or duplicate_generations[generation_number] ~= nil))
then table.insert(game_line, "<br><div style='width:280px; margin-left:auto; margin-right:auto'><small>(" .. game_text .. ")</small></div>")
end
table.insert(game_line, "</td>")
-- End of line
if i % 3 == 0
then
table.insert(image_line, "</tr>")
table.insert(game_line, "</tr>")
table.insert(result, table.concat(image_line, ""))
table.insert(result, table.concat(game_line, ""))
image_line = {}
game_line = {}
end
i = i + 1
end
-- Adding the incomplete line
if i % 3 ~= 1
then
table.insert(image_line, "</tr>")
table.insert(game_line, "</tr>")
table.insert(result, table.concat(image_line, ""))
table.insert(result, table.concat(game_line, ""))
end
table.insert(result, '</table>')
return table.concat(result, "")
end
return p