From 30ddde6874941ba87e10c90e89797bc8e31d0942 Mon Sep 17 00:00:00 2001 From: Miguel S <62101239+sl-miguel@users.noreply.github.com> Date: Thu, 18 Apr 2024 12:45:06 +0200 Subject: [PATCH 01/11] Fixed move name, effect typo --- src/locales/en/move.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/en/move.ts b/src/locales/en/move.ts index c8a527a4eb0..7af9a20bf9c 100644 --- a/src/locales/en/move.ts +++ b/src/locales/en/move.ts @@ -2549,8 +2549,8 @@ export const move: MoveTranslations = { effect: "Dummy Data" }, "neverEndingNightmarePhysical": { - name: "Deep-seated grudges summoned by the user's Z-Power trap the target. The power varies, depending on the original move.", - effect: "Dummy Data" + name: "Never-Ending Nightmare", + effect: "Deep-seated grudges summoned by the user's Z-Power trap the target. The power varies, depending on the original move." }, "neverEndingNightmareSpecial": { name: "Never-Ending Nightmare", From 4330ee5543948d5e034c789fe799798dc8cc560b Mon Sep 17 00:00:00 2001 From: Miguel S <62101239+sl-miguel@users.noreply.github.com> Date: Thu, 18 Apr 2024 12:49:18 +0200 Subject: [PATCH 02/11] Menu locales for french --- src/locales/fr/menu.ts | 39 +++++++++++++++++++++++++++++++++++++++ src/plugins/i18n.ts | 2 ++ 2 files changed, 41 insertions(+) create mode 100644 src/locales/fr/menu.ts diff --git a/src/locales/fr/menu.ts b/src/locales/fr/menu.ts new file mode 100644 index 00000000000..0a1ee70a2fe --- /dev/null +++ b/src/locales/fr/menu.ts @@ -0,0 +1,39 @@ +export const menu = { + "cancel": "Annuler", + "continue": "Continuer", + "dailyRun": "Défi du jour (Bêta)", + "loadGame": "Charger la partie", + "newGame": "Nouvelle partie", + "selectGameMode": "Sélectionnez un mode de jeu.", + "logInOrCreateAccount": "Connectez-vous ou créez un compte pour commencer. Aucun e-mail requis !", + "failedToLoadSaveData": "Échec du chargement des données. Veuillez recharger la page.\nSi cela continue, veuillez contacter l'administrateur.", + "sessionSuccess": "Session chargée avec succès.", + "failedToLoadSession": "Vos données de session n'ont pas pu être chargées.\nElles pourraient être corrompues.", + "boyOrGirl": "Es-tu un garçon ou une fille ?", + "boy": "Garçon", + "girl": "Fille", + "bossAppeared": "Un {{bossName}} est apparaît.", + "trainerAppeared": "Un combat est lancé\npar {{trainerName}} !", + "singleWildAppeared": "Un {{pokemonName}} sauvage apparaît!", + "multiWildAppeared": "Un {{pokemonName1}} et un {{pokemonName2}}\nsauvages apparaissent !", + "playerComeBack": "{{pokemonName}}, on change!\nReviens !", + "trainerComeBack": "{{trainerName}} retire {{pokemonName}} !", + "playerGo": "{{pokemonName}} ! Go !", + "trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !", + "switchQuestion": "Voulez-vous changer\n{{pokemonName}} ?", + "pokemon": "Pokémon", + "sendOutPokemon": "{{pokemonName}} ! Go !", + "levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !", + "moveNotImplemented": "{{moveName}} n'est pas encore implémenté et ne peut pas être sélectionné.", + "moveDisabled": "{{moveName}} est désactivé !", + "noPokeballForce": "Une force mystérieuse\nempêche l'utilisation des Poké Balls.", + "noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c'est mal !", + "noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon!", + "noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d'abord l'affaiblir !", + "noEscapeForce": "Une force mystérieuse\nempêche la fuite.", + "noEscapeTrainer": "On ne s'enfuit pas d'un\ncombat de Dresseurs !", + "noEscapePokemon": "{{moveName}} de {{pokemonName}}\nempêche {{escapeVerb}} !", + "escapeVerbSwitch": "le changement", + "escapeVerbFlee": "la fuite", + "notDisabled": "{{moveName}} n'est plus désactivé !", +} as const; \ No newline at end of file diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 3c44b0f1d31..fc67c655c15 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -1,6 +1,7 @@ import i18next from 'i18next'; import { menu as enMenu } from '../locales/en/menu'; import { menu as itMenu } from '../locales/it/menu'; +import { menu as frMenu } from '../locales/fr/menu'; import { move as enMove } from '../locales/en/move'; import { move as frMove } from '../locales/fr/move'; @@ -35,6 +36,7 @@ i18next.init({ menu: itMenu, }, fr: { + menu: frMenu, move: frMove, } }, From 8830b55061a6070ca8f603544955336bbdae20cc Mon Sep 17 00:00:00 2001 From: Miguel S <62101239+sl-miguel@users.noreply.github.com> Date: Thu, 18 Apr 2024 12:51:56 +0200 Subject: [PATCH 03/11] Moves locales french --- src/locales/fr/move.ts | 3806 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 3805 insertions(+), 1 deletion(-) diff --git a/src/locales/fr/move.ts b/src/locales/fr/move.ts index 3caa084c7dc..384f7145b21 100644 --- a/src/locales/fr/move.ts +++ b/src/locales/fr/move.ts @@ -1,6 +1,3810 @@ export const move = { + "pound": { + name: "Écras'Face", + effect: "Le lanceur écrase la cible avec l’un de ses membres, tels qu’une de ses pattes avant ou sa longue queue." + }, + "karateChop": { + name: "Poing Karaté", + effect: "L'ennemi est tranché violemment. Taux de critique élevé." + }, + "doubleSlap": { + name: "Torgnoles", + effect: "Gifle rapidement l'ennemi de deux à cinq fois d'affilée." + }, + "cometPunch": { + name: "Poing Comète", + effect: "Une tornade de coups de poing qui frappe de deux à cinq fois d'affilée." + }, + "megaPunch": { + name: "Ultimapoing", + effect: "La cible reçoit un coup de poing d’une grande puissance." + }, + "payDay": { + name: "Jackpot", + effect: "Des pièces sont lancées sur la cible. Permet d’obtenir de l’argent à la fin du combat." + }, + "firePunch": { + name: "Poing Feu", + effect: "Un coup de poing enflammé vient frapper la cible, ce qui peut la brûler (10% de chances)." + }, + "icePunch": { + name: "Poing Glace", + effect: "Un coup de poing glacé vient frapper la cible, ce qui peut la geler (10% de chances)." + }, + "thunderPunch": { + name: "Poing Éclair", + effect: "Un coup de poing électrique vient frapper la cible, ce qui peut la paralyser (10% de chances)." + }, + "scratch": { + name: "Griffe", + effect: "Lacère la cible avec des griffes acérées pour lui infliger des dégâts." + }, + "viseGrip": { + name: "Force Poigne", + effect: "La cible est attrapée et compressée par les côtés." + }, + "guillotine": { + name: "Guillotine", + effect: "Des pinces lacèrent violemment la cible, la mettant K.O. sur le coup si elle est touchée." + }, + "razorWind": { + name: "Coupe-Vent", + effect: "Attaque en deux tours. Des lames de vent frappent l'ennemi au second tour. Taux de critique élevé." + }, + "swordsDance": { + name: "Danse Lames", + effect: "Une danse frénétique qui exalte l’esprit combatif. Augmente beaucoup l’Attaque du lanceur." + }, + "cut": { + name: "Coupe", + effect: "Coupe la cible avec des lames ou des griffes." + }, + "gust": { + name: "Tornade", + effect: "Le lanceur bat des ailes pour générer une bourrasque qui blesse la cible." + }, + "wingAttack": { + name: "Cru-Ailes", + effect: "Le lanceur déploie largement ses ailes majestueuses pour attaquer la cible." + }, + "whirlwind": { + name: "Cyclone", + effect: "Éjecte le Pokémon ennemi et le remplace par un autre. Lors d’un combat contre un Pokémon sauvage seul, met fin au combat." + }, + "fly": { + name: "Vol", + effect: "Le lanceur s’envole au premier tour et frappe au second." + }, + "bind": { + name: "Étreinte", + effect: "Le lanceur ligote la cible avec son corps allongé ou ses tentacules pour la compresser durant quatre à cinq tours." + }, + "slam": { + name: "Souplesse", + effect: "Le lanceur utilise l’un de ses membres, tels qu’une queue ou une liane, pour infliger des dégâts à la cible." + }, + "vineWhip": { + name: "Fouet Lianes", + effect: "Fouette la cible avec de fines lianes pour infliger des dégâts." + }, + "stomp": { + name: "Écrasement", + effect: "Écrase la cible avec un énorme pied, ce qui peut aussi l’apeurer (30% de chances)." + }, + "doubleKick": { + name: "Double Pied", + effect: "Deux coups de pied qui frappent la cible deux fois d’affilée." + }, + "megaKick": { + name: "Ultimawashi", + effect: "Un coup de pied surpuissant qui frappe la cible." + }, + "jumpKick": { + name: "Pied Sauté", + effect: "Le lanceur s'envole pour décocher un coup de pied sauté. S'il échoue, le lanceur se blesse." + }, + "rollingKick": { + name: "Mawashi Geri", + effect: "Le lanceur effectue un coup de pied tournoyant et extrêmement rapide. Peut apeurer l'ennemi (30% de chances)." + }, + "sandAttack": { + name: "Jet de Sable", + effect: "Lance du sable au visage de la cible pour baisser sa Précision." + }, + "headbutt": { + name: "Coup d'Boule", + effect: "Le lanceur donne un coup de tête à la cible qui peut aussi l’apeurer (30% de chances)." + }, + "hornAttack": { + name: "Koud'Korne", + effect: "Frappe la cible d’un coup de corne pointue pour infliger des dégâts." + }, + "furyAttack": { + name: "Furie", + effect: "Frappe la cible deux à cinq fois d’affilée avec un membre pointu tel qu’un bec ou une corne." + }, + "hornDrill": { + name: "Empal'Korne", + effect: "Un coup de corne en vrille qui empale la cible, la mettant K.O. sur le coup si elle est touchée." + }, + "tackle": { + name: "Charge", + effect: "Le lanceur charge la cible et la percute de tout son poids." + }, + "bodySlam": { + name: "Plaquage", + effect: "Le lanceur se laisse tomber sur la cible de tout son poids, ce qui peut aussi la paralyser (30% de chances)." + }, + "wrap": { + name: "Ligotage", + effect: "Le lanceur ligote la cible avec son corps allongé ou ses tentacules pour la compresser durant quatre à cinq tours." + }, + "takeDown": { + name: "Bélier", + effect: "Une charge violente qui blesse aussi légèrement le lanceur." + }, + "thrash": { + name: "Mania", + effect: "Une attaque furieuse qui dure de deux à trois tours. Le lanceur devient confus." + }, + "doubleEdge": { + name: "Damoclès", + effect: "Une charge dangereuse et imprudente. Blesse aussi gravement le lanceur." + }, + "tailWhip": { + name: "Mimi-Queue", + effect: "Le lanceur remue son adorable queue pour tromper la vigilance de la cible et baisser sa Défense." + }, + "poisonSting": { + name: "Dard-Venin", + effect: "Un dard toxique transperce la cible et peut aussi l’empoisonner (30% de chances)." + }, + "twineedle": { + name: "Double Dard", + effect: "Un double coup de dard qui transperce l'ennemi deux fois d'affilée. Peut aussi l'empoisonner (36% de chances)." + }, + "pinMissile": { + name: "Dard-Nuée", + effect: "Envoie une rafale de dards. Peut toucher de deux à cinq fois." + }, + "leer": { + name: "Groz'Yeux", + effect: "Le lanceur fait les gros yeux à la cible pour l’intimider et baisser sa Défense." + }, + "bite": { + name: "Morsure", + effect: "Le lanceur utilise ses canines tranchantes pour mordre la cible, ce qui peut aussi l’apeurer (30% de chances)." + }, + "growl": { + name: "Rugissement", + effect: "Le lanceur pousse un cri tout mimi pour tromper la vigilance de la cible et baisser son Attaque." + }, + "roar": { + name: "Hurlement", + effect: "Effraie le Pokémon ennemi et le remplace par un autre. Lors d’un combat contre un Pokémon sauvage seul, met fin au combat." + }, + "sing": { + name: "Berceuse", + effect: "Une berceuse plonge la cible dans un profond sommeil." + }, + "supersonic": { + name: "Ultrason", + effect: "Le lanceur produit d’étranges ondes sonores qui rendent la cible confuse." + }, + "sonicBoom": { + name: "Sonic Boom", + effect: "Une onde de choc destructrice qui inflige toujours 20 PV de dégâts." + }, + "disable": { + name: "Entrave", + effect: "Empêche la cible de répéter sa dernière attaque. Dure quatre tours." + }, + "acid": { + name: "Acide", + effect: "Le lanceur attaque la cible avec un jet d’acide corrosif qui peut aussi baisser sa Défense Spéciale." + }, "ember": { name: "Flammèche", - effect: "Flammèche inflige des dégâts et a des chances de brûler le Pokémon adverse." + effect: "La cible est attaquée par une faible flamme qui peut aussi la brûler." }, + "flamethrower": { + name: "Lance-Flammes", + effect: "La cible reçoit un torrent de flammes qui peut aussi la brûler (10% de chances)." + }, + "mist": { + name: "Brume", + effect: "Une brume blanche enveloppe le lanceur et ses alliés et empêche la réduction des stats pour cinq tours." + }, + "waterGun": { + name: "Pistolet à O", + effect: "De l’eau est projetée avec force sur la cible." + }, + "hydroPump": { + name: "Hydrocanon", + effect: "Un puissant jet d’eau est dirigé sur la cible." + }, + "surf": { + name: "Surf", + effect: "Une énorme vague s’abat sur le champ de bataille et inflige des dégâts à tous les Pokémon autour du lanceur." + }, + "iceBeam": { + name: "Laser Glace", + effect: "Un rayon de glace frappe la cible, ce qui peut aussi la geler (10% de chances)." + }, + "blizzard": { + name: "Blizzard", + effect: "Une violente tempête de neige s’abat sur la cible, ce qui peut aussi la geler (10% de chances)." + }, + "psybeam": { + name: "Rafale Psy", + effect: "Un étrange rayon frappe la cible, ce qui peut aussi la rendre confuse." + }, + "bubbleBeam": { + name: "Bulles d'O", + effect: "Des bulles sont envoyées avec puissance sur la cible, ce qui peut aussi baisser sa Vitesse." + }, + "auroraBeam": { + name: "Onde Boréale", + effect: "Le lanceur envoie un rayon arc-en-ciel sur la cible, ce qui peut aussi baisser son Attaque." + }, + "hyperBeam": { + name: "Ultralaser", + effect: "Le lanceur projette un puissant rayon sur la cible, mais doit se reposer au tour suivant." + }, + "peck": { + name: "Picpic", + effect: "Le lanceur frappe la cible d’un bec acéré ou d’une corne pointue pour infliger des dégâts." + }, + "drillPeck": { + name: "Bec Vrille", + effect: "Une attaque utilisant le bec comme une perceuse." + }, + "submission": { + name: "Sacrifice", + effect: "Le lanceur agrippe l'ennemi et l'écrase au sol. Blesse aussi légèrement le lanceur." + }, + "lowKick": { + name: "Balayage", + effect: "Un grand coup de pied bas qui fauche la cible. Plus celle-ci est lourde, plus la puissance de cette capacité augmente." + }, + "counter": { + name: "Riposte", + effect: "Une riposte qui répond à toute attaque physique en infligeant le double de dégâts." + }, + "seismicToss": { + name: "Frappe Atlas", + effect: "La cible est projetée grâce au pouvoir de la gravité. Cette capacité inflige des dégâts égaux au niveau du lanceur." + }, + "strength": { + name: "Force", + effect: "Le lanceur cogne la cible de toutes ses forces." + }, + "absorb": { + name: "Vole-Vie", + effect: "Une attaque qui absorbe les nutriments et convertit la moitié des dégâts infligés en PV pour le lanceur." + }, + "megaDrain": { + name: "Méga-Sangsue", + effect: "Une attaque qui absorbe les nutriments et convertit la moitié des dégâts infligés en PV pour le lanceur." + }, + "leechSeed": { + name: "Vampigraine", + effect: "Une graine est semée sur la cible. À chaque tour, elle lui dérobe des PV que le lanceur récupère." + }, + "growth": { + name: "Croissance", + effect: "Le corps du lanceur se développe. Augmente l’Attaque et l’Attaque Spéciale." + }, + "razorLeaf": { + name: "Tranch'Herbe", + effect: "Des feuilles aiguisées comme des rasoirs entaillent la cible. Taux de critiques élevé." + }, + "solarBeam": { + name: "Lance-Soleil", + effect: "Le lanceur absorbe une grande quantité de lumière au premier tour et envoie un rayon puissant au tour suivant." + }, + "poisonPowder": { + name: "Poudre Toxik", + effect: "Une poudre toxique empoisonne la cible." + }, + "stunSpore": { + name: "Para-Spore", + effect: "Le lanceur répand sur la cible une poudre qui la paralyse." + }, + "sleepPowder": { + name: "Poudre Dodo", + effect: "Le lanceur répand une poudre soporifique qui endort la cible." + }, + "petalDance": { + name: "Danse Fleurs", + effect: "Le lanceur attaque en projetant des pétales pendant deux à trois tours avant de céder à la confusion." + }, + "stringShot": { + name: "Sécrétion", + effect: "Le lanceur crache de la soie pour ligoter la cible et beaucoup baisser sa Vitesse." + }, + "dragonRage": { + name: "Draco-Rage", + effect: "La colère du lanceur déclenche une onde de choc destructrice qui inflige toujours 40 PV de dégâts." + }, + "fireSpin": { + name: "Danse Flammes", + effect: "Un tourbillon de flammes emprisonne la cible pendant quatre à cinq tours." + }, + "thunderShock": { + name: "Éclair", + effect: "Une décharge électrique tombe sur la cible, ce qui peut aussi la paralyser (10% de chances)." + }, + "thunderbolt": { + name: "Tonnerre", + effect: "Une grosse décharge électrique tombe sur la cible, ce qui peut aussi la paralyser (10% de chances)." + }, + "thunderWave": { + name: "Cage Éclair", + effect: "Un faible choc électrique paralyse la cible." + }, + "thunder": { + name: "Fatal-Foudre", + effect: "La foudre tombe sur la cible pour lui infliger des dégâts, ce qui peut aussi la paralyser (30% de chances)." + }, + "rockThrow": { + name: "Jet-Pierres", + effect: "Le lanceur soulève une pierre et la lance sur la cible." + }, + "earthquake": { + name: "Séisme", + effect: "Le lanceur provoque un tremblement de terre touchant tous les Pokémon autour de lui." + }, + "fissure": { + name: "Abîme", + effect: "Le lanceur fait tomber la cible dans une crevasse. Si cette attaque réussit, elle met K.O. sur le coup." + }, + "dig": { + name: "Tunnel", + effect: "Le lanceur creuse au premier tour et frappe au second." + }, + "toxic": { + name: "Fil Toxique", + effect: "Tisse un fil imprégné de venin. Empoisonne la cible et baisse sa Vitesse." + }, + "confusion": { + name: "Choc Mental", + effect: "Une faible vague télékinétique frappe la cible, ce qui peut aussi la plonger dans la confusion." + }, + "psychic": { + name: "Champ Psychique", + effect: "Pendant cinq tours, les Pokémon au sol ne peuvent plus subir d’attaques prioritaires et la puissance des capacités de type Psy augmente." + }, + "hypnosis": { + name: "Hypnose", + effect: "Le lanceur hypnotise la cible pour la plonger dans un profond sommeil." + }, + "meditate": { + name: "Yoga", + effect: "Le lanceur médite pour éveiller son pouvoir latent et augmenter son Attaque." + }, + "agility": { + name: "Hâte", + effect: "Le lanceur se relaxe et allège son corps pour beaucoup augmenter sa Vitesse." + }, + "quickAttack": { + name: "Vive-attaque", + effect: "Le lanceur fonce sur la cible si rapidement qu’on parvient à peine à le discerner. Frappe en priorité." + }, + "rage": { + name: "Frénésie", + effect: "Une fois activée, cette capacité augmente l'Attaque du lanceur à mesure que celui-ci subit des attaques." + }, + "teleport": { + name: "Téléport", + effect: "Permet de changer de place avec un autre Pokémon de l’équipe s’il y en a. Quand cette capacité est utilisée par un Pokémon sauvage, celui-ci fuit le combat." + }, + "nightShade": { + name: "Ombre Nocturne", + effect: "Le lanceur invoque un mirage et inflige des dégâts égaux au niveau du lanceur." + }, + "mimic": { + name: "Copie", + effect: "Le lanceur copie la dernière capacité utilisée par la cible et la conserve tant qu’il reste au combat." + }, + "screech": { + name: "Grincement", + effect: "Le lanceur émet un son strident qui donne envie de se boucher les oreilles. Baisse beaucoup la Défense de la cible." + }, + "doubleTeam": { + name: "Reflet", + effect: "Le lanceur se déplace si vite qu’il crée des copies illusoires de lui-même, augmentant son Esquive." + }, + "recover": { + name: "Soin", + effect: "Un soin qui permet au lanceur de récupérer jusqu’à la moitié de ses PV max." + }, + "harden": { + name: "Armure", + effect: "Le lanceur contracte tous ses muscles pour augmenter sa Défense." + }, + "minimize": { + name: "Lilliput", + effect: "Le lanceur comprime son corps pour se faire tout petit et beaucoup augmenter son Esquive." + }, + "smokescreen": { + name: "Brouillard", + effect: "Le lanceur disperse un nuage d’encre ou de fumée qui réduit la Précision de la cible." + }, + "confuseRay": { + name: "Onde Folie", + effect: "Une lumière étrange qui plonge la cible dans un état de confusion." + }, + "withdraw": { + name: "Repli", + effect: "Le lanceur se recroqueville dans sa carapace, ce qui augmente sa Défense." + }, + "defenseCurl": { + name: "Boul'Armure", + effect: "Le lanceur s’enroule pour cacher ses points faibles, ce qui augmente sa Défense." + }, + "barrier": { + name: "Bouclier", + effect: "Le lanceur érige un mur solide qui augmente beaucoup sa Défense." + }, + "lightScreen": { + name: "Mur Lumière", + effect: "Crée un fabuleux mur de lumière qui réduit les dégâts causés par les capacités spéciales pendant cinq tours." + }, + "haze": { + name: "Buée Noire", + effect: "Crée un brouillard qui annule les changements de stats de tous les Pokémon au combat." + }, + "reflect": { + name: "Protection", + effect: "Crée un fabuleux mur de lumière qui réduit les dégâts causés par les capacités physiques pendant cinq tours." + }, + "focusEnergy": { + name: "Puissance", + effect: "Le lanceur prend une profonde inspiration et se concentre pour augmenter son taux de critiques." + }, + "bide": { + name: "Patience", + effect: "Le lanceur encaisse les coups durant deux tours et réplique en infligeant le double des dégâts subis." + }, + "metronome": { + name: "Métronome", + effect: "Le lanceur agite un doigt et stimule son cerveau pour utiliser presque n’importe quelle capacité au hasard." + }, + "mirrorMove": { + name: "Mimique", + effect: "Le lanceur riposte à l'attaque de l'ennemi avec la même attaque." + }, + "selfDestruct": { + name: "Destruction", + effect: "Le lanceur explose en blessant tous les Pokémon autour de lui. Le lanceur tombe K.O." + }, + "eggBomb": { + name: "Bombe Oeuf", + effect: "De toutes ses forces, le lanceur jette un gros œuf sur l'ennemi pour lui infliger des dégâts." + }, + "lick": { + name: "Léchouille", + effect: "Un grand coup de langue qui inflige des dégâts à la cible et peut aussi la paralyser (30% de chances)." + }, + "smog": { + name: "Bain de Smog", + effect: "Le lanceur projette de la boue bizarre sur la cible. Les changements de stats de la cible sont annulés." + }, + "sludge": { + name: "Détritus", + effect: "Des détritus toxiques sont projetés sur la cible, ce qui peut aussi l’empoisonner (30% de chances)." + }, + "boneClub": { + name: "Massd'Os", + effect: "Le lanceur frappe l'ennemi à grands coups d'os. Peut aussi l'apeurer (10% de chances)." + }, + "fireBlast": { + name: "Déflagration", + effect: "Un déluge de flammes ardentes submerge la cible, ce qui peut aussi la brûler (10% de chances)." + }, + "waterfall": { + name: "Cascade", + effect: "Le lanceur charge la cible avec une intensité remarquable, ce qui peut l’apeurer (20% de chances)." + }, + "clamp": { + name: "Claquoir", + effect: "Le lanceur piège l'ennemi dans sa dure coquille et l'écrase pendant quatre à cinq tours." + }, + "swift": { + name: "Météores", + effect: "Le lanceur envoie des rayons d’étoiles qui touchent toujours la cible." + }, + "skullBash": { + name: "Coud'Krâne", + effect: "Le lanceur baisse la tête pour augmenter sa Défense au premier tour et percuter l'ennemi au second." + }, + "spikeCannon": { + name: "Picanon", + effect: "Envoie une rafale de dards. Peut toucher de deux à cinq fois." + }, + "constrict": { + name: "Constriction", + effect: "De longs tentacules ou lianes attaquent l'ennemi. Peut aussi baisser sa Vitesse." + }, + "amnesia": { + name: "Amnésie", + effect: "Le lanceur fait le vide dans son esprit pour oublier ses soucis. Augmente beaucoup sa Défense Spéciale." + }, + "kinesis": { + name: "Télékinésie", + effect: "Le lanceur distrait l'ennemi en pliant une cuiller, ce qui baisse sa Précision." + }, + "softBoiled": { + name: "E-Coque", + effect: "Le lanceur récupère jusqu’à la moitié de ses PV max." + }, + "highJumpKick": { + name: "Pied Voltige", + effect: "Le lanceur s’élance pour effectuer un coup de genou sauté. S’il échoue, le lanceur se blesse." + }, + "glare": { + name: "Regard Médusant", + effect: "Le lanceur intimide la cible grâce à son regard terrifiant pour la paralyser." + }, + "dreamEater": { + name: "Dévorêve", + effect: "Le lanceur mange le rêve de la cible endormie et récupère en PV la moitié des dégâts infligés." + }, + "poisonGas": { + name: "Gaz Toxik", + effect: "Le lanceur empoisonne la cible en lui projetant un nuage de gaz toxique au visage." + }, + "barrage": { + name: "Pilonnage", + effect: "Projette de deux à cinq grosses boules sur l'ennemi." + }, + "leechLife": { + name: "Vampirisme", + effect: "Une attaque qui aspire le sang de la cible. La moitié des dégâts sont convertis en PV pour le lanceur." + }, + "lovelyKiss": { + name: "Grobisou", + effect: "Le lanceur fait un bisou à l'ennemi en prenant une mine effrayante. Endort l'ennemi." + }, + "skyAttack": { + name: "Piqué", + effect: "Une attaque en deux tours au taux de critiques élevé, qui peut aussi apeurer la cible (30% de chances)." + }, + "transform": { + name: "Morphing", + effect: "Le lanceur devient une copie de sa cible et obtient la même palette de capacités." + }, + "bubble": { + name: "Écume", + effect: "Des bulles frappent l'ennemi. Peut réduire sa Vitesse." + }, + "dizzyPunch": { + name: "Uppercut", + effect: "Un enchaînement de coups de poing cadencés frappe l'ennemi. Peut aussi le rendre confus." + }, + "spore": { + name: "Spore", + effect: "Le lanceur répand un nuage de spores qui endort." + }, + "flash": { + name: "Flash", + effect: "Explosion lumineuse qui fait baisser la Précision de l'ennemi." + }, + "psywave": { + name: "Vague Psy", + effect: "Une étrange onde d'énergie chaude frappe l'ennemi. Cette attaque est d'intensité variable." + }, + "splash": { + name: "Trempette", + effect: "Le lanceur barbote et éclabousse les environs. Cette capacité n’a aucun effet." + }, + "acidArmor": { + name: "Acidarmure", + effect: "Le lanceur modifie sa structure moléculaire pour se liquéfier et beaucoup augmenter sa Défense." + }, + "crabhammer": { + name: "Pince-Masse", + effect: "Une grande pince martèle la cible. Taux de critiques élevé." + }, + "explosion": { + name: "Explosion", + effect: "Le lanceur explose et inflige des dégâts à tous les Pokémon autour de lui. Met K.O. le lanceur." + }, + "furySwipes": { + name: "Combo-Griffe", + effect: "La cible est lacérée par des faux ou des griffes de deux à cinq fois d’affilée." + }, + "bonemerang": { + name: "Osmerang", + effect: "Le lanceur projette son os comme un boomerang. Cette attaque frappe à l'aller et au retour." + }, + "rest": { + name: "Repos", + effect: "Le lanceur regagne tous ses PV et ses altérations de statut sont soignées, puis il dort pendant deux tours." + }, + "rockSlide": { + name: "Éboulement", + effect: "Le lanceur envoie de gros rochers sur la cible pour lui infliger des dégâts, ce qui peut aussi l’apeurer (30% de chances)." + }, + "hyperFang": { + name: "Croc de Mort", + effect: "Le lanceur mord l'ennemi à l'aide de ses incisives aiguisées. Peut aussi l'apeurer (10% de chances)." + }, + "sharpen": { + name: "Affûtage", + effect: "Le lanceur réduit son nombre de polygones pour accentuer ses angles et augmenter son Attaque." + }, + "conversion": { + name: "Conversion", + effect: "Le lanceur change de type pour prendre celui de la première capacité de sa liste." + }, + "triAttack": { + name: "Triplattaque", + effect: "Le lanceur envoie trois boules d’énergie simultanément qui peuvent aussi paralyser, brûler ou geler la cible (6.67% de chances)." + }, + "superFang": { + name: "Croc Fatal", + effect: "Une vilaine morsure d’incisives qui réduit de moitié les PV de la cible." + }, + "slash": { + name: "Lame d'Air", + effect: "Le lanceur attaque avec une lame d’air capable de fendre le ciel, ce qui peut aussi apeurer la cible (30% de chances)." + }, + "substitute": { + name: "Clonage", + effect: "Le lanceur crée un clone en sacrifiant quelques PV. Ce clone sert de leurre." + }, + "struggle": { + name: "Lutte", + effect: "Une attaque désespérée, utilisée quand le lanceur n’a plus de PP. Le blesse aussi légèrement." + }, + "sketch": { + name: "Gribouille", + effect: "Le lanceur apprend la dernière capacité utilisée par la cible. Gribouille disparaît après utilisation." + }, + "tripleKick": { + name: "Triple Pied", + effect: "Une salve de un à trois coups de pied dont la puissance augmente à chaque coup porté." + }, + "thief": { + name: "Larcin", + effect: "Le lanceur attaque la cible et vole son objet. Le lanceur ne peut rien voler s’il tient déjà un objet." + }, + "spiderWeb": { + name: "Toile", + effect: "Le lanceur enserre l'ennemi à l'aide d'une fine soie gluante pour l'empêcher de fuir le combat." + }, + "mindReader": { + name: "Lire-Esprit", + effect: "Le lanceur analyse les mouvements de l'ennemi pour être sûr de toucher au coup suivant." + }, + "nightmare": { + name: "Cauchemar", + effect: "Un cauchemar qui inflige des dégâts à chaque tour à un ennemi endormi." + }, + "flameWheel": { + name: "Roue de Feu", + effect: "Le lanceur s’entoure de feu et charge la cible, ce qui peut aussi la brûler (10% de chances)." + }, + "snore": { + name: "Ronflement", + effect: "Une attaque qui ne fonctionne que si le lanceur est endormi. Le boucan peut aussi apeurer la cible (30% de chances)." + }, + "curse": { + name: "Malédiction", + effect: "Une capacité à l’effet différent selon que le lanceur est un Pokémon Spectre ou non." + }, + "flail": { + name: "Gigotage", + effect: "Le lanceur attaque en gigotant dans tous les sens. Plus ses PV sont bas, plus l’attaque est puissante." + }, + "conversion2": { + name: "Conversion 2", + effect: "Le lanceur change de type pour être résistant au type de la dernière attaque lancée par sa cible." + }, + "aeroblast": { + name: "Aéroblast", + effect: "Le lanceur projette une tornade sur l'ennemi pour infliger des dégâts. Taux de critique élevé." + }, + "cottonSpore": { + name: "Spore Coton", + effect: "Le lanceur libère des spores cotonneuses qui collent à la cible et baissent beaucoup sa Vitesse." + }, + "reversal": { + name: "Contre", + effect: "Le lanceur ne retient plus ses coups. Plus ses PV sont bas, plus la puissance de cette capacité augmente." + }, + "spite": { + name: "Dépit", + effect: "Le lanceur exprime son ressentiment en retirant 4 PP à la dernière capacité utilisée par la cible." + }, + "powderSnow": { + name: "Poudreuse", + effect: "Le lanceur projette de la neige poudreuse qui peut aussi geler la cible (10% de chances)." + }, + "protect": { + name: "Abri", + effect: "Le lanceur se protège de toutes les attaques. Peut échouer si utilisée plusieurs fois de suite." + }, + "machPunch": { + name: "Mach Punch", + effect: "Coup de poing fulgurant. Frappe en priorité." + }, + "scaryFace": { + name: "Grimace", + effect: "Le lanceur fait une grimace qui effraie la cible et réduit beaucoup sa Vitesse." + }, + "feintAttack": { + name: "Feinte", + effect: "Le lanceur s'approche l'air de rien avant de frapper par surprise. N'échoue jamais." + }, + "sweetKiss": { + name: "Doux Baiser", + effect: "Le lanceur envoie un bisou si mignon et désarmant qu’il plonge la cible dans la confusion." + }, + "bellyDrum": { + name: "Cognobidon", + effect: "Améliore l’Attaque au maximum en sacrifiant la moitié des PV max." + }, + "sludgeBomb": { + name: "Bombe Beurk", + effect: "Des détritus toxiques sont projetés sur la cible, ce qui peut aussi l’empoisonner (30% de chances)." + }, + "mudSlap": { + name: "Coud'Boue", + effect: "Le lanceur envoie de la boue au visage de la cible pour infliger des dégâts et baisser sa Précision." + }, + "octazooka": { + name: "Octazooka", + effect: "Le lanceur attaque en projetant de l'encre au visage de l'ennemi. Peut aussi baisser sa Précision." + }, + "spikes": { + name: "Picots", + effect: "Le lanceur disperse des picots sur le sol pour blesser tout ennemi qui entre au combat." + }, + "zapCannon": { + name: "Élecanon", + effect: "Un boulet de canon électrifié qui inflige des dégâts à la cible et la paralyse." + }, + "foresight": { + name: "Clairvoyance", + effect: "Permet de toucher un Pokémon Spectre avec n'importe quelle capacité ou de toucher un ennemi insaisissable." + }, + "destinyBond": { + name: "Lien du Destin", + effect: "Si un assaillant porte un coup fatal au lanceur après qu’il a activé cette capacité, ils sont tous les deux mis K.O. La capacité échoue si elle est immédiatement réutilisée." + }, + "perishSong": { + name: "Requiem", + effect: "Tout Pokémon qui entend ce requiem est K.O. dans trois tours à moins qu’il ne soit remplacé." + }, + "icyWind": { + name: "Vent Glace", + effect: "Une bourrasque de vent froid blesse la cible et réduit sa Vitesse." + }, + "detect": { + name: "Détection", + effect: "Le lanceur se protège de toutes les attaques. Peut échouer si utilisée plusieurs fois de suite." + }, + "boneRush": { + name: "Charge Os", + effect: "Le lanceur frappe la cible avec un os de deux à cinq fois d’affilée." + }, + "lockOn": { + name: "Verrouillage", + effect: "Le lanceur verrouille la cible pour ne pas la rater au tour suivant." + }, + "outrage": { + name: "Colère", + effect: "Le lanceur enrage et attaque pendant deux ou trois tours avant de devenir confus." + }, + "sandstorm": { + name: "Tempête de Sable", + effect: "Une tempête de sable blesse tous les Pokémon pendant cinq tours, sauf ceux de type Roche, Sol ou Acier. Augmente la Défense Spéciale des Pokémon Roche." + }, + "gigaDrain": { + name: "Giga-Sangsue", + effect: "Une attaque qui absorbe les nutriments et convertit la moitié des dégâts infligés en PV pour le lanceur." + }, + "endure": { + name: "Ténacité", + effect: "Le lanceur résiste aux attaques avec 1 PV. Peut échouer si utilisée plusieurs fois de suite." + }, + "charm": { + name: "Charme", + effect: "Le lanceur fait les yeux doux pour berner la cible et beaucoup réduire son Attaque." + }, + "rollout": { + name: "Roulade", + effect: "Un rocher roule sur la cible pendant cinq tours. L’attaque gagne en puissance à chaque coup." + }, + "falseSwipe": { + name: "Faux-Chage", + effect: "Le lanceur retient ses coups pour que la cible garde au moins 1 PV et ne tombe pas K.O." + }, + "swagger": { + name: "Vantardise", + effect: "Fait enrager la cible et la plonge dans la confusion, mais augmente beaucoup son Attaque." + }, + "milkDrink": { + name: "Lait à Boire", + effect: "Le lanceur récupère jusqu’à la moitié de ses PV max." + }, + "spark": { + name: "Étincelle", + effect: "Le lanceur envoie une charge électrique sur la cible qui peut aussi la paralyser (30% de chances)." + }, + "furyCutter": { + name: "Taillade", + effect: "Un coup de faux ou de griffe dont la puissance augmente quand il touche plusieurs fois d’affilée." + }, + "steelWing": { + name: "Ailes d'Acier", + effect: "Le lanceur frappe la cible avec des ailes d’acier, ce qui peut aussi augmenter la Défense du lanceur." + }, + "meanLook": { + name: "Regard Noir", + effect: "Le lanceur pétrifie la cible en lui lançant un regard noir qui la rend incapable de quitter le terrain." + }, + "attract": { + name: "Attraction", + effect: "Si la cible est du sexe opposé, elle tombe amoureuse et rechigne alors à attaquer." + }, + "sleepTalk": { + name: "Blabla Dodo", + effect: "Le lanceur utilise une de ses capacités au hasard. Il ne peut utiliser cette capacité que quand il dort." + }, + "healBell": { + name: "Glas de Soin", + effect: "Carillon apaisant qui soigne les altérations de statut de tous les Pokémon de l’équipe." + }, + "return": { + name: "Retour", + effect: "Plus le Pokémon apprécie son Dresseur, plus la puissance de cette attaque furieuse augmente." + }, + "present": { + name: "Cadeau", + effect: "Le lanceur attaque en offrant un cadeau piégé à la cible, mais le cadeau peut parfois restaurer les PV de celle-ci à la place." + }, + "frustration": { + name: "Frustration", + effect: "Moins le Pokémon aime son Dresseur, plus cette attaque est puissante." + }, + "safeguard": { + name: "Rune Protect", + effect: "Crée un champ protecteur qui empêche toutes les altérations de statut pendant cinq tours." + }, + "painSplit": { + name: "Balance", + effect: "Le lanceur ajoute ses PV à ceux de sa cible et les répartit équitablement." + }, + "sacredFire": { + name: "Feu Sacré", + effect: "Le lanceur génère un feu mystique d'une intensité redoutable pour attaquer l'ennemi. Peut aussi le brûler (50% de chances)." + }, + "magnitude": { + name: "Ampleur", + effect: "Provoque un tremblement de terre d'intensité variable qui affecte tous les Pokémon alentour. L'efficacité varie." + }, + "dynamicPunch": { + name: "Dynamo-Poing", + effect: "Le lanceur rassemble ses forces et envoie un coup de poing à la cible, ce qui la rend confuse à coup sûr." + }, + "megahorn": { + name: "Mégacorne", + effect: "Le lanceur inflige un grand coup de corne à la cible." + }, + "dragonBreath": { + name: "Draco-Souffle", + effect: "Le lanceur souffle fort sur la cible pour lui infliger des dégâts, ce qui peut aussi la paralyser (30% de chances)." + }, + "batonPass": { + name: "Relais", + effect: "Le lanceur échange sa place et tout changement de stats avec un Pokémon de l’équipe." + }, + "encore": { + name: "Encore", + effect: "Le lanceur oblige la cible à répéter la dernière capacité utilisée durant trois tours." + }, + "pursuit": { + name: "Poursuite", + effect: "Une attaque qui inflige deux fois plus de dégâts à un ennemi qui s'apprête à être remplacé." + }, + "rapidSpin": { + name: "Tour Rapide", + effect: "Le lanceur attaque en tournant sur lui-même. Sa Vitesse augmente également. Il se libère également des effets de capacités comme Étreinte, Ligotage ou Vampigraine." + }, + "sweetScent": { + name: "Doux Parfum", + effect: "Un doux parfum qui réduit beaucoup l’Esquive de la cible." + }, + "ironTail": { + name: "Queue de Fer", + effect: "Le lanceur attaque la cible avec une queue de fer, ce qui peut aussi baisser la Défense de la cible." + }, + "metalClaw": { + name: "Griffe Acier", + effect: "Attaque avec des griffes d’acier. Peut aussi augmenter l’Attaque du lanceur." + }, + "vitalThrow": { + name: "Corps Perdu", + effect: "Le lanceur porte son coup en dernier. En échange, cette capacité n'échoue jamais." + }, + "morningSun": { + name: "Aurore", + effect: "Un soin qui restaure des PV au lanceur. Son efficacité varie en fonction de la météo." + }, + "synthesis": { + name: "Synthèse", + effect: "Un soin qui restaure des PV au lanceur. Son efficacité varie en fonction de la météo." + }, + "moonlight": { + name: "Rayon Lune", + effect: "Un soin qui restaure des PV au lanceur. Son efficacité varie en fonction de la météo." + }, + "hiddenPower": { + name: "Puissance Cachée", + effect: "Attaque dont le type dépend du Pokémon qui l'utilise." + }, + "crossChop": { + name: "Coup Croix", + effect: "Le lanceur délivre un coup double en croisant les avant-bras. Taux de critiques élevé." + }, + "twister": { + name: "Ouragan", + effect: "Le lanceur déclenche un terrible ouragan sur la cible, ce qui peut aussi apeurer celle-ci (20% de chances)." + }, + "rainDance": { + name: "Danse Pluie", + effect: "Invoque de fortes pluies qui durent cinq tours, augmentant la puissance des capacités de type Eau et baissant celle des capacités de type Feu." + }, + "sunnyDay": { + name: "Zénith", + effect: "Fait briller le soleil pendant cinq tours, augmentant la puissance des capacités de type Feu et baissant celle des capacités de type Eau." + }, + "crunch": { + name: "Mâchouille", + effect: "Le lanceur mord la cible de ses crocs pointus, ce qui peut aussi baisser sa Défense." + }, + "mirrorCoat": { + name: "Voile Miroir", + effect: "Une riposte qui contre n’importe quelle capacité spéciale en infligeant le double des dégâts subis." + }, + "psychUp": { + name: "Boost", + effect: "Une autohypnose qui permet au lanceur de copier les changements de stats de la cible." + }, + "extremeSpeed": { + name: "Vitesse Extrême", + effect: "Le lanceur charge à une vitesse renversante. Frappe en priorité." + }, + "ancientPower": { + name: "Pouvoir Antique", + effect: "Une attaque préhistorique qui peut augmenter toutes les stats du lanceur d’un seul coup." + }, + "shadowBall": { + name: "Ball'Ombre", + effect: "Le lanceur projette une grande ombre sur la cible qui peut aussi faire baisser la Défense Spéciale de celle-ci." + }, + "futureSight": { + name: "Prescience", + effect: "De l’énergie psychique vient frapper la cible deux tours après l’utilisation de cette capacité." + }, + "rockSmash": { + name: "Éclate-Roc", + effect: "Le lanceur porte un coup de poing à la cible, ce qui peut baisser la Défense de celle-ci." + }, + "whirlpool": { + name: "Siphon", + effect: "Le lanceur piège la cible dans une trombe d’eau pendant quatre à cinq tours." + }, + "beatUp": { + name: "Baston", + effect: "Le lanceur appelle tous les Pokémon de son équipe à attaquer. Plus ils sont nombreux, plus il y a d’attaques." + }, + "fakeOut": { + name: "Bluff", + effect: "Le lanceur frappe en priorité et apeure la cible. La capacité ne fonctionne que si elle est utilisée immédiatement en entrant au combat." + }, + "uproar": { + name: "Brouhaha", + effect: "Le lanceur attaque en rugissant durant trois tours. Pendant ce temps, aucun Pokémon ne peut s’endormir." + }, + "stockpile": { + name: "Stockage", + effect: "Le lanceur emmagasine de l’énergie et augmente sa Défense et sa Défense Spéciale. Peut être utilisée trois fois." + }, + "spitUp": { + name: "Relâche", + effect: "Libère dans une attaque l’énergie précédemment emmagasinée avec Stockage. La puissance augmente en fonction du nombre de fois où Stockage a été utilisée." + }, + "swallow": { + name: "Avale", + effect: "Le lanceur absorbe l’énergie emmagasinée avec Stockage pour restaurer ses PV. Le nombre de PV soignés augmente en fonction du nombre de fois où Stockage a été utilisée." + }, + "heatWave": { + name: "Canicule", + effect: "Le lanceur provoque une vague de chaleur qui peut aussi brûler la cible (10% de chances)." + }, + "hail": { + name: "Grêle", + effect: "Invoque une tempête de grêle qui dure cinq tours. Ne blesse pas les Pokémon de type Glace." + }, + "torment": { + name: "Tourmente", + effect: "Le lanceur irrite la cible pour l’empêcher d’utiliser la même capacité deux fois de suite." + }, + "flatter": { + name: "Flatterie", + effect: "Rend la cible confuse, mais augmente son Attaque Spéciale." + }, + "willOWisp": { + name: "Feu Follet", + effect: "Le lanceur projette des flammes maléfiques à la cible pour lui infliger une brûlure." + }, + "memento": { + name: "Souvenir", + effect: "Le lanceur est mis K.O., mais l’Attaque et l’Attaque Spéciale de la cible baissent beaucoup." + }, + "facade": { + name: "Façade", + effect: "Une capacité dont la puissance double lorsque le lanceur est empoisonné, paralysé ou brûlé." + }, + "focusPunch": { + name: "Mitra-Poing", + effect: "Le lanceur se concentre avant d’attaquer. Échoue s’il est touché avant d’avoir frappé." + }, + "smellingSalts": { + name: "Stimulant", + effect: "Cette attaque est doublement efficace sur les Pokémon paralysés, mais elle soigne leur paralysie." + }, + "followMe": { + name: "Par Ici", + effect: "Le lanceur attire l’attention des cibles présentes pour les forcer à n’attaquer que le lanceur." + }, + "naturePower": { + name: "Force Nature", + effect: "Une attaque qui tire sa force de la nature. Son type varie selon le terrain." + }, + "charge": { + name: "Chargeur", + effect: "Le lanceur se charge en électricité, ce qui augmente la puissance de la prochaine capacité Électrik qu’il utilisera. Sa Défense Spéciale augmente également." + }, + "taunt": { + name: "Provoc", + effect: "Le lanceur provoque la cible, ce qui oblige celle-ci à n’utiliser que des capacités qui infligent des dégâts pendant trois tours." + }, + "helpingHand": { + name: "Coup d'Main", + effect: "Le lanceur donne un coup de main à son allié, qui voit la puissance de ses capacités augmenter." + }, + "trick": { + name: "Tour de Magie", + effect: "Le lanceur prend la cible au dépourvu et l’oblige à échanger son objet contre le sien." + }, + "rolePlay": { + name: "Imitation", + effect: "Imite la cible et copie son talent." + }, + "wish": { + name: "Voeu", + effect: "Un vœu qui permet au lanceur ou au Pokémon entrant sur le terrain au tour suivant de récupérer la moitié des PV max du lanceur." + }, + "assist": { + name: "Assistance", + effect: "Le lanceur se dépêche d'utiliser une capacité au hasard parmi celles des Pokémon de l'équipe." + }, + "ingrain": { + name: "Racines", + effect: "Le lanceur plante ses racines et récupère des PV à chaque tour. Une fois enraciné, il ne peut plus fuir." + }, + "superpower": { + name: "Surpuissance", + effect: "Une attaque puissante, mais qui baisse l’Attaque et la Défense du lanceur." + }, + "magicCoat": { + name: "Reflet Magik", + effect: "Une barrière qui renvoie les capacités comme Vampigraine et celles affectant le statut et les stats." + }, + "recycle": { + name: "Recyclage", + effect: "Recycle un objet tenu à usage unique déjà utilisé lors du combat pour pouvoir l’utiliser à nouveau." + }, + "revenge": { + name: "Vendetta", + effect: "Une attaque deux fois plus puissante si le lanceur a été blessé par l'ennemi durant ce tour." + }, + "brickBreak": { + name: "Casse-Brique", + effect: "Le lanceur attaque avec le tranchant de la main. Permet aussi de briser les barrières comme Mur Lumière et Protection." + }, + "yawn": { + name: "Bâillement", + effect: "Le lanceur fait bâiller la cible, qui s’endort au tour suivant." + }, + "knockOff": { + name: "Sabotage", + effect: "Fait plus de dégâts aux cibles qui tiennent un objet. De plus, fait tomber cet objet et empêche la cible de l’utiliser jusqu’à la fin du combat." + }, + "endeavor": { + name: "Effort", + effect: "Une attaque qui réduit les PV de la cible au niveau des PV du lanceur." + }, + "eruption": { + name: "Éruption", + effect: "Le lanceur laisse exploser sa colère. Plus ses PV sont bas, moins l’attaque est puissante." + }, + "skillSwap": { + name: "Échange", + effect: "Le lanceur utilise ses pouvoirs psychiques pour échanger son talent avec la cible." + }, + "imprison": { + name: "Possessif", + effect: "Si la cible et le lanceur ont des capacités en commun, la cible ne pourra pas les utiliser." + }, + "refresh": { + name: "Régénération", + effect: "Le lanceur se repose pour guérir d'un empoisonnement, d'une brûlure ou d'une paralysie." + }, + "grudge": { + name: "Rancune", + effect: "Si le lanceur est mis K.O., sa rancune épuise les PP de la capacité utilisée par l'ennemi pour le mettre K.O." + }, + "snatch": { + name: "Saisie", + effect: "Lorsqu'une capacité de soin ou de changement de stats est utilisée, le lanceur vole ses effets." + }, + "secretPower": { + name: "Force Cachée", + effect: "Les effets de cette attaque varient en fonction de l'environnement." + }, + "dive": { + name: "Plongée", + effect: "Le lanceur plonge sous l’eau au premier tour et frappe au second." + }, + "armThrust": { + name: "Cogne", + effect: "Un déluge de coups adressés avec la paume qui frappe de deux à cinq fois d’affilée." + }, + "camouflage": { + name: "Camouflage", + effect: "Modifie le type du lanceur en fonction du terrain, comme une berge, une grotte, l'herbe, etc." + }, + "tailGlow": { + name: "Lumi-Queue", + effect: "Le lanceur regarde un flash lumineux fixement. Augmente énormément son Attaque Spéciale." + }, + "lusterPurge": { + name: "Lumi-Éclat", + effect: "Le lanceur libère un éclair lumineux. Peut aussi baisser la Défense Spéciale de l'ennemi." + }, + "mistBall": { + name: "Ball'Brume", + effect: "Une bulle de brume inflige des dégâts à l'ennemi. Peut aussi réduire son Attaque Spéciale." + }, + "featherDance": { + name: "Danse Plumes", + effect: "Une montagne de plumes ensevelit la cible et réduit beaucoup son Attaque." + }, + "teeterDance": { + name: "Danse Folle", + effect: "Danse qui rend confus tous les Pokémon autour du lanceur." + }, + "blazeKick": { + name: "Pied Brûleur", + effect: "Le lanceur envoie un coup de pied au taux de critiques élevé. Peut aussi brûler la cible (10% de chances)." + }, + "mudSport": { + name: "Lance-Boue", + effect: "Asperge les alentours de boue. Affaiblit les capacités Électrik pendant cinq tours." + }, + "iceBall": { + name: "Ball'Glace", + effect: "Frappe l'ennemi pendant cinq tours. L'attaque gagne en puissance à chaque coup." + }, + "needleArm": { + name: "Poing Dard", + effect: "Le lanceur attaque en fouettant l'ennemi de ses bras épineux. Peut aussi l'apeurer (30% de chances)." + }, + "slackOff": { + name: "Paresse", + effect: "Le lanceur se tourne les pouces et récupère jusqu’à la moitié de ses PV max." + }, + "hyperVoice": { + name: "Mégaphone", + effect: "Le lanceur pousse un cri dont l’écho terrifiant a le pouvoir d’infliger des dégâts à la cible." + }, + "poisonFang": { + name: "Crochet Venin", + effect: "Le lanceur mord la cible avec ses crocs toxiques, ce qui peut aussi l’empoisonner gravement (50% de chances)." + }, + "crushClaw": { + name: "Éclate Griffe", + effect: "Le lanceur lacère la cible avec des griffes solides et aiguisées, ce qui peut aussi baisser la Défense de celle-ci." + }, + "blastBurn": { + name: "Rafale Feu", + effect: "Une explosion ardente consume la cible. Le lanceur doit se reposer au tour suivant." + }, + "hydroCannon": { + name: "Hydroblast", + effect: "Le lanceur projette un missile d’eau sur la cible, mais il doit se reposer au tour suivant." + }, + "meteorMash": { + name: "Poing Météore", + effect: "Un coup de poing lancé à la vitesse d’un météore. Peut aussi augmenter l’Attaque du lanceur." + }, + "astonish": { + name: "Étonnement", + effect: "Le lanceur attaque la cible en poussant un cri terrifiant qui peut aussi l’apeurer (30% de chances)." + }, + "weatherBall": { + name: "Ball'Météo", + effect: "Une capacité dont la puissance et le type varient en fonction du temps qu’il fait." + }, + "aromatherapy": { + name: "Aromathérapie", + effect: "Le lanceur libère un parfum apaisant qui guérit tous les problèmes de statut de l'équipe." + }, + "fakeTears": { + name: "Croco Larme", + effect: "Le lanceur fait semblant de pleurer pour troubler la cible et beaucoup baisser sa Défense Spéciale." + }, + "airCutter": { + name: "Tranch'Air", + effect: "Le lanceur appelle des vents tranchants qui lacèrent la cible. Taux de critiques élevé." + }, + "overheat": { + name: "Surchauffe", + effect: "Le lanceur attaque la cible à pleine puissance, mais le contrecoup baisse beaucoup l’Attaque Spéciale du lanceur." + }, + "odorSleuth": { + name: "Flair", + effect: "Permet de toucher un Pokémon Spectre avec n'importe quelle capacité ou de toucher un ennemi insaisissable." + }, + "rockTomb": { + name: "Tomberoche", + effect: "Des rochers frappent la cible et baissent sa Vitesse." + }, + "silverWind": { + name: "Vent Argenté", + effect: "Vent qui projette des écailles poudreuses sur l'ennemi. Peut aussi monter toutes les stats du lanceur." + }, + "metalSound": { + name: "Strido-Son", + effect: "Un cri horrible tel un crissement métallique qui réduit beaucoup la Défense Spéciale de la cible." + }, + "grassWhistle": { + name: "Siffl'Herbe", + effect: "Le lanceur joue une douce mélodie qui plonge l'ennemi dans un profond sommeil." + }, + "tickle": { + name: "Chatouille", + effect: "Le lanceur chatouille la cible, ce qui baisse son Attaque et sa Défense." + }, + "cosmicPower": { + name: "Force Cosmique", + effect: "Le lanceur absorbe un pouvoir mystique spatial qui augmente sa Défense et sa Défense Spéciale." + }, + "waterSpout": { + name: "Giclédo", + effect: "Le lanceur attaque avec un jet d’eau. Moins il a de PV et moins l’attaque est puissante." + }, + "signalBeam": { + name: "Rayon Signal", + effect: "Le lanceur projette un rayon de lumière sinistre. Peut aussi rendre l'ennemi confus." + }, + "shadowPunch": { + name: "Poing Ombre", + effect: "Le lanceur se fond dans les ombres pour porter un coup de poing. N’échoue jamais." + }, + "extrasensory": { + name: "Extrasenseur", + effect: "Le lanceur attaque avec un pouvoir étrange et invisible qui peut aussi apeurer la cible (10% de chances)." + }, + "skyUppercut": { + name: "Stratopercut", + effect: "Le lanceur attaque avec un uppercut. Il envoie son poing vers le ciel de toutes ses forces." + }, + "sandTomb": { + name: "Tourbi-Sable", + effect: "Le lanceur emprisonne la cible dans une tempête de sable terrifiante qui dure de quatre à cinq tours." + }, + "sheerCold": { + name: "Glaciation", + effect: "Une vague de froid glacial frappe la cible pour la mettre K.O. en un coup. Cela a peu de chances de réussir si le lanceur ne possède pas le type Glace." + }, + "muddyWater": { + name: "Ocroupi", + effect: "Le lanceur attaque en projetant de l’eau boueuse. Peut aussi réduire la Précision de la cible." + }, + "bulletSeed": { + name: "Balle Graine", + effect: "Le lanceur mitraille la cible avec une rafale de graines. De deux à cinq rafales sont lancées à la suite." + }, + "aerialAce": { + name: "Aéropique", + effect: "Le lanceur prend la cible de vitesse et la lacère. N’échoue jamais." + }, + "icicleSpear": { + name: "Stalactite", + effect: "Le lanceur jette des pics de glace sur la cible, de deux à cinq fois de suite." + }, + "ironDefense": { + name: "Mur de Fer", + effect: "L’épiderme du lanceur devient dur comme du fer, ce qui augmente beaucoup sa Défense." + }, + "block": { + name: "Barrage", + effect: "Le lanceur bloque la route de la cible pour empêcher sa fuite." + }, + "howl": { + name: "Grondement", + effect: "Le lanceur pousse un grand cri d’encouragement, ce qui augmente son Attaque et celle de ses alliés." + }, + "dragonClaw": { + name: "Draco-Griffe", + effect: "Le lanceur lacère la cible de ses grandes griffes aiguisées." + }, + "frenzyPlant": { + name: "Végé-Attaque", + effect: "Un violent coup de racines s’abat sur la cible. Le lanceur doit se reposer au tour suivant." + }, + "bulkUp": { + name: "Gonflette", + effect: "Le lanceur tend ses muscles pour se gonfler, ce qui booste son Attaque et sa Défense." + }, + "bounce": { + name: "Rebond", + effect: "Le lanceur bondit très haut et plonge sur la cible au second tour, ce qui peut aussi la paralyser (30% de chances)." + }, + "mudShot": { + name: "Tir de Boue", + effect: "Le lanceur attaque en projetant de la boue sur la cible, ce qui réduit aussi la Vitesse de celle-ci." + }, + "poisonTail": { + name: "Queue-Poison", + effect: "Le lanceur attaque la cible avec sa queue, ce qui peut aussi l’empoisonner (10% de chances). Taux de critiques élevés." + }, + "covet": { + name: "Implore", + effect: "Le lanceur s’approche de la cible avec un air angélique afin de dérober l’objet qu’elle tient." + }, + "voltTackle": { + name: "Électacle", + effect: "Le lanceur électrifie son corps avant de charger. Le choc blesse aussi gravement le lanceur et peut paralyser la cible (10% de chances)." + }, + "magicalLeaf": { + name: "Feuille Magik", + effect: "Le lanceur disperse d’étranges feuilles qui poursuivent la cible. N’échoue jamais." + }, + "waterSport": { + name: "Tourniquet", + effect: "Asperge d'eau les alentours. Affaiblit les capacités de type Feu pendant cinq tours." + }, + "calmMind": { + name: "Plénitude", + effect: "Le lanceur se concentre et fait le vide dans son esprit pour augmenter son Attaque Spéciale et sa Défense Spéciale." + }, + "leafBlade": { + name: "Lame Feuille", + effect: "Une feuille coupante comme une lame entaille la cible. Taux de critiques élevé." + }, + "dragonDance": { + name: "Danse Draco", + effect: "Une danse mystique dont le rythme effréné augmente l’Attaque et la Vitesse du lanceur." + }, + "rockBlast": { + name: "Boule Roc", + effect: "Le lanceur projette un rocher sur la cible de deux à cinq fois d’affilée." + }, + "shockWave": { + name: "Onde de Choc", + effect: "Le lanceur envoie un choc électrique rapide à la cible. N’échoue jamais." + }, + "waterPulse": { + name: "Vibraqua", + effect: "Le lanceur projette une aura aquatique sur la cible, et peut la rendre confuse." + }, + "doomDesire": { + name: "Voeu Destructeur", + effect: "Le lanceur génère une sphère lumineuse qu'il projette sur l'ennemi deux tours plus tard." + }, + "psychoBoost": { + name: "Psycho-Boost", + effect: "Attaque l'ennemi à pleine puissance. Le contrecoup baisse beaucoup l'Attaque Spéciale du lanceur." + }, + "roost": { + name: "Atterrissage", + effect: "Le lanceur atterrit et se repose. Restaure jusqu’à la moitié de ses PV max." + }, + "gravity": { + name: "Gravité", + effect: "Pendant cinq tours, les Pokémon Vol ou qui ont Lévitation deviennent sensibles aux capacités Sol, et les capacités volantes deviennent inutilisables." + }, + "miracleEye": { + name: "Oeil Miracle", + effect: "Permet de toucher un Pokémon Ténèbres avec les capacités de type Psy ou de toucher un ennemi ayant beaucoup d'esquive." + }, + "wakeUpSlap": { + name: "Réveil Forcé", + effect: "Cette attaque inflige d'importants dégâts à un Pokémon endormi. Mais elle le réveille également." + }, + "hammerArm": { + name: "Marto-Poing", + effect: "Le lanceur donne un puissant coup de poing à la cible, ce qui réduit la Vitesse du lanceur." + }, + "gyroBall": { + name: "Gyroballe", + effect: "Le lanceur effectue une rotation rapide et frappe la cible. Plus la Vitesse du lanceur est basse par rapport à celle de la cible, plus il inflige de dégâts." + }, + "healingWish": { + name: "Voeu Soin", + effect: "Un soin qui permet au lanceur de récupérer jusqu’à la moitié de ses PV max." + }, + "brine": { + name: "Saumure", + effect: "La puissance de cette capacité est doublée lorsque la cible a moins de la moitié de ses PV." + }, + "naturalGift": { + name: "Don Naturel", + effect: "Avant d'attaquer, le lanceur rassemble ses forces grâce à sa Baie. Elle détermine le type et la puissance de l'attaque." + }, + "feint": { + name: "Ruse", + effect: "Une attaque capable de toucher une cible qui utilise une capacité similaire à Détection ou Abri, et annule l’effet de cette capacité." + }, + "pluck": { + name: "Picore", + effect: "Le lanceur picore la cible. Si cette dernière tient une Baie, le lanceur la mange et profite de ses effets." + }, + "tailwind": { + name: "Vent Arrière", + effect: "Génère une rafale de vent qui augmente la Vitesse des Pokémon de l’équipe pendant quatre tours." + }, + "acupressure": { + name: "Acupression", + effect: "Le lanceur utilise sa connaissance des points de pression pour beaucoup augmenter une stat." + }, + "metalBurst": { + name: "Fulmifer", + effect: "Le lanceur contre-attaque avec un coup infligeant des dégâts supérieurs à ceux de la dernière capacité qui l’a blessé." + }, + "uTurn": { + name: "Demi-Tour", + effect: "Après son attaque, le lanceur revient à toute vitesse et change de place avec un Pokémon de l’équipe prêt à combattre." + }, + "closeCombat": { + name: "Close Combat", + effect: "Le lanceur ne pense plus à se protéger et frappe sa cible violemment au corps à corps. Cette capacité baisse la Défense et la Défense Spéciale du lanceur." + }, + "payback": { + name: "Représailles", + effect: "Le lanceur charge son énergie, puis attaque. La puissance de la capacité est doublée si le lanceur agit après la cible." + }, + "assurance": { + name: "Assurance", + effect: "La puissance de cette capacité est deux fois plus élevée si la cible a déjà été blessée durant ce tour." + }, + "embargo": { + name: "Embargo", + effect: "Empêche la cible d'utiliser un objet tenu et son Dresseur d'utiliser un objet sur lui pendant cinq tours." + }, + "fling": { + name: "Dégommage", + effect: "Le lanceur envoie l’objet qu’il tient sur la cible. La puissance et les effets dépendent de l’objet." + }, + "psychoShift": { + name: "Échange Psy", + effect: "Le lanceur transfère ses problèmes de statut à l'ennemi grâce à son pouvoir de suggestion." + }, + "trumpCard": { + name: "Atout", + effect: "Moins cette capacité possède de PP, plus elle est puissante." + }, + "healBlock": { + name: "Anti-Soin", + effect: "Le lanceur empêche l'ennemi de récupérer des PV à l'aide de capacités, talents ou objets tenus, pendant cinq tours." + }, + "wringOut": { + name: "Essorage", + effect: "Le lanceur essore l'ennemi. Plus l'ennemi a de PV, plus cette attaque est puissante." + }, + "powerTrick": { + name: "Astuce Force", + effect: "Le lanceur utilise ses pouvoirs psychiques pour échanger sa Défense et son Attaque." + }, + "gastroAcid": { + name: "Suc Digestif", + effect: "Le lanceur répand ses sucs digestifs sur la cible. Le fluide neutralise le talent de celle-ci." + }, + "luckyChant": { + name: "Air Veinard", + effect: "Le lanceur envoie une incantation vers le ciel et protège l'équipe des coups critiques pendant cinq tours." + }, + "meFirst": { + name: "Moi d'Abord", + effect: "Le lanceur vole la capacité prévue par l'ennemi et l'utilise en faisant plus de dégâts. Il doit frapper en premier." + }, + "copycat": { + name: "Photocopie", + effect: "Le lanceur imite la dernière capacité employée. Échoue si aucune capacité n’a été utilisée." + }, + "powerSwap": { + name: "Permuforce", + effect: "Le lanceur utilise un pouvoir psychique qui échange les changements de son Attaque et de son Attaque Spéciale avec celles de la cible." + }, + "guardSwap": { + name: "Permugarde", + effect: "Le lanceur utilise un pouvoir psychique qui échange les changements de sa Défense et de sa Défense Spéciale avec celles de la cible." + }, + "punishment": { + name: "Punition", + effect: "Plus l'ennemi a utilisé d'augmentations de stats et plus cette capacité est puissante." + }, + "lastResort": { + name: "Dernier Recours", + effect: "Cette capacité ne peut être utilisée qu’après que le lanceur a utilisé toutes les autres." + }, + "worrySeed": { + name: "Soucigraine", + effect: "Plante sur la cible une graine qui la rend soucieuse et remplace son talent par Insomnia, l’empêchant ainsi de dormir." + }, + "suckerPunch": { + name: "Coup Bas", + effect: "Permet au lanceur de frapper en priorité. Échoue si la cible ne prépare pas une attaque." + }, + "toxicSpikes": { + name: "Pics Toxik", + effect: "Le lanceur éparpille des pics autour de la cible, ce qui empoisonne les Pokémon entrant au combat de ce côté." + }, + "heartSwap": { + name: "Permucoeur", + effect: "Cette capacité ne peut pas être utilisée. Il est recommandé de l’oublier, même s’il sera impossible de se la remémorer une fois oubliée." + }, + "aquaRing": { + name: "Anneau Hydro", + effect: "Un voile d’eau recouvre le lanceur et régénère ses PV à chaque tour." + }, + "magnetRise": { + name: "Vol Magnétik", + effect: "Le lanceur utilise l’électricité pour générer un champ magnétique et léviter durant cinq tours." + }, + "flareBlitz": { + name: "Boutefeu", + effect: "Le lanceur s’embrase avant de charger la cible, ce qui peut la brûler (10% de chances). Le choc blesse aussi gravement le lanceur." + }, + "forcePalm": { + name: "Forte-Paume", + effect: "Une onde de choc frappe la cible, ce qui peut aussi la paralyser (30% de chances)." + }, + "auraSphere": { + name: "Aurasphère", + effect: "Le lanceur puise au fond de lui-même pour dégager une aura et projeter de l’énergie sur la cible. N’échoue jamais." + }, + "rockPolish": { + name: "Poliroche", + effect: "Le lanceur polit son corps pour diminuer sa résistance au vent. Augmente beaucoup la Vitesse." + }, + "poisonJab": { + name: "Direct Toxik", + effect: "Le lanceur attaque la cible avec un tentacule, un bras, ou un autre membre imprégné de poison, ce qui peut aussi empoisonner la cible (30% de chances)." + }, + "darkPulse": { + name: "Vibrobscur", + effect: "Le lanceur projette une horrible aura chargée de pensées maléfiques, ce qui peut aussi apeurer la cible." + }, + "nightSlash": { + name: "Tranche-Nuit", + effect: "Le lanceur lacère la cible à la première occasion. Taux de critiques élevé." + }, + "aquaTail": { + name: "Hydro-Queue", + effect: "Le lanceur attaque en balançant sa queue comme une lame de fond en pleine tempête." + }, + "seedBomb": { + name: "Canon Graine", + effect: "Le lanceur déclenche un déluge de grosses graines à la coque solide sur la cible." + }, + "airSlash": { + name: "Lame d'Air", + effect: "Le lanceur attaque avec une lame d’air capable de fendre le ciel, ce qui peut aussi apeurer la cible (30% de chances)." + }, + "xScissor": { + name: "Plaie Croix", + effect: "Le lanceur taillade la cible en utilisant ses faux ou ses griffes comme une paire de ciseaux." + }, + "bugBuzz": { + name: "Bourdon", + effect: "Le lanceur fait vibrer son corps pour lancer une vague sonique, ce qui peut aussi baisser la Défense Spéciale de la cible." + }, + "dragonPulse": { + name: "Draco-Choc", + effect: "Le lanceur ouvre la bouche pour projeter une aura qui frappe la cible." + }, + "dragonRush": { + name: "Draco-Charge", + effect: "Le lanceur frappe la cible en prenant un air menaçant, ce qui peut aussi l’apeurer (20% de chances)." + }, + "powerGem": { + name: "Rayon Gemme", + effect: "Le lanceur attaque avec un rayon de lumière qui scintille comme s’il était composé de gemmes." + }, + "drainPunch": { + name: "Vampi-Poing", + effect: "Un coup de poing qui draine l’énergie. Convertit la moitié des dégâts infligés en PV pour le lanceur." + }, + "vacuumWave": { + name: "Onde Vide", + effect: "Le lanceur agite son poing pour projeter une onde de vide. Frappe en priorité." + }, + "focusBlast": { + name: "Exploforce", + effect: "Le lanceur rassemble ses forces et laisse éclater son pouvoir, ce qui peut aussi baisser la Défense Spéciale de la cible." + }, + "energyBall": { + name: "Éco-Sphère", + effect: "Le lanceur utilise les pouvoirs de la nature pour attaquer la cible, ce qui peut aussi baisser la Défense Spéciale de celle-ci." + }, + "braveBird": { + name: "Rapace", + effect: "Le lanceur replie ses ailes et charge en rase-mottes. Blesse gravement le lanceur." + }, + "earthPower": { + name: "Telluriforce", + effect: "De terribles séismes secouent la cible et peuvent aussi baisser sa Défense Spéciale." + }, + "switcheroo": { + name: "Passe-Passe", + effect: "Le lanceur échange son objet avec celui de la cible à une vitesse que l’œil a du mal à suivre." + }, + "gigaImpact": { + name: "Giga Impact", + effect: "Le lanceur charge la cible de toute ses forces et doit ensuite se reposer au tour suivant." + }, + "nastyPlot": { + name: "Machination", + effect: "Stimule l’esprit par de mauvaises pensées. Augmente beaucoup l’Attaque Spéciale du lanceur." + }, + "bulletPunch": { + name: "Pisto-Poing", + effect: "Le lanceur envoie des coups de poing aussi rapides que des balles de revolver. Frappe en priorité." + }, + "avalanche": { + name: "Avalanche", + effect: "Une capacité dont la puissance est doublée si le lanceur a été blessé par la cible durant ce tour." + }, + "iceShard": { + name: "Éclats Glace", + effect: "Le lanceur crée des éclats de glace qu’il envoie sur la cible. Frappe en priorité." + }, + "shadowClaw": { + name: "Griffe Ombre", + effect: "Attaque avec une griffe puissante faite d’ombres. Taux de critiques élevé." + }, + "thunderFang": { + name: "Crocs Éclair", + effect: "Le lanceur utilise une morsure électrifiée qui peut aussi paralyser (10% de chances) ou apeurer la cible (10% de chances)." + }, + "iceFang": { + name: "Crocs Givre", + effect: "Le lanceur utilise une morsure glaciale qui peut aussi geler (10% de chances) ou apeurer la cible (10% de chances)." + }, + "fireFang": { + name: "Crocs Feu", + effect: "Le lanceur utilise une morsure enflammée qui peut aussi brûler (10% de chances) ou apeurer (10% de chances) la cible." + }, + "shadowSneak": { + name: "Ombre Portée", + effect: "Le lanceur étend son ombre pour frapper par-derrière. Frappe en priorité." + }, + "mudBomb": { + name: "Boue-Bombe", + effect: "Le lanceur attaque à l'aide d'une boule de boue solidifiée. Peut aussi baisser la Précision de l'ennemi." + }, + "psychoCut": { + name: "Coupe Psycho", + effect: "Le lanceur entaille la cible grâce à des lames faites d’énergie psychique. Taux de critiques élevé." + }, + "zenHeadbutt": { + name: "Psykoud'Boul", + effect: "Le lanceur concentre sa volonté et donne un coup de tête à la cible, ce qui peut aussi apeurer celle-ci (20% de chances)." + }, + "mirrorShot": { + name: "Miroi-Tir", + effect: "Le corps poli du lanceur libère un éclair d'énergie. Peut aussi baisser la Précision de l'ennemi." + }, + "flashCannon": { + name: "Luminocanon", + effect: "Le lanceur concentre son énergie lumineuse et la fait exploser, ce qui peut aussi baisser la Défense Spéciale de la cible." + }, + "rockClimb": { + name: "Escalade", + effect: "Le lanceur se jette violemment sur l'ennemi. Peut aussi le rendre confus." + }, + "defog": { + name: "Anti-Brume", + effect: "Un grand coup de vent disperse Protection ou Mur Lumière de la cible et diminue également son Esquive." + }, + "trickRoom": { + name: "Distorsion", + effect: "Le lanceur crée une zone mystérieuse où les Pokémon les plus lents frappent en priorité pendant cinq tours." + }, + "dracoMeteor": { + name: "Draco-Météore", + effect: "Le lanceur invoque des comètes. Le contrecoup réduit beaucoup son Attaque Spéciale." + }, + "discharge": { + name: "Coup d'Jus", + effect: "Un flamboiement d’électricité frappe tous les Pokémon autour du lanceur. Peut aussi les paralyser (30% de chances)." + }, + "lavaPlume": { + name: "Ébullilave", + effect: "Des flammes s’abattent sur tous les Pokémon autour du lanceur, ce qui peut aussi les brûler (10% de chances)." + }, + "leafStorm": { + name: "Tempête Verte", + effect: "Invoque une tempête de feuilles acérées. Le contrecoup réduit beaucoup l’Attaque Spéciale du lanceur." + }, + "powerWhip": { + name: "Mégafouet", + effect: "Le lanceur fait virevolter violemment ses lianes ou ses tentacules pour fouetter la cible." + }, + "rockWrecker": { + name: "Roc-Boulet", + effect: "Le lanceur attaque en projetant un gros rocher sur l'ennemi. Il doit se reposer au tour suivant." + }, + "crossPoison": { + name: "Poison Croix", + effect: "Un coup tranchant qui peut empoisonner la cible (10% de chances). Taux de critiques élevé." + }, + "gunkShot": { + name: "Détricanon", + effect: "Le lanceur envoie des détritus sur la cible, ce qui peut aussi l’empoisonner (30% de chances)." + }, + "ironHead": { + name: "Tête de Fer", + effect: "Le lanceur heurte la cible avec sa tête dure comme de l’acier, ce qui peut aussi l’apeurer (30% de chances)." + }, + "magnetBomb": { + name: "Bombe Aimant", + effect: "Le lanceur projette des bombes d'acier qui collent à l'ennemi. N'échoue jamais." + }, + "stoneEdge": { + name: "Lame de Roc", + effect: "Le lanceur transperce la cible avec des rochers aiguisés. Taux de critiques élevé." + }, + "captivate": { + name: "Séduction", + effect: "Si l'ennemi est de sexe opposé au lanceur, il est séduit et son Attaque Spéciale baisse beaucoup." + }, + "stealthRock": { + name: "Piège de Roc", + effect: "Le lanceur fait flotter des pierres autour de la cible qui blessent tout adversaire entrant au combat." + }, + "grassKnot": { + name: "Noeud Herbe", + effect: "Le lanceur fait des nœuds dans l’herbe pour faire trébucher la cible. Plus la cible est lourde, plus la puissance de cette capacité augmente." + }, + "chatter": { + name: "Babil", + effect: "Attaque avec les ondes sonores assourdissantes qu'il émet en bavardant. Rend l'ennemi confus." + }, + "judgment": { + name: "Jugement", + effect: "Le lanceur libère une myriade de rayons de lumière. Le type varie selon la plaque que tient le lanceur." + }, + "bugBite": { + name: "Piqûre", + effect: "Le lanceur pique la cible. Si celle-ci tient une Baie, le lanceur la dévore et obtient son effet." + }, + "chargeBeam": { + name: "Rayon Chargé", + effect: "Le lanceur tire un rayon chargé d’électricité. Peut aussi augmenter son Attaque Spéciale." + }, + "woodHammer": { + name: "Martobois", + effect: "Le lanceur heurte la cible de son corps robuste, ce qui blesse aussi gravement le lanceur." + }, + "aquaJet": { + name: "Aqua-Jet", + effect: "Le lanceur fonce sur la cible si rapidement qu’on parvient à peine à le discerner. Frappe en priorité." + }, + "attackOrder": { + name: "Appel Attaque", + effect: "Le lanceur appelle ses subalternes pour frapper la cible. Taux de critiques élevé." + }, + "defendOrder": { + name: "Appel Défense", + effect: "Le lanceur appelle ses subalternes pour former un bouclier qui augmente sa Défense et sa Défense Spéciale." + }, + "healOrder": { + name: "Appel Soins", + effect: "Le lanceur appelle ses sous-fifres pour le soigner. Il récupère jusqu'à la moitié de ses PV max." + }, + "headSmash": { + name: "Fracass'Tête", + effect: "Le lanceur assène un coup de tête désespéré, ce qui le blesse aussi très gravement." + }, + "doubleHit": { + name: "Coup Double", + effect: "Le lanceur frappe la cible deux fois d’affilée à l’aide de sa queue ou d’un autre membre." + }, + "roarOfTime": { + name: "Hurle-Temps", + effect: "Le lanceur frappe si fort qu’il affecte le cours du temps. Il se repose au tour suivant." + }, + "spacialRend": { + name: "Spatio-Rift", + effect: "Le lanceur déchire la cible et l’espace autour de lui. Taux de critiques élevé." + }, + "lunarDance": { + name: "Danse Lune", + effect: "Le lanceur tombe K.O. pour soigner totalement le Pokémon qui prendra sa place au combat." + }, + "crushGrip": { + name: "Presse", + effect: "Une force puissante écrase l'ennemi. Plus il lui reste de PV et plus l'attaque est puissante." + }, + "magmaStorm": { + name: "Vortex Magma", + effect: "La cible est prise dans un tourbillon de feu qui dure de quatre à cinq tours." + }, + "darkVoid": { + name: "Trou Noir", + effect: "L'ennemi est plongé dans les ténèbres. Il tombe dans un profond sommeil." + }, + "seedFlare": { + name: "Fulmigraine", + effect: "Le corps du lanceur émet une onde de choc. Peut aussi beaucoup baisser la Défense Spéciale de la cible." + }, + "ominousWind": { + name: "Vent Mauvais", + effect: "Le lanceur crée une violente bourrasque. Peut aussi augmenter toutes ses stats." + }, + "shadowForce": { + name: "Revenant", + effect: "Le lanceur disparaît au premier tour et frappe la cible au deuxième. Cette capacité fonctionne même si la cible se protège." + }, + "honeClaws": { + name: "Aiguisage", + effect: "Le lanceur s’aiguise les griffes. Augmente l’Attaque et la Précision." + }, + "wideGuard": { + name: "Garde Large", + effect: "Bloque les attaques visant tous les alliés pendant un tour." + }, + "guardSplit": { + name: "Partage Garde", + effect: "Additionne la Défense et la Défense Spéciale du lanceur et de sa cible et les redistribue équitablement entre les deux." + }, + "powerSplit": { + name: "Partage Force", + effect: "Additionne l’Attaque Spéciale et l’Attaque du lanceur et de sa cible et les redistribue équitablement entre les deux." + }, + "wonderRoom": { + name: "Zone Étrange", + effect: "Le lanceur crée une zone mystérieuse où la Défense et la Défense Spéciale de tous les Pokémon sont inversées pendant cinq tours." + }, + "psyshock": { + name: "Choc Psy", + effect: "Le lanceur matérialise des ondes mystérieuses qu’il projette sur la cible, ce qui inflige des dégâts physiques à celle-ci." + }, + "venoshock": { + name: "Choc Venin", + effect: "Le lanceur asperge la cible d’un poison spécial. La puissance de la capacité est doublée si la cible est empoisonnée." + }, + "autotomize": { + name: "Allègement", + effect: "Le lanceur se débarrasse des parties inutiles de son corps. Son poids diminue et sa Vitesse augmente beaucoup." + }, + "ragePowder": { + name: "Poudre Fureur", + effect: "Le lanceur s’asperge d’une poudre irritante pour attirer l’attention et diriger toutes les attaques ennemies sur lui." + }, + "telekinesis": { + name: "Lévikinésie", + effect: "Un pouvoir qui fait flotter l'ennemi dans les airs. Pendant trois tours, il devient plus facile à atteindre." + }, + "magicRoom": { + name: "Zone Magique", + effect: "Le lanceur crée une zone mystérieuse où les objets tenus par tous les Pokémon n’ont plus aucun effet pendant cinq tours." + }, + "smackDown": { + name: "Anti-Air", + effect: "Le lanceur jette un projectile sur la cible. Si cette dernière vole, elle tombe au sol." + }, + "stormThrow": { + name: "Yama Arashi", + effect: "Un coup très puissant dont l'effet est toujours critique." + }, + "flameBurst": { + name: "Rebondifeu", + effect: "Quand l'attaque atteint sa cible, elle projette des flammes qui touchent tout ennemi situé à côté." + }, + "sludgeWave": { + name: "Cradovague", + effect: "Une vague de détritus attaque tous les Pokémon autour du lanceur. Peut aussi empoisonner (10% de chances)." + }, + "quiverDance": { + name: "Papillodanse", + effect: "Une danse mystique dont le rythme parfait augmente l’Attaque Spéciale, la Défense Spéciale et la Vitesse du lanceur." + }, + "heavySlam": { + name: "Tacle Lourd", + effect: "Le lanceur se jette sur la cible de tout son poids. Plus il est lourd par rapport à la cible, plus la puissance de cette capacité augmente." + }, + "synchronoise": { + name: "Synchropeine", + effect: "Des ondes mystérieuses blessent tous les Pokémon alentour qui sont du même type que le lanceur." + }, + "electroBall": { + name: "Boule Élek", + effect: "Le lanceur envoie une boule d’électricité. Plus la Vitesse du lanceur est élevée par rapport à celle de la cible, plus la puissance de la capacité augmente." + }, + "soak": { + name: "Détrempage", + effect: "Le lanceur projette beaucoup d’eau sur sa cible, qui devient de type Eau." + }, + "flameCharge": { + name: "Nitrocharge", + effect: "Le lanceur s’entoure de flammes pour attaquer la cible. Il se concentre et sa Vitesse augmente." + }, + "coil": { + name: "Enroulement", + effect: "Le lanceur s’enroule sur lui-même et se concentre. Son Attaque, sa Défense et sa Précision augmentent." + }, + "lowSweep": { + name: "Balayette", + effect: "Un coup rapide qui affecte la mobilité de la cible et diminue sa Vitesse." + }, + "acidSpray": { + name: "Bombe Acide", + effect: "Le lanceur projette un liquide acide qui fait fondre la cible, ce qui diminue beaucoup la Défense Spéciale de celle-ci." + }, + "foulPlay": { + name: "Tricherie", + effect: "Le lanceur utilise la force de la cible. Plus l’Attaque de celle-ci est élevée, plus le lanceur inflige de dégâts." + }, + "simpleBeam": { + name: "Rayon Simple", + effect: "Le lanceur envoie des ondes mystérieuses à la cible, dont le talent est remplacé par le talent Simple." + }, + "entrainment": { + name: "Ten-Danse", + effect: "Le lanceur danse sur un rythme étrange. Il force sa cible à l’imiter, ce qui lui fait adopter son talent." + }, + "afterYou": { + name: "Après Vous", + effect: "S’il est le premier à agir, le lanceur permet à sa cible d’utiliser une capacité juste après lui." + }, + "round": { + name: "Chant Canon", + effect: "Le lanceur attaque la cible en chantant. Si plusieurs Pokémon déclenchent cette attaque à la suite, la puissance augmente." + }, + "echoedVoice": { + name: "Écho", + effect: "Un cri retentissant blesse la cible. Si le lanceur ou d’autres Pokémon utilisent cette capacité à chaque tour, la puissance augmente." + }, + "chipAway": { + name: "Attrition", + effect: "Une attaque puissante quand l'ennemi baisse sa garde. Inflige des dégâts sans tenir compte des changements de stats." + }, + "clearSmog": { + name: "Bain de Smog", + effect: "Le lanceur projette de la boue bizarre sur la cible. Les changements de stats de la cible sont annulés." + }, + "storedPower": { + name: "Force Ajoutée", + effect: "Le lanceur attaque la cible avec une force cumulée. Plus les stats du lanceur sont augmentées, plus la puissance de cette capacité augmente." + }, + "quickGuard": { + name: "Prévention", + effect: "Protège le lanceur et ses alliés des attaques prioritaires." + }, + "allySwitch": { + name: "Interversion", + effect: "Le lanceur se téléporte à l’aide d’un pouvoir mystérieux. Il échange sa place avec celle d’un allié sur le terrain. Peut échouer si utilisée plusieurs fois de suite." + }, + "scald": { + name: "Ébullition", + effect: "Le lanceur projette un jet d’eau bouillante sur la cible, ce qui peut aussi la brûler (30% de chances)." + }, + "shellSmash": { + name: "Exuviation", + effect: "Le lanceur brise sa carapace. Il baisse sa Défense et sa Défense Spéciale, mais augmente beaucoup son Attaque, son Attaque Spéciale et sa Vitesse." + }, + "healPulse": { + name: "Vibra Soin", + effect: "Le lanceur projette une aura de bien-être qui fait récupérer la moitié de ses PV max à la cible." + }, + "hex": { + name: "Châtiment", + effect: "Une attaque acharnée qui cause davantage de dégâts à la cible si elle a une altération de statut." + }, + "skyDrop": { + name: "Chute Libre", + effect: "Le lanceur emmène l'ennemi dans les airs au premier tour et le lâche dans le vide au second. L'ennemi saisi ne peut pas attaquer." + }, + "shiftGear": { + name: "Chgt Vitesse", + effect: "Le lanceur fait tourner ses engrenages. Cela augmente son Attaque et augmente beaucoup sa Vitesse." + }, + "circleThrow": { + name: "Projection", + effect: "Le lanceur fait une projection sur un Pokémon ennemi et le remplace par un autre. Lors d’un combat contre un Pokémon sauvage seul, cela met fin au combat." + }, + "incinerate": { + name: "Calcination", + effect: "Des flammes calcinent la cible. Si elle tient un objet, une Baie par exemple, celui-ci est brûlé et devient inutilisable." + }, + "quash": { + name: "À la Queue", + effect: "Retient la cible de force, l’obligeant à agir en dernier." + }, + "acrobatics": { + name: "Acrobatie", + effect: "Le lanceur frappe la cible avec agilité. S’il ne tient pas d’objet, l’attaque inflige davantage de dégâts." + }, + "reflectType": { + name: "Copie-Type", + effect: "Le lanceur adopte le même type que la cible." + }, + "retaliate": { + name: "Vengeance", + effect: "Le lanceur venge un allié K.O. Si un Pokémon de l’équipe a été mis K.O. au tour d’avant, la puissance augmente." + }, + "finalGambit": { + name: "Tout ou Rien", + effect: "Une attaque très risquée. Le lanceur perd tous ses PV restants et inflige autant de dégâts à la cible." + }, + "bestow": { + name: "Passe-Cadeau", + effect: "Si la cible ne tient pas d'objet, le lanceur lui donne l'objet qu'il tient." + }, + "inferno": { + name: "Feu d'Enfer", + effect: "La cible est entourée d’un torrent de flammes ardentes qui la brûlent." + }, + "waterPledge": { + name: "Aire d'Eau", + effect: "Une masse d’eau s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire de Feu, la puissance augmente et un arc-en-ciel apparaît." + }, + "firePledge": { + name: "Aire de Feu", + effect: "Une masse de feu s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire d’Herbe, la puissance augmente et une mer de feu apparaît." + }, + "grassPledge": { + name: "Aire d'Herbe", + effect: "Une masse végétale s’abat sur la cible. Si cette capacité est utilisée en même temps qu’Aire d’Eau, la puissance augmente et un marécage apparaît." + }, + "voltSwitch": { + name: "Change Éclair", + effect: "Après son attaque, le lanceur revient à toute vitesse et change de place avec un Pokémon de l'équipe prêt au combat." + }, + "struggleBug": { + name: "Survinsecte", + effect: "Le lanceur frappe en se débattant de toutes ses forces, et baisse l’Attaque Spéciale de la cible." + }, + "bulldoze": { + name: "Piétisol", + effect: "Le lanceur piétine le sol et inflige des dégâts à tous les Pokémon autour de lui. Baisse aussi leur Vitesse." + }, + "frostBreath": { + name: "Souffle Glacé", + effect: "Un souffle froid blesse la cible. L’effet est toujours critique." + }, + "dragonTail": { + name: "Draco-Queue", + effect: "Un coup puissant qui blesse la cible et l’envoie au loin. Lors d’un combat contre un Pokémon sauvage seul, met fin au combat." + }, + "workUp": { + name: "Rengorgement", + effect: "Le lanceur se rengorge et augmente son Attaque et son Attaque Spéciale." + }, + "electroweb": { + name: "Toile Élek", + effect: "Le lanceur attaque la cible en l’attrapant dans un filet électrique. Baisse aussi la Vitesse de la cible." + }, + "wildCharge": { + name: "Éclair Fou", + effect: "Une charge électrique violente qui blesse aussi légèrement le lanceur." + }, + "drillRun": { + name: "Tunnelier", + effect: "Le lanceur tourne sur lui-même comme une perceuse et se jette sur la cible. Taux de critiques élevé." + }, + "dualChop": { + name: "Double Baffe", + effect: "Le lanceur frappe l'ennemi deux fois d'affilée avec les parties les plus robustes de son corps." + }, + "heartStamp": { + name: "Crève-Coeur", + effect: "Déconcentre l'ennemi avec des mouvements mignons avant de le frapper violemment. Peut aussi l'apeurer (30% de chances)." + }, + "hornLeech": { + name: "Encornebois", + effect: "Un coup de cornes qui draine l’énergie de la cible. La capacité convertit la moitié des dégâts infligés en PV pour le lanceur." + }, + "sacredSword": { + name: "Lame Sainte", + effect: "Un violent coup d’épée qui lacère la cible et lui inflige des dégâts en ignorant ses changements de stats." + }, + "razorShell": { + name: "Coqui-Lame", + effect: "Un coquillage aiguisé lacère la cible et peut aussi baisser sa Défense." + }, + "heatCrash": { + name: "Tacle Feu", + effect: "Le lanceur projette son corps enflammé contre la cible. Plus il est lourd par rapport à la cible, plus la puissance de cette capacité augmente." + }, + "leafTornado": { + name: "Phytomixeur", + effect: "L'ennemi est pris dans un tourbillon de feuilles acérées. Peut aussi baisser sa Précision." + }, + "steamroller": { + name: "Bulldoboule", + effect: "Le lanceur se roule en boule et écrase son ennemi. Peut aussi l'apeurer (30% de chances)." + }, + "cottonGuard": { + name: "Cotogarde", + effect: "Le lanceur se protège en s’emmitouflant dans du coton. Sa Défense augmente énormément." + }, + "nightDaze": { + name: "Explonuit", + effect: "Le lanceur attaque avec une onde de choc ténébreuse qui peut aussi baisser la Précision de la cible." + }, + "psystrike": { + name: "Frappe Psy", + effect: "Le lanceur matérialise des ondes mystérieuses qu’il projette sur la cible, ce qui inflige des dégâts physiques à celle-ci." + }, + "tailSlap": { + name: "Plumo-Queue", + effect: "Le lanceur frappe la cible de deux à cinq fois d’affilée avec sa queue robuste." + }, + "hurricane": { + name: "Vent Violent", + effect: "Le lanceur déclenche une tempête de vents violents qui s’abat sur la cible, et peut aussi la rendre confuse." + }, + "headCharge": { + name: "Peignée", + effect: "Le lanceur donne un coup avec sa tête couronnée d'une fière crinière. Blesse aussi légèrement le lanceur." + }, + "gearGrind": { + name: "Lancécrou", + effect: "Le lanceur jette deux écrous d'acier qui frappent l'ennemi deux fois d'affilée." + }, + "searingShot": { + name: "Incendie", + effect: "Des boules de feu s'abattent sur tous les Pokémon autour du lanceur. Peut aussi les brûler (30% de chances)." + }, + "technoBlast": { + name: "Techno-Buster", + effect: "Le lanceur projette un rayon lumineux sur l'ennemi. Le type varie selon le Module que tient le lanceur." + }, + "relicSong": { + name: "Chant Antique", + effect: "Le lanceur attaque la cible en lui chantant une chanson d’un autre temps qui peut aussi l’endormir." + }, + "secretSword": { + name: "Lame Ointe", + effect: "L'ennemi est lacéré par une longue corne. Son pouvoir mystérieux inflige des dégâts physiques." + }, + "glaciate": { + name: "Ère Glaciaire", + effect: "Un souffle de vent qui congèle tout sur son passage s'abat sur l'ennemi. Réduit aussi sa Vitesse." + }, + "boltStrike": { + name: "Charge Foudre", + effect: "Le lanceur s'enveloppe d'une charge électrique surpuissante et se jette sur l'ennemi. Peut aussi le paralyser (20% de chances)." + }, + "blueFlare": { + name: "Flamme Bleue", + effect: "De magnifiques et redoutables flammes bleues fondent sur l'ennemi. Peut aussi le brûler (20% de chances)." + }, + "fieryDance": { + name: "Danse du Feu", + effect: "Le lanceur s’enveloppe de flammes et attaque la cible, Cela peut aussi augmenter l’Attaque Spéciale du lanceur." + }, + "freezeShock": { + name: "Éclair Gelé", + effect: "Projette un bloc de glace électrifié sur l'ennemi au second tour. Peut aussi le paralyser (30% de chances)." + }, + "iceBurn": { + name: "Feu Glacé", + effect: "Au second tour, le lanceur projette un souffle de vent glacial dévastateur sur l'ennemi. Peut aussi le brûler (30% de chances)." + }, + "snarl": { + name: "Aboiement", + effect: "Le lanceur hurle sur la cible et baisse l’Attaque Spéciale de celle-ci." + }, + "icicleCrash": { + name: "Chute Glace", + effect: "Le lanceur envoie de gros blocs de glace sur la cible pour lui infliger des dégâts, ce qui peut aussi l’apeurer (30% de chances)." + }, + "vCreate": { + name: "Coup Victoire", + effect: "Le lanceur fait jaillir des flammes ardentes de son front et se jette sur la cible, ce qui baisse la Défense, la Défense Spéciale et la Vitesse du lanceur." + }, + "fusionFlare": { + name: "Flamme Croix", + effect: "Projette une boule de feu gigantesque. L'effet augmente sous l'influence d'Éclair Croix." + }, + "fusionBolt": { + name: "Éclair Croix", + effect: "Projette un orbe électrique gigantesque. L'effet augmente sous l'influence de Flamme Croix." + }, + "flyingPress": { + name: "Flying Press", + effect: "Une attaque en piqué depuis le ciel, à la fois de type Combat et de type Vol." + }, + "matBlock": { + name: "Tatamigaeshi", + effect: "Retourne un tatami pour bloquer, comme avec un bouclier, les capacités visant le lanceur ou ses alliés. N'a pas d'effet sur les attaques de statut." + }, + "belch": { + name: "Éructation", + effect: "Le lanceur se tourne vers la cible et lui éructe dessus, infligeant des dégâts. Ne fonctionne que si le lanceur consomme une Baie tenue." + }, + "rototiller": { + name: "Fertilisation", + effect: "Laboure le sol et le rend plus fertile. Augmente l'Attaque et l'Attaque Spéciale des Pokémon de type Plante." + }, + "stickyWeb": { + name: "Toile Gluante", + effect: "Le lanceur déploie une toile visqueuse autour de la cible qui ralentit la Vitesse de tout adversaire entrant au combat." + }, + "fellStinger": { + name: "Dard Mortel", + effect: "Le lanceur augmente énormément son Attaque si une cible est mise K.O. par cette capacité." + }, + "phantomForce": { + name: "Hantise", + effect: "Le lanceur disparaît au premier tour et frappe au second. Cette attaque passe outre les protections." + }, + "trickOrTreat": { + name: "Halloween", + effect: "Insuffle à la cible l'esprit d'Halloween, et ajoute le type Spectre à ses types actuels." + }, + "nobleRoar": { + name: "Râle Mâle", + effect: "Le lanceur pousse un rugissement qui intimide la cible et diminue l’Attaque et l’Attaque Spéciale de celle-ci." + }, + "ionDeluge": { + name: "Déluge Plasmique", + effect: "Diffuse des particules saturées d'électricité qui transforment les capacités de type Normal en capacités de type Électrik." + }, + "parabolicCharge": { + name: "Parabocharge", + effect: "Inflige des dégâts à tous les Pokémon autour du lanceur. Il récupère en PV la moitié des dégâts infligés." + }, + "forestsCurse": { + name: "Maléfice Sylvain", + effect: "La cible est charmée par l'esprit de la forêt. Le type Plante est ajouté à ses types actuels." + }, + "petalBlizzard": { + name: "Tempête Florale", + effect: "Déclenche une violente tempête de fleurs qui inflige des dégâts à tous les Pokémon alentour." + }, + "freezeDry": { + name: "Lyophilisation", + effect: "Le lanceur refroidit violemment la cible et peut la geler (10% de chances). Super efficace sur les Pokémon de type Eau." + }, + "disarmingVoice": { + name: "Voix Enjôleuse", + effect: "Le lanceur laisse s’échapper une voix enchanteresse qui inflige des dégâts psychiques à la cible. N’échoue jamais." + }, + "partingShot": { + name: "Dernier Mot", + effect: "Le lanceur menace la cible dans une ultime tirade avant de changer de place avec un autre Pokémon. Réduit l’Attaque et l’Attaque Spéciale de la cible." + }, + "topsyTurvy": { + name: "Renversement", + effect: "Inverse tous les changements de stats de la cible." + }, + "drainingKiss": { + name: "Vampibaiser", + effect: "Le lanceur aspire la force vitale de la cible par un baiser qui rend au lanceur un nombre de PV supérieur ou égal à la moitié des dégâts infligés." + }, + "craftyShield": { + name: "Vigilance", + effect: "Utilise une force mystérieuse pour protéger l'équipe des capacités de statut. Ne protège pas des autres capacités." + }, + "flowerShield": { + name: "Garde Florale", + effect: "Grâce à une force mystérieuse, la Défense de tous les Pokémon Plante au combat augmente." + }, + "grassyTerrain": { + name: "Champ Herbu", + effect: "Pendant cinq tours, les Pokémon au sol récupèrent quelques PV à chaque tour et la puissance des capacités de type Plante augmente." + }, + "mistyTerrain": { + name: "Champ Brumeux", + effect: "Pendant cinq tours, les Pokémon au sol ne peuvent pas subir d’altération de statut et les dégâts infligés par les capacités de type Dragon sont divisés par deux." + }, + "electrify": { + name: "Électrisation", + effect: "Si le lanceur attaque avant la cible, les capacités de celle-ci seront de type Électrik jusqu'à la fin du tour." + }, + "playRough": { + name: "Câlinerie", + effect: "Le lanceur attaque la cible en lui faisant des câlineries, ce qui peut aussi diminuer l’Attaque de celle-ci." + }, + "fairyWind": { + name: "Vent Féérique", + effect: "Le lanceur déchaîne un vent magique qui cingle la cible." + }, + "moonblast": { + name: "Pouvoir Lunaire", + effect: "Le lanceur attaque la cible grâce au pouvoir de la lune, ce qui peut diminuer l’Attaque Spéciale de celle-ci." + }, + "boomburst": { + name: "Bang Sonique", + effect: "Attaque les Pokémon alentour grâce à une onde sonore assourdissante qui détruit tout sur son passage." + }, + "fairyLock": { + name: "Verrou Enchanté", + effect: "Des chaînes entourent la zone de combat, empêchant tous les Pokémon de quitter le terrain au tour suivant." + }, + "kingsShield": { + name: "Bouclier Royal", + effect: "Prend une posture défensive pour bloquer les dégâts. Diminue beaucoup l'Attaque de tout Pokémon qui entre en contact avec le lanceur." + }, + "playNice": { + name: "Camaraderie", + effect: "La cible se lie d’amitié avec le lanceur et perd sa combativité, ce qui diminue son Attaque." + }, + "confide": { + name: "Confidence", + effect: "Le lanceur dévoile des secrets à la cible, qui perd alors sa concentration et voit son Attaque Spéciale diminuer." + }, + "diamondStorm": { + name: "Orage Adamantin", + effect: "Provoque une tempête de diamants qui inflige des dégâts. Peut beaucoup augmenter la Défense du lanceur." + }, + "steamEruption": { + name: "Jet de Vapeur", + effect: "Le lanceur projette de la vapeur extrêmement chaude sur la cible, ce qui peut aussi la brûler (30% de chances)." + }, + "hyperspaceHole": { + name: "TrouDimensionnel", + effect: "Le lanceur crée une faille dimensionnelle pour attaquer soudainement la cible de côté. Ignore même les capacités comme Abri ou Détection." + }, + "waterShuriken": { + name: "Sheauriken", + effect: "Le lanceur attaque la cible avec des shuriken de mucus. Cette capacité frappe en priorité deux à cinq fois d’affilée en un tour." + }, + "mysticalFire": { + name: "Feu Ensorcelé", + effect: "Le lanceur attaque en soufflant des flammes brûlantes par la bouche et diminue l’Attaque Spéciale de la cible." + }, + "spikyShield": { + name: "Pico-Défense", + effect: "Protège des attaques, et diminue les PV de tout assaillant qui entre en contact avec le lanceur." + }, + "aromaticMist": { + name: "Brume Capiteuse", + effect: "Grâce à un parfum mystérieux, augmente la Défense Spéciale d’un allié." + }, + "eerieImpulse": { + name: "Ondes Étranges", + effect: "Le corps du lanceur produit des ondes anormales qui enveloppent la cible et diminuent beaucoup son Attaque Spéciale." + }, + "venomDrench": { + name: "Piège de Venin", + effect: "Sécrète un liquide empoisonné. Diminue l'Attaque, l'Attaque Spéciale et la Vitesse de l'ennemi empoisonné." + }, + "powder": { + name: "Nuée de Poudre", + effect: "L'ennemi est pris dans un nuage de poudre. S'il utilise une capacité de type Feu lors du même tour, le nuage explose et lui inflige des dégâts." + }, + "geomancy": { + name: "Géo-Contrôle", + effect: "Le lanceur absorbe de l'énergie au premier tour et augmente beaucoup son Attaque Spéciale, sa Défense Spéciale et sa Vitesse au second." + }, + "magneticFlux": { + name: "Magné-Contrôle", + effect: "Manipule les champs magnétiques pour augmenter la Défense et la Défense Spéciale des Pokémon alliés dotés du talent Plus ou du talent Moins." + }, + "happyHour": { + name: "Étrennes", + effect: "Utilisée pendant un combat, multiplie par deux l’argent gagné à la fin." + }, + "electricTerrain": { + name: "Champ Électrifié", + effect: "Pendant cinq tours, le terrain se charge d’électricité. Les Pokémon au sol ne peuvent pas s’endormir et la puissance des capacités de type Électrik augmente." + }, + "dazzlingGleam": { + name: "Éclat Magique", + effect: "Le lanceur libère une puissante décharge lumineuse qui inflige des dégâts à l’ennemi." + }, + "celebrate": { + name: "Célébration", + effect: "Le Pokémon vous souhaite plein de bonnes choses pour cet évènement spécial." + }, + "holdHands": { + name: "Mains Jointes", + effect: "Le lanceur et un allié se prennent la main, ce qui les rend heureux." + }, + "babyDollEyes": { + name: "Regard Touchant", + effect: "Le lanceur fixe la cible d’un air très attendrissant qui la touche et diminue son Attaque. Agit en priorité." + }, + "nuzzle": { + name: "Frotte-Frimousse", + effect: "Le lanceur attaque en frottant ses bajoues chargées d’électricité, ce qui paralyse la cible." + }, + "holdBack": { + name: "Retenue", + effect: "Le lanceur attaque avec retenue, et laisse au moins 1 PV à la cible." + }, + "infestation": { + name: "Harcèlement", + effect: "Cette attaque perdure pendant quatre à cinq tours. La cible ne peut pas quitter le terrain pendant cette période." + }, + "powerUpPunch": { + name: "Poing Boost", + effect: "À force de frapper, les poings deviennent plus durs. Augmente l'Attaque du lanceur si l'ennemi est touché." + }, + "oblivionWing": { + name: "Mort'Ailes", + effect: "Vole l'énergie de la cible. Rend au lanceur un nombre de PV supérieur ou égal à la moitié des dégâts infligés." + }, + "thousandArrows": { + name: "Myria-Flèches", + effect: "Touche même les Pokémon dans les airs. Dans ce cas, la cible retombe au sol." + }, + "thousandWaves": { + name: "Myria-Vagues", + effect: "Attaque avec des vagues glissant au sol. L'ennemi pris dedans ne peut pas s'échapper." + }, + "landsWrath": { + name: "Force Chtonienne", + effect: "Utilise la puissance du sol et la concentre sur l'ennemi pour infliger des dégâts." + }, + "lightOfRuin": { + name: "Lumière du Néant", + effect: "Utilise la puissance de la fleur Éternelle pour lancer un formidable rayon d'énergie. Blesse aussi gravement le lanceur." + }, + "originPulse": { + name: "Onde Originelle", + effect: "Le lanceur projette une aura, et d’innombrables rayons lumineux d’un bleu étincelant s’abattent sur la cible." + }, + "precipiceBlades": { + name: "Lame Pangéenne", + effect: "Le Pokémon transforme la puissance de la terre et attaque la cible avec une lame acérée." + }, + "dragonAscent": { + name: "Draco-Ascension", + effect: "Le Pokémon s’abat à toute vitesse sur la cible depuis les hautes couches de l’atmosphère. Baisse la Défense et la Défense Spéciale du lanceur." + }, + "hyperspaceFury": { + name: "Furie Dimension", + effect: "Le Pokémon utilise sa multitude de bras pour infliger une nuée de coups qui ignorent les capacités telles qu’Abri ou Détection. Baisse la Défense du lanceur." + }, + "breakneckBlitzPhysical": { + name: "Turbo-Charge Bulldozer", + effect: "Le Pokémon utilise la Force Z pour s'élancer à toute vitesse sur l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "breakneckBlitzSpecial": { + name: "Turbo-Charge Bulldozer", + effect: "Dummy Data" + }, + "allOutPummelingPhysical": { + name: "Combo Hyper-Furie", + effect: "Le Pokémon utilise la Force Z pour créer une boule d'énergie qu'il projette sur l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "allOutPummelingSpecial": { + name: "Combo Hyper-Furie", + effect: "Dummy Data" + }, + "supersonicSkystrikePhysical": { + name: "Piqué Supersonique", + effect: "Le Pokémon utilise la Force Z pour s'envoler très haut dans le ciel avant de plonger sur l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "supersonicSkystrikeSpecial": { + name: "Piqué Supersonique", + effect: "Dummy Data" + }, + "acidDownpourPhysical": { + name: "Déluge Causti-Toxique", + effect: "Le Pokémon utilise la Force Z pour répandre un marécage empoisonné où l'adversaire sombre. La puissance varie selon celle de la capacité originale." + }, + "acidDownpourSpecial": { + name: "Déluge Causti-Toxique", + effect: "Dummy Data" + }, + "tectonicRagePhysical": { + name: "Éruption Géo-Sismique", + effect: "Le Pokémon utilise la Force Z pour entraîner l'adversaire dans les profondeurs de la terre. La puissance varie selon celle de la capacité originale." + }, + "tectonicRageSpecial": { + name: "Éruption Géo-Sismique", + effect: "Dummy Data" + }, + "continentalCrushPhysical": { + name: "Apocalypse Gigalithique", + effect: "Le Pokémon utilise la Force Z pour créer un immense rocher et écraser l'adversaire avec. La puissance varie selon celle de la capacité originale." + }, + "continentalCrushSpecial": { + name: "Apocalypse Gigalithique", + effect: "Dummy Data" + }, + "savageSpinOutPhysical": { + name: "Cocon Fatal", + effect: "Le Pokémon utilise la Force Z pour cracher de longs fils de soie et enserrer l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "savageSpinOutSpecial": { + name: "Cocon Fatal", + effect: "Dummy Data" + }, + "neverEndingNightmarePhysical": { + name: "Appel des Ombres Éternelles", + effect: "Le Pokémon utilise la Force Z pour invoquer des esprits rancuniers qui s'abattent sur l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "neverEndingNightmareSpecial": { + name: "Appel des Ombres Éternelles", + effect: "Dummy Data" + }, + "corkscrewCrashPhysical": { + name: "Vrille Maximum", + effect: "Le Pokémon utilise la Force Z pour tourner à toute vitesse et écraser l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "corkscrewCrashSpecial": { + name: "Vrille Maximum", + effect: "Dummy Data" + }, + "infernoOverdrivePhysical": { + name: "Pyro-Explosion Cataclysmique", + effect: "Le Pokémon utilise la Force Z pour cracher une boule de feu qui réduit l'adversaire en cendres. La puissance varie selon celle de la capacité originale." + }, + "infernoOverdriveSpecial": { + name: "Pyro-Explosion Cataclysmique", + effect: "Dummy Data" + }, + "hydroVortexPhysical": { + name: "Super Tourbillon Abyssal", + effect: "Le Pokémon utilise la Force Z pour créer un tourbillon gigantesque qui avale l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "hydroVortexSpecial": { + name: "Super Tourbillon Abyssal", + effect: "Dummy Data" + }, + "bloomDoomPhysical": { + name: "Pétalexplosion Éblouissante", + effect: "Le Pokémon utilise la Force Z pour libérer l'énergie des plantes et attaquer l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "bloomDoomSpecial": { + name: "Pétalexplosion Éblouissante", + effect: "Dummu Data" + }, + "gigavoltHavocPhysical": { + name: "Fulguro-Lance Gigavolt", + effect: "Le Pokémon utilise la Force Z pour générer un courant électrique puissant qu'il projette sur l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "gigavoltHavocSpecial": { + name: "Fulguro-Lance Gigavolt", + effect: "Dummy Data" + }, + "shatteredPsychePhysical": { + name: "Psycho-Pulvérisation EX", + effect: "Le Pokémon utilise la Force Z pour manipuler l'adversaire et lui infliger de sérieux dégâts. La puissance varie selon celle de la capacité originale." + }, + "shatteredPsycheSpecial": { + name: "Psycho-Pulvérisation EX", + effect: "Dummy Data" + }, + "subzeroSlammerPhysical": { + name: "Laser Cryogénique", + effect: "Le Pokémon utilise la Force Z pour baisser la température brutalement et congeler l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "subzeroSlammerSpecial": { + name: "Laser Cryogénique", + effect: "Dummy Data" + }, + "devastatingDrakePhysical": { + name: "Chaos Draconique", + effect: "Le Pokémon utilise la Force Z pour matérialiser son aura et assaillir l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "devastatingDrakeSpecial": { + name: "Chaos Draconique", + effect: "Dummy Data" + }, + "blackHoleEclipsePhysical": { + name: "Trou Noir des Ombres", + effect: "Le Pokémon utilise la Force Z pour rassembler l'énergie négative et y aspirer l'adversaire. La puissance varie selon celle de la capacité originale." + }, + "blackHoleEclipseSpecial": { + name: "Trou Noir des Ombres", + effect: "Dummy Data" + }, + "twinkleTacklePhysical": { + name: "Impact Choupinova", + effect: "Le Pokémon utilise la Force Z pour créer une dimension irréelle où l'adversaire est à sa merci. La puissance varie selon celle de la capacité originale." + }, + "twinkleTackleSpecial": { + name: "Impact Choupinova", + effect: "Dummy Data" + }, + "catastropika": { + name: "Pikachute Foudroyante", + effect: "Pikachu utilise la Force Z pour concentrer toute son électricité avant de se jeter à toute vitesse sur l'adversaire." + }, + "shoreUp": { + name: "Amass'Sable", + effect: "Le lanceur récupère jusqu’à la moitié de ses PV max. Durant une tempête de sable, il en récupère encore plus." + }, + "firstImpression": { + name: "Escarmouche", + effect: "Une capacité très puissante, mais qui ne fonctionne que lorsque le lanceur entre au combat." + }, + "banefulBunker": { + name: "Blockhaus", + effect: "Le lanceur se protège contre les attaques, et si un assaillant utilise une attaque directe contre lui, il l’empoisonne." + }, + "spiritShackle": { + name: "Tisse Ombre", + effect: "Une attaque qui coud la cible à son ombre, ce qui l’empêche de s’enfuir." + }, + "darkestLariat": { + name: "Dark Lariat", + effect: "Le lanceur étend les bras et frappe l’adversaire en tournant violemment. Il inflige des dégâts et ignore les changements de stats de la cible." + }, + "sparklingAria": { + name: "Aria de l'Écume", + effect: "Le lanceur émet plusieurs bulles en chantant. Soigne les brûlures des Pokémon touchés par ces bulles." + }, + "iceHammer": { + name: "Marteau de Glace", + effect: "Le lanceur donne un puissant coup de poing à la cible, ce qui réduit la Vitesse du lanceur." + }, + "floralHealing": { + name: "Soin Floral", + effect: "Rend la moitié de ses PV max à la cible. Plus efficace sur un Champ Herbu." + }, + "highHorsepower": { + name: "Cavalerie Lourde", + effect: "Le lanceur attaque violemment en utilisant tout son poids." + }, + "strengthSap": { + name: "Vole-Force", + effect: "Rend au lanceur une quantité de PV équivalente à la stat d’Attaque de la cible, puis baisse celle-ci." + }, + "solarBlade": { + name: "Lame Solaire", + effect: "Le lanceur absorbe une grande quantité de lumière au premier tour et attaque au second tour en libérant cette énergie sous la forme d’une lame." + }, + "leafage": { + name: "Feuillage", + effect: "Le lanceur attaque la cible avec des feuilles." + }, + "spotlight": { + name: "Projecteur", + effect: "Met un Pokémon sous le feu des projecteurs et force tout le monde à le viser." + }, + "toxicThread": { + name: "Fil Toxique", + effect: "Tisse un fil imprégné de venin. Empoisonne la cible et baisse sa Vitesse." + }, + "laserFocus": { + name: "Affilage", + effect: "Le lanceur se concentre pour être sûr de porter un coup critique au tour suivant." + }, + "gearUp": { + name: "Engrenage", + effect: "Change de réglage pour augmenter l'Attaque et l'Attaque Spéciale des alliés ayant les talents Plus ou Minus." + }, + "throatChop": { + name: "Exécu-Son", + effect: "Inflige une douleur tellement violente à la cible qu’elle ne peut plus émettre de sons pendant deux tours." + }, + "pollenPuff": { + name: "Boule Pollen", + effect: "Sur un ennemi, le lanceur envoie une boule explosive qui fait des dégâts. Sur un allié, il envoie du bon pollen nutritif qui fait récupérer des PV." + }, + "anchorShot": { + name: "Ancrage", + effect: "Le lanceur jette son ancre sur la cible pour l'attaquer. Une fois accrochée, elle l'empêche de s'enfuir." + }, + "psychicTerrain": { + name: "Champ Psychique", + effect: "Pendant cinq tours, les Pokémon au sol ne peuvent plus subir d’attaques prioritaires et la puissance des capacités de type Psy augmente." + }, + "lunge": { + name: "Furie-Bond", + effect: "Le lanceur se jette sur la cible de toutes ses forces pour lui infliger des dégâts et baisser son Attaque." + }, + "fireLash": { + name: "Fouet de Feu", + effect: "Frappe la cible avec un fouet incandescent et baisse sa Défense." + }, + "powerTrip": { + name: "Arrogance", + effect: "Ivre de puissance, le lanceur attaque de toutes ses forces. Plus ses stats ont été augmentées, plus la puissance de cette capacité augmente." + }, + "burnUp": { + name: "Flamme Ultime", + effect: "Le Pokémon se consume et les flammes de son corps infligent des dégâts élevés à la cible. Le lanceur perd le type Feu." + }, + "speedSwap": { + name: "Permuvitesse", + effect: "Intervertit la Vitesse du lanceur et celle de la cible." + }, + "smartStrike": { + name: "Estocorne", + effect: "Le lanceur transperce la cible avec sa corne effilée. N’échoue jamais." + }, + "purify": { + name: "Purification", + effect: "Le lanceur soigne les altérations de statut de la cible, ce qui lui permet de regagner des PV." + }, + "revelationDance": { + name: "Danse Éveil", + effect: "Le lanceur attaque en dansant avec enthousiasme. Le type de la capacité est le même que celui du lanceur." + }, + "coreEnforcer": { + name: "Sanction Suprême", + effect: "La cible subit des dégâts et, si elle a déjà agi à ce tour, elle perd aussi son talent." + }, + "tropKick": { + name: "Botte Sucrette", + effect: "Un coup de pied chaud comme les tropiques qui inflige des dégâts à la cible et baisse son Attaque." + }, + "instruct": { + name: "Sommation", + effect: "Force la cible à lancer immédiatement la dernière capacité qu’elle a utilisée." + }, + "beakBlast": { + name: "Bec-Canon", + effect: "Le lanceur fait chauffer son bec avant d'attaquer. S'il subit une attaque directe pendant la montée en température, l'attaquant sera brûlé." + }, + "clangingScales": { + name: "Vibrécaille", + effect: "Le lanceur déclenche un vacarme en frottant ses écailles les unes contre les autres pour attaquer. Baisse la Défense du lanceur." + }, + "dragonHammer": { + name: "Draco-Marteau", + effect: "Le lanceur utilise son corps comme un véritable marteau pour écraser la cible." + }, + "brutalSwing": { + name: "Centrifugifle", + effect: "Le lanceur pivote pour prendre de l’élan et infliger des dégâts." + }, + "auroraVeil": { + name: "Voile Aurore", + effect: "Réduit les dégâts causés par les capacités physiques et spéciales durant cinq tours. Ne peut être utilisée que lorsqu’il neige." + }, + "sinisterArrowRaid": { + name: "Fureur des Plumes Spectrales", + effect: "Archéduc utilise la Force Z pour créer un nuage de flèches qui transpercent la cible." + }, + "maliciousMoonsault": { + name: "Dark Body Press", + effect: "Félinferno utilise la Force Z pour gonfler ses muscles et écraser la cible de toutes ses forces." + }, + "oceanicOperetta": { + name: "Symphonie des Ondines", + effect: "Oratoria utilise la Force Z pour rassembler une grande quantité d'eau et la projeter sur la cible à pleine puissance." + }, + "guardianOfAlola": { + name: "Colère du Gardien d'Alola", + effect: "Le Pokémon Tutélaire utilise la Force Z et déchaîne toute la puissance d'Alola sur sa cible. Inflige des dégâts en fonction des PV restants de celle-ci." + }, + "soulStealing7StarStrike": { + name: "Fauche-Âme des Sept Étoiles", + effect: "Marshadow concentre toute la Force Z dans ses poings et ses pieds pour infliger un déluge de coups à la cible." + }, + "stokedSparksurfer": { + name: "Électro-Surf Survolté", + effect: "Le Raichu de la région d'Alola utilise la Force Z pour frapper la cible et la paralyser." + }, + "pulverizingPancake": { + name: "Gare au Ronflex", + effect: "Ronflex utilise la Force Z pour montrer ce qu'il a dans le ventre et écraser la cible de tout son poids." + }, + "extremeEvoboost": { + name: "Neuf pour Un", + effect: "Évoli utilise la Force Z pour emprunter la puissance de tous ses amis évolués et beaucoup augmenter toutes ses stats." + }, + "genesisSupernova": { + name: "Supernova Originelle", + effect: "Mew utilise la Force Z pour attaquer la cible. Le terrain devient un Champ Psychique." + }, + "shellTrap": { + name: "Carapiège", + effect: "Pose une carapace piégée. Si l'adversaire utilise une capacité physique, la carapace explose et lui inflige des dégâts." + }, + "fleurCannon": { + name: "Canon Floral", + effect: "Envoie un rayon laser dévastateur. Baisse beaucoup l’Attaque Spéciale du lanceur." + }, + "psychicFangs": { + name: "Psycho-Croc", + effect: "Le lanceur mord la cible avec ses pouvoirs psychiques. Brise aussi les barrières comme Mur Lumière et Protection." + }, + "stompingTantrum": { + name: "Trépignement", + effect: "Le lanceur attaque en utilisant sa frustration. S’il a utilisé une capacité qui a échoué au tour précédent, la puissance de Trépignement est doublée." + }, + "shadowBone": { + name: "Os Ombre", + effect: "Le lanceur frappe avec un os possédé par l'âme d'un défunt. Peut aussi baisser la Défense de la cible." + }, + "accelerock": { + name: "Vif Roc", + effect: "Le lanceur charge la cible à toute vitesse. Frappe en priorité." + }, + "liquidation": { + name: "Aqua-Brèche", + effect: "Le lanceur utilise la force de l’eau pour attaquer. Peut aussi baisser la Défense de la cible." + }, + "prismaticLaser": { + name: "Laser Prisme", + effect: "Le lanceur utilise la puissance d'un prisme pour envoyer un laser destructeur, mais il doit se reposer au tour suivant." + }, + "spectralThief": { + name: "Clepto-Mânes", + effect: "Le lanceur plonge dans l'ombre de la cible, vole ses augmentations de stats et l'attaque." + }, + "sunsteelStrike": { + name: "Choc Météore", + effect: "Le lanceur fonce sur la cible à la vitesse d'une météorite. Ignore le talent de l'ennemi." + }, + "moongeistBeam": { + name: "Rayon Spectral", + effect: "Le lanceur attaque avec un rayon de lumière mystérieux. Ignore le talent de la cible." + }, + "tearfulLook": { + name: "Larme à l'Oeil", + effect: "Le lanceur regarde la cible avec des yeux remplis de larmes. Celle-ci perd toute combativité et voit son Attaque et son Attaque Spéciale baisser." + }, + "zingZap": { + name: "Électrikipik", + effect: "Le lanceur fonce sur la cible et lui envoie un puissant choc électrique, ce qui peut aussi l’effrayer." + }, + "naturesMadness": { + name: "Ire de la Nature", + effect: "Le lanceur déchaîne toute la colère de la nature pour baisser les PV de la cible de moitié." + }, + "multiAttack": { + name: "Coup Varia-Type", + effect: "Le Pokémon s'entoure d'une puissante énergie avant de foncer sur sa cible. Le type de la capacité dépend de la ROM installée." + }, + "tenMillionVoltThunderbolt": { + name: "Giga-Tonnerre", + effect: "Le Pikachu à casquette utilise la Force Z pour augmenter sa puissance électrique avant de la déchaîner sur la cible. Taux de critique élevé." + }, + "mindBlown": { + name: "Caboche-Kaboum", + effect: "Le lanceur fait exploser sa tête pour attaquer toutes les cibles autour de lui. Il subit aussi des dégâts." + }, + "plasmaFists": { + name: "Plasma Punch", + effect: "Le lanceur attaque en projetant de l'électricité avec ses poings. Convertit les capacités de type Normal en type Électrik." + }, + "photonGeyser": { + name: "Photo-Geyser", + effect: "Le lanceur fait jaillir un pilier de lumière. Compare l'Attaque et l'Attaque Spéciale, et utilise celle qui infligera le plus de dégâts." + }, + "lightThatBurnsTheSky": { + name: "Apocalypsis Luminis", + effect: "Compare l'Attaque et l'Attaque Spéciale, et utilise celle qui infligera le plus de dégâts. Ignore le talent de la cible." + }, + "searingSunrazeSmash": { + name: "Hélio-Choc Dévastateur", + effect: "Baigné dans la Force Z, Solgaleo attaque en déchaînant toute sa puissance. Ignore le talent de la cible." + }, + "menacingMoonrazeMaelstrom": { + name: "Rayons Séléno-Explosifs", + effect: "Baigné dans la Force Z, Lunala attaque en déchaînant toute sa puissance. Ignore le talent de la cible." + }, + "letsSnuggleForever": { + name: "Patati-Patattrape", + effect: "Mimiqui concentre toute la Force Z dans son corps, et attaque dans le plus grand fracas !" + }, + "splinteredStormshards": { + name: "Hurlement des Roches-Lames", + effect: "Lougaroc utilise la Force Z pour attaquer la cible de toutes ses forces. Efface aussi tout Champ existant." + }, + "clangorousSoulblaze": { + name: "Dracacophonie Flamboyante", + effect: "Ékaïser utilise la Force Z pour frapper l'ennemi de toutes ses forces. Augmente aussi ses stats." + }, + "zippyZap": { + name: "Pika-Sprint", + effect: "Une attaque électrique rapide comme l'éclair qui inflige un coup critique à coup sûr. Frappe en priorité." + }, + "splishySplash": { + name: "Pika-Splash", + effect: "Pikachu frappe l'adversaire avec une vague géante chargée d'électricité. Peut aussi paralyser l'ennemi." + }, + "floatyFall": { + name: "Pika-Piqué", + effect: "Pikachu prend de la hauteur avant de fondre sur son adversaire. Peut aussi apeurer l'ennemi." + }, + "pikaPapow": { + name: "Pika-Fracas", + effect: "Plus le lanceur est heureux, plus l'attaque est puissante." + }, + "bouncyBubble": { + name: "Évo-Thalasso", + effect: "Évoli frappe l'adversaire avec des bulles d'eau qu'il absorbe ensuite pour récupérer un nombre de PV égal à la moitié des dégâts infligés à l'ennemi." + }, + "buzzyBuzz": { + name: "Évo-Dynamo", + effect: "Une attaque qui foudroie et paralyse l'adversaire." + }, + "sizzlySlide": { + name: "Évo-Flambo", + effect: "Évoli s'embrase et percure violemment l'adversaire. Brûle aussi l'ennemi." + }, + "glitzyGlow": { + name: "Évo-Psycho", + effect: "Évoli submerge l'adversaire sous un flot d'ondes psychiques et crée un mur fabuleux qui réduit les dégâts causés par les attaques spéciales de l'ennemi" + }, + "baddyBad": { + name: "Évo-Ténébro", + effect: "Évoli fait appel à son côté sombre pour attaquer l'adversaire et créer un mur fabuleux qui réduit les dégâts causés par les attaques physiques de l'ennemi." + }, + "sappySeed": { + name: "Évo-Écolo", + effect: "Une liane géante surgit du sol et bombarde l'adversaire de graines qui lui dérobent des PV à chaque tour. Ces PV sont ensuite absorbés par Évoli." + }, + "freezyFrost": { + name: "Évo-Congélo", + effect: "Évoli frappe l'adversaire avec un cristal de buée noire gelée. Annule les changements de stats de tous les Pokémon au combat." + }, + "sparklySwirl": { + name: "Évo-Fabulo", + effect: "Une attaque qui enserre l'adversaire dans un tourbillon de senteurs oppressantes. Guérit toutes les altérations de statut de l'équipe." + }, + "veeveeVolley": { + name: "Évo-Chardasso", + effect: "Le lanceur lance une attaque dès lors qu'un signe apparaît sur le terrain. Les dégâts infligés sont proportionnels à l'affection de votre Pokémon" + }, + "doubleIronBash": { + name: "Écrous d'Poing", + effect: "Le lanceur fait pivoter l'écrou de sa poitrine deux fois d'affilée pour frapper l'adversaire avec ses bras. Peut apeurer l'ennemi (30% de chances)." + }, + "maxGuard": { + name: "Gardomax", + effect: "Le lanceur se protège de toutes les attaques. Peut échouer si utilisée plusieurs fois de suite." + }, + "dynamaxCannon": { + name: "Canon Dynamax", + effect: "Le lanceur attaque en émettant un laser depuis son noyau. Cette capacité inflige deux fois plus de dégâts si l'adversaire est level 200." + }, + "snipeShot": { + name: "Tir de Précision", + effect: "Le lanceur parvient toujours à viser la cible voulue, en ignorant l’effet des talents et des capacités capables de détourner les attaques." + }, + "jawLock": { + name: "Croque Fort", + effect: "Le lanceur et sa cible ne peuvent plus être échangés jusqu’à ce que l’un d’entre eux tombe K.O. L’effet est annulé si l’un des deux Pokémon quitte le terrain." + }, + "stuffCheeks": { + name: "Garde-à-Joues", + effect: "Le lanceur mange la Baie qu’il tient, ce qui augmente beaucoup sa Défense." + }, + "noRetreat": { + name: "Ultime Bastion", + effect: "Le lanceur voit toutes ses stats augmenter, mais en contrepartie, il ne peut plus quitter le terrain." + }, + "tarShot": { + name: "Goudronnage", + effect: "Le lanceur recouvre sa cible de goudron liquide pour baisser sa Vitesse et la rendre vulnérable au feu." + }, + "magicPowder": { + name: "Poudre Magique", + effect: "Le lanceur recouvre sa cible d’une poudre magique qui change son type en Psy." + }, + "dragonDarts": { + name: "Draco-Flèches", + effect: "Le lanceur attaque en propulsant deux Fantyrm. S’il y a deux cibles, chacune d’entre elles est frappée par un Fantyrm." + }, + "teatime": { + name: "Thérémonie", + effect: "Le lanceur invite tous les Pokémon sur le terrain à prendre le goûter autour d’une tasse de thé. Ceux qui tiennent une Baie la mangent." + }, + "octolock": { + name: "Octoprise", + effect: "Empêche l'ennemi de fuir ou de quitter le terrain. Baisse la Défense et la Défense Spécial de l'ennemi chaque tour." + }, + "boltBeak": { + name: "Prise de Bec", + effect: "Inflige des dégâts et les double si le lanceur attaque avant l'ennemi." + }, + "fishiousRend": { + name: "Branchicrok", + effect: "Inflige des dégâts et les double si le lanceur attaque avant l'ennemi." + }, + "courtChange": { + name: "Change-Côté", + effect: "Une force mystérieuse intervertit les effets affectant chaque côté du terrain." + }, + "maxFlare": { + name: "Pyromax", + effect: "Une attaque de type Feu que seuls les Pokémon Dynamax peuvent utiliser. Fait briller le soleil pendant cinq tours." + }, + "maxFlutterby": { + name: "Insectomax", + effect: "Une attaque de type Insecte que seuls les Pokémon Dynamax peuvent utiliser. Baisse l'Attaque Spéciale de la cible." + }, + "maxLightning": { + name: "Fulguromax", + effect: "Une attaque de type Électrik que seuls les Pokémon Dynamax peuvent utiliser. Crée un Champ Électrifié qui dure cinq tours." + }, + "maxStrike": { + name: "Normalomax", + effect: "Une attaque de type Normal que seuls les Pokémon Dynamax peuvent utiliser. Baisse la Vitesse de la cible." + }, + "maxKnuckle": { + name: "Pugilomax", + effect: "Une attaque de type Combat que seuls les Pokémon dynamax peuvent utiliser. Augmente l'Attaque des Alliés." + }, + "maxPhantasm": { + name: "Spectromax", + effect: "Une attaque de type Spectre que seuls les Pokémon Dynamax peuvent utiliser. Baisse la Défense de la cible." + }, + "maxHailstorm": { + name: "Cryomax", + effect: "Une attaque de type Glace que seuls les Pokémon Dynamax peuvent utiliser. Invoque une tempête de grêle qui dure cinq tours." + }, + "maxOoze": { + name: "Toxinomax", + effect: "Une attaque de type Poison que seuls les Pokémon Dynamax peuvent utiliser. Augmente l'Attaque Spéciale des alliés." + }, + "maxGeyser": { + name: "Hydromax", + effect: "Une attaque de type Eau que seuls les Pokémon Dynamax peuvent utiliser. Invoque de fortes pluies qui durent cinq tours." + }, + "maxAirstream": { + name: "Aéromax", + effect: "Une attaque de type Vol que seuls les Pokémon Dynamax peuvent utiliser. Augmente la Vitesse des alliés." + }, + "maxStarfall": { + name: "Enchantomax", + effect: "Une attaque de type Fée que seuls les Pokémon Dynamax peuvent utiliser. Crée un Champ Brumeux qui dure cinq tours." + }, + "maxWyrmwind": { + name: "Dracomax", + effect: "Une attaque de type Dragon que seuls les Pokémon Dynamax peuvent utiliser. Baisse l'Attaque de la cible." + }, + "maxMindstorm": { + name: "Psychomax", + effect: "Une attaque de type Psy que seuls les Pokémon Dynamax peuvent utiliser. Crée un Champ Psychique qui dure cinq tours." + }, + "maxRockfall": { + name: "Lithomax", + effect: "Une attaque de type Roche que seuls les Pokémon Dynamax peuvent utiliser. Invoque une tempête de sable qui dure cinq tours." + }, + "maxQuake": { + name: "Sismomax", + effect: "Une attaque de type Sol que seuls les Pokémon Dynamax peuvent utiliser. Augmente la Défense Spéciale des alliés." + }, + "maxDarkness": { + name: "Sinistromax", + effect: "Une attaque de type Ténèbres que seuls les Pokémon Dynamax peuvent utiliser. Baisse la Défense Spéciale de la cible." + }, + "maxOvergrowth": { + name: "Phytomax", + effect: "Une attaque de type Plante que seuls les Pokémon Dynamax peuvent utiliser. Crée un Champ Herbu qui dure cinq tours." + }, + "maxSteelspike": { + name: "Métallomax", + effect: "Une attaque de type Acier que seuls les Pokémon Dynamax peuvent utiliser. Augmente la Défense des alliés." + }, + "clangorousSoul": { + name: "Dracacophonie", + effect: "Sacrifie une partie de ses PV pour augmenter toutes ses statistiques." + }, + "bodyPress": { + name: "Big Splash", + effect: "Le lanceur utilise son corps pour attaquer sa cible. Plus la Défense du lanceur est élevée, plus les dégâts infligés sont importants." + }, + "decorate": { + name: "Nappage", + effect: "Augmente fortement l'Attaque et l'Attaque Spéciale du lanceur." + }, + "drumBeating": { + name: "Tambour Battant", + effect: "Le lanceur bat son tambour pour en diriger les racines sur la cible, l’attaquer, et baisser sa Vitesse." + }, + "snapTrap": { + name: "Troquenard", + effect: "Bloque l'ennemi pendant 4 à 5 tours." + }, + "pyroBall": { + name: "Ballon Brûlant", + effect: "Le lanceur attaque avec un ballon fait à partir d’un caillou enflammé. Peut aussi brûler la cible (10% de chances)." + }, + "behemothBlade": { + name: "Gladius Maximus", + effect: "Le lanceur se transforme en une immense épée et pourfend sa cible. Cette capacité inflige le double de dégâts aux Pokémon Dynamax." + }, + "behemothBash": { + name: "Aegis Maxima", + effect: "Le lanceur se transforme en un immense bouclier et charge sa cible. Cette capacité inflige le double de dégâts aux Pokémon Dynamax." + }, + "auraWheel": { + name: "Roue Libre", + effect: "Inflige et change en type Ténèbres" + }, + "breakingSwipe": { + name: "Abattage", + effect: "Le lanceur balaie violemment le camp adverse avec son immense queue. Baisse l’Attaque de la cible." + }, + "branchPoke": { + name: "Tapotige", + effect: "Le lanceur attaque sa cible en la piquant avec une branche pointue." + }, + "overdrive": { + name: "Overdrive", + effect: "Le lanceur gratte ses cordes de guitare ou de basse pour créer de violentes vibrations sonores qui blessent la cible." + }, + "appleAcid": { + name: "Acide Malique", + effect: "Le lanceur projette un liquide corrosif créé à partir d’une pomme acide sur la cible, ce qui baisse la Défense Spéciale de celle-ci." + }, + "gravApple": { + name: "Force G", + effect: "Le lanceur fait tomber une pomme de très haut sur la cible, ce qui baisse la Défense de celle-ci." + }, + "spiritBreak": { + name: "Choc Émotionnel", + effect: "Le lanceur attaque la cible avec une telle force que celle-ci peut s’en retrouver profondément troublée et voir son Attaque Spéciale baisser." + }, + "strangeSteam": { + name: "Vapeur Féérique", + effect: "Inflige des dégâts et peut rendre confus l'ennemi." + }, + "lifeDew": { + name: "Fontaine de Vie", + effect: "Le lanceur projette une eau mystérieuse sur le terrain pour restaurer ses PV et ceux de ses alliés au combat." + }, + "obstruct": { + name: "Blocage", + effect: "Protège le lanceur des attaques de contact. Baisse la Défense de deux crans si l'ennemi a tenté une attaque de contact." + }, + "falseSurrender": { + name: "Fourbette", + effect: "Le lanceur fait semblant de se prosterner et utilise ses cheveux pour transpercer sa cible. N’échoue jamais." + }, + "meteorAssault": { + name: "Joute Astrale", + effect: "Inflige de gros dégâts mais oblige le lanceur à se reposer pendant un tour." + }, + "eternabeam": { + name: "Laser Infinimax", + effect: "Inflige de gros dégâts mais oblige le lanceur à se reposer pendant un tour." + }, + "steelBeam": { + name: "Métalaser", + effect: "Le lanceur concentre du métal issu de tout son corps en un rayon qu’il projette violemment sur sa cible. Il subit aussi des dégâts." + }, + "expandingForce": { + name: "Vaste Pouvoir", + effect: "Le lanceur attaque la cible avec ses pouvoirs psychiques. Si un champ psychique est actif, la puissance de cette capacité augmente et elle touche tous les ennemis." + }, + "steelRoller": { + name: "Métalliroue", + effect: "Une attaque qui inflige des dégâts et fait disparaître le champ actif, mais qui échoue s’il n’y en a pas à ce moment." + }, + "scaleShot": { + name: "Rafale Écailles", + effect: "Le lanceur projette des écailles sur la cible de deux à cinq fois d’affilée. Augmente la Vitesse, mais diminue la Défense." + }, + "meteorBeam": { + name: "Laser Météore", + effect: "Le lanceur concentre l’énergie cosmique au premier tour, ce qui augmente son Attaque Spéciale, et frappe au second." + }, + "shellSideArm": { + name: "Kokiyarme", + effect: "Une attaque physique ou spéciale, en fonction de ce qui inflige le plus de dégâts à la cible. Peut aussi empoisonner." + }, + "mistyExplosion": { + name: "Explo-Brume", + effect: "Le lanceur frappe tous les Pokémon autour de lui en explosant, ce qui le met K.O. La puissance de cette attaque augmente si un champ brumeux est actif." + }, + "grassyGlide": { + name: "Gliss'Herbe", + effect: "Le lanceur attaque la cible en glissant sur le terrain. Frappe toujours en priorité si un champ herbu est actif." + }, + "risingVoltage": { + name: "Monte-Tension", + effect: "Des éclairs surgissent du sol et frappent la cible. La puissance de cette attaque est doublée si la cible est sur un champ électrifié." + }, + "terrainPulse": { + name: "Champlification", + effect: "Une attaque qui utilise la force des champs pour projeter une aura. Son type et sa puissance varient selon le champ actif." + }, + "skitterSmack": { + name: "Ravage Rampant", + effect: "Le lanceur rampe derrière la cible pour l’attaquer, ce qui baisse l’Attaque Spéciale de celle-ci." + }, + "burningJealousy": { + name: "Feu Envieux", + effect: "Le lanceur attaque sa cible avec toute sa jalousie. Cette capacité brûle tout Pokémon dont les stats ont augmenté pendant ce tour." + }, + "lashOut": { + name: "Cent Rancunes", + effect: "Le lanceur frappe la cible avec toute sa rancune. Si les stats du lanceur ont diminué pendant ce tour, la puissance de cette attaque est doublée." + }, + "poltergeist": { + name: "Esprit Frappeur", + effect: "Le lanceur manipule l’objet tenu par la cible pour l’attaquer. Cette capacité échoue si celle-ci ne tient rien." + }, + "corrosiveGas": { + name: "Gaz Corrosif", + effect: "Un gaz corrosif qui enveloppe tous les Pokémon alentour et qui dissout les objets qu’ils tiennent." + }, + "coaching": { + name: "Coaching", + effect: "Le lanceur coache ses alliés, augmentant ainsi leur Attaque et leur Défense." + }, + "flipTurn": { + name: "Eau Revoir", + effect: "Après son attaque, le lanceur revient à toute vitesse et change de place avec un Pokémon de l’équipe prêt à combattre." + }, + "tripleAxel": { + name: "Triple Axel", + effect: "Une série d’un à trois coups de pied distincts dont la puissance augmente à chaque fois que la capacité touche sa cible." + }, + "dualWingbeat": { + name: "Double Volée", + effect: "Le lanceur frappe la cible avec ses ailes deux fois d’affilée." + }, + "scorchingSands": { + name: "Sable Ardent", + effect: "Le lanceur projette du sable chauffé à blanc sur la cible, ce qui peut aussi la brûler (30% de chances)." + }, + "jungleHealing": { + name: "Selve Salvatrice", + effect: "Le lanceur fait appel au pouvoir de la jungle pour restaurer les PV et soigner les altérations d’état de ses alliés et de lui-même." + }, + "wickedBlow": { + name: "Poing Obscur", + effect: "Le lanceur assène un coup puissant à la cible. Cette technique qui inflige toujours un coup critique est réservée à ceux qui maîtrisent la puissance des Ténèbres." + }, + "surgingStrikes": { + name: "Torrent de Coups", + effect: "Le lanceur assène trois coups fluides à la cible. Cette technique qui inflige toujours un coup critique est réservée à ceux qui maîtrisent la puissance de l’Eau." + }, + "thunderCage": { + name: "Voltageôle", + effect: "Le lanceur frappe la cible, et le piège dans une prison électrique qui dure de quatre à cinq tours." + }, + "dragonEnergy": { + name: "Draco-Énergie", + effect: "Le lanceur utilise son énergie vitale pour attaquer la cible. Moins il a de PV, moins l’attaque est puissante." + }, + "freezingGlare": { + name: "Regard Glaçant", + effect: "Les yeux du lanceur tirent des rayons psychiques qui attaquent la cible et peuvent aussi la geler (10% de chances)." + }, + "fieryWrath": { + name: "Fureur Ardente", + effect: "Le lanceur canalise sa colère et la transforme en émanation brûlante, avec laquelle il attaque la cible, ce qui peut aussi apeurer celle-ci (20% de chances)." + }, + "thunderousKick": { + name: "Coup Fulgurant", + effect: "Le lanceur assène un coup de pied à la cible à la vitesse de l’éclair. Baisse aussi la Défense de la cible." + }, + "glacialLance": { + name: "Lance de Glace", + effect: "Le lanceur attaque la cible avec une lance de glace entourée d’un blizzard." + }, + "astralBarrage": { + name: "Éclat Spectral", + effect: "Le lanceur attaque la cible avec une multitude de petits spectres." + }, + "eerieSpell": { + name: "Sort Sinistre", + effect: "Le lanceur attaque avec de puissants pouvoirs psychiques et retire 3 PP de la dernière capacité utilisée par la cible." + }, + "direClaw": { + name: "Griffes Funestes", + effect: "Le lanceur attaque avec des griffes destructrices en visant les points faibles. La cible peut aussi être empoisonnée, paralysée, ou endormie." + }, + "psyshieldBash": { + name: "Sprint Bouclier", + effect: "Le lanceur s’enveloppe d’énergie psychique et frappe sa cible de plein fouet. Cela augmente également la Défense du lanceur." + }, + "powerShift": { + name: "Échange Force", + effect: "Le lanceur échange son Attaque avec sa Défense." + }, + "stoneAxe": { + name: "Hache de Pierre", + effect: "Le lanceur attaque le point faible de sa cible avec sa hache de pierre. Les débris de pierre se mettent alors à flotter autour de la cible." + }, + "springtideStorm": { + name: "Typhon Passionné", + effect: "Le lanceur déclenche un violent typhon de haine et d’amour qui s’abat sur la cible. Peut baisser l’Attaque de celle-ci." + }, + "mysticalPower": { + name: "Force Mystique", + effect: "Le lanceur attaque en libérant un pouvoir mystique. Cela augmente également son Attaque Spéciale." + }, + "ragingFury": { + name: "Grand Courroux", + effect: "Le lanceur se déchaîne et attaque en projetant de violentes flammes pendant deux ou trois tours. Il devient ensuite confus." + }, + "waveCrash": { + name: "Aquatacle", + effect: "Le lanceur se recouvre entièrement d’eau avant de charger sa cible. Cela blesse aussi gravement le lanceur." + }, + "chloroblast": { + name: "Herblast", + effect: "Le lanceur tire un concentré de sa propre chlorophylle sur la cible, ce qui le blesse également." + }, + "mountainGale": { + name: "Bise Glaciaire", + effect: "Le lanceur envoie un bloc de glace de la taille d’un iceberg sur la cible, ce qui peut aussi l’apeurer (30% de chances)." + }, + "victoryDance": { + name: "Danse Victoire", + effect: "Le lanceur danse vigoureusement pour invoquer la victoire, ce qui augmente son Attaque, sa Défense et sa Vitesse." + }, + "headlongRush": { + name: "Assaut Frontal", + effect: "Le lanceur charge la cible de toutes ses forces, ce qui baisse la Défense et la Défense Spéciale du lanceur." + }, + "barbBarrage": { + name: "Multitoxik", + effect: "Une multitude de pointes toxiques frappent la cible et peuvent l’empoisonner. La puissance est doublée si celle-ci est déjà empoisonnée (30% de chances en Style Normal et 50% de chances en Style Puissant)." + }, + "esperWing": { + name: "Ailes Psycho", + effect: "Le lanceur entaille la cible avec ses ailes renforcées par une émanation psychique. Taux de critiques élevé. Cela augmente la Vitesse du lanceur." + }, + "bitterMalice": { + name: "Coeur de Rancoeur", + effect: "Une rancœur glaciale frappe la cible et baisse son Attaque." + }, + "shelter": { + name: "Mur Fumigène", + effect: "Rend la peau du lanceur dure comme un mur de fer, ce qui augmente beaucoup sa Défense." + }, + "tripleArrows": { + name: "Triple Flèche", + effect: "Le lanceur donne un coup de pied et tire trois flèches simultanément, ce qui peut baisser la Défense de la cible ou l’apeurer (30% de chances). Taux de critiques élevé." + }, + "infernalParade": { + name: "Cortège Funèbre", + effect: "Une multitude de boules de feu frappent la cible, ce qui peut aussi la brûler (30% de chances et 50% en Style Puissant). La puissance est doublée si celle-ci souffre d’une altération de statut." + }, + "ceaselessEdge": { + name: "Vagues à Lames", + effect: "Des lames de coquillages entaillent la cible en visant ses points faibles. Les débris de coquillage se répandent sous la forme de picots aux pieds de la cible." + }, + "bleakwindStorm": { + name: "Typhon Hivernal", + effect: "Le lanceur déclenche un typhon froid et brutal qui fait trembler le cœur et le corps de la cible, ce qui peut aussi baisser sa Vitesse." + }, + "wildboltStorm": { + name: "Typhon Fulgurant", + effect: "Le lanceur déclenche un violent typhon orageux dont les rafales et la foudre frappent la cible, ce qui peut aussi la paralyser (30% de chances en Style Normal et 50% en Style Puissant)." + }, + "sandsearStorm": { + name: "Typhon Pyrosable", + effect: "Le lanceur déclenche un violent typhon mêlé à du sable ardent qui s’abat sur la cible, ce qui peut la brûler (30% de chances et 50% en Style Puissant)." + }, + "lunarBlessing": { + name: "Prière Lunaire", + effect: "Le lanceur adresse une prière à la lune pour restaurer les PV et soigner ses altérations de statut ainsi que celles de ses alliés." + }, + "takeHeart": { + name: "Extravaillance", + effect: "Le lanceur fait preuve de bravoure pour soigner ses altérations de statut et augmenter sa puissance offensive et défensive." + }, + "gMaxWildfire": { + name: "Fournaise G-Max", + effect: "Une attaque de type Feu que seul un Dracaufeu Gigamax peut utiliser. Pendant quatre tours, la cible continue de subir des dégâts." + }, + "gMaxBefuddle": { + name: "Illusion G-Max", + effect: "Une attaque de type Insecte que seul un Papilusion Gigamax peut utiliser. Empoisonne, paralyse ou endort la cible." + }, + "gMaxVoltCrash": { + name: "Foudre G-Max", + effect: "Une attaque de type Électrik que seul un Pikachu Gigamax peut utiliser. Paralyse la cible." + }, + "gMaxGoldRush": { + name: "Pactole G-Max", + effect: "Une attaque de type Normal que seul un Miaouss Gigamax peut utiliser. Rend la cible confuse et permet d'obtenir de l'argent à la fin du combat." + }, + "gMaxChiStrike": { + name: "Frappe G-Max", + effect: "Une attaque de type Combat que seul un Mackogneur Gigamax peut utiliser. Augmente le taux de critiques du lanceur et de ses alliés." + }, + "gMaxTerror": { + name: "Hantise G-Max", + effect: "Une attaque de type Spectre que seul un Ectoplasma Gigamax peut utiliser. Empêche les Pokémon ennemis de quitter le combat." + }, + "gMaxResonance": { + name: "Résonance G-Max", + effect: "Une attaque de type Glace que seul un Lokhlass Gigamax peut utiliser. Réduit les dégâts causés par des capacités pendant cinq tours." + }, + "gMaxCuddle": { + name: "Câlin G-Max", + effect: "Une attaque de type Normal que seul un Évoli Gigamax peut utiliser. Rend la cible amoureuse." + }, + "gMaxReplenish": { + name: "Récolte G-Max", + effect: "Une attaque de type Normal que seul un Ronflex Gigamax peut utiliser. Restaure une Baie tenue qui a déjà été mangée." + }, + "gMaxMalodor": { + name: "Pestilence G-Max", + effect: "Une attaque de type Poison que seul un Miasmax Gigamax peut utiliser. Empoisonne la cible." + }, + "gMaxStonesurge": { + name: "Récif G-Max", + effect: "Une attaque de type Eau que seul un Torgamord Gigamax peut utiliser. Disperse des pierres aiguisées sur le terrain." + }, + "gMaxWindRage": { + name: "Rafale G-Max", + effect: "Une attaque de type Vol que seul un Corvaillus Gigamax peut utiliser. Permet de briser les barrières comme Protection et Mur Lumière." + }, + "gMaxStunShock": { + name: "Choc G-Max", + effect: "Une attaque de type Électrik que seul un Salarsen Gigamax peut utiliser. Empoisonne ou paralyse la cible." + }, + "gMaxFinale": { + name: "Cure G-Max", + effect: "Une attaque de type Fée que seul un Charmilly Gigamax peut utiliser. Restaure des PV aux alliés." + }, + "gMaxDepletion": { + name: "Usure G-Max", + effect: "Une attaque de type Dragon que seul un Duralugon Gigamax peut utiliser. Baisse les PP de la dernière capacité utilisée par la cible." + }, + "gMaxGravitas": { + name: "Ondes G-Max", + effect: "Une attaque de type Psy que seul un Astronelle Gigamax peut utiliser. Intensifie la gravité pendant cinq tours." + }, + "gMaxVolcalith": { + name: "Téphra G-Max", + effect: "Une attaque de type Roche que seul un Monthracite Gigamax peut utiliser. Pendant quatre tours, la cible continue de subir des dégâts." + }, + "gMaxSandblast": { + name: "Enlisement G-Max", + effect: "Une attaque de type Sol que seul un Dunaconda Gigamax peut utiliser. Emprisonne la cible dans une tempête de sable qui dure de quatre à cinq tours." + }, + "gMaxSnooze": { + name: "Torpeur G-Max", + effect: "Une attaque de type Ténèbres que seul un Angoliath Gigamax peut utiliser. Fait bâiller la cible qui s'endort au tour suivant." + }, + "gMaxTartness": { + name: "Corrosion G-Max", + effect: "Une attaque de type Plante que seul un Pomdrapi Gigamax peut utiliser. Réduit l'Esquive de la cible." + }, + "gMaxSweetness": { + name: "Nectar G-Max", + effect: "Une attaque de type Plante que seul un Dratatin Gigamax peut utiliser. Soigne les altérations de statut des alliés." + }, + "gMaxSmite": { + name: "Sentence G-Max", + effect: "Une attaque de type Fée que seul un Sorcilence Gigamax peut utiliser. Rend la cible confuse." + }, + "gMaxSteelsurge": { + name: "Percée G-Max", + effect: "Une attaque de type Acier que seul un Pachyradjah Gigamax peut utiliser. Disperse des pics aiguisés sur le terrain." + }, + "gMaxMeltdown": { + name: "Fonte G-Max", + effect: "Une attaque de type Acier que seul un Melmetal Gigamax peut utiliser. Empêche la cible d'utiliser la même capacité deux fois de suite." + }, + "gMaxFoamBurst": { + name: "Bulles G-Max", + effect: "Une attaque de type Eau que seul un Krabboss Gigamax peut utiliser. Réduit beaucoup la Vitesse de la cible." + }, + "gMaxCentiferno": { + name: "Combustion G-Max", + effect: "Une attaque de type Feu que seul un Scolocendre Gigamax peut utiliser. Emprisonne la cible dans un tourbillon de flammes qui dure de quatre à cinq tours." + }, + "gMaxVineLash": { + name: "Fouet G-Max", + effect: "Une attaque de type Plante que seul un Florizarre Gigamax peut utiliser. Inflige des dégâts à la cible pendant quatre tours." + }, + "gMaxCannonade": { + name: "Canonnade G-Max", + effect: "Une attaque de type Eau que seul un Tortank Gigamax peut utiliser. Inflige des dégâts à la cible pendant quatre tours." + }, + "gMaxDrumSolo": { + name: "Percussion G-Max", + effect: "Une attaque de type Plante que seul un Gorythmic Gigamax peut utiliser. Ignore le talent de la cible." + }, + "gMaxFireball": { + name: "Pyroball G-Max", + effect: "Une attaque de type Feu que seul un Pyrobut Gigamax peut utiliser. Ignore le talent de la cible." + }, + "gMaxHydrosnipe": { + name: "Gâchette G-Max", + effect: "Une attaque de type Eau que seul un Lézargus Gigamax peut utiliser. Ignore le talent de la cible." + }, + "gMaxOneBlow": { + name: "Coup Final G-Max", + effect: "Une attaque de type Ténèbres que seul un Shifours Gigamax peut utiliser. Cette frappe unique permet d'ignorer la capacité Gardomax." + }, + "gMaxRapidFlow": { + name: "Multicoup G-Max", + effect: "Une attaque de type Eau que seul un Shifours Gigamax peut utiliser. Cet enchaînement de coups permet d'ignorer la capacité Gardomax." + }, + "teraBlast": { + name: "Téra Explosion", + effect: "Si le lanceur est téracristallisé, il libère l’énergie de son type Téracristal. La capacité utilise l’Attaque ou l’Attaque Spéciale, selon ce qui infligera le plus de dégâts." + }, + "silkTrap": { + name: "Piège de Fil", + effect: "Le lanceur déploie un piège de fil pour se protéger contre les attaques, et si un assaillant utilise une attaque directe contre lui, la Vitesse de l’assaillant baisse." + }, + "axeKick": { + name: "Talon-Marteau", + effect: "Le lanceur donne un coup de talon descendant à la cible, ce qui peut aussi la rendre confuse. S’il échoue, le lanceur se blesse." + }, + "lastRespects": { + name: "Hommage Posthume", + effect: "Le lanceur attaque pour venger ses alliés. Plus le nombre de Pokémon alliés mis K.O. est élevé, plus la puissance de cette capacité augmente." + }, + "luminaCrash": { + name: "Lumino-Impact", + effect: "Le lanceur attaque en émettant une étrange lumière qui ébranle l’esprit de la cible. Cela baisse beaucoup la Défense Spéciale de la cible." + }, + "orderUp": { + name: "Plat du Jour", + effect: "Le lanceur attaque avec adresse et élégance. S’il a un Nigirigon dans la gueule, une de ses stats augmente en fonction de la forme de celui-ci." + }, + "jetPunch": { + name: "Poing Sonique", + effect: "Le lanceur enveloppe son poing d’un torrent furieux et attaque si rapidement qu’on peine à le discerner. Frappe en priorité." + }, + "spicyExtract": { + name: "Habanerage", + effect: "Le lanceur relâche un concentré extrêmement pimenté sur la cible, ce qui augmente beaucoup l’Attaque de celle-ci, mais baisse aussi beaucoup sa Défense." + }, + "spinOut": { + name: "Dérapage", + effect: "Le lanceur met tout son poids sur ses pattes et effectue de violentes rotations, ce qui inflige des dégâts à la cible, mais baisse beaucoup la Vitesse du lanceur." + }, + "populationBomb": { + name: "Prolifération", + effect: "Le lanceur et ses congénères prolifèrent en masse et attaquent ensemble d’une à dix fois d’affilée." + }, + "iceSpinner": { + name: "Cryo-Pirouette", + effect: "Le lanceur enveloppe ses jambes d’une fine couche de glace et heurte la cible en tournant sur lui-même. Ses rotations détruisent le champ actif sur le terrain." + }, + "glaiveRush": { + name: "Charge Glaive", + effect: "Le lanceur se jette dans une charge inconsciente sur la cible. Au tour suivant, l’attaque de la cible inflige le double de dégâts et n’échoue jamais." + }, + "revivalBlessing": { + name: "Second Souffle", + effect: "Dans un élan de compassion, le lanceur adresse une prière afin de ranimer un Pokémon de l’équipe K.O. en lui rendant la moitié de ses PV." + }, + "saltCure": { + name: "Salaison", + effect: "Le lanceur couvre la cible de sel, ce qui lui inflige des dégâts à chaque tour. Si la cible est de type Acier ou Eau, ces dégâts sont plus élevés." + }, + "tripleDive": { + name: "Triple Plongeon", + effect: "Le lanceur effectue des plongeons parfaitement cadencés pour éclabousser la cible et lui infliger des dégâts trois fois d’affilée." + }, + "mortalSpin": { + name: "Toupie Éclat", + effect: "Le lanceur attaque en tournant sur lui-même et empoisonne la cible. Il se libère également des effets de capacités comme Étreinte, Ligotage ou Vampigraine." + }, + "doodle": { + name: "Décalquage", + effect: "Le lanceur capture l’essence de la cible et la décalque. Le talent du lanceur et de ses alliés devient alors identique à celui de la cible." + }, + "filletAway": { + name: "Décharnement", + effect: "Le lanceur sacrifie des PV pour beaucoup augmenter son Attaque, son Attaque Spéciale, et sa Vitesse." + }, + "kowtowCleave": { + name: "Génusection", + effect: "Le lanceur se prosterne devant la cible et profite de cette distraction pour l’attaquer avec une lame. N’échoue jamais." + }, + "flowerTrick": { + name: "Magie Florale", + effect: "Le lanceur attaque en jetant un bouquet de fleurs piégé sur la cible. N’échoue jamais et inflige toujours un coup critique." + }, + "torchSong": { + name: "Chant Flamboyant", + effect: "Le lanceur carbonise la cible en projetant sur elle de vives flammes créées par un chant. Cette capacité augmente l’Attaque Spéciale du lanceur." + }, + "aquaStep": { + name: "Danse Aquatique", + effect: "Le lanceur se joue de la cible et lui inflige des dégâts avec ses pas de danse gracieux et légers. Cette capacité augmente la Vitesse du lanceur." + }, + "ragingBull": { + name: "Taurogne", + effect: "Le lanceur charge la cible comme un taureau enragé. Le type de cette capacité dépend de la race du lanceur, et brise les barrières comme Mur Lumière et Protection." + }, + "makeItRain": { + name: "Ruée d'Or", + effect: "Le lanceur attaque en lançant de nombreuses pièces, ce qui baisse son Attaque Spéciale. Permet d’obtenir plus d’argent à la fin du combat." + }, + "psyblade": { + name: "Lame Psychique", + effect: "Le lanceur lacère la cible à l'aide d'une lame intangible. S'il se trouve dans un champ électrifié, la puissance de cette capacité augmente de 50 %." + }, + "hydroSteam": { + name: "Hydrovapeur", + effect: "Le lanceur asperge la cible avec un puissant jet d'eau bouillante. Quand le soleil brille, la puissance de cette capacité augmente de 50 % au lieu de baisser." + }, + "ruination": { + name: "Cataclysme", + effect: "Le lanceur déclenche un cataclysme qui baisse les PV de la cible de moitié." + }, + "collisionCourse": { + name: "Nitro Crash", + effect: "Le lanceur change de forme et s’écrase sur la cible dans une explosion antique. Si la capacité est super efficace, elle inflige encore plus de dégâts que d’ordinaire." + }, + "electroDrift": { + name: "Turbo Volt", + effect: "Le lanceur change de forme et fonce sur la cible en la perforant d’électricité futuriste. Si la capacité est super efficace, sa puissance augmente encore plus." + }, + "shedTail": { + name: "Queulonage", + effect: "Le lanceur crée un clone en sacrifiant des PV, puis il revient et échange sa place avec un Pokémon de l’équipe prêt à combattre." + }, + "chillyReception": { + name: "Neigeux de Mots", + effect: "Le lanceur fait un si mauvais jeu de mots qu’il jette un froid et échange sa place avec un Pokémon de l’équipe prêt à combattre. La neige tombe pendant cinq tours." + }, + "tidyUp": { + name: "Grand Nettoyage", + effect: "Le lanceur fait le ménage sur le terrain, ce qui annule les effets de Picots, Piège de Roc, Toile Gluante, Pics Toxik, et Clonage. Augmente l’Attaque et la Vitesse du lanceur." + }, + "snowscape": { + name: "Chute de Neige", + effect: "Le lanceur invoque une tempête de neige qui dure cinq tours, ce qui augmente la Défense des Pokémon de type Glace." + }, + "pounce": { + name: "Bond", + effect: "Le lanceur attaque en bondissant sur la cible, ce qui baisse la Vitesse de celle-ci." + }, + "trailblaze": { + name: "Désherbaffe", + effect: "Le lanceur surgit des hautes herbes pour attaquer la cible. Les mouvements agiles du lanceur augmentent sa Vitesse." + }, + "chillingWater": { + name: "Douche Froide", + effect: "Le lanceur attaque la cible en l’arrosant d’une eau si froide qu’elle détériore son esprit combatif. Baisse l’Attaque de la cible." + }, + "hyperDrill": { + name: "Hyperceuse", + effect: "Le lanceur fait tourner à toute vitesse la partie pointue de son corps afin de transpercer la cible. Ignore même les capacités comme Abri ou Détection." + }, + "twinBeam": { + name: "Double Laser", + effect: "Le lanceur projette d’étranges rayons lumineux avec ses yeux et inflige des dégâts deux fois d’affilée." + }, + "rageFist": { + name: "Poing de Colère", + effect: "Le lanceur transforme sa colère en énergie pour attaquer. Plus il a subi d’attaques, plus la puissance de cette capacité augmente." + }, + "armorCannon": { + name: "Canon Blindé", + effect: "Le lanceur tire un boulet de canon ardent provenant de sa propre armure sur la cible. Cela baisse la Défense et la Défense Spéciale du lanceur." + }, + "bitterBlade": { + name: "Lame en Peine", + effect: "Le lanceur concentre son amertume du monde des vivants dans la pointe de ses épées et tranche la cible. La moitié des dégâts infligés sont convertis en PV pour le lanceur." + }, + "doubleShock": { + name: "Double Décharge", + effect: "Le lanceur libère toute l’électricité contenue dans son corps pour infliger des dégâts élevés à la cible. Le lanceur perd le type Électrik." + }, + "gigatonHammer": { + name: "Marteau Mastoc", + effect: "Le lanceur met tout son corps à contribution pour attaquer la cible avec un immense marteau. Cette capacité ne peut pas être utilisée deux fois d’affilée." + }, + "comeuppance": { + name: "Vindicte", + effect: "Le lanceur contre-attaque avec un coup infligeant des dégâts supérieurs à ceux de la dernière capacité qui l’a blessé." + }, + "aquaCutter": { + name: "Tranch'Aqua", + effect: "Le lanceur projette de l’eau pressurisée qui entaille la cible comme une lame. Taux de critiques élevé." + }, + "blazingTorque": { + name: "Crash Brûlant", + effect: "Crash Brûlant inflige des dégâts et possède 30 % de chances de brûler l'adversaire." + }, + "wickedTorque": { + name: "Crash Obscur", + effect: "Crash Obscur inflige des dégâts et possède 10 % de chances d'endormir l'adversaire." + }, + "noxiousTorque": { + name: "Crash Toxique", + effect: "Crash Toxique inflige des dégâts et possède 30 % de chances d'empoisonner l'adversaire." + }, + "combatTorque": { + name: "Crash Musclé", + effect: "Crash Musclé inflige des dégâts et possède 30 % de chances de paralyser l'adversaire." + }, + "magicalTorque": { + name: "Crash Magique", + effect: "Crash Magique inflige des dégâts et possède 30 % de chances de rendre l'adversaire confus." + }, + "bloodMoon": { + name: "Lune Rouge", + effect: "Le lanceur concentre toute son énergie dans la lune rouge sang sur son front et la projette sur la cible. Cette capacité ne peut pas être utilisée deux fois d'affilée." + }, + "matchaGotcha": { + name: "Mortier Matcha", + effect: "Le lanceur remue son thé et en bombarde la cible. La moitié des dégâts infligés sont convertis en PV pour le lanceur. Cette capacité peut aussi brûler la cible." + }, + "syrupBomb": { + name: "Bombe au sirop", + effect: "Le lanceur jette une bombe qui recouvre la cible de sirop gluant et fait progressivement baisser la Vitesse de la cible pendant trois tours." + }, + "ivyCudgel": { + name: "Massue Liane", + effect: "Le lanceur frappe la cible à l'aide d'une massue entourée d'une liane. Le type de cette capacité varie en fonction du masque que porte le lanceur. Taux de critiques élevé." + }, + "electroShot": { + name: "Fulgurayon", + effect: "Le lanceur absorbe de l'électricité au premier tour, ce qui augmente son Attaque Spéciale, et envoie une puissante décharge au second. S'il pleut, il l'envoie au premier tour." + }, + "teraStarstorm": { + name: "Pluie Térastrale", + effect: "Le lanceur bombarde la cible afin de l'éliminer grâce au pouvoir des cristaux. Si le lanceur est Terapagos sous sa Forme Stellaire, la capacité touche tous les ennemis." + }, + "fickleBeam": { + name: "Laser Hasard", + effect: "Le lanceur attaque en tirant un rayon lumineux. Il arrive parfois que toutes les têtes agissent ensemble, ce qui double la puissance de la capacité." + }, + "burningBulwark": { + name: "Rempart Brûlant", + effect: "Le lanceur se protège contre les attaques grâce à son pelage incandescent, et si un assaillant utilise une attaque directe contre lui, il le brûle." + }, + "thunderclap": { + name: "Vif Éclair", + effect: "Permet au lanceur d’attaquer la cible en priorité avec une décharge électrique. Échoue si la cible ne prépare pas une attaque." + }, + "mightyCleave": { + name: "Lame Puissante", + effect: "Le lanceur pourfend la cible avec la lumière accumulée sur sa tête. Cette attaque passe outre les protections." + }, + "tachyonCutter": { + name: "Lame Tachyonique", + effect: "Le lanceur concentre des particules élémentaires pour créer une lame qui inflige des dégâts à la cible deux fois d’affilée. N'échoue jamais." + }, + "hardPress": { + name: "Pression Extrême", + effect: "Le lanceur écrase la cible avec ses bras ou ses pinces. Plus il reste de PV à la cible, plus la puissance de la capacité augmente." + }, + "dragonCheer": { + name: "Cri Draconique", + effect: "Le lanceur galvanise ses alliés avec un encouragement draconique qui augmente leur taux de critiques. L'effet est plus puissant si les alliés ont le type Dragon." + }, + "alluringVoice": { + name: "Voix Envoûtante", + effect: "Le lanceur attaque la cible avec sa voix angélique. Cette capacité rend la cible confuse si ses stats ont augmenté pendant ce tour." + }, + "temperFlare": { + name: "Indignition", + effect: "Le lanceur utilise la force de son dépit pour attaquer. S'il a utilisé une capacité qui a échoué au tour précédent, la puissance d'Indignition est doublée." + }, + "supercellSlam": { + name: "Volt Assaut", + effect: "Le lanceur se charge en électricité et fond sur la cible. S'il échoue, le lanceur se blesse." + }, + "psychicNoise": { + name: "Dissonance Psy", + effect: "Le lanceur attaque avec des ondes sonores dissonantes. Cela empêche la cible de récupérer des PV à l'aide de capacités, talents ou objets tenus pendant 2 tours." + }, + "upperHand": { + name: "Prio-Parade", + effect: "Le lanceur réagit instinctivement au moindre mouvement et donne un coup de paume qui apeure la cible. Échoue si cette dernière n'a pas utilisé une attaque prioritaire." + }, + "malignantChain": { + name: "Chaîne Malsaine", + effect: "Le lanceur ligote la cible avec une chaîne faite de poison et lui injecte un venin corrosif, ce qui peut aussi gravement l'empoisonner." + } } as const; \ No newline at end of file From fe288ce16c23e778887fdee51a2c3ac16a3643ee Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Thu, 18 Apr 2024 08:40:42 -0400 Subject: [PATCH 04/11] Add French move translation TS classes --- src/locales/en/move.ts | 9 +-------- src/locales/fr/move.ts | 4 +++- src/plugins/i18n.ts | 9 +++++++++ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/locales/en/move.ts b/src/locales/en/move.ts index 7af9a20bf9c..67e7161dde8 100644 --- a/src/locales/en/move.ts +++ b/src/locales/en/move.ts @@ -1,11 +1,4 @@ -interface MoveTranslationEntry { - name: string, - effect: string -} - -interface MoveTranslations { - [key: string]: MoveTranslationEntry -} +import { MoveTranslations } from "#app/plugins/i18n"; export const move: MoveTranslations = { "pound": { diff --git a/src/locales/fr/move.ts b/src/locales/fr/move.ts index 384f7145b21..31ca5eba024 100644 --- a/src/locales/fr/move.ts +++ b/src/locales/fr/move.ts @@ -1,4 +1,6 @@ -export const move = { +import { MoveTranslations } from "#app/plugins/i18n"; + +export const move: MoveTranslations = { "pound": { name: "Écras'Face", effect: "Le lanceur écrase la cible avec l’un de ses membres, tels qu’une de ses pattes avant ou sa longue queue." diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index fc67c655c15..8e4997f5d8d 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -6,6 +6,15 @@ import { menu as frMenu } from '../locales/fr/menu'; import { move as enMove } from '../locales/en/move'; import { move as frMove } from '../locales/fr/move'; +export interface MoveTranslationEntry { + name: string, + effect: string +} + +export interface MoveTranslations { + [key: string]: MoveTranslationEntry +} + const DEFAULT_LANGUAGE_OVERRIDE = ''; /** From 5bd1577667ca042ecaa0e1b2ebc2b805c979d674 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Thu, 18 Apr 2024 08:54:49 -0400 Subject: [PATCH 05/11] Change passives to exclude Disguise --- src/data/pokemon-species.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 7dec417876b..786ccd881d5 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -3234,7 +3234,7 @@ export const starterPassiveAbilities = { [Species.ZIGZAGOON]: Abilities.PICKPOCKET, [Species.WURMPLE]: Abilities.TINTED_LENS, [Species.LOTAD]: Abilities.DRIZZLE, - [Species.SEEDOT]: Abilities.DISGUISE, + [Species.SEEDOT]: Abilities.EARLY_BIRD, [Species.TAILLOW]: Abilities.KEEN_EYE, [Species.WINGULL]: Abilities.HYDRATION, [Species.RALTS]: Abilities.PSYCHIC_SURGE, @@ -3409,7 +3409,7 @@ export const starterPassiveAbilities = { [Species.AXEW]: Abilities.SHEER_FORCE, [Species.CUBCHOO]: Abilities.INTIMIDATE, [Species.CRYOGONAL]: Abilities.DAZZLING, - [Species.SHELMET]: Abilities.DISGUISE, + [Species.SHELMET]: Abilities.TOXIC_DEBRIS, [Species.STUNFISK]: Abilities.STORM_DRAIN, [Species.MIENFOO]: Abilities.NO_GUARD, [Species.DRUDDIGON]: Abilities.INTIMIDATE, @@ -3639,7 +3639,7 @@ export const starterPassiveAbilities = { [Species.OKIDOGI]: Abilities.INTIMIDATE, [Species.MUNKIDORI]: Abilities.PRANKSTER, [Species.FEZANDIPITI]: Abilities.DAZZLING, - [Species.OGERPON]: Abilities.DISGUISE, + [Species.OGERPON]: Abilities.UNNERVE, [Species.GOUGING_FIRE]: Abilities.BEAST_BOOST, [Species.RAGING_BOLT]: Abilities.BEAST_BOOST, [Species.IRON_BOULDER]: Abilities.SHARPNESS, From 3a64a8390a1bffae18b4fe7931e045c10fd4c46b Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Thu, 18 Apr 2024 16:47:12 +1000 Subject: [PATCH 06/11] Implement Psych Up --- src/data/move.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index bfbf21450f6..bffd7a826ce 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1461,6 +1461,24 @@ export class CutHpStatBoostAttr extends StatChangeAttr { } } +export class CopyStatsAttr extends MoveEffectAttr { + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (!super.apply(user, target, move, args)) + return false; + + for (let s = 0; s < target.summonData.battleStats.length; s++) + user.summonData.battleStats[s] = target.summonData.battleStats[s]; + if (target.getTag(BattlerTagType.CRIT_BOOST)) + user.addTag(BattlerTagType.CRIT_BOOST, 0, move.id); + else + user.removeTag(BattlerTagType.CRIT_BOOST); + + target.scene.queueMessage(getPokemonMessage(user, 'copied\n') + getPokemonMessage(target, `'s stat changes!`)); + + return true; + } +} + export class InvertStatsAttr extends MoveEffectAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { if (!super.apply(user, target, move, args)) @@ -4156,7 +4174,7 @@ export function initMoves() { .attr(CounterDamageAttr, (move: Move) => move.category === MoveCategory.SPECIAL, 2) .target(MoveTarget.ATTACKER), new StatusMove(Moves.PSYCH_UP, Type.NORMAL, -1, 10, -1, 0, 2) - .unimplemented(), + .attr(CopyStatsAttr), new AttackMove(Moves.EXTREME_SPEED, Type.NORMAL, MoveCategory.PHYSICAL, 80, 100, 5, -1, 2, 2), new AttackMove(Moves.ANCIENT_POWER, Type.ROCK, MoveCategory.SPECIAL, 60, 100, 5, 10, 0, 2) .attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.DEF, BattleStat.SPATK, BattleStat.SPDEF, BattleStat.SPD ], 1, true), From 453c5644aa3b89e5e49b67790581a1a95c6ef768 Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Thu, 18 Apr 2024 15:44:03 +1000 Subject: [PATCH 07/11] Fix mold breaker + implement neutralising gas --- src/data/ability.ts | 32 ++++++++++++++++++++++++++++---- src/data/move.ts | 26 +++++++++++++++++++++----- src/field/pokemon.ts | 18 ++++++++++++++++-- src/phases.ts | 6 ++---- 4 files changed, 67 insertions(+), 15 deletions(-) diff --git a/src/data/ability.ts b/src/data/ability.ts index b30104e4b65..c31847aa6c3 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -2034,13 +2034,35 @@ export class SyncEncounterNatureAbAttr extends AbAttr { } export class MoveAbilityBypassAbAttr extends AbAttr { + private moveIgnoreFunc: (pokemon: Pokemon, move: Move) => boolean; + + constructor(moveIgnoreFunc?: (pokemon: Pokemon, move: Move) => boolean) { + super(false); + + this.moveIgnoreFunc = moveIgnoreFunc || ((pokemon, move) => true); + } + + apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { + if (this.moveIgnoreFunc(pokemon, (args[0] as Move))) { + cancelled.value = true; + return true; + } + return false; + } +} + +export class SuppressFieldAbilitiesAbAttr extends AbAttr { constructor() { super(false); } apply(pokemon: Pokemon, passive: boolean, cancelled: Utils.BooleanHolder, args: any[]): boolean { - cancelled.value = true; - return true; + const ability = (args[0] as Ability); + if (!ability.hasAttr(UnsuppressableAbilityAbAttr) && !ability.hasAttr(SuppressFieldAbilitiesAbAttr)) { + cancelled.value = true; + return true; + } + return false; } } @@ -2912,7 +2934,8 @@ export function initAbilities() { .attr(PostDefendAbilitySwapAbAttr) .bypassFaint(), new Ability(Abilities.GORILLA_TACTICS, "Gorilla Tactics (N)", "Boosts the Pokémon's Attack stat but only allows the use of the first selected move.", 8), - new Ability(Abilities.NEUTRALIZING_GAS, "Neutralizing Gas (N)", "If the Pokémon with Neutralizing Gas is in the battle, the effects of all Pokémon's Abilities will be nullified or will not be triggered.", 8) + new Ability(Abilities.NEUTRALIZING_GAS, "Neutralizing Gas (P)", "If the Pokémon with Neutralizing Gas is in the battle, the effects of all Pokémon's Abilities will be nullified or will not be triggered.", 8) + .attr(SuppressFieldAbilitiesAbAttr) .attr(UncopiableAbilityAbAttr) .attr(UnswappableAbilityAbAttr) .attr(NoTransformAbilityAbAttr), @@ -3028,7 +3051,8 @@ export function initAbilities() { new Ability(Abilities.EARTH_EATER, "Earth Eater", "If hit by a Ground-type move, the Pokémon has its HP restored instead of taking damage.", 9) .attr(TypeImmunityHealAbAttr, Type.GROUND) .ignorable(), - new Ability(Abilities.MYCELIUM_MIGHT, "Mycelium Might (N)", "The Pokémon will always act more slowly when using status moves, but these moves will be unimpeded by the Ability of the target.", 9), + new Ability(Abilities.MYCELIUM_MIGHT, "Mycelium Might (P)", "The Pokémon will always act more slowly when using status moves, but these moves will be unimpeded by the Ability of the target.", 9) + .attr(MoveAbilityBypassAbAttr, (pokemon, move: Move) => move.category === MoveCategory.STATUS), new Ability(Abilities.MINDS_EYE, "Mind's Eye (N)", "The Pokémon ignores changes to opponents' evasiveness, its accuracy can't be lowered, and it can hit Ghost types with Normal- and Fighting-type moves.", 9) .ignorable(), new Ability(Abilities.SUPERSWEET_SYRUP, "Supersweet Syrup (N)", "A sickly sweet scent spreads across the field the first time the Pokémon enters a battle, lowering the evasiveness of opposing Pokémon.", 9), diff --git a/src/data/move.ts b/src/data/move.ts index bffd7a826ce..29cd2fdc5c7 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -12,7 +12,7 @@ import * as Utils from "../utils"; import { WeatherType } from "./weather"; import { ArenaTagSide, ArenaTrapTag } from "./arena-tag"; import { ArenaTagType } from "./enums/arena-tag-type"; -import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, NoTransformAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr } from "./ability"; +import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, NoTransformAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr } from "./ability"; import { Abilities } from "./enums/abilities"; import { allAbilities } from './ability'; import { PokemonHeldItemModifier } from "../modifier/modifier"; @@ -68,7 +68,8 @@ export enum MoveFlags { POWDER_MOVE = 2048, DANCE_MOVE = 4096, WIND_MOVE = 8192, - TRIAGE_MOVE = 16384 + TRIAGE_MOVE = 16384, + IGNORE_ABILITIES = 32768 } type MoveConditionFunc = (user: Pokemon, target: Pokemon, move: Move) => boolean; @@ -286,12 +287,24 @@ export default class Move { return this; } + ignoresAbilities(ignoresAbilities?: boolean): this { + this.setFlag(MoveFlags.IGNORE_ABILITIES, ignoresAbilities); + return this; + } + checkFlag(flag: MoveFlags, user: Pokemon, target: Pokemon): boolean { switch (flag) { case MoveFlags.MAKES_CONTACT: if (user.hasAbilityWithAttr(IgnoreContactAbAttr)) return false; break; + case MoveFlags.IGNORE_ABILITIES: + if (user.hasAbilityWithAttr(MoveAbilityBypassAbAttr)) { + const abilityEffectsIgnored = new Utils.BooleanHolder(false); + applyAbAttrs(MoveAbilityBypassAbAttr, user, abilityEffectsIgnored, this); + if (abilityEffectsIgnored.value) + return true; + } } return !!(this.flags & flag); @@ -5405,8 +5418,10 @@ export function initMoves() { new AttackMove(Moves.SPECTRAL_THIEF, Type.GHOST, MoveCategory.PHYSICAL, 90, 100, 10, -1, 0, 7) .partial(), new AttackMove(Moves.SUNSTEEL_STRIKE, Type.STEEL, MoveCategory.PHYSICAL, 100, 100, 5, -1, 0, 7) + .ignoresAbilities() .partial(), new AttackMove(Moves.MOONGEIST_BEAM, Type.GHOST, MoveCategory.SPECIAL, 100, 100, 5, -1, 0, 7) + .ignoresAbilities() .partial(), new StatusMove(Moves.TEARFUL_LOOK, Type.NORMAL, -1, 20, 100, 0, 7) .attr(StatChangeAttr, BattleStat.ATK, -1) @@ -5429,15 +5444,16 @@ export function initMoves() { .partial(), new AttackMove(Moves.PHOTON_GEYSER, Type.PSYCHIC, MoveCategory.SPECIAL, 100, 100, 5, -1, 0, 7) .attr(PhotonGeyserCategoryAttr) + .ignoresAbilities() .partial(), /* Unused */ new AttackMove(Moves.LIGHT_THAT_BURNS_THE_SKY, Type.PSYCHIC, MoveCategory.SPECIAL, 200, -1, 1, -1, 0, 7) .attr(PhotonGeyserCategoryAttr) - .partial(), + .ignoresAbilities(), new AttackMove(Moves.SEARING_SUNRAZE_SMASH, Type.STEEL, MoveCategory.PHYSICAL, 200, -1, 1, -1, 0, 7) - .partial(), + .ignoresAbilities(), new AttackMove(Moves.MENACING_MOONRAZE_MAELSTROM, Type.GHOST, MoveCategory.SPECIAL, 200, -1, 1, -1, 0, 7) - .partial(), + .ignoresAbilities(), new AttackMove(Moves.LETS_SNUGGLE_FOREVER, Type.FAIRY, MoveCategory.PHYSICAL, 190, -1, 1, -1, 0, 7) .partial(), new AttackMove(Moves.SPLINTERED_STORMSHARDS, Type.ROCK, MoveCategory.PHYSICAL, 190, -1, 1, -1, 0, 7) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 19774d7df54..1bffdf60303 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -25,7 +25,7 @@ import { TempBattleStat } from '../data/temp-battle-stat'; import { ArenaTagSide, WeakenMoveScreenTag, WeakenMoveTypeTag } from '../data/arena-tag'; import { ArenaTagType } from "../data/enums/arena-tag-type"; import { Biome } from "../data/enums/biome"; -import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs } from '../data/ability'; +import { Ability, AbAttr, BattleStatMultiplierAbAttr, BlockCritAbAttr, BonusCritAbAttr, BypassBurnDamageReductionAbAttr, FieldPriorityMoveImmunityAbAttr, FieldVariableMovePowerAbAttr, IgnoreOpponentStatChangesAbAttr, MoveImmunityAbAttr, MoveTypeChangeAttr, NonSuperEffectiveImmunityAbAttr, PreApplyBattlerTagAbAttr, PreDefendFullHpEndureAbAttr, ReceivedMoveDamageMultiplierAbAttr, ReduceStatusEffectDurationAbAttr, StabBoostAbAttr, StatusEffectImmunityAbAttr, TypeImmunityAbAttr, VariableMovePowerAbAttr, VariableMoveTypeAbAttr, WeightMultiplierAbAttr, allAbilities, applyAbAttrs, applyBattleStatMultiplierAbAttrs, applyPostDefendAbAttrs, applyPreApplyBattlerTagAbAttrs, applyPreAttackAbAttrs, applyPreDefendAbAttrs, applyPreSetStatusAbAttrs, UnsuppressableAbilityAbAttr, SuppressFieldAbilitiesAbAttr } from '../data/ability'; import { Abilities } from "#app/data/enums/abilities"; import PokemonData from '../system/pokemon-data'; import Battle, { BattlerIndex } from '../battle'; @@ -740,8 +740,21 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { if (passive && !this.hasPassive()) return false; const ability = (!passive ? this.getAbility() : this.getPassiveAbility()); - if (ability.isIgnorable && this.scene.arena.ignoreAbilities) + if (this.scene?.arena.ignoreAbilities && ability.isIgnorable) + return false; + if (this.summonData?.abilitySuppressed && !ability.hasAttr(UnsuppressableAbilityAbAttr)) + return false; + if (this.isOnField() && !ability.hasAttr(SuppressFieldAbilitiesAbAttr)) { + const suppressed = new Utils.BooleanHolder(false); + this.scene.getField(true).map(p => { + if (p.getAbility().hasAttr(SuppressFieldAbilitiesAbAttr) && p.canApplyAbility()) + p.getAbility().getAttrs(SuppressFieldAbilitiesAbAttr).map(a => a.apply(this, false, suppressed, [ability])); + if (p.getPassiveAbility().hasAttr(SuppressFieldAbilitiesAbAttr) && p.canApplyAbility(true)) + p.getPassiveAbility().getAttrs(SuppressFieldAbilitiesAbAttr).map(a => a.apply(this, true, suppressed, [ability])); + }); + if (suppressed.value) return false; + } return (this.hp || ability.isBypassFaint) && !ability.conditions.find(condition => !condition(this)); } @@ -2829,6 +2842,7 @@ export class PokemonSummonData { public disabledMove: Moves = Moves.NONE; public disabledTurns: integer = 0; public tags: BattlerTag[] = []; + public abilitySuppressed: boolean = false; public speciesForm: PokemonSpeciesForm; public fusionSpeciesForm: PokemonSpeciesForm; diff --git a/src/phases.ts b/src/phases.ts index 020cdf65824..32eb3098c1f 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2141,10 +2141,8 @@ export class MovePhase extends BattlePhase { } if (!this.followUp) { - const abilityEffectsIgnored = new Utils.BooleanHolder(false); - this.scene.getField(true).map(p => applyAbAttrs(MoveAbilityBypassAbAttr, p, abilityEffectsIgnored)); - if (abilityEffectsIgnored.value) - this.scene.arena.setIgnoreAbilities(true); + if (this.move.getMove().checkFlag(MoveFlags.IGNORE_ABILITIES, this.pokemon, null)) + this.scene.arena.setIgnoreAbilities(); } else { this.pokemon.turnData.hitsLeft = undefined; this.pokemon.turnData.hitCount = undefined; From 6b46cd533aa14a5af833b15ea7683f639e53828d Mon Sep 17 00:00:00 2001 From: Xavion3 Date: Thu, 18 Apr 2024 16:28:22 +1000 Subject: [PATCH 08/11] Implement stat resetting moves Haze should probably have a custom message so it doesn't list the targets name --- src/data/move.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 29cd2fdc5c7..2dad52f7737 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1506,6 +1506,20 @@ export class InvertStatsAttr extends MoveEffectAttr { } } +export class ResetStatsAttr extends MoveEffectAttr { + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + if (!super.apply(user, target, move, args)) + return false; + + for (let s = 0; s < target.summonData.battleStats.length; s++) + target.summonData.battleStats[s] = 0; + + target.scene.queueMessage(getPokemonMessage(target, `'s stat changes\nwere eliminated!`)); + + return true; + } +} + export class HpSplitAttr extends MoveEffectAttr { apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise { return new Promise(resolve => { @@ -3818,7 +3832,7 @@ export function initMoves() { .target(MoveTarget.USER_SIDE), new StatusMove(Moves.HAZE, Type.ICE, -1, 30, -1, 0, 1) .target(MoveTarget.BOTH_SIDES) - .unimplemented(), + .attr(ResetStatsAttr), new StatusMove(Moves.REFLECT, Type.PSYCHIC, -1, 20, -1, 0, 1) .attr(AddArenaTagAttr, ArenaTagType.REFLECT, 5, true) .target(MoveTarget.USER_SIDE), @@ -4868,7 +4882,7 @@ export function initMoves() { new AttackMove(Moves.CHIP_AWAY, Type.NORMAL, MoveCategory.PHYSICAL, 70, 100, 20, -1, 0, 5) .attr(IgnoreOpponentStatChangesAttr), new AttackMove(Moves.CLEAR_SMOG, Type.POISON, MoveCategory.SPECIAL, 50, -1, 15, -1, 0, 5) - .partial(), + .attr(ResetStatsAttr), new AttackMove(Moves.STORED_POWER, Type.PSYCHIC, MoveCategory.SPECIAL, 20, 100, 10, -1, 0, 5) .attr(StatChangeCountPowerAttr), new StatusMove(Moves.QUICK_GUARD, Type.FIGHTING, -1, 15, -1, 3, 5) @@ -5487,7 +5501,7 @@ export function initMoves() { new AttackMove(Moves.SAPPY_SEED, Type.GRASS, MoveCategory.PHYSICAL, 100, 90, 10, 100, 0, 7) .attr(AddBattlerTagAttr, BattlerTagType.SEEDED), new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7) - .partial(), + .attr(ResetStatsAttr), new AttackMove(Moves.SPARKLY_SWIRL, Type.FAIRY, MoveCategory.SPECIAL, 120, 85, 5, -1, 0, 7) .partial(), new AttackMove(Moves.VEEVEE_VOLLEY, Type.NORMAL, MoveCategory.PHYSICAL, -1, -1, 20, -1, 0, 7) From aae40d224658415f394723f8c114b4c5c53b7518 Mon Sep 17 00:00:00 2001 From: shayebeadling Date: Thu, 18 Apr 2024 11:14:11 -0400 Subject: [PATCH 09/11] Implements infestation (#184) * Implements infestation * removes partial * wrong partial removed, fixed * appropriate tag location in enum * moved in battle-anim enum --- public/battle-anims/common-infestation.json | 1966 +++++++++++++++++++ src/data/battle-anims.ts | 1 + src/data/battler-tags.ts | 12 + src/data/enums/battler-tag-type.ts | 1 + src/data/move.ts | 29 +- 5 files changed, 2006 insertions(+), 3 deletions(-) create mode 100644 public/battle-anims/common-infestation.json diff --git a/public/battle-anims/common-infestation.json b/public/battle-anims/common-infestation.json new file mode 100644 index 00000000000..35e60fd2c99 --- /dev/null +++ b/public/battle-anims/common-infestation.json @@ -0,0 +1,1966 @@ +{ + "graphic": "PRAS- Struggle Bug", + "frames": [ + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -67.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -67.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 125.5, + "y": -52.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 125.5, + "y": -52.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -75, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -55, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -40.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 125.5, + "y": -52.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -95, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -63.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -55, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -47, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -40.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -44.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 156, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -95, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -99, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -55, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -47, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -39, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -40.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -95, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -99, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -95, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 104, + "y": -47, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -39, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -60.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -56.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -99, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -95, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -91, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -39, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -47.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -60.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -48.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 132, + "y": -95, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -91, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -43, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -47.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -55.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -72.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -60.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 120, + "y": -91, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -47.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -55.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -72.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -80.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -64.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -87, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 128, + "y": -55.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -80.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -88.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -72.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 96, + "y": -79, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -51.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -88.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -84.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -80.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 100, + "y": -71, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -48, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -84.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -76.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 144, + "y": -80.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 108, + "y": -63, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -76.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 160, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -68.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -84.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 116, + "y": -59, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 140, + "y": -36, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -68.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 255, + "priority": 1, + "focus": 1 + }, + { + "x": 152, + "y": -76.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 100, + "priority": 1, + "focus": 1 + } + ], + [ + { + "x": 0, + "y": 0, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 0, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 2 + }, + { + "x": 128, + "y": -64, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 1, + "graphicFrame": 0, + "opacity": 255, + "locked": true, + "priority": 1, + "focus": 1 + }, + { + "x": 136, + "y": -44, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 148, + "y": -68.5, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 140, + "priority": 1, + "focus": 1 + }, + { + "x": 124, + "y": -67, + "zoomX": 100, + "zoomY": 100, + "visible": true, + "target": 2, + "graphicFrame": 0, + "opacity": 140, + "priority": 1, + "focus": 1 + } + ] + ], + "frameTimedEvents": { + "0": [ + { + "frameIndex": 0, + "resourceName": "PRSFX- Infestation.wav", + "volume": 100, + "pitch": 100, + "eventType": "AnimTimedSoundEvent" + } + ] + }, + "position": 1, + "hue": 0 +} \ No newline at end of file diff --git a/src/data/battle-anims.ts b/src/data/battle-anims.ts index 572738fd25f..ee084b38a9e 100644 --- a/src/data/battle-anims.ts +++ b/src/data/battle-anims.ts @@ -79,6 +79,7 @@ export enum CommonAnim { MAGMA_STORM, CLAMP, THUNDER_CAGE, + INFESTATION, ORDER_UP_CURLY, ORDER_UP_DROOPY, ORDER_UP_STRETCHY, diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index d8ad6bb85be..5d4c1c94d89 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -613,6 +613,16 @@ export class ThunderCageTag extends DamagingTrapTag { } } +export class InfestationTag extends DamagingTrapTag { + constructor(turnCount: integer, sourceId: integer) { + super(BattlerTagType.INFESTATION, CommonAnim.INFESTATION, turnCount, Moves.INFESTATION, sourceId); + } + + getTrapMessage(pokemon: Pokemon): string { + return getPokemonMessage(pokemon, ` has been afflicted \nwith an infestation by ${getPokemonPrefix(pokemon.scene.getPokemonById(this.sourceId))}${pokemon.scene.getPokemonById(this.sourceId).name}!`); + } +} + export class ProtectedTag extends BattlerTag { constructor(sourceMove: Moves, tagType: BattlerTagType = BattlerTagType.PROTECTED) { @@ -1051,6 +1061,8 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: integer, sourc return new MagmaStormTag(turnCount, sourceId); case BattlerTagType.THUNDER_CAGE: return new ThunderCageTag(turnCount, sourceId); + case BattlerTagType.INFESTATION: + return new InfestationTag(turnCount, sourceId); case BattlerTagType.PROTECTED: return new ProtectedTag(sourceMove); case BattlerTagType.SPIKY_SHIELD: diff --git a/src/data/enums/battler-tag-type.ts b/src/data/enums/battler-tag-type.ts index e07019f6947..b0fb7c2cc75 100644 --- a/src/data/enums/battler-tag-type.ts +++ b/src/data/enums/battler-tag-type.ts @@ -22,6 +22,7 @@ export enum BattlerTagType { SAND_TOMB = "SAND_TOMB", MAGMA_STORM = "MAGMA_STORM", THUNDER_CAGE = "THUNDER_CAGE", + INFESTATION = "INFESTATION", PROTECTED = "PROTECTED", SPIKY_SHIELD = "SPIKY_SHIELD", KINGS_SHIELD = "KINGS_SHIELD", diff --git a/src/data/move.ts b/src/data/move.ts index 2dad52f7737..eaeb169654c 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2459,6 +2459,7 @@ export class AddBattlerTagAttr extends MoveEffectAttr { case BattlerTagType.SAND_TOMB: case BattlerTagType.MAGMA_STORM: case BattlerTagType.THUNDER_CAGE: + case BattlerTagType.INFESTATION: return -3; case BattlerTagType.ENCORE: return -2; @@ -4160,7 +4161,18 @@ export function initMoves() { .partial(), new AttackMove(Moves.RAPID_SPIN, Type.NORMAL, MoveCategory.PHYSICAL, 50, 100, 40, 100, 0, 2) .attr(StatChangeAttr, BattleStat.SPD, 1, true) - .attr(RemoveBattlerTagAttr, [ BattlerTagType.BIND, BattlerTagType.WRAP, BattlerTagType.FIRE_SPIN, BattlerTagType.WHIRLPOOL, BattlerTagType.CLAMP, BattlerTagType.SAND_TOMB, BattlerTagType.MAGMA_STORM, BattlerTagType.THUNDER_CAGE, BattlerTagType.SEEDED ], true) + .attr(RemoveBattlerTagAttr, [ + BattlerTagType.BIND, + BattlerTagType.WRAP, + BattlerTagType.FIRE_SPIN, + BattlerTagType.WHIRLPOOL, + BattlerTagType.CLAMP, + BattlerTagType.SAND_TOMB, + BattlerTagType.MAGMA_STORM, + BattlerTagType.THUNDER_CAGE, + BattlerTagType.SEEDED, + BattlerTagType.INFESTATION + ], true) .partial(), new StatusMove(Moves.SWEET_SCENT, Type.NORMAL, 100, 20, -1, 0, 2) .attr(StatChangeAttr, BattleStat.EVA, -1) @@ -5179,7 +5191,7 @@ export function initMoves() { .attr(SurviveDamageAttr), new AttackMove(Moves.INFESTATION, Type.BUG, MoveCategory.SPECIAL, 20, 100, 20, 100, 0, 6) .makesContact() - .partial(), + .attr(TrapAttr, BattlerTagType.INFESTATION), new AttackMove(Moves.POWER_UP_PUNCH, Type.FIGHTING, MoveCategory.PHYSICAL, 40, 100, 20, 100, 0, 6) .attr(StatChangeAttr, BattleStat.ATK, 1, true) .punchingMove(), @@ -5977,7 +5989,18 @@ export function initMoves() { new AttackMove(Moves.TRIPLE_DIVE, Type.WATER, MoveCategory.PHYSICAL, 30, 95, 10, -1, 0, 9) .attr(MultiHitAttr, MultiHitType._3), new AttackMove(Moves.MORTAL_SPIN, Type.POISON, MoveCategory.PHYSICAL, 30, 100, 15, 100, 0, 9) - .attr(LapseBattlerTagAttr, [ BattlerTagType.BIND, BattlerTagType.WRAP, BattlerTagType.FIRE_SPIN, BattlerTagType.WHIRLPOOL, BattlerTagType.CLAMP, BattlerTagType.SAND_TOMB, BattlerTagType.MAGMA_STORM, BattlerTagType.THUNDER_CAGE, BattlerTagType.SEEDED ], true) + .attr(LapseBattlerTagAttr, [ + BattlerTagType.BIND, + BattlerTagType.WRAP, + BattlerTagType.FIRE_SPIN, + BattlerTagType.WHIRLPOOL, + BattlerTagType.CLAMP, + BattlerTagType.SAND_TOMB, + BattlerTagType.MAGMA_STORM, + BattlerTagType.THUNDER_CAGE, + BattlerTagType.SEEDED, + BattlerTagType.INFESTATION + ], true) .attr(StatusEffectAttr, StatusEffect.POISON) .target(MoveTarget.ALL_NEAR_ENEMIES), new StatusMove(Moves.DOODLE, Type.NORMAL, 100, 10, -1, 0, 9) From e07ba5680d074866e3e140bea31f6541dbd319d3 Mon Sep 17 00:00:00 2001 From: Madmadness65 Date: Thu, 18 Apr 2024 12:16:49 -0500 Subject: [PATCH 10/11] Replace Pikachu's cry with it's classic cry Generation 9 gave Pikachu back the electric noise cry, replacing it speaking it's name. --- public/audio/cry/25-gigantamax.m4a | Bin 8695 -> 25914 bytes public/audio/cry/25.m4a | Bin 8695 -> 25914 bytes src/data/move.ts | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/audio/cry/25-gigantamax.m4a b/public/audio/cry/25-gigantamax.m4a index 103504a565795feb3b50fddd7129ab78716d6fb4..ea4becab5b808c44b255c36aed7393d01f646b87 100644 GIT binary patch literal 25914 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 I>F~z?0JhR)`~Uy| diff --git a/public/audio/cry/25.m4a b/public/audio/cry/25.m4a index 103504a565795feb3b50fddd7129ab78716d6fb4..ea4becab5b808c44b255c36aed7393d01f646b87 100644 GIT binary patch literal 25914 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 I>F~z?0JhR)`~Uy| diff --git a/src/data/move.ts b/src/data/move.ts index eaeb169654c..bfda8f0b05c 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1435,7 +1435,7 @@ export class HalfHpStatMaxAttr extends StatChangeAttr { user.scene.damageNumberHandler.add(user, damage); user.updateInfo().then(() => { const ret = super.apply(user, target, move, args); - user.scene.queueMessage(getPokemonMessage(user, ` cut its own hp\nand maximized its ${getBattleStatName(this.stats[0])}!`)); + user.scene.queueMessage(getPokemonMessage(user, ` cut its own HP\nand maximized its ${getBattleStatName(this.stats[0])}!`)); resolve(ret); }); }); @@ -4500,7 +4500,7 @@ export function initMoves() { .attr(ConfuseAttr) .pulseMove(), new AttackMove(Moves.DOOM_DESIRE, Type.STEEL, MoveCategory.SPECIAL, 140, 100, 5, -1, 0, 3) - .attr(DelayedAttackAttr, ArenaTagType.DOOM_DESIRE, ChargeAnim.DOOM_DESIRE_CHARGING, 'chose\nDOOM DESIRE as its destiny!'), + .attr(DelayedAttackAttr, ArenaTagType.DOOM_DESIRE, ChargeAnim.DOOM_DESIRE_CHARGING, 'chose\nDoom Desire as its destiny!'), new AttackMove(Moves.PSYCHO_BOOST, Type.PSYCHIC, MoveCategory.SPECIAL, 140, 90, 5, 100, 0, 3) .attr(StatChangeAttr, BattleStat.SPATK, -2, true), new SelfStatusMove(Moves.ROOST, Type.FLYING, -1, 5, -1, 0, 4) From d7ee958d293f346e6aa1e07345f0ef04488c50fb Mon Sep 17 00:00:00 2001 From: LaukkaE Date: Thu, 18 Apr 2024 22:49:07 +0300 Subject: [PATCH 11/11] Fix Sleep Talk bugs --- src/data/move.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index bfda8f0b05c..5797cf3fa40 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2929,7 +2929,7 @@ export class RandomMovesetMoveAttr extends OverrideMoveEffectAttr { : moveTargets.targets.indexOf(target.getBattlerIndex()) > -1 ? [ target.getBattlerIndex() ] : [ moveTargets.targets[user.randSeedInt(moveTargets.targets.length)] ]; - user.getMoveQueue().push({ move: move.moveId, targets: targets, ignorePP: this.enemyMoveset }); + user.getMoveQueue().push({ move: move.moveId, targets: targets, ignorePP: true }); user.scene.unshiftPhase(new MovePhase(user.scene, user, targets, moveset[moveIndex], true)); return true; } @@ -4117,7 +4117,8 @@ export function initMoves() { new SelfStatusMove(Moves.SLEEP_TALK, Type.NORMAL, -1, 10, -1, 0, 2) .attr(BypassSleepAttr) .attr(RandomMovesetMoveAttr) - .condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP), + .condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP) + .ignoresVirtual(), new StatusMove(Moves.HEAL_BELL, Type.NORMAL, -1, 5, -1, 0, 2) .soundBased() .target(MoveTarget.USER_AND_ALLIES)