Module:Apprentissage
Le module Apprentissage rassemble différentes fonctions permettant de créer des tableaux d'apprentissage destinés aux pages des Pokémon. Il utilise lui-même des modules auxiliaires, en particulier le module de ressources « donneesCapacite » pour récupérer les données (puissance, précision etc) des capacités apparaissant.
Fonction « niveau »
Paramètres
- type : le type du Pokémon. Utilisé uniquement pour la coloration du tableau.
- génération en chiffre arabe (1, 2, 3…).
- masquer (facultatif) : indiquer oui pour que le tableau soit masqué par défaut.
- Les capacités apprises et les niveaux. Chaque capacité est disposée sur une nouvelle ligne et on trouve ensuite les niveaux d'apprentissage (leur nombre varie selon la génération, c.f. le paragraphe suivant). Sur une même ligne, les infos sont séparées par des slashs (/). Pour les noms de capacité, il est obligatoire d'écrire dans le code le nom de la capacité lors de la génération et rien d'autre : ne pas essayer en particulier de modifier le lien vers lequel pointe la capacité au risque de perturber la récupération des informations sur celle-ci. On notera que les homonymies sont gérées automatiquement. Indiquer un numéro rajoute automatiquement un « N. » devant. On peut indiquer plusieurs niveaux sur une même case en les séparant d'une virgule et d'un espace. Indiquer un simple tiret (-) le transforme automatiquement en tiret long (—). Précéder un niveau de la lettre M ajoute une icône de maîtrise de la capacité.
Voici les colonnes par défaut par génération :
- première génération, deux colonnes : RB et J ;
- deuxième génération, deux colonnes : OA et C ;
- troisième génération, trois colonnes : RS, E et RFVF ;
- quatrième génération, trois colonnes : DP, Pt et HGSS ;
- cinquième génération, deux colonnes : NB et NB2 ;
- sixième génération, deux colonnes : XY et ROSA ;
- septième génération, trois colonnes : SL, USUL et LGPE ;
- huitième génération, deux colonnes : EB et DEPS ensemble, puis LPA ;
- neuvième génération, une colonne : EV.
On notera que la fonction niveau retire automatiquement les colonnes pour lesquelles aucune information n'est indiquée. C'est en particulier intéressant pour Pokémon : Let's Go, Pikachu et Let's Go, Évoli et Légendes Pokémon : Arceus, où peu des Pokémon existants à l'époque étaient présents dans le jeu. Prenons l'exemple suivant : on veut remplir le tableau génération 7 d'un Pokémon de la troisième génération. Le module s'attend à trois colonnes : SL, USUL et LGPE ; mais un Pokémon de la troisième génération n'est pas présent dans LGPE. Dans ce cas, il n'y a pas à indiquer au module cette information, il suffit de ne jamais mettre de niveau dans la troisième colonne et elle disparaîtra d'elle-même.
Exemples
{{#invoke:Apprentissage|niveau|type=plante|génération=6| Charge/Départ/Départ Rugissement/3/3 Fouet Lianes/7/5 Fouet Lianes/9/7 Poudre Toxik/13/9 Poudre Dodo/-/12 Bélier/-/15 Tranch'Herbe/19/18 Doux Parfum/21/21 Croissance/25/24 Damoclès/27/27 Soucigraine/31/30 Synthèse/33/33 Canon Graine/37/Évolution }}
donne :
Capacité | Niveau | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Nom | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage | XY | ROSA |
Charge | ![]() | ![]() | 50 | 100 % | 35 | ![]() | ♥♥♥♥ | — | Départ | Départ |
Rugissement | ![]() | ![]() | — | 100 % | 40 | ![]() | ♥♥ | — | N.3 | N.3 |
Fouet Lianes | ![]() | ![]() | 45 | 100 % | 15 | ![]() | ♥♥♥♥ | — | N.7 | N.5 |
Fouet Lianes | ![]() | ![]() | 45 | 100 % | 15 | ![]() | ♥♥♥♥ | — | N.9 | N.7 |
Poudre Toxik | ![]() | ![]() | — | 75 % | 35 | ![]() | ♥♥♥ | — | N.13 | N.9 |
Poudre Dodo | ![]() | ![]() | — | 75 % | 15 | ![]() | ♥ | ♥♥♥ | — | N.12 |
Bélier | ![]() | ![]() | 90 | 85 % | 20 | ![]() | ♥♥♥♥♥♥ | — | — | N.15 |
Tranch'Herbe | ![]() | ![]() | 55 | 95 % | 25 | ![]() | ♥♥♥♥ | — | N.19 | N.18 |
Doux Parfum | ![]() | ![]() | — | 100 % | 20 | ![]() | ♥♥ | — | N.21 | N.21 |
Croissance | ![]() | ![]() | — | — | 40 | ![]() | ♥ | — | N.25 | N.24 |
Damoclès | ![]() | ![]() | 120 | 100 % | 15 | ![]() | ♥♥♥♥♥♥ | — | N.27 | N.27 |
Soucigraine | ![]() | ![]() | — | 100 % | 10 | ![]() | ♥♥ | — | N.31 | N.30 |
Synthèse | ![]() | ![]() | — | — | 5 | ![]() | ♥ | — | N.33 | N.33 |
Canon Graine | ![]() | ![]() | 80 | 100 % | 15 | ![]() | ♥♥♥♥ | — | N.37 | Évolution |
{{#invoke:Apprentissage|niveau|type=plante|génération=7|Aucune}}
donne :
Capacité | |||||
---|---|---|---|---|---|
Nom | Type | Catégorie | Puissance | Précision | PP |
Ce Pokémon n'apprend aucune capacité par montée en niveau lors de cette génération. |
Fonction « capsule »
Paramètres
- type : le type du Pokémon. Utilisé uniquement pour la coloration du tableau.
- génération en chiffre arabe (1, 2, 3…).
- jeux (facultatif) : ce paramètre n'est actuellement utile que pour les générations 7 et 8, où les données des capacités (puissance, précision etc) ont pu varier selon les jeux. Si un tableau ne concerne que certains jeux de la génération, alors les indiquer avec se paramètre permettra que seules les données utiles soient affichées et allégera donc le tableau. Il faut utiliser les abréviations des jeux en question, conformément au modèle Jeu, et séparer les différents jeux par des slashs (/). Par exemple : « jeux=LPA » ou « jeux=EB/DEPS ».
- masquer (facultatif) : indiquer oui pour que le tableau soit masqué par défaut.
- Le numéro de la CT/CS et la capacité qu'elle contient. Chaque capsule est disposée sur une nouvelle ligne et on trouve ensuite le nom de la capacité puis l'abréviation du jeu comme paramètre facultatif. Sur une même ligne, les infos sont séparées par des slashs (/). Pour les noms de capacité, il est obligatoire d'écrire dans le code le nom de la capacité lors de la génération et rien d'autre : ne pas essayer en particulier de modifier le lien vers lequel pointe la capacité au risque de perturber la récupération des informations sur celle-ci. On notera que les homonymies sont gérées automatiquement.
Exemples
{{#invoke:Apprentissage|capsule|type=Sol|génération=6| 90/Clonage 91/Luminocanon 94/Éclate-Roc/XY 94/Force Cachée/ROSA 98/Poing Boost 100/Confidence 02/Vol 04/Force 06/Éclate-Roc/ROSA }}
donne :
Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage |
---|---|---|---|---|---|---|---|---|---|
CT90 | Clonage | ![]() | ![]() | — | — | 10 | ![]() | ♥♥ | — |
CT91 | Luminocanon | ![]() | ![]() | 80 | 100 % | 10 | ![]() | ♥♥♥♥ | — |
CT94 | Éclate-RocXY | ![]() | ![]() | 40 | 100 % | 15 | ![]() | ♥♥♥♥ | — |
CT94 | Force CachéeROSA | ![]() | ![]() | 70 | 100 % | 20 | ![]() | ♥ | — |
CT98 | Poing Boost | ![]() | ![]() | 40 | 100 % | 20 | ![]() | ♥ | — |
CT100 | Confidence | ![]() | ![]() | — | — | 20 | ![]() | ♥♥♥ | — |
CS02 | Vol | ![]() | ![]() | 90 | 95 % | 15 | ![]() | ♥♥ | — |
CS04 | Force | ![]() | ![]() | 80 | 100 % | 15 | ![]() | ♥♥♥♥ | — |
CS06 | Éclate-RocROSA | ![]() | ![]() | 40 | 100 % | 15 | ![]() | ♥♥♥♥ | — |
{{#invoke:Apprentissage|capsule|type=Sol|génération=7|Aucune}}
donne :
Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
---|---|---|---|---|---|---|
Ce Pokémon n'apprend aucune capacité par capsule lors de cette génération. |
Fonction « disque »
Paramètres
- type : le type du Pokémon. Utilisé uniquement pour la coloration du tableau.
- génération en chiffre arabe (1, 2, 3…).
- jeux (facultatif) : ce paramètre n'est actuellement utile que pour les générations 7 et 8, où les données des capacités (puissance, précision etc) ont pu varier selon les jeux. Si un tableau ne concerne que certains jeux de la génération, alors les indiquer avec se paramètre permettra que seules les données utiles soient affichées et allégera donc le tableau. Il faut utiliser les abréviations des jeux en question, conformément au modèle Jeu, et séparer les différents jeux par des slashs (/). Par exemple : « jeux=LPA » ou « jeux=EB/DEPS ».
- masquer (facultatif) : indiquer oui pour que le tableau soit masqué par défaut.
- Le numéro du DT et la capacité qu'il contient. Chaque disque est disposé sur une nouvelle ligne et on trouve ensuite le nom de la capacité puis l'abréviation du jeu comme paramètre facultatif. Sur une même ligne, les infos sont séparées par des slashs (/). Pour les noms de capacité, il est obligatoire d'écrire dans le code le nom de la capacité lors de la génération et rien d'autre : ne pas essayer en particulier de modifier le lien vers lequel pointe la capacité au risque de perturber la récupération des informations sur celle-ci. On notera que les homonymies sont gérées automatiquement.
Exemple
{{#invoke:Apprentissage|disque|type=Feu|génération=8| 00 / Danse Lames 01 / Plaquage 02 / Lance-Flammes 10 / Séisme 15 / Déflagration 20 / Clonage 24 / Colère 26 / Ténacité }}
donne :
Numéro | Capacité | Type | Catégorie | Puissance | Précision | PP |
---|---|---|---|---|---|---|
DT00 | Danse Lames | ![]() | ![]() | — | — | 20 |
DT01 | Plaquage | ![]() | ![]() | 85 | 100 % | 15 |
DT02 | Lance-Flammes | ![]() | ![]() | 90 | 100 % | 15 |
DT10 | Séisme | ![]() | ![]() | 100 | 100 % | 10 |
DT15 | Déflagration | ![]() | ![]() | 110 | 85 % | 5 |
DT20 | Clonage | ![]() | ![]() | — | — | 10 |
DT24 | Colère | ![]() | ![]() | 120 | 100 % | 10 |
DT26 | Ténacité | ![]() | ![]() | — | — | 10 |
Fonction « reproduction »
Paramètres
- type : le type du Pokémon. Utilisé uniquement pour la coloration du tableau.
- génération en chiffre arabe (1, 2, 3…).
- jeux (facultatif) : ce paramètre n'est actuellement utile que pour les générations 7 et 8, où les données des capacités (puissance, précision etc) ont pu varier selon les jeux. Si un tableau ne concerne que certains jeux de la génération, alors les indiquer avec se paramètre permettra que seules les données utiles soient affichées et allégera donc le tableau. Il faut utiliser les abréviations des jeux en question, conformément au modèle Jeu, et séparer les différents jeux par des slashs (/). Par exemple : « jeux=LPA » ou « jeux=EB/DEPS ».
- masquer (facultatif) : indiquer oui pour que le tableau soit masqué par défaut.
- méthodes : les différentes méthodes d'apprentissage possibles des parents, séparées par des slashs (/). Les valeurs doivent compléter la phrase « Parents possibles l'apprenant par ». Par défaut, les valeurs sont « niveau » et « reproduction ».
- queulorior : indiquer oui si Queulorior est un parent possible.
- Les capacités apprises et les parents possibles. Chaque capacité est disposée sur une nouvelle ligne et on trouve ensuite les parents apprenant naturellement la capacité puis ceux l'apprenant par reproduction. Sur une même ligne, les infos sont séparées par des slashs (/). Quand on liste les parents possibles, les Pokémon sont séparés par des virgules. Il est possible, comme dans l'exemple ci-dessous, de laisser une ligne vide entre chaque capacité pour une meilleure visibilité, mais cela reste tout à fait facultatif. Pour les noms de capacité, il est obligatoire d'écrire dans le code le nom de la capacité lors de la génération et rien d'autre : ne pas essayer en particulier de modifier le lien vers lequel pointe la capacité au risque de perturber la récupération des informations sur celle-ci. On notera que les homonymies sont gérées automatiquement.
- À côté du nom d'une capacité, il est possible d'indiquer
jeu(XXX)
en remplaçant XXX par une abréviation de jeu pour préciser si une capacité est présente uniquement dans un jeu. La liste des abréviations possibles est celle du modèle Abréviation.
- À côté du nom d'une capacité, il est possible d'indiquer
Exemples
{{#invoke:Apprentissage|reproduction|génération=6|type=Dragon| Hâte/Roucool, Roucoups, Roucarnage, Piafabec, Rapasdepic, Canarticho, Doduo, Dodrio, Hypotrempe, Hypocéan, Ptéra, Minidraco, Draco, Dracolosse, Airmure, Hyporoi, Arcko, Massko, Jungko, Nirondelle, Hélédelle, Étourmi, Étourvol, Étouraptor, Arkéapti, Aéroptéryx, Passerouge, Braisillon, Flambusard, Sonistrelle, Bruyverne/Tylton, Altaria, Roucool, Roucoups, Roucarnage, Piafabec, Rapasdepic, Canarticho, Doduo, Dodrio, Hypotrempe, Hypocéan, Ptéra, Minidraco, Draco, Dracolosse, Hoothoot, Noarfang, Airmure, Hyporoi, Arcko, Massko, Jungko, Nirondelle, Hélédelle, Goélise, Bekipan, Étourmi, Étourvol, Étouraptor, Pijako, Arkéapti, Aéroptéryx, Passerouge, Braisillon, Flambusard, Galvaran, Iguolta, Sonistrelle, Bruyverne Permuforce jeu(ROSA)/Natu, Xatu/Tylton, Altaria, Natu, Xatu Frénésie/Doduo, Dodrio, Draby, Drackhaus, Drattak/Tylton, Altaria, Doduo, Dodrio, Nirondelle, Hélédelle, Draby, Drackhaus, Drattak }}
donne :
Capacité | Type | Cat. | Puis. | Préc. | PP | Type Concours | Charme | Blocage | Parents l'apprenant par niveau | Parents l'apprenant par reproduction |
---|---|---|---|---|---|---|---|---|---|---|
Hâte | ![]() | ![]() | — | — | 30 | ![]() | ♥♥♥ | — | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
PermuforceROSA | ![]() | ![]() | — | — | 10 | ![]() | ♥ | — | ![]() ![]() | ![]() ![]() ![]() ![]() |
Frénésie | ![]() | ![]() | 20 | 100 % | 20 | ![]() | ♥ | ♥♥♥ | ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
{{#invoke:Apprentissage|reproduction|type=Acier|génération=6 | méthodes=[[niveau]] / [[CT]] / [[donneur de capacités]] dans [[ROSA]] / [[reproduction]]| Larcin / / Simularbre, Tutafeh, Tutankafer, Miamiasme, Miasmax / / Trousselin Mur de Fer / Tarinorme, Nodulithe, Géolithe, Gigalithe, Grindur, Noacier, Monorpale, Dimoclès, Exagide / / Racaillou, Gravalanch, Grolem, Tarinor, Tarinorme, Nodulithe, Géolithe, Gigalithe, Crabicoque, Crabaraque, Tutafeh, Tutankafer, Sorbébé, Sorboul, Sorbouboul, Grindur, Noacier, Monorpale, Dimoclès, Exagide, Trousselin / Crabicoque, Crabaraque, Sorbébé, Sorboul, Sorbouboul, Trousselin Passe-Passe / / / / Stalgamin, Oniglali, Momartik, Trousselin Verrouillage / Tarinor, Tarinorme / / / Nodulithe, Géolithe, Gigalithe, Trousselin }}
donne :
Capacité | Type | Cat. | Puis. | Préc. | PP | Type Concours | Charme | Blocage | Parents l'apprenant par niveau | Parents l'apprenant par CT | Parents l'apprenant par donneur de capacités dans ROSA | Parents l'apprenant par reproduction |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Larcin | ![]() | ![]() | 60 | 100 % | 25 | ![]() | ♥ | — | — | ![]() ![]() ![]() ![]() ![]() | — | ![]() |
Mur de Fer | ![]() | ![]() | — | — | 15 | ![]() | ♥ | — | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | — | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() ![]() ![]() ![]() ![]() ![]() |
Passe-Passe | ![]() | ![]() | — | 100 % | 10 | ![]() | ♥♥ | ♥ | — | — | — | ![]() ![]() ![]() ![]() |
Verrouillage | ![]() | ![]() | — | — | 10 | ![]() | ♥♥♥ | — | ![]() ![]() | — | — | ![]() ![]() ![]() ![]() |
{{#invoke:Apprentissage|reproduction|type=Dragon|génération=7|Aucune}}
donne :
Capacité | Type | Cat. | Puis. | Préc. | PP | Parents l'apprenant par niveau | Parents l'apprenant par reproduction |
---|---|---|---|---|---|---|---|
Ce Pokémon n'apprend aucune capacité par reproduction lors de cette génération. |
Fonction « donneur »
Paramètres
- type : le type du Pokémon. Utilisé uniquement pour la coloration du tableau.
- génération en chiffre arabe (1, 2, 3…).
- jeux (facultatif) : ce paramètre n'est actuellement utile que pour les générations 7 et 8, où les données des capacités (puissance, précision etc) ont pu varier selon les jeux. Si un tableau ne concerne que certains jeux de la génération, alors les indiquer avec se paramètre permettra que seules les données utiles soient affichées et allégera donc le tableau. Il faut utiliser les abréviations des jeux en question, conformément au modèle Jeu, et séparer les différents jeux par des slashs (/). Par exemple : « jeux=LPA » ou « jeux=EB/DEPS ».
- masquer (facultatif) : indiquer oui pour que le tableau soit masqué par défaut.
- prix-unité (facultatif) : l'unité utilisée pour la colonne « Prix ». Par défaut, ce sera « PCo ».
- Les capacités apprises et les infos sur le donneur de capacités. Chaque capacité est disposée sur une nouvelle ligne et on trouve ensuite le lieu où se trouve le donneur, le prix et l'unité. Sur une même ligne, les infos sont séparées par des slashs (/). L'unité définie sur une ligne est prioritaire par rapport au paramètre prix-unité. Pour les noms de capacité, il est obligatoire d'écrire dans le code le nom de la capacité lors de la génération et rien d'autre : ne pas essayer en particulier de modifier le lien vers lequel pointe la capacité au risque de perturber la récupération des informations sur celle-ci. On notera que les homonymies sont gérées automatiquement.
Exemples
{{#invoke:Apprentissage|donneur|type=sol|génération=6| Barrage/[[Atoll de Combat]], Cabane 3/8 Telluriforce/[[Atoll de Combat]], Cabane 2/12 Poing-Éclair/[[Atoll de Combat]], Cabane 1/8 Psykoud'Boul/[[Atoll de Combat]], Cabane 2/8 Vent Glace/[[Atoll de Combat]], Cabane 4/12 }}
donne :
Capacité | Type | Catégorie | Puissance | Précision | PP | Type Concours | Charme | Blocage | Lieu | Coût |
---|---|---|---|---|---|---|---|---|---|---|
Barrage | ![]() | ![]() | — | — | 5 | ![]() | ♥♥ | — | Atoll de Combat, Cabane 3 | 8 PCo |
Telluriforce | ![]() | ![]() | 90 | 100 % | 10 | ![]() | ♥♥♥♥ | — | Atoll de Combat, Cabane 2 | 12 PCo |
Poing-Éclair | ![]() | ![]() | 75 | 100 % | 15 | ![]() | ♥♥♥♥ | — | Atoll de Combat, Cabane 1 | 8 PCo |
Psykoud'Boul | ![]() | ![]() | 80 | 90 % | 15 | ![]() | ♥♥♥♥ | — | Atoll de Combat, Cabane 2 | 8 PCo |
Vent Glace | ![]() | ![]() | 55 | 95 % | 15 | ![]() | ♥♥♥♥ | — | Atoll de Combat, Cabane 4 | 12 PCo |
{{#invoke:Apprentissage|donneur|type=sol|génération=7|Aucune}}
donne :
Capacité | Type | Catégorie | Puissance | Précision | PP | Lieu | Coût |
---|---|---|---|---|---|---|---|
Ce Pokémon n'apprend aucune capacité par donneur lors de cette génération. |
Fonction « preevolution »
Paramètres
- type : le type du Pokémon. Utilisé uniquement pour la coloration du tableau.
- génération en chiffre arabe (1, 2, 3…).
- jeux (facultatif) : ce paramètre n'est actuellement utile que pour les générations 7 et 8, où les données des capacités (puissance, précision etc) ont pu varier selon les jeux. Si un tableau ne concerne que certains jeux de la génération, alors les indiquer avec se paramètre permettra que seules les données utiles soient affichées et allégera donc le tableau. Il faut utiliser les abréviations des jeux en question, conformément au modèle Jeu, et séparer les différents jeux par des slashs (/). Par exemple : « jeux=LPA » ou « jeux=EB/DEPS ».
- masquer (facultatif) : indiquer oui pour que le tableau soit masqué par défaut.
- Les capacités apprises et la pré-évolution qui l'apprend. Chaque capacité est disposée sur une nouvelle ligne et on trouve ensuite le nom de la pré-évolution. Sur une même ligne, les infos sont séparées par des slashs (/). Pour les noms de capacité, il est obligatoire d'écrire dans le code le nom de la capacité lors de la génération et rien d'autre : ne pas essayer en particulier de modifier le lien vers lequel pointe la capacité au risque de perturber la récupération des informations sur celle-ci. On notera que les homonymies sont gérées automatiquement.
Exemples
{{#invoke:Apprentissage|preevolution|type=Insecte|génération=7| Dard-Venin/Aspicot Sécrétion/Aspicot Piqûre/Aspicot Armure/Coconfort }}
donne :
Capacité | Type | Catégorie | Puissance | Précision | PP | Pré-évolution |
---|---|---|---|---|---|---|
Dard-Venin | ![]() | ![]() | 15 | 100 % | 35 | 0013 ![]() |
Sécrétion | ![]() | ![]() | — | 95 % | 40 | 0013 ![]() |
Piqûre | ![]() | ![]() | 60 | 100 % | 20 | 0013 ![]() |
Armure | ![]() | ![]() | — | — | 30 | 0014 ![]() |
{{#invoke:Apprentissage|preevolution|type=Insecte|génération=7|Aucune}}
donne :
Capacité | Type | Catégorie | Puissance | Précision | PP | Pré-évolution |
---|---|---|---|---|---|---|
Ce Pokémon n'apprend aucune capacité par pré-évolution lors de cette génération. |
Fonction « evenement »
Paramètres
- type : le type du Pokémon. Utilisé uniquement pour la coloration du tableau.
- génération en chiffre arabe (1, 2, 3…).
- jeux (facultatif) : ce paramètre n'est actuellement utile que pour les générations 7 et 8, où les données des capacités (puissance, précision etc) ont pu varier selon les jeux. Si un tableau ne concerne que certains jeux de la génération, alors les indiquer avec se paramètre permettra que seules les données utiles soient affichées et allégera donc le tableau. Il faut utiliser les abréviations des jeux en question, conformément au modèle Jeu, et séparer les différents jeux par des slashs (/). Par exemple : « jeux=LPA » ou « jeux=EB/DEPS ».
- masquer (facultatif) : indiquer oui pour que le tableau soit masqué par défaut.
- Les capacités apprises et l'événement. Chaque capacité est disposée sur une nouvelle ligne et on trouve ensuite le nom de l'événement. Sur une même ligne, les infos sont séparées par des slashs (/). Pour les noms de capacité, il est obligatoire d'écrire dans le code le nom de la capacité lors de la génération et rien d'autre : ne pas essayer en particulier de modifier le lien vers lequel pointe la capacité au risque de perturber la récupération des informations sur celle-ci. On notera que les homonymies sont gérées automatiquement.
Exemples
{{#invoke:Apprentissage|evenement|type=Psy|génération=7| Coup-Victoire/Centre Pokémon de Tohoku (Japon, juin-septembre 2017) Célébration/Centre Pokémon de Tohoku (Japon, juin-septembre 2017) }}
donne :
Capacité | Type | Catégorie | Puissance | Précision | PP | Événement |
---|---|---|---|---|---|---|
Coup Victoire | ![]() | ![]() | 180 | 95 % | 5 | Centre Pokémon de Tohoku (Japon, juin-septembre 2017) |
Célébration | ![]() | ![]() | — | — | 40 | Centre Pokémon de Tohoku (Japon, juin-septembre 2017) |
{{#invoke:Apprentissage|evenement|type=Psy|génération=7|Aucune}}
donne :
Capacité | Type | Catégorie | Puissance | Précision | PP | Événement |
---|---|---|---|---|---|---|
Ce Pokémon n'apprend aucune capacité par événement lors de cette génération. |
local p = {}
local ressources = {
["donneesCapacite"] = require("Module:Ressources/donneesCapacite")
}
local generation_actuelle = 9
local generation_to_jeux = {
{"RB", "J"}, -- gen 1
{"OA", "C"}, -- gen 2
{"RS", "E", "RFVF"}, -- gen 3
{"DP", "Pt", "HGSS"}, -- gen 4
{"NB", "N2B2"}, -- gen 5
{"XY", "ROSA"}, -- gen 6
{"SL", "USUL", "LGPE"}, -- gen 7
{{"EB", "DEPS"}, "LPA"}, -- gen 8, EB et DEPS sont mis dans la même colonne
{"EV"} -- gen 9
}
local function non_vide( valeur )
if valeur ~= nil and mw.text.trim( valeur ) ~= "" and mw.text.trim(valeur ) ~= "-" and mw.text.trim( valeur ) ~= "—" then return true
else return false
end
end
function p.niveau( frame )
local infos = frame.args[1]
if infos == nil then return "Aucune information donnée" else infos = mw.text.trim( infos ) end
infos = mw.text.split(infos, "\n")
local generation = frame.args['génération']
if generation == nil then generation = generation_actuelle else generation = tonumber( generation ) end
local poke_type = frame.args['type']
if poke_type == nil then poke_type = "inconnu" else poke_type = mw.text.trim( string.lower( string.gsub( poke_type, "É", "é" ) ) ) end
local generation_to_colspans = {
{6, 2}, -- gen 1
{6, 2}, -- gen 2
{9, 3}, -- gen 3
{8, 3}, -- gen 4
{6, 2}, -- gen 5
{9, 2}, -- gen 6
{6, 3}, -- gen 7
{6, 2}, -- gen 8
{6, 1} -- gen 9
}
local colspans = { generation_to_colspans[generation][1], generation_to_colspans[generation][2] }
-- Détection automatique des colonnes pour lesquelles aucune donnée n'est renseignée. Ces colonnes n'apparaîtront pas.
local presence = {}
for j = 1, colspans[2] do
presence[j] = false
end
local i = 1
local infos_capacite = {}
while infos[i] do
infos_capacite = mw.text.split(infos[i], "/")
for j = 1, colspans[2] do
if non_vide( infos_capacite[j+1] ) then presence[j] = true end
end
i = i + 1
end
for j = 1, generation_to_colspans[generation][2] do
if presence[j] == false then colspans[2] = colspans[2] - 1 end
end
colspans[3] = colspans[1] + colspans[2]
local jeux = {}
for j = 1, generation_to_colspans[generation][2] do
if presence[j] then table.insert(jeux, generation_to_jeux[generation][j]) end
end
local resultat = {}
table.insert(resultat, '<div class="center"><table class="tableaustandard ' .. poke_type .. ' sortable centre tableau-overflow"><thead><tr><th class="cellule-entête"" colspan="' .. colspans[1] .. '">[[Capacité]]</th>')
if colspans[2] > 0 then table.insert(resultat, '<th class="cellule-entête" colspan="' .. colspans[2] .. '">[[Niveau]]</th>') end
table.insert(resultat, '</tr><tr><th class="colonne-1">[[Capacité|Nom]]</th><th class="colonne-2">[[Type]]</th><th class="colonne-3">[[Catégorie de capacité|Catégorie]]</th><th class="colonne-4">[[Puissance (statistique)|Puissance]]</th><th class="colonne-5">[[Précision]]</th><th class="colonne-6">[[PP]]</th>')
if generation == 3 or generation == 4 or generation == 6 then
table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th>')
if generation == 3 or generation == 6 then table.insert(resultat, '<th class="colonne-8">[[Blocage (concours)|Blocage]]</th>') end
end
for _, jeux_colonne in ipairs(jeux) do
if type(jeux_colonne) == "string" then table.insert(resultat, '<th class="colonne-niveau">' .. frame:expandTemplate{title="Abréviation", args={jeux_colonne, ""}} .. '</th>')
else
local abreviations = {}
for _, jeu_colonne in ipairs(jeux_colonne) do table.insert(abreviations, frame:expandTemplate{title="Abréviation", args={jeu_colonne, ""}}) end
table.insert(resultat, '<th class="colonne-niveau">' .. table.concat(abreviations, ", ") .. '</th>')
end
end
table.insert(resultat, '</tr>')
if #infos == 1 and infos[1] == "Aucune" then
table.insert(resultat, '</thead><tbody><tr><td class="colonne-toutes" colspan="' .. colspans[3] .. '">Ce Pokémon n\'apprend aucune capacité par montée en niveau lors de cette génération.</td></tr>')
else
local bouton
if frame.args['masquer'] == "oui" or frame.args['masquer'] == "1" then bouton = {"afficher", "[-] Masquer", "[+] Afficher"}
else bouton = {"masquer", "[+] Afficher", "[-] Masquer"}
end
table.insert(resultat, '<tr><td class="colonne-toutes" colspan="' .. colspans[3] .. '"><button type="button" name="ListeCapacites' .. generation .. '" value="' .. bouton[1] .. '" style="font-size:80%" title="' .. bouton[2] .. '">' .. bouton[3] .. '</button></td></tr></thead><tbody class="ListeCapacites' .. generation .. '">')
local i = 1
local infos_capacite = {}
local donnees = {}
while infos[i] do
infos_capacite = mw.text.split(infos[i], "/")
if infos_capacite[1] ~= nil and infos_capacite[1] ~= "" then
local jeux_capacite = {}
for j = 1, generation_to_colspans[generation][2] do
if non_vide( infos_capacite[j+1] ) then table.insert(jeux_capacite, generation_to_jeux[generation][j]) end
end
donnees = ressources.donneesCapacite( generation, mw.text.trim( infos_capacite[1] ), jeux_capacite )
for j = 1, colspans[1] do
table.insert(resultat, '<td class="colonne-' .. j .. '">' .. donnees[j] .. '</td>')
end
for j = 2, generation_to_colspans[generation][2] + 1 do
if presence[j-1] then
if infos_capacite[j] ~= nil then
infos_capacite[j] = mw.text.trim( infos_capacite[j] )
infos_capacite_split = mw.text.split(infos_capacite[j], ", ")
local k = 1
local infos_capacite_tmp_string = ""
local valeur = nil
while infos_capacite_split[k] do
local maitrise = false
if mw.ustring.find(infos_capacite_split[k], "M") == 1
then maitrise = true
infos_capacite_split[k] = mw.ustring.sub(infos_capacite_split[k], 2)
end
if infos_capacite_split[k] == "—" or infos_capacite_split[k] == "-" or infos_capacite_split[k] == ""
then infos_capacite_split[k] = "—"
if valeur == nil then valeur = 101 end
elseif string.find( infos_capacite_split[k], "Départ" ) then if valeur == nil then valeur = 0 end
elseif tonumber(infos_capacite_split[k]) ~= nil then
if valeur == nil then valeur = infos_capacite_split[k] end
infos_capacite_split[k] = "N." .. infos_capacite_split[k]
else if valeur == nil then valeur = 0 end
end
if k ~= 1 then infos_capacite_tmp_string = infos_capacite_tmp_string .. "<br/>" end
if maitrise then infos_capacite_tmp_string = infos_capacite_tmp_string .. "[[Fichier:Icône Maîtrise LPA.png|x20px|Maîtrise|link=Maîtrise]]" end
infos_capacite_tmp_string = infos_capacite_tmp_string .. infos_capacite_split[k]
k = k + 1
end
table.insert(resultat, '<td class="colonne-niveau" style="white-space:nowrap" data-sort-value="' .. valeur .. '">' .. infos_capacite_tmp_string)
else table.insert(resultat, '<td class="colonne-niveau" style="white-space:nowrap" data-sort-value="101">—')
end
table.insert(resultat, '</td>')
end
end
table.insert(resultat, '</tr>')
end
i = i + 1
end
end
table.insert(resultat, '</tbody></table></div>')
return table.concat(resultat, "")
end
local function capsuleEtDisque( disque, frame )
local infos = frame.args[1]
if infos == nil then return "Aucune information donnée" else infos = mw.text.trim( infos ) end
local generation = frame.args['génération']
if generation == nil then generation = generation_actuelle else generation = tonumber( generation ) end
local type = frame.args['type']
if type == nil then type = "inconnu" else type = mw.text.trim( string.lower( string.gsub( type, "É", "é" ) ) ) end
local jeux = frame.args['jeux']
if jeux == nil then
jeux = generation_to_jeux[generation]
if generation == 8 then jeux[2] = nil end -- Pas de capsule dans LPA
else
jeux = mw.text.split(jeux, "/")
for i,jeu in ipairs(jeux) do
jeux[i] = mw.text.trim( jeu )
end
end
local colspan = 7
if generation == 3 or generation == 6 then colspan = 10
elseif generation == 4 then colspan = 9
end
local resultat = {}
table.insert(resultat, '<div class="center"><table class="tableaustandard ' .. type .. ' centre sortable tableau-overflow"><thead><tr><th class="colonne-1">Numéro</th><th class="apprentissage apprentissage-capsule apprentissage-capsule-génération' .. generation ..' colonne-2">Capacité</th><th class="colonne-3">Type</th><th class="colonne-4">Catégorie</th><th class="colonne-5">Puissance</th><th class="colonne-6">Précision</th><th class="colonne-7">PP</th>')
if generation == 3 or generation == 6 then table.insert(resultat, '<th class="colonne-8">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th><th class="colonne-10">[[Blocage (concours)|Blocage]]</th>')
elseif generation == 4 then table.insert(resultat, '<th class="colonne-8">[[Concours Pokémon|Type Concours]]</th><th class="colonne-9">[[Charme (concours)|Charme]]</th>')
end
table.insert(resultat, '</tr>')
if infos == "Aucune" then
table.insert(resultat, '</thead><tbody><tr><td class="colonne-toutes" colspan="' .. colspan .. '">Ce Pokémon n\'apprend aucune capacité par ')
if disque then table.insert(resultat, 'disque') else table.insert(resultat, 'capsule') end
table.insert(resultat, ' lors de cette génération.</td></tr>')
else
local bouton
if frame.args['masquer'] == "oui" or frame.args['masquer'] == "1" then bouton = {"afficher", "[-] Masquer", "[+] Afficher"}
else bouton = {"masquer", "[+] Afficher", "[-] Masquer"}
end
table.insert(resultat, '<tr><td class="colonne-toutes" colspan="' .. colspan .. '"><button type="button" name="Liste')
if disque then table.insert(resultat, 'Disque') else table.insert(resultat, 'Capsule') end
table.insert(resultat, 's' .. generation .. '" value="' .. bouton[1] .. '" style="font-size:80%" title="' .. bouton[2] .. '">' .. bouton[3] .. '</button></td></tr></thead><tbody class="Liste')
if disque then table.insert(resultat, 'Disque') else table.insert(resultat, 'Capsule') end
table.insert(resultat, 's' .. generation .. '">')
infos = mw.text.split(infos, "\n")
local i = 1
local infos_capacite = {}
local donnees = {}
local capsule
local cs = {
["Coupe"] = {true, true, true, true, true, true},
["Vol"] = {true, true, true, true, true, true},
["Surf"] = {true, true, true, true, true, true},
["Force"] = {true, true, true, true, true, true},
["Flash"] = {true, true, true, false, false, false},
["Siphon"] = {false, true, false, "depend", false, false},
["Cascade"] = {false, true, true, true, true, true},
["Éclate-Roc"] = {false, false, true, true, false, "depend"},
["Plongée"] = {false, false, "depend", false, true, "depend"},
["Anti-Brume"] = {false, false, false, "depend", false, false},
["Escalade"] = {false, false, false, true, false, false}
}
cs["Plongée"]["rse"] = true
cs["Plongée"]["rfvf"] = false
cs["Siphon"]["dpp"] = false
cs["Siphon"]["hgss"] = true
cs["Anti-Brume"]["dpp"] = true
cs["Anti-Brume"]["hgss"] = false
cs["Éclate-Roc"]["xy"] = false
cs["Éclate-Roc"]["rosa"] = true
cs["Plongée"]["xy"] = false
cs["Plongée"]["rosa"] = true
while infos[i] do
infos_capacite = mw.text.split(infos[i], "/")
if infos_capacite[1] ~= nil and infos_capacite[1] ~= "" and infos_capacite[2] ~= nil and infos_capacite[2] ~= "" then
if disque then capsule = 'DT'
else
capsule = 'CT'
if cs[mw.text.trim( infos_capacite[2] )] then
if cs[mw.text.trim( infos_capacite[2] )][generation] == true then
capsule = 'CS'
elseif cs[mw.text.trim( infos_capacite[2] )][generation] == "depend" then
if infos_capacite[3] then
if cs[mw.text.trim( infos_capacite[2] )][mw.text.trim( string.lower( infos_capacite[3] ) )] == true then
capsule = 'CS'
end
end
end
end
end
donnees = ressources.donneesCapacite( generation, mw.text.trim( infos_capacite[2] ), jeux )
table.insert(resultat, '<tr><td class="colonne-1">[[' .. capsule .. mw.text.trim( infos_capacite[1] ) .. ']]</td><td class="colonne-2">' .. donnees[1])
if infos_capacite[3] then table.insert(resultat, '<sup>' .. frame:expandTemplate{ title = 'Abréviation', args = { infos_capacite[3] } } .. '</sup>' ) end
table.insert(resultat, '</td>')
for j = 2, colspan - 1 do table.insert(resultat, '<td class="colonne-' .. j+1 .. '">' .. donnees[j] .. '</td>') end
table.insert(resultat, '</tr>')
end
i = i + 1
end
end
table.insert(resultat, '</tbody></table></div>')
return table.concat(resultat, "")
end
function p.capsule( frame )
return capsuleEtDisque( false, frame )
end
function p.disque( frame )
return capsuleEtDisque( true, frame )
end
function p.reproduction( frame )
ressources["infosPokemon"] = require("Module:Ressources/infosPokemon")
local infos = frame.args[1]
if infos == nil then return "Aucune information donnée" else infos = mw.text.trim( infos ) end
local generation = frame.args['génération']
if generation == nil then generation = generation_actuelle else generation = tonumber( generation ) end
local type = frame.args['type']
if type == nil then type = "inconnu" else type = mw.text.trim( string.lower( string.gsub( type, "É", "é" ) ) ) end
local jeux = frame.args['jeux']
if jeux == nil then
jeux = generation_to_jeux[generation]
if generation == 8 then jeux[2] = nil end -- Pas de reproduction dans LPA
else
jeux = mw.text.split(jeux, "/")
for i,jeu in ipairs(jeux) do
jeux[i] = mw.text.trim( jeu )
end
end
local methodes = frame.args['méthodes']
if methodes == nil then methodes = {"[[niveau]]", "[[reproduction]]"}
else methodes = mw.text.split(methodes, "/")
end
local colspan = 6 + #methodes
if generation == 3 or generation == 6 then colspan = 9 + #methodes
elseif generation == 4 then colspan = 8 + #methodes
end
local resultat = {}
table.insert(resultat, '<div class="center"><table class="tableaustandard centre ' .. type .. ' sortable tableau-overflow" style="max-width: 100%;"><thead><tr><th class="colonne-1">[[Capacité]]</th><th class="colonne-2">[[Type]]</th><th class="colonne-3">[[Catégorie de capacité|Cat.]]</th><th class="colonne-4">[[Puissance (statistique)|Puis.]]</th><th class="colonne-5">[[Précision|Préc.]]</th><th class="colonne-6">[[PP]]</th>')
if generation == 3 or generation == 6 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th><th class="colonne-9">[[Blocage (concours)|Blocage]]</th>')
elseif generation == 4 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th>')
end
local z = 1
while methodes[z] do
table.insert(resultat, '<th class="colonne-toutes">Parents l\'apprenant par ' .. methodes[z] .. '</th>')
z = z + 1
end
table.insert(resultat, '</tr>')
if infos == "Aucune" then
table.insert(resultat, '</thead><tbody><tr><td class="colonne-toutes" colspan="' .. colspan .. '">Ce Pokémon n\'apprend aucune capacité par reproduction lors de cette génération.</td></tr>')
else
local bouton
if frame.args['masquer'] == "oui" or frame.args['masquer'] == "1" then bouton = {"afficher", "[-] Masquer", "[+] Afficher"}
else bouton = {"masquer", "[+] Afficher", "[-] Masquer"}
end
table.insert(resultat, '<tr><td class="colonne-toutes" colspan="' .. colspan .. '"><button type="button" name="ListeReproduction' .. generation .. '" value="' .. bouton[1] .. '" style="font-size:80%" title="' .. bouton[2] .. '">' .. bouton[3] .. '</button></td></tr></thead><tbody class="ListeReproduction' .. generation .. '">')
infos = mw.text.split(infos, "\n")
local i = 1
local j = 1
local y = {}
local infos_capacite = {}
local poke_niveau = {}
local poke_repro = {}
local donnees = {}
while infos[i] do
infos_capacite = mw.text.split(infos[i], "/")
if mw.text.trim( infos_capacite[1] ) ~= "" then
if ( string.match(infos_capacite[1], "jeu%([^)]*%)") ) then
jeu = mw.getCurrentFrame():expandTemplate{ title = 'Sup', args = { string.sub(string.match(infos_capacite[1], "jeu%([^)]*%)"), 5, -2) } }
infos_capacite[1] = string.gsub( infos_capacite[1], "jeu%([^)]*%)", "" )
else jeu = "" end
if ( string.match(infos_capacite[1], "sup%([^)]*%)") ) then
jeu = mw.getCurrentFrame():expandTemplate{ title = 'Sup', args = { string.sub(string.match(infos_capacite[1], "sup%([^)]*%)"), 5, -2) } }
infos_capacite[1] = string.gsub( infos_capacite[1], "sup%([^)]*%)", "" )
end
infos_capacite[1] = mw.text.trim( infos_capacite[1] )
donnees = ressources.donneesCapacite( generation, mw.text.trim( infos_capacite[1] ), jeux )
table.insert(resultat, '<tr><td class="colonne-1">' .. donnees[1] .. jeu .. '</td>')
for j = 2, colspan - #methodes do table.insert(resultat, '<td class="colonne-' .. j .. '">' .. donnees[j] .. '</td>') end
table.insert(resultat, '<td class="colonne-toutes">')
while methodes[j] do
y[j] = 1
if infos_capacite[j + 1] ~= nil and mw.text.trim( infos_capacite[j + 1] ) ~= "" then
poke_niveau = mw.text.split(infos_capacite[j + 1], ",")
while poke_niveau[y[j]] do
table.insert(resultat, ressources.infosPokemon( poke_niveau[y[j]], "miniature" ) )
y[j] = y[j] + 1
end
else table.insert(resultat, "—")
end
if j == #methodes then table.insert(resultat, '</td></tr>')
else table.insert(resultat, '</td><td class="colonne-toutes">')
end
j = j + 1
end
end
i = i + 1
j = 1
y = {}
end
end
if frame.args['queulorior'] == "oui" then
table.insert(resultat, '<tr><td class="colonne-toutes" colspan="' .. colspan .. '>Grâce à sa capacité [[Gribouille]], [[Queulorior]] est capable d\'apprendre toutes ces capacités, qu\'il peut également transmettre par reproduction.</td></tr>')
end
table.insert(resultat, '</tbody></table></div>')
return table.concat(resultat, "")
end
function p.donneur( frame )
local infos = frame.args[1]
if infos == nil then return "Aucune information donnée" else infos = mw.text.trim( infos ) end
local generation = frame.args['génération']
if generation == nil then generation = generation_actuelle else generation = tonumber( generation ) end
local type = frame.args['type']
if type == nil then type = "inconnu" else type = mw.text.trim( string.lower( string.gsub( type, "É", "é" ) ) ) end
local jeux = frame.args['jeux']
if jeux == nil then jeux = generation_to_jeux[generation]
else
jeux = mw.text.split(jeux, "/")
for i,jeu in ipairs(jeux) do
jeux[i] = mw.text.trim( jeu )
end
end
local colspan = 8
if generation == 3 or generation == 6 then colspan = 11
elseif generation == 4 then colspan = 10
end
local prix_unite = frame.args['prix-unité']
if prix_unite == nil then prix_unite = "[[Point de Combat|PCo]]" end
local resultat = {}
table.insert(resultat, '<div class="center"><table class="tableaustandard centre ' .. type .. ' sortable tableau-overflow" style="max-width: 100%;"><thead><tr><th class="colonne-1">[[Capacité]]</th><th class="colonne-2">[[Type]]</th><th class="colonne-3">[[Catégorie de capacité|Catégorie]]</th><th class="colonne-4">[[Puissance (statistique)|Puissance]]</th><th class="colonne-5">[[Précision|Précision]]</th><th class="colonne-6">[[PP]]</th>')
if generation == 3 or generation == 6 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th><th class="colonne-9">[[Blocage (concours)|Blocage]]</th>')
elseif generation == 4 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th>')
end
table.insert(resultat, '<th class="colonne-lieu">Lieu</th><th class="colonne-coût">Coût</th></tr>')
if infos == "Aucune" then
table.insert(resultat, '</thead><tbody><tr><td class="colonne-toutes" colspan="' .. colspan .. '">Ce Pokémon n\'apprend aucune capacité par donneur lors de cette génération.</td></tr>')
else
local bouton
if frame.args['masquer'] == "oui" or frame.args['masquer'] == "1" then bouton = {"afficher", "[-] Masquer", "[+] Afficher"}
else bouton = {"masquer", "[+] Afficher", "[-] Masquer"}
end
table.insert(resultat, '<tr><td class="colonne-toutes" colspan="' .. colspan .. '"><button type="button" name="ListeDonneur' .. generation .. '" value="' .. bouton[1] .. '" style="font-size:80%" title="' .. bouton[2] .. '">' .. bouton[3] .. '</button></td></tr></thead><tbody class="ListeDonneur' .. generation .. '">')
infos = mw.text.split(infos, "\n")
i = 1
local donnees = {}
while infos[i] do
infos_capacite = mw.text.split(infos[i], "/")
if infos_capacite[1] ~= nil and infos_capacite[1] ~= "" then
donnees = ressources.donneesCapacite( generation, mw.text.trim( infos_capacite[1] ), jeux )
if infos_capacite[2] == nil then infos_capacite[2] = "" end
if infos_capacite[3] == nil then
infos_capacite[3] = "—"
infos_capacite[4] = ""
else
if infos_capacite[4] == nil then infos_capacite[4] = prix_unite end
end
-- pour rajouter les éléments supplémentaires qui se seraient perdus à cause de balises
local k = 5
while infos_capacite[k] do
infos_capacite[4] = infos_capacite[4] .. "/" .. infos_capacite[k]
k = k + 1
end
table.insert(resultat, '<tr>')
for j = 1, colspan - 2 do table.insert(resultat, '<td class="colonne-' .. j .. '">' .. donnees[j] .. '</td>') end
table.insert(resultat, '<td class="colonne-lieu">' .. infos_capacite[2] .. '</td><td class="colonne-coût">' .. infos_capacite[3] .. " " .. infos_capacite[4] .. '</td></tr>')
end
i = i + 1
end
end
table.insert(resultat, '</tbody></table></div>')
return table.concat(resultat, "")
end
function p.preevolution( frame )
ressources["infosPokemon"] = require("Module:Ressources/infosPokemon")
local infos = frame.args[1]
if infos == nil then return "Aucune information donnée" else infos = mw.text.trim( infos ) end
local generation = frame.args['génération']
if generation == nil then generation = generation_actuelle else generation = tonumber( generation ) end
local type = frame.args['type']
if type == nil then type = "inconnu" else type = mw.text.trim( string.lower( string.gsub( type, "É", "é" ) ) ) end
local jeux = frame.args['jeux']
if jeux == nil then jeux = generation_to_jeux[generation]
else
jeux = mw.text.split(jeux, "/")
for i,jeu in ipairs(jeux) do
jeux[i] = mw.text.trim( jeu )
end
end
local colspan = 7
if generation == 3 or generation == 6 then colspan = 10
elseif generation == 4 then colspan = 9
end
local resultat = {}
table.insert(resultat, '<div class="center"><table class="tableaustandard centre ' .. type .. ' sortable tableau-overflow" style="max-width: 100%;"><thead><tr><th class="colonne-1">[[Capacité]]</th><th class="colonne-2">[[Type]]</th><th class="colonne-3">[[Catégorie de capacité|Catégorie]]</th><th class="colonne-4">[[Puissance (statistique)|Puissance]]</th><th class="colonne-5">[[Précision|Précision]]</th><th class="colonne-6">[[PP]]</th>')
if generation == 3 or generation == 6 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th><th class="colonne-9">[[Blocage (concours)|Blocage]]</th>')
elseif generation == 4 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th>')
end
table.insert(resultat, '<th class="colonne-toutes">Pré-évolution</th></tr>')
if infos == "Aucune" then
table.insert(resultat, '</thead><tbody><tr><td class="colonne-toutes" colspan="' .. colspan .. '">Ce Pokémon n\'apprend aucune capacité par pré-évolution lors de cette génération.</td></tr>')
else
local bouton
if frame.args['masquer'] == "oui" or frame.args['masquer'] == "1" then bouton = {"afficher", "[-] Masquer", "[+] Afficher"}
else bouton = {"masquer", "[+] Afficher", "[-] Masquer"}
end
table.insert(resultat, '<tr><td class="colonne-toutes" colspan="' .. colspan .. '"><button type="button" name="ListePreevolution' .. generation .. '" value="' .. bouton[1] .. '" style="font-size:80%" title="' .. bouton[2] .. '">' .. bouton[3] .. '</button></td></tr></thead><tbody class="ListePreevolution' .. generation .. '">')
infos = mw.text.split(infos, "\n")
i = 1
local donnees = {}
while infos[i] do
infos_capacite = mw.text.split(infos[i], "/")
if infos_capacite[1] ~= nil and infos_capacite[1] ~= "" then
donnees = ressources.donneesCapacite( generation, mw.text.trim( infos_capacite[1] ), jeux )
if infos_capacite[2] == nil then infos_capacite[2] = "Inconnue" end
table.insert(resultat, '<tr>')
for j = 1, colspan - 1 do table.insert(resultat, '<td class="colonne-' .. j .. '">' .. donnees[j] .. '</td>') end
table.insert(resultat, '<td class="colonne-toutes" style="text-align:left">' .. ressources.infosPokemon( infos_capacite[2] ) .. '</td></tr>')
end
i = i + 1
end
end
table.insert(resultat, '</tbody></table></div>')
return table.concat(resultat, "")
end
function p.evenement( frame )
local infos = frame.args[1]
if infos == nil then return "Aucune information donnée" else infos = mw.text.trim( infos ) end
local generation = frame.args['génération']
if generation == nil then generation = generation_actuelle else generation = tonumber( generation ) end
local type = frame.args['type']
if type == nil then type = "inconnu" else type = mw.text.trim( string.lower( string.gsub( type, "É", "é" ) ) ) end
local jeux = frame.args['jeux']
if jeux == nil then jeux = generation_to_jeux[generation]
else
jeux = mw.text.split(jeux, "/")
for i,jeu in ipairs(jeux) do
jeux[i] = mw.text.trim( jeu )
end
end
local colspan = 7
if generation == 3 or generation == 6 then colspan = 10
elseif generation == 4 then colspan = 9
end
local resultat = {}
table.insert(resultat, '<div class="center"><table class="tableaustandard centre ' .. type .. ' sortable tableau-overflow" style="max-width: 100%;"><thead><tr><th class="colonne-1">[[Capacité]]</th><th class="colonne-2">[[Type]]</th><th class="colonne-3">[[Catégorie de capacité|Catégorie]]</th><th class="colonne-4">[[Puissance (statistique)|Puissance]]</th><th class="colonne-5">[[Précision|Précision]]</th><th class="colonne-6">[[PP]]</th>')
if generation == 3 or generation == 6 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th><th class="colonne-9">[[Blocage (concours)|Blocage]]</th>')
elseif generation == 4 then table.insert(resultat, '<th class="colonne-7">[[Concours Pokémon|Type Concours]]</th><th class="colonne-8">[[Charme (concours)|Charme]]</th>')
end
table.insert(resultat, '<th class="colonne-toutes">Événement</th></tr>')
if infos == "Aucune" then
table.insert(resultat, '</thead><tbody><tr><td class="colonne-toutes" colspan="' .. colspan .. '">Ce Pokémon n\'apprend aucune capacité par événement lors de cette génération.</td></tr>')
else
local bouton
if frame.args['masquer'] == "oui" or frame.args['masquer'] == "1" then bouton = {"afficher", "[-] Masquer", "[+] Afficher"}
else bouton = {"masquer", "[+] Afficher", "[-] Masquer"}
end
table.insert(resultat, '<tr><td class="colonne-toutes" colspan="' .. colspan .. '"><button type="button" name="ListeEvenement' .. generation .. '" value="' .. bouton[1] .. '" style="font-size:80%" title="' .. bouton[2] .. '">' .. bouton[3] .. '</button></td></tr></thead><tbody class="ListeEvenement' .. generation .. '">')
infos = mw.text.split(infos, "\n")
i = 1
local donnees = {}
while infos[i] do
infos_capacite = mw.text.split(infos[i], "/")
if infos_capacite[1] ~= nil and infos_capacite[1] ~= "" then
donnees = ressources.donneesCapacite( generation, mw.text.trim( infos_capacite[1] ), jeux )
if infos_capacite[2] == nil then infos_capacite[2] = "Inconnu" end
table.insert(resultat, '<tr>')
for j = 1, colspan - 1 do table.insert(resultat, '<td class="colonne-' .. j .. '">' .. donnees[j] .. '</td>') end
table.insert(resultat, '<td class="colonne-toutes">' .. infos_capacite[2] .. '</td></tr>')
end
i = i + 1
end
end
table.insert(resultat, '</tbody></table></div>')
return table.concat(resultat, "")
end
return p