diff --git a/public/images/cg/end_f.png b/public/images/cg/end_f.png new file mode 100644 index 00000000000..84f94d7e05d Binary files /dev/null and b/public/images/cg/end_f.png differ diff --git a/public/images/cg/end_m.png b/public/images/cg/end_m.png new file mode 100644 index 00000000000..abdcb49aff9 Binary files /dev/null and b/public/images/cg/end_m.png differ diff --git a/src/battle-scene.ts b/src/battle-scene.ts index f15cf1a52e2..0f75447a500 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -1013,6 +1013,7 @@ export default class BattleScene extends SceneBase { case Species.FURFROU: case Species.ORICORIO: case Species.MAGEARNA: + case Species.ZARUDE: case Species.SQUAWKABILLY: case Species.TATSUGIRI: case Species.PALDEA_TAUROS: diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index f66b5b2a0d9..6ab249864cd 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -14,7 +14,8 @@ import { BattlerTagType } from "./enums/battler-tag-type"; import { TerrainType } from "./terrain"; import { WeatherType } from "./weather"; import { BattleStat } from "./battle-stat"; -import { allAbilities } from "./ability" +import { allAbilities } from "./ability"; +import { Species } from "./enums/species"; export enum BattlerTagLapseType { FAINT, @@ -117,7 +118,11 @@ export class TrappedTag extends BattlerTag { } canAdd(pokemon: Pokemon): boolean { - return !pokemon.isOfType(Type.GHOST) && !pokemon.getTag(BattlerTagType.TRAPPED); + const isGhost = pokemon.isOfType(Type.GHOST); + const isTrapped = pokemon.getTag(BattlerTagType.TRAPPED); + const isAllowedGhostType = pokemon.species.speciesId === Species.PHANTUMP || pokemon.species.speciesId === Species.TREVENANT; + + return !isTrapped && (!isGhost || isAllowedGhostType); } onAdd(pokemon: Pokemon): void { diff --git a/src/data/dialogue.ts b/src/data/dialogue.ts index 055e5627a52..e54196d9e25 100644 --- a/src/data/dialogue.ts +++ b/src/data/dialogue.ts @@ -2290,6 +2290,25 @@ export const battleSpecDialogue = { } }; +export const miscDialogue = { + ending: [ + `@c{smile}Oh? You won?@d{96} @c{smile_eclosed}I guess I should've known.\nBut, you're back now. + $@c{smile}It's over.@d{64} You ended the loop. + $@c{serious_smile_fists}You fulfilled your dream too, didn't you?\nYou didn't lose even once. + $@c{neutral}I'm the only one who'll remember what you did.@d{96}\nI guess that's okay, isn't it? + $@c{serious_smile_fists}Your legend will always live on in our hearts. + $@c{smile_eclosed}Anyway, I've had about enough of this place, haven't you? Let's head home. + $@c{serious_smile_fists}Maybe when we get back, we can have another battle?\nIf you're up to it.`, + `@c{shock}You're back?@d{32} Does that mean…@d{96} you won?!\n@c{smile_ehalf}I should have known you had it in you. + $@c{smile_eclosed}Of course… I always had that feeling.\n@c{smile}It's over now, right? You ended the loop. + $@c{smile_ehalf}You fulfilled your dream too, didn't you?\nYou didn't lose even once. + $I'll be the only one to remember what you did.\n@c{angry_mopen}I'll try not to forget! + $@c{smile_wave_wink}Just kidding!@d{64} @c{smile}I'd never forget.@d{32}\nYour legend will live on in our hearts. + $@c{smile_wave}Anyway,@d{64} it's getting late…@d{96} I think?\nIt's hard to tell in this place. + $Let's go home. @c{smile_wave_wink}Maybe tomorrow, we can have another battle, for old time's sake?` + ] +} + export function getCharVariantFromDialogue(message: string): string { const variantMatch = /@c\{(.*?)\}/.exec(message); if (variantMatch) diff --git a/src/data/splash-messages.ts b/src/data/splash-messages.ts index 3a40429e9b6..c650b038287 100644 --- a/src/data/splash-messages.ts +++ b/src/data/splash-messages.ts @@ -8,14 +8,14 @@ export function getSplashMessages(): string[] { const splashMessages = Array(10).fill(getBattleCountSplashMessage()); splashMessages.push(...[ i18next.t('splashMessages:joinTheDiscord'), - i18next.t('splashMessages:infiniteLevel'), + i18next.t('splashMessages:infiniteLevels'), i18next.t('splashMessages:everythingStacks'), i18next.t('splashMessages:optionalSaveScumming'), i18next.t('splashMessages:biomes'), i18next.t('splashMessages:openSource'), - i18next.t('splashMessages:playWith5xSpeed'), + i18next.t('splashMessages:playWithSpeed'), i18next.t('splashMessages:liveBugTesting'), - i18next.t('splashMessages:heavyRoR2Influence'), + i18next.t('splashMessages:heavyInfluence'), i18next.t('splashMessages:pokemonRiskAndPokemonRain'), i18next.t('splashMessages:nowWithMoreSalt'), i18next.t('splashMessages:infiniteFusionAtHome'), diff --git a/src/loading-scene.ts b/src/loading-scene.ts index a49fed480e6..56d0ab47f13 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -209,6 +209,9 @@ export class LoadingScene extends SceneBase { this.loadImage('egg_list_bg', 'ui'); + this.loadImage('end_m', 'cg'); + this.loadImage('end_f', 'cg'); + for (let i = 0; i < 10; i++) { this.loadAtlas(`pokemon_icons_${i}`, ''); if (i) diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index c9a58bca1ea..44bd5a66f1a 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -13,10 +13,11 @@ import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; +import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; +import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { titles,trainerClasses,trainerNames } from "./trainers"; -import { splashMessages } from "./splash-messages" +import { weather } from "./weather"; export const deConfig = { @@ -26,19 +27,20 @@ export const deConfig = { commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, - menuUiHandler: menuUiHandler, + growth: growth, menu: menu, + menuUiHandler: menuUiHandler, + modifierType: modifierType, move: move, + nature: nature, pokeball: pokeball, - pokemonStat: pokemonStat, pokemon: pokemon, + pokemonStat: pokemonStat, + splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - splashMessages: splashMessages, - nature: nature, - growth: growth, - modifierType: modifierType, + weather: weather, } diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index a5d207da932..2962633e26a 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -13,13 +13,12 @@ import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; +import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; +import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { titles,trainerClasses,trainerNames } from "./trainers"; -import { splashMessages } from "./splash-messages" import { weather } from "./weather"; - export const enConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -27,20 +26,20 @@ export const enConfig = { commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, - menuUiHandler: menuUiHandler, + growth: growth, menu: menu, + menuUiHandler: menuUiHandler, + modifierType: modifierType, move: move, + nature: nature, pokeball: pokeball, - pokemonStat: pokemonStat, pokemon: pokemon, + pokemonStat: pokemonStat, + splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - splashMessages: splashMessages, - nature: nature, - growth: growth, weather: weather, - modifierType: modifierType, } diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index 6aac47563ee..a986bbfc75c 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -13,10 +13,10 @@ import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; +import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; +import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { titles,trainerClasses,trainerNames } from "./trainers"; -import { splashMessages } from "./splash-messages" import { weather } from "./weather"; @@ -27,20 +27,20 @@ export const esConfig = { commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, - menuUiHandler: menuUiHandler, + growth: growth, menu: menu, + menuUiHandler: menuUiHandler, + modifierType: modifierType, move: move, + nature: nature, pokeball: pokeball, - pokemonStat: pokemonStat, pokemon: pokemon, + pokemonStat: pokemonStat, + splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - splashMessages: splashMessages, - nature: nature, - growth: growth, weather: weather, - modifierType: modifierType, } diff --git a/src/locales/fr/ability.ts b/src/locales/fr/ability.ts index 292467fcad6..49bfeb53acf 100644 --- a/src/locales/fr/ability.ts +++ b/src/locales/fr/ability.ts @@ -1109,7 +1109,7 @@ export const ability: AbilityTranslationEntries = { name: "Turbine Éolienne", description: "Si le Pokémon est touché par une capacité faisant appel au vent, il se charge en électricité.", }, - zerotoHero: { + zeroToHero: { name: "Supermutation", description: "Le Pokémon prend sa Forme Super en quittant le combat.", }, @@ -1129,23 +1129,23 @@ export const ability: AbilityTranslationEntries = { name: "Charge Quantique", description: "Quand un champ électrifié est actif ou que le Pokémon tient une capsule d’Énergie Booster, sa stat la plus élevée augmente.", }, - goodasGold: { + goodAsGold: { name: "Corps en Or", description: "Le corps en or pur et robuste du Pokémon l’immunise contre les capacités de statut des autres Pokémon.", }, - vesselofRuin: { + vesselOfRuin: { name: "Urne du Fléau", description: "Le pouvoir de l’urne qui appelle le fléau affaiblit l’Attaque Spéciale de tous les autres Pokémon.", }, - swordofRuin: { + swordOfRuin: { name: "Épée du Fléau", description: "Le pouvoir de l’épée qui appelle le fléau affaiblit la Défense de tous les autres Pokémon.", }, - tabletsofRuin: { + tabletsOfRuin: { name: "Bois du Fléau", description: "Le pouvoir du bois qui appelle le fléau affaiblit l’Attaque de tous les autres Pokémon.", }, - beadsofRuin: { + beadsOfRuin: { name: "Perles du Fléau", description: "Le pouvoir des perles qui appellent le fléau affaiblit la Défense Spéciale de tous les autres Pokémon.", }, diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index a2bb8430fba..8de3e186d59 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -13,14 +13,13 @@ import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; +import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; +import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { titles,trainerClasses,trainerNames } from "./trainers"; -import { splashMessages } from "./splash-messages" import { weather } from "./weather"; - export const frConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -28,21 +27,21 @@ export const frConfig = { commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, - menuUiHandler: menuUiHandler, + growth: growth, menu: menu, + menuUiHandler: menuUiHandler, + modifierType: modifierType, move: move, + nature: nature, pokeball: pokeball, - pokemonStat: pokemonStat, pokemon: pokemon, + pokemonStat: pokemonStat, + splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - splashMessages: splashMessages, - nature: nature, - growth: growth, weather: weather, - modifierType: modifierType, } diff --git a/src/locales/fr/modifier-type.ts b/src/locales/fr/modifier-type.ts index 043d7a705d5..96aeeccf4f8 100644 --- a/src/locales/fr/modifier-type.ts +++ b/src/locales/fr/modifier-type.ts @@ -3,407 +3,407 @@ import { ModifierTypeTranslationEntries } from "#app/plugins/i18n"; export const modifierType: ModifierTypeTranslationEntries = { ModifierType: { "AddPokeballModifierType": { - name: "{{modifierCount}}x {{pokeballName}}", - description: "Receive {{pokeballName}} x{{modifierCount}} (Inventory: {{pokeballAmount}}) \nCatch Rate: {{catchRate}}", + name: "{{pokeballName}} x{{modifierCount}}", + description: "Recevez {{modifierCount}} {{pokeballName}}s (Inventaire : {{pokeballAmount}}) \nTaux de capture : {{catchRate}}", }, "AddVoucherModifierType": { - name: "{{modifierCount}}x {{voucherTypeName}}", - description: "Receive {{voucherTypeName}} x{{modifierCount}}", + name: "{{voucherTypeName}} x{{modifierCount}}", + description: "Recevez {{modifierCount}} {{voucherTypeName}}", }, "PokemonHeldItemModifierType": { extra: { - "inoperable": "{{pokemonName}} can't take\nthis item!", - "tooMany": "{{pokemonName}} has too many\nof this item!", + "inoperable": "{{pokemonName}} ne peut pas\nporter cet objet !", + "tooMany": "{{pokemonName}} possède trop\nd’exemplaires de cet objet !", } }, "PokemonHpRestoreModifierType": { - description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher", + description: "Restaure {{restorePoints}} PV ou {{restorePercent}}% des PV totaux d’un Pokémon, en fonction duquel des deux est le plus élevé", extra: { - "fully": "Fully restores HP for one Pokémon", - "fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment", + "fully": "Restaure tous les PV d’un Pokémon", + "fullyWithStatus": "Restaure tous les PV d’un Pokémon et soigne tous ses problèmes de statut", } }, "PokemonReviveModifierType": { - description: "Revives one Pokémon and restores {{restorePercent}}% HP", + description: "Réanime un Pokémon et restaure {{restorePercent}}% de ses PV", }, "PokemonStatusHealModifierType": { - description: "Heals any status ailment for one Pokémon", + description: "Soigne tous les problèmes de statut d’un Pokémon", }, "PokemonPpRestoreModifierType": { - description: "Restores {{restorePoints}} PP for one Pokémon move", + description: "Restaure {{restorePoints}} PP à une capacité d’un Pokémon", extra: { - "fully": "Restores all PP for one Pokémon move", + "fully": "Restaure tous les PP à une capacité d’un Pokémon", } }, "PokemonAllMovePpRestoreModifierType": { - description: "Restores {{restorePoints}} PP for all of one Pokémon's moves", + description: "Restaure {{restorePoints}} PP à toutes les capacités d’un Pokémon", extra: { - "fully": "Restores all PP for all of one Pokémon's moves", + "fully": "Restaure tous les PP à toutes les capacités d’un Pokémon", } }, "PokemonPpUpModifierType": { - description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)", + description: "Augmente le max de PP de {{upPoints}} à une capacité d’un Pokémon pour chaque 5 PP max (max : 3)", }, "PokemonNatureChangeModifierType": { - name: "{{natureName}} Mint", - description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.", + name: "Aromate {{natureName}}", + description: "Donne la nature {{natureName}} à un Pokémon et la débloque pour le starter lui étant lié.", }, "DoubleBattleChanceBoosterModifierType": { - description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles", + description: "Double les chances de tomber sur un combat double pendant {{battleCount}} combats", }, "TempBattleStatBoosterModifierType": { - description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles", + description: "Augmente d’1 cran {{tempBattleStatName}} pour tout l’équipe pendant 5 combats", }, "AttackTypeBoosterModifierType": { - description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%", + description: "Augmente de 20% la puissance des capacités de type {{moveType}} d’un Pokémon", }, "PokemonLevelIncrementModifierType": { - description: "Increases a Pokémon's level by 1", + description: "Fait monter un Pokémon d’1 niveau", }, "AllPokemonLevelIncrementModifierType": { - description: "Increases all party members' level by 1", + description: "Fait monter toute l’équipe d’1 niveau", }, "PokemonBaseStatBoosterModifierType": { - description: "Increases the holder's base {{statName}} by 10%. The higher your IVs, the higher the stack limit.", + description: "Augmente de 10% {{statName}} de base de son porteur. Plus les IV sont hauts, plus il peut en porter.", }, "AllPokemonFullHpRestoreModifierType": { - description: "Restores 100% HP for all Pokémon", + description: "Restaure tous les PV de toute l'équipe", }, "AllPokemonFullReviveModifierType": { - description: "Revives all fainted Pokémon, fully restoring HP", + description: "Réanime et restaure tous les PV de tous les Pokémon K.O.", }, "MoneyRewardModifierType": { - description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})", + description: "Octroie une {{moneyMultiplier}} somme d’argent ({{moneyAmount}}₽)", extra: { - "small": "small", - "moderate": "moderate", - "large": "large", + "small": "petite", + "moderate": "moyenne", + "large": "grande", }, }, "ExpBoosterModifierType": { - description: "Increases gain of EXP. Points by {{boostPercent}}%", + description: "Augmente de {{boostPercent}}% le gain de Points d’Exp", }, "PokemonExpBoosterModifierType": { - description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%", + description: "Augmente de {{boostPercent}}% le gain de Points d’Exp du porteur", }, "PokemonFriendshipBoosterModifierType": { - description: "Increases friendship gain per victory by 50%", + description: "Augmente le gain d’amitié de 50% par victoire", }, "PokemonMoveAccuracyBoosterModifierType": { - description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)", + description: "Augmente de {{accuracyAmount}} la précision des capacités (maximum 100)", }, "PokemonMultiHitModifierType": { - description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively", + description: "Frappe une fois de plus en échange d’une baisse de puissance de respectivement 60/75/82,5% par cumul", }, "TmModifierType": { - name: "TM{{moveId}} - {{moveName}}", - description: "Teach {{moveName}} to a Pokémon", + name: "CT{{moveId}} - {{moveName}}", + description: "Apprend la capacité {{moveName}} à un Pokémon", }, "EvolutionItemModifierType": { - description: "Causes certain Pokémon to evolve", + description: "Permet à certains Pokémon d’évoluer", }, "FormChangeItemModifierType": { - description: "Causes certain Pokémon to change form", + description: "Permet à certains Pokémon de changer de forme", }, "FusePokemonModifierType": { - description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)", + description: "Fusionne deux Pokémon (transfère le Talent, sépare les stats de base et les types, partage le movepool)", }, "TerastallizeModifierType": { - name: "{{teraType}} Tera Shard", - description: "{{teraType}} Terastallizes the holder for up to 10 battles", + name: "Téra-Éclat {{teraType}}", + description: "{{teraType}} Téracristallise son porteur pendant 10 combats", }, "ContactHeldItemTransferChanceModifierType": { - description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen", + description: "{{chancePercent}}% de chances de voler un objet de l’adversaire en l’attaquant", }, "TurnHeldItemTransferModifierType": { - description: "Every turn, the holder acquires one held item from the foe", + description: "À chaque tour, son porteur obtient un objet de son adversaire", }, "EnemyAttackStatusEffectChanceModifierType": { - description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves", + description: "Ajoute {{chancePercent}}% de chances d’infliger le statut {{statusEffect}} avec des capacités offensives", }, "EnemyEndureChanceModifierType": { - description: "Adds a {{chancePercent}}% chance of enduring a hit", + description: "Ajoute {{chancePercent}}% de chances d’encaisser un coup", }, - "RARE_CANDY": { name: "Rare Candy" }, - "RARER_CANDY": { name: "Rarer Candy" }, + "RARE_CANDY": { name: "Super Bonbon" }, + "RARER_CANDY": { name: "Hyper Bonbon" }, - "MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" }, - "DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" }, - "TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" }, + "MEGA_BRACELET": { name: "Méga-Bracelet", description: "Débloque les Méga-Gemmes" }, + "DYNAMAX_BAND": { name: "Poignet Dynamax", description: "Débloque les Maxi Champis" }, + "TERA_ORB": { name: "Orbe Téracristal", description: "Débloque les Téra-Éclats" }, - "MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" }, + "MAP": { name: "Carte", description: "Vous permet de choisir votre destination à un croisement" }, "POTION": { name: "Potion" }, "SUPER_POTION": { name: "Super Potion" }, "HYPER_POTION": { name: "Hyper Potion" }, - "MAX_POTION": { name: "Max Potion" }, - "FULL_RESTORE": { name: "Full Restore" }, + "MAX_POTION": { name: "Potion Max" }, + "FULL_RESTORE": { name: "Guérison" }, - "REVIVE": { name: "Revive" }, - "MAX_REVIVE": { name: "Max Revive" }, + "REVIVE": { name: "Rappel" }, + "MAX_REVIVE": { name: "Rappel Max" }, - "FULL_HEAL": { name: "Full Heal" }, + "FULL_HEAL": { name: "Total Soin" }, - "SACRED_ASH": { name: "Sacred Ash" }, + "SACRED_ASH": { name: "Cendres Sacrées" }, - "REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" }, + "REVIVER_SEED": { name: "Résugraine", description: "Réanime et restaure la moitié des PV de son porteur s’il tombe K.O." }, - "ETHER": { name: "Ether" }, - "MAX_ETHER": { name: "Max Ether" }, + "ETHER": { name: "Huile" }, + "MAX_ETHER": { name: "Huile Max" }, - "ELIXIR": { name: "Elixir" }, - "MAX_ELIXIR": { name: "Max Elixir" }, + "ELIXIR": { name: "Élixir" }, + "MAX_ELIXIR": { name: "Élixir Max" }, - "PP_UP": { name: "PP Up" }, + "PP_UP": { name: "PP Plus" }, "PP_MAX": { name: "PP Max" }, - "LURE": { name: "Lure" }, - "SUPER_LURE": { name: "Super Lure" }, - "MAX_LURE": { name: "Max Lure" }, + "LURE": { name: "Parfum" }, + "SUPER_LURE": { name: "Super Parfum" }, + "MAX_LURE": { name: "Parfum Max" }, - "MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" }, + "MEMORY_MUSHROOM": { name: "Champi Mémoriel", description: "Remémore une capacité à un Pokémon" }, - "EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" }, - "EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" }, + "EXP_SHARE": { name: "Multi Exp", description: "Tous les non-participants reçoivent 20% des Points d’Exp d’un participant" }, + "EXP_BALANCE": { name: "Équilibr’Exp", description: "Équilibre les Points d’Exp à l’avantage des membres de l’équipe aux plus bas niveaux" }, - "OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" }, + "OVAL_CHARM": { name: "Charme Ovale", description: "Quand plusieurs Pokémon sont en combat, chacun gagne 10% supplémentaires du total d’Exp" }, - "EXP_CHARM": { name: "EXP. Charm" }, - "SUPER_EXP_CHARM": { name: "Super EXP. Charm" }, - "GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" }, + "EXP_CHARM": { name: "Charme Exp" }, + "SUPER_EXP_CHARM": { name: "Super Charme Exp" }, + "GOLDEN_EXP_CHARM": { name: "Charme Exp Doré" }, - "LUCKY_EGG": { name: "Lucky Egg" }, - "GOLDEN_EGG": { name: "Golden Egg" }, + "LUCKY_EGG": { name: "Œuf Chance" }, + "GOLDEN_EGG": { name: "Œuf d’Or" }, - "SOOTHE_BELL": { name: "Soothe Bell" }, + "SOOTHE_BELL": { name: "Grelot Zen" }, - "SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" }, + "SOUL_DEW": { name: "Rosée Âme", description: "Augmente de 10% l’influence de la nature d’un Pokémon sur ses statistiques (cumulatif)" }, - "NUGGET": { name: "Nugget" }, - "BIG_NUGGET": { name: "Big Nugget" }, - "RELIC_GOLD": { name: "Relic Gold" }, + "NUGGET": { name: "Pépite" }, + "BIG_NUGGET": { name: "Maxi Pépite" }, + "RELIC_GOLD": { name: "Vieux Ducat" }, - "AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" }, - "GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" }, - "COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" }, + "AMULET_COIN": { name: "Pièce Rune", description: "Augmente de 20% les gains d’argent" }, + "GOLDEN_PUNCH": { name: "Poing Doré", description: "50% des dégâts infligés sont convertis en argent" }, + "COIN_CASE": { name: "Boite Jetons", description: "Tous les 10 combats, recevez 10% de votre argent en intérêts" }, - "LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" }, + "LOCK_CAPSULE": { name: "Poké Écrin", description: "Permet de verrouiller des objets rares si vous relancez les objets proposés" }, - "GRIP_CLAW": { name: "Grip Claw" }, - "WIDE_LENS": { name: "Wide Lens" }, + "GRIP_CLAW": { name: "Accro Griffe" }, + "WIDE_LENS": { name: "Loupe" }, - "MULTI_LENS": { name: "Multi Lens" }, + "MULTI_LENS": { name: "Multi Loupe" }, - "HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" }, - "CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" }, + "HEALING_CHARM": { name: "Charme Soin", description: "Augmente de 10% l’efficacité des capacités et objets de soin de PV (hors Rappels)" }, + "CANDY_JAR": { name: "Jarre de Bonbons", description: "Augmente de 1 le nombre de niveaux gagnés à l’utilisation d’un Super Bonbon" }, - "BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 25% chance that a used berry will not be consumed" }, + "BERRY_POUCH": { name: "Sac à Baies", description: "Ajoute 25% de chances qu’une Baie utilisée ne soit pas consommée" }, - "FOCUS_BAND": { name: "Focus Band", description: "Adds a 10% chance to survive with 1 HP after being damaged enough to faint" }, + "FOCUS_BAND": { name: "Bandeau", description: "Ajoute 10% de chances de survivre avec 1 PV si les dégâts reçus pouvaient mettre K.O." }, - "QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" }, + "QUICK_CLAW": { name: "Vive Griffe", description: "Ajoute 10% de chances d’agir en premier, indépendamment de la vitesse (après la priorité)" }, - "KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" }, + "KINGS_ROCK": { name: "Roche Royale", description: "Ajoute 10% de chances qu’une capacité offensive apeure l’adversaire" }, - "LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" }, - "SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" }, + "LEFTOVERS": { name: "Restes", description: "Soigne à chaque tour 1/16 des PV max d’un Pokémon" }, + "SHELL_BELL": { name: "Grelot Coque", description: "Soigne 1/8 des dégâts infligés par un Pokémon" }, - "BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" }, + "BATON": { name: "Bâton", description: "Permet de transmettre les effets en cas de changement de Pokémon. Ignore les pièges." }, - "SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" }, - "ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" }, + "SHINY_CHARM": { name: "Charme Chroma", description: "Augmente énormément les chances de rencontrer un Pokémon sauvage chromatique" }, + "ABILITY_CHARM": { name: "Charme Talent", description: "Augmente énormément les chances de rencontrer un Pokémon sauvage avec un Talent Caché" }, - "IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" }, + "IV_SCANNER": { name: "Scanner d’IV", description: "Scanne les IV d’un Pokémon sauvage. 2 IV sont révélés par Scanner. Les meilleurs sont montrés en 1er." }, - "DNA_SPLICERS": { name: "DNA Splicers" }, + "DNA_SPLICERS": { name: "Pointeau ADN" }, - "MINI_BLACK_HOLE": { name: "Mini Black Hole" }, + "MINI_BLACK_HOLE": { name: "Mini Trou Noir" }, - "GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" }, + "GOLDEN_POKEBALL": { name: "Poké Ball Dorée", description: "Ajoute 1 choix d’objet à la fin de chaque combat" }, - "ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" }, - "ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" }, - "ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" }, - "ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" }, - "ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" }, - "ENEMY_ATTACK_SLEEP_CHANCE": { name: "Sleep Token" }, - "ENEMY_ATTACK_FREEZE_CHANCE": { name: "Freeze Token" }, - "ENEMY_ATTACK_BURN_CHANCE": { name: "Burn Token" }, - "ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Full Heal Token", description: "Adds a 10% chance every turn to heal a status condition" }, - "ENEMY_ENDURE_CHANCE": { name: "Endure Token" }, - "ENEMY_FUSED_CHANCE": { name: "Fusion Token", description: "Adds a 1% chance that a wild Pokémon will be a fusion" }, + "ENEMY_DAMAGE_BOOSTER": { name: "Jeton Dégâts", description: "Augmente les dégâts de 5%" }, + "ENEMY_DAMAGE_REDUCTION": { name: "Jeton Protection", description: "Diminue les dégâts reçus de 2,5%" }, + "ENEMY_HEAL": { name: "Jeton Soin", description: "Soigne 2% des PV max à chaque tour" }, + "ENEMY_ATTACK_POISON_CHANCE": { name: "Jeton Poison" }, + "ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Jeton Paralysie" }, + "ENEMY_ATTACK_SLEEP_CHANCE": { name: "Jeton Sommeil" }, + "ENEMY_ATTACK_FREEZE_CHANCE": { name: "Jeton Gel" }, + "ENEMY_ATTACK_BURN_CHANCE": { name: "Jeton Brulure" }, + "ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Jeton Total Soin", description: "Ajoute 10% de chances à chaque tour de se soigner d’un problème de statut." }, + "ENEMY_ENDURE_CHANCE": { name: "Jeton Ténacité" }, + "ENEMY_FUSED_CHANCE": { name: "Jeton Fusion", description: "Ajoute 1% de chances qu’un Pokémon sauvage soit une fusion." }, }, TempBattleStatBoosterItem: { - "x_attack": "X Attack", - "x_defense": "X Defense", - "x_sp_atk": "X Sp. Atk", - "x_sp_def": "X Sp. Def", - "x_speed": "X Speed", - "x_accuracy": "X Accuracy", - "dire_hit": "Dire Hit", + "x_attack": "Attaque +", + "x_defense": "Défense +", + "x_sp_atk": "Atq. Spé. +", + "x_sp_def": "Déf. Spé. +", + "x_speed": "Vitesse +", + "x_accuracy": "Précision +", + "dire_hit": "Muscle +", }, AttackTypeBoosterItem: { - "silk_scarf": "Silk Scarf", - "black_belt": "Black Belt", - "sharp_beak": "Sharp Beak", - "poison_barb": "Poison Barb", - "soft_sand": "Soft Sand", - "hard_stone": "Hard Stone", - "silver_powder": "Silver Powder", - "spell_tag": "Spell Tag", - "metal_coat": "Metal Coat", - "charcoal": "Charcoal", - "mystic_water": "Mystic Water", - "miracle_seed": "Miracle Seed", - "magnet": "Magnet", - "twisted_spoon": "Twisted Spoon", - "never_melt_ice": "Never-Melt Ice", - "dragon_fang": "Dragon Fang", - "black_glasses": "Black Glasses", - "fairy_feather": "Fairy Feather", + "silk_scarf": "Mouchoir Soie", + "black_belt": "Ceinture Noire", + "sharp_beak": "Bec Pointu", + "poison_barb": "Pic Venin", + "soft_sand": "Sable Doux", + "hard_stone": "Pierre Dure", + "silver_powder": "Poudre Argentée", + "spell_tag": "Rune Sort", + "metal_coat": "Peau Métal", + "charcoal": "Charbon", + "mystic_water": "Eau Mystique", + "miracle_seed": "Graine Miracle", + "magnet": "Aimant", + "twisted_spoon": "Cuillère Tordue", + "never_melt_ice": "Glace Éternelle", + "dragon_fang": "Croc Dragon", + "black_glasses": "Lunettes Noires", + "fairy_feather": "Plume Enchantée", }, BaseStatBoosterItem: { - "hp_up": "HP Up", - "protein": "Protein", - "iron": "Iron", + "hp_up": "PP Plus", + "protein": "Protéine", + "iron": "Fer", "calcium": "Calcium", "zinc": "Zinc", - "carbos": "Carbos", + "carbos": "Carbone", }, EvolutionItem: { - "NONE": "None", + "NONE": "Aucun", - "LINKING_CORD": "Linking Cord", - "SUN_STONE": "Sun Stone", - "MOON_STONE": "Moon Stone", - "LEAF_STONE": "Leaf Stone", - "FIRE_STONE": "Fire Stone", - "WATER_STONE": "Water Stone", - "THUNDER_STONE": "Thunder Stone", - "ICE_STONE": "Ice Stone", - "DUSK_STONE": "Dusk Stone", - "DAWN_STONE": "Dawn Stone", - "SHINY_STONE": "Shiny Stone", - "CRACKED_POT": "Cracked Pot", - "SWEET_APPLE": "Sweet Apple", - "TART_APPLE": "Tart Apple", - "STRAWBERRY_SWEET": "Strawberry Sweet", - "UNREMARKABLE_TEACUP": "Unremarkable Teacup", + "LINKING_CORD": "Fil de Liaison", + "SUN_STONE": "Pierre Soleil", + "MOON_STONE": "Pierre Lune", + "LEAF_STONE": "Pierre Plante", + "FIRE_STONE": "Pierre Feu", + "WATER_STONE": "Pierre Eau", + "THUNDER_STONE": "Pierre Foudre", + "ICE_STONE": "Pierre Glace", + "DUSK_STONE": "Pierre Nuit", + "DAWN_STONE": "Pierre Aube", + "SHINY_STONE": "Pierre Éclat", + "CRACKED_POT": "Théière Fêlée", + "SWEET_APPLE": "Pomme Sucrée", + "TART_APPLE": "Pomme Acidulée", + "STRAWBERRY_SWEET": "Fraise en Sucre", + "UNREMARKABLE_TEACUP": "Bol Médiocre", - "CHIPPED_POT": "Chipped Pot", - "BLACK_AUGURITE": "Black Augurite", - "GALARICA_CUFF": "Galarica Cuff", - "GALARICA_WREATH": "Galarica Wreath", - "PEAT_BLOCK": "Peat Block", - "AUSPICIOUS_ARMOR": "Auspicious Armor", - "MALICIOUS_ARMOR": "Malicious Armor", - "MASTERPIECE_TEACUP": "Masterpiece Teacup", - "METAL_ALLOY": "Metal Alloy", - "SCROLL_OF_DARKNESS": "Scroll Of Darkness", - "SCROLL_OF_WATERS": "Scroll Of Waters", - "SYRUPY_APPLE": "Syrupy Apple", + "CHIPPED_POT": "Théière Ébréchée", + "BLACK_AUGURITE": "Obsidienne", + "GALARICA_CUFF": "Bracelet Galanoa", + "GALARICA_WREATH": "Couronne Galanoa", + "PEAT_BLOCK": "Bloc de Tourbe", + "AUSPICIOUS_ARMOR": "Armure de la Fortune", + "MALICIOUS_ARMOR": "Armure de la Rancune", + "MASTERPIECE_TEACUP": "Bol Exceptionnel", + "METAL_ALLOY": "Métal Composite", + "SCROLL_OF_DARKNESS": "Rouleau des Ténèbres", + "SCROLL_OF_WATERS": "Rouleau de l’Eau", + "SYRUPY_APPLE": "Pomme Nectar", }, FormChangeItem: { - "NONE": "None", + "NONE": "Aucun", - "ABOMASITE": "Abomasite", + "ABOMASITE": "Blizzarite", "ABSOLITE": "Absolite", - "AERODACTYLITE": "Aerodactylite", - "AGGRONITE": "Aggronite", - "ALAKAZITE": "Alakazite", - "ALTARIANITE": "Altarianite", - "AMPHAROSITE": "Ampharosite", - "AUDINITE": "Audinite", - "BANETTITE": "Banettite", - "BEEDRILLITE": "Beedrillite", - "BLASTOISINITE": "Blastoisinite", - "BLAZIKENITE": "Blazikenite", - "CAMERUPTITE": "Cameruptite", - "CHARIZARDITE_X": "Charizardite X", - "CHARIZARDITE_Y": "Charizardite Y", + "AERODACTYLITE": "Ptéraïte", + "AGGRONITE": "Galekingite", + "ALAKAZITE": "Alakazamite", + "ALTARIANITE": "Altarite", + "AMPHAROSITE": "Pharampite", + "AUDINITE": "Nanméouïte", + "BANETTITE": "Branettite", + "BEEDRILLITE": "Dardargnite", + "BLASTOISINITE": "Tortankite", + "BLAZIKENITE": "Braségalite", + "CAMERUPTITE": "Caméruptite", + "CHARIZARDITE_X": "Dracaufite X", + "CHARIZARDITE_Y": "Dracaufite Y", "DIANCITE": "Diancite", - "GALLADITE": "Galladite", - "GARCHOMPITE": "Garchompite", + "GALLADITE": "Gallamite", + "GARCHOMPITE": "Carchacrokite", "GARDEVOIRITE": "Gardevoirite", - "GENGARITE": "Gengarite", - "GLALITITE": "Glalitite", - "GYARADOSITE": "Gyaradosite", - "HERACRONITE": "Heracronite", - "HOUNDOOMINITE": "Houndoominite", - "KANGASKHANITE": "Kangaskhanite", + "GENGARITE": "Ectoplasmite", + "GLALITITE": "Oniglalite", + "GYARADOSITE": "Léviatorite", + "HERACRONITE": "Scarhinoïte", + "HOUNDOOMINITE": "Démolossite", + "KANGASKHANITE": "Kangourexite", "LATIASITE": "Latiasite", "LATIOSITE": "Latiosite", - "LOPUNNITE": "Lopunnite", - "LUCARIONITE": "Lucarionite", - "MANECTITE": "Manectite", - "MAWILITE": "Mawilite", - "MEDICHAMITE": "Medichamite", - "METAGROSSITE": "Metagrossite", - "MEWTWONITE_X": "Mewtwonite X", - "MEWTWONITE_Y": "Mewtwonite Y", - "PIDGEOTITE": "Pidgeotite", - "PINSIRITE": "Pinsirite", + "LOPUNNITE": "Lockpinite", + "LUCARIONITE": "Lucarite", + "MANECTITE": "Élecsprintite", + "MAWILITE": "Mysdibulite", + "MEDICHAMITE": "Charminite", + "METAGROSSITE": "Métalossite", + "MEWTWONITE_X": "Mewtwoïte X", + "MEWTWONITE_Y": "Mewtwoïte Y", + "PIDGEOTITE": "Roucarnagite", + "PINSIRITE": "Scarabruite", "RAYQUAZITE": "Rayquazite", - "SABLENITE": "Sablenite", - "SALAMENCITE": "Salamencite", - "SCEPTILITE": "Sceptilite", - "SCIZORITE": "Scizorite", - "SHARPEDONITE": "Sharpedonite", - "SLOWBRONITE": "Slowbronite", + "SABLENITE": "Ténéfixite", + "SALAMENCITE": "Drattakite", + "SCEPTILITE": "Jungkite", + "SCIZORITE": "Cizayoxite", + "SHARPEDONITE": "Sharpedite", + "SLOWBRONITE": "Flagadossite", "STEELIXITE": "Steelixite", - "SWAMPERTITE": "Swampertite", - "TYRANITARITE": "Tyranitarite", - "VENUSAURITE": "Venusaurite", + "SWAMPERTITE": "Laggronite", + "TYRANITARITE": "Tyranocivite", + "VENUSAURITE": "Florizarrite", - "BLUE_ORB": "Blue Orb", - "RED_ORB": "Red Orb", - "SHARP_METEORITE": "Sharp Meteorite", - "HARD_METEORITE": "Hard Meteorite", - "SMOOTH_METEORITE": "Smooth Meteorite", - "ADAMANT_CRYSTAL": "Adamant Crystal", - "LUSTROUS_ORB": "Lustrous Orb", - "GRISEOUS_CORE": "Griseous Core", - "REVEAL_GLASS": "Reveal Glass", - "GRACIDEA": "Gracidea", - "MAX_MUSHROOMS": "Max Mushrooms", - "DARK_STONE": "Dark Stone", - "LIGHT_STONE": "Light Stone", - "PRISON_BOTTLE": "Prison Bottle", - "N_LUNARIZER": "N Lunarizer", - "N_SOLARIZER": "N Solarizer", - "RUSTED_SWORD": "Rusted Sword", - "RUSTED_SHIELD": "Rusted Shield", - "ICY_REINS_OF_UNITY": "Icy Reins Of Unity", - "SHADOW_REINS_OF_UNITY": "Shadow Reins Of Unity", - "WELLSPRING_MASK": "Wellspring Mask", - "HEARTHFLAME_MASK": "Hearthflame Mask", - "CORNERSTONE_MASK": "Cornerstone Mask", - "SHOCK_DRIVE": "Shock Drive", - "BURN_DRIVE": "Burn Drive", - "CHILL_DRIVE": "Chill Drive", - "DOUSE_DRIVE": "Douse Drive", + "BLUE_ORB": "Gemme Bleue", + "RED_ORB": "Gemme Rouge", + "SHARP_METEORITE": "Méteorite Aiguisée", + "HARD_METEORITE": "Méteorite Solide", + "SMOOTH_METEORITE": "Méteorite Lisse", + "ADAMANT_CRYSTAL": "Globe Adamant", + "LUSTROUS_ORB": "Orbe Perlé", + "GRISEOUS_CORE": "Globe Platiné", + "REVEAL_GLASS": "Miroir Sacré", + "GRACIDEA": "Gracidée", + "MAX_MUSHROOMS": "Maxi Champis", + "DARK_STONE": "Galet Noir", + "LIGHT_STONE": "Galet Blanc", + "PRISON_BOTTLE": "Vase Scellé", + "N_LUNARIZER": "Necroluna", + "N_SOLARIZER": "Necrosol", + "RUSTED_SWORD": "Épée Rouillée", + "RUSTED_SHIELD": "Bouclier Rouillé", + "ICY_REINS_OF_UNITY": "Rênes de l’Unité du Froid", + "SHADOW_REINS_OF_UNITY": "Rênes de l’Unité d’Effroi", + "WELLSPRING_MASK": "Masque du Puits", + "HEARTHFLAME_MASK": "Masque du Fourneau", + "CORNERSTONE_MASK": "Masque de la Pierre", + "SHOCK_DRIVE": "Module Choc", + "BURN_DRIVE": "Module Pyro", + "CHILL_DRIVE": "Module Aqua", + "DOUSE_DRIVE": "Module Choc", }, TeraType: { - "UNKNOWN": "Unknown", + "UNKNOWN": "Inconnu", "NORMAL": "Normal", - "FIGHTING": "Fighting", - "FLYING": "Flying", + "FIGHTING": "Combat", + "FLYING": "Vol", "POISON": "Poison", - "GROUND": "Ground", - "ROCK": "Rock", - "BUG": "Bug", - "GHOST": "Ghost", - "STEEL": "Steel", - "FIRE": "Fire", - "WATER": "Water", - "GRASS": "Grass", - "ELECTRIC": "Electric", - "PSYCHIC": "Psychic", - "ICE": "Ice", + "GROUND": "Sol", + "ROCK": "Roche", + "BUG": "Insecte", + "GHOST": "Spectre", + "STEEL": "Acier", + "FIRE": "Feu", + "WATER": "Eau", + "GRASS": "Plante", + "ELECTRIC": "Électrik", + "PSYCHIC": "Psy", + "ICE": "Glace", "DRAGON": "Dragon", - "DARK": "Dark", - "FAIRY": "Fairy", - "STELLAR": "Stellar", + "DARK": "Ténèbres", + "FAIRY": "Fée", + "STELLAR": "Stellaire", }, -} as const; \ No newline at end of file +} as const; diff --git a/src/locales/fr/move.ts b/src/locales/fr/move.ts index e4d7f5e03fa..3a0ce42c44d 100644 --- a/src/locales/fr/move.ts +++ b/src/locales/fr/move.ts @@ -2915,7 +2915,7 @@ export const move: MoveTranslationEntries = { }, "zippyZap": { name: "Pika-Sprint", - effect: "Une attaque électrique rapide comme l’éclair qui auguemente l’esquive. Frappe en priorité." + effect: "Une attaque électrique rapide comme l’éclair qui augmente l’esquive. Frappe en priorité." }, "splishySplash": { name: "Pika-Splash", diff --git a/src/locales/fr/weather.ts b/src/locales/fr/weather.ts index e73e51a53a2..f00e7e08a03 100644 --- a/src/locales/fr/weather.ts +++ b/src/locales/fr/weather.ts @@ -39,6 +39,6 @@ export const weather: SimpleTranslationEntries = { "harshSunClearMessage": "Les rayons du soleil s’affaiblissent !", "strongWindsStartMessage": "Un vent mystérieux se lève !", - "strongWindsLapseMessage": "Le vent mystérieux violemment !", + "strongWindsLapseMessage": "Le vent mystérieux souffle violemment !", "strongWindsClearMessage": "Le vent mystérieux s’est dissipé…" } diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index baa252bcb16..6892c9c8cad 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -13,10 +13,10 @@ import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; +import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; +import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { titles,trainerClasses,trainerNames } from "./trainers"; -import { splashMessages } from "./splash-messages" import { weather } from "./weather"; @@ -27,20 +27,20 @@ export const itConfig = { commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, - menuUiHandler: menuUiHandler, + growth: growth, menu: menu, + menuUiHandler: menuUiHandler, + modifierType: modifierType, move: move, + nature: nature, pokeball: pokeball, - pokemonStat: pokemonStat, pokemon: pokemon, + pokemonStat: pokemonStat, + splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - splashMessages: splashMessages, - nature: nature, - growth: growth, weather: weather, - modifierType: modifierType, } diff --git a/src/locales/it/modifier-type.ts b/src/locales/it/modifier-type.ts index 043d7a705d5..7f342309acf 100644 --- a/src/locales/it/modifier-type.ts +++ b/src/locales/it/modifier-type.ts @@ -4,320 +4,320 @@ export const modifierType: ModifierTypeTranslationEntries = { ModifierType: { "AddPokeballModifierType": { name: "{{modifierCount}}x {{pokeballName}}", - description: "Receive {{pokeballName}} x{{modifierCount}} (Inventory: {{pokeballAmount}}) \nCatch Rate: {{catchRate}}", + description: "Ricevi {{pokeballName}} x{{modifierCount}} (Inventario: {{pokeballAmount}}) \nTasso di cattura: {{catchRate}}", }, "AddVoucherModifierType": { name: "{{modifierCount}}x {{voucherTypeName}}", - description: "Receive {{voucherTypeName}} x{{modifierCount}}", + description: "Ricevi {{voucherTypeName}} x{{modifierCount}}", }, "PokemonHeldItemModifierType": { extra: { - "inoperable": "{{pokemonName}} can't take\nthis item!", - "tooMany": "{{pokemonName}} has too many\nof this item!", + "inoperable": "{{pokemonName}} non può prendere\nquesto oggetto!", + "tooMany": "{{pokemonName}} ne ha troppi\ndi questo oggetto!", } }, "PokemonHpRestoreModifierType": { - description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher", + description: "Restituisce {{restorePoints}} PS o {{restorePercent}}% PS ad un Pokémon, a seconda del valore più alto", extra: { - "fully": "Fully restores HP for one Pokémon", - "fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment", + "fully": "Restituisce tutti gli PS ad un Pokémon", + "fullyWithStatus": "Restituisce tutti gli PS ad un Pokémon e lo cura da ogni stato", } }, "PokemonReviveModifierType": { - description: "Revives one Pokémon and restores {{restorePercent}}% HP", + description: "Rianima un Pokémon esausto e gli restituisce il {{restorePercent}}% PS", }, "PokemonStatusHealModifierType": { - description: "Heals any status ailment for one Pokémon", + description: "Cura tutti i problemi di stato di un Pokémon", }, "PokemonPpRestoreModifierType": { - description: "Restores {{restorePoints}} PP for one Pokémon move", + description: "Restituisce {{restorePoints}} PP per una mossa di un Pokémon ", extra: { - "fully": "Restores all PP for one Pokémon move", + "fully": "Restituisce tutti i PP di una mossa", } }, "PokemonAllMovePpRestoreModifierType": { - description: "Restores {{restorePoints}} PP for all of one Pokémon's moves", + description: "Restituisce {{restorePoints}} PP a tutte le mosse di un Pokémon", extra: { - "fully": "Restores all PP for all of one Pokémon's moves", + "fully": "Restituisce tutti i PP a tutte le mosse di un Pokémon", } }, "PokemonPpUpModifierType": { - description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)", + description: "Aumenta i PP di una mossa di {{upPoints}} per ogni 5 PP (massimo 3)", }, "PokemonNatureChangeModifierType": { - name: "{{natureName}} Mint", - description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.", + name: "Menta {{natureName}}", + description: "Cambia la natura del Pokémon in {{natureName}} e sblocca la natura per il Pokémon iniziale", }, "DoubleBattleChanceBoosterModifierType": { - description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles", + description: "Raddoppia la possibilità di imbattersi in doppie battaglie per {{battleCount}} battaglie", }, "TempBattleStatBoosterModifierType": { - description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles", + description: "Aumenta {{tempBattleStatName}} di un livello a tutti i Pokémon nel gruppo per 5 battaglie", }, "AttackTypeBoosterModifierType": { - description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%", + description: "Aumenta la potenza delle mosse di tipo {{moveType}} del 20% per un Pokémon", }, "PokemonLevelIncrementModifierType": { - description: "Increases a Pokémon's level by 1", + description: "Fa salire un Pokémon di un livello", }, "AllPokemonLevelIncrementModifierType": { - description: "Increases all party members' level by 1", + description: "Aumenta il livello di tutti i Pokémon nel gruppo di 1", }, "PokemonBaseStatBoosterModifierType": { - description: "Increases the holder's base {{statName}} by 10%. The higher your IVs, the higher the stack limit.", + description: "Aumenta {{statName}} di base del possessore del 10%", }, "AllPokemonFullHpRestoreModifierType": { - description: "Restores 100% HP for all Pokémon", + description: "Recupera il 100% degli PS per tutti i Pokémon", }, "AllPokemonFullReviveModifierType": { - description: "Revives all fainted Pokémon, fully restoring HP", + description: "Rianima tutti i Pokémon esausti restituendogli tutti i PS", }, "MoneyRewardModifierType": { - description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})", + description: "Garantisce una {{moneyMultiplier}} quantità di soldi (₽{{moneyAmount}})", extra: { - "small": "small", - "moderate": "moderate", - "large": "large", + "small": "poca", + "moderate": "moderata", + "large": "grande", }, }, "ExpBoosterModifierType": { - description: "Increases gain of EXP. Points by {{boostPercent}}%", + description: "Aumenta il guadagno di Punti Esperienza del {{boostPercent}}%", }, "PokemonExpBoosterModifierType": { - description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%", + description: "Aumenta il guadagno di Punti Esperienza del possessore del {{boostPercent}}%", }, "PokemonFriendshipBoosterModifierType": { - description: "Increases friendship gain per victory by 50%", + description: "Aumenta del 50% il guadagno di amicizia per vittoria", }, "PokemonMoveAccuracyBoosterModifierType": { - description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)", + description: "Aumenta l'accuratezza delle mosse di {{accuracyAmount}} (massimo 100)", }, "PokemonMultiHitModifierType": { - description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively", + description: "Gli attacchi colpiscono una volta in più al costo di una riduzione di potenza del 60/75/82,5% per mossa", }, "TmModifierType": { - name: "TM{{moveId}} - {{moveName}}", - description: "Teach {{moveName}} to a Pokémon", + name: "MT{{moveId}} - {{moveName}}", + description: "Insegna {{moveName}} a un Pokémon", }, "EvolutionItemModifierType": { - description: "Causes certain Pokémon to evolve", + description: "Fa evolvere determinate specie di Pokémon", }, "FormChangeItemModifierType": { - description: "Causes certain Pokémon to change form", + description: "Fa cambiare forma a determinati Pokémon", }, "FusePokemonModifierType": { - description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)", + description: "Combina due Pokémon (trasferisce i poteri, divide le statistiche e i tipi base, condivide il pool di mosse)", }, "TerastallizeModifierType": { - name: "{{teraType}} Tera Shard", - description: "{{teraType}} Terastallizes the holder for up to 10 battles", + name: "Teralite {{teraType}}", + description: "Teracristallizza in {{teraType}} il possessore per massimo 10 battaglie", }, "ContactHeldItemTransferChanceModifierType": { - description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen", + description: "Quando si attacca, c'è una probabilità del {{chancePercent}}% che l'oggetto in possesso del nemico venga rubato", }, "TurnHeldItemTransferModifierType": { - description: "Every turn, the holder acquires one held item from the foe", + description: "Ogni turno, il possessore acquisisce un oggetto posseduto dal nemico", }, "EnemyAttackStatusEffectChanceModifierType": { - description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves", + description: "Aggiunge una probabilità del {{chancePercent}}% di infliggere {{statusEffect}} con le mosse d'attacco", }, "EnemyEndureChanceModifierType": { - description: "Adds a {{chancePercent}}% chance of enduring a hit", + description: "Aggiunge una probabilità del {{probabilitàPercent}}% di resistere ad un colpo", }, - "RARE_CANDY": { name: "Rare Candy" }, - "RARER_CANDY": { name: "Rarer Candy" }, + "RARE_CANDY": { name: "Caramella Rara" }, + "RARER_CANDY": { name: "Caramella Molto Rara" }, - "MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" }, - "DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" }, - "TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" }, + "MEGA_BRACELET": { name: "Megapolsiera", description: "Le Megapietre sono disponibili" }, + "DYNAMAX_BAND": { name: "Polsino Dynamax", description: "I Fungomax sono disponibili" }, + "TERA_ORB": { name: "Terasfera", description: "I Teraliti sono disponibili" }, - "MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" }, + "MAP": { name: "Mappa", description: "Permette di scegliere la propria strada a un bivio" }, - "POTION": { name: "Potion" }, - "SUPER_POTION": { name: "Super Potion" }, - "HYPER_POTION": { name: "Hyper Potion" }, - "MAX_POTION": { name: "Max Potion" }, - "FULL_RESTORE": { name: "Full Restore" }, + "POTION": { name: "Pozione" }, + "SUPER_POTION": { name: "Superpozione" }, + "HYPER_POTION": { name: "Iperpozione" }, + "MAX_POTION": { name: "Pozione Max" }, + "FULL_RESTORE": { name: "Ricarica Totale" }, - "REVIVE": { name: "Revive" }, - "MAX_REVIVE": { name: "Max Revive" }, + "REVIVE": { name: "Revitalizzante" }, + "MAX_REVIVE": { name: "Revitalizzante Max" }, - "FULL_HEAL": { name: "Full Heal" }, + "FULL_HEAL": { name: "Cura Totale" }, - "SACRED_ASH": { name: "Sacred Ash" }, + "SACRED_ASH": { name: "Cenere Magica" }, - "REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" }, + "REVIVER_SEED": { name: "Revitalseme", description: "Il possessore recupera 1/2 di PS in caso di svenimento" }, - "ETHER": { name: "Ether" }, - "MAX_ETHER": { name: "Max Ether" }, + "ETHER": { name: "Etere" }, + "MAX_ETHER": { name: "Etere Max" }, - "ELIXIR": { name: "Elixir" }, - "MAX_ELIXIR": { name: "Max Elixir" }, + "ELIXIR": { name: "Elisir" }, + "MAX_ELIXIR": { name: "Elisir Max" }, - "PP_UP": { name: "PP Up" }, - "PP_MAX": { name: "PP Max" }, + "PP_UP": { name: "PP-su" }, + "PP_MAX": { name: "PP-max" }, - "LURE": { name: "Lure" }, - "SUPER_LURE": { name: "Super Lure" }, - "MAX_LURE": { name: "Max Lure" }, + "LURE": { name: "Profumo Invito" }, + "SUPER_LURE": { name: "Profumo Invito Super" }, + "MAX_LURE": { name: "Profumo Invito Max" }, - "MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" }, + "MEMORY_MUSHROOM": { name: "Fungo della Memoria", description: "Ricorda la mossa dimenticata di un Pokémon" }, - "EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" }, - "EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" }, + "EXP_SHARE": { name: "Condividi Esperienza", description: "Tutti i Pokémon della squadra ricevono il 20% dei Punti Esperienza dalla lotta anche se non vi hanno partecipato" }, + "EXP_BALANCE": { name: "Bilancia Esperienza", description: "Bilancia i Punti Esperienza ricevuti verso i Pokémon del gruppo di livello inferiore" }, - "OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" }, + "OVAL_CHARM": { name: "Ovamuleto", description: "Quando più Pokémon partecipano a una battaglia, ognuno di essi riceve il 10% in più dell'esperienza totale" }, - "EXP_CHARM": { name: "EXP. Charm" }, - "SUPER_EXP_CHARM": { name: "Super EXP. Charm" }, - "GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" }, + "EXP_CHARM": { name: "Esperienzamuleto" }, + "SUPER_EXP_CHARM": { name: "Esperienzamuleto Super" }, + "GOLDEN_EXP_CHARM": { name: "Esperienzamuleto Oro" }, - "LUCKY_EGG": { name: "Lucky Egg" }, - "GOLDEN_EGG": { name: "Golden Egg" }, + "LUCKY_EGG": { name: "Uovo Fortunato" }, + "GOLDEN_EGG": { name: "Uovo d'Oro" }, - "SOOTHE_BELL": { name: "Soothe Bell" }, + "SOOTHE_BELL": { name: "Calmanella" }, - "SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" }, + "SOUL_DEW": { name: "Cuorugiada", description: "Aumenta del 10% l'influenza della natura di un Pokémon sulle sue statistiche (Aggiuntivo)" }, - "NUGGET": { name: "Nugget" }, - "BIG_NUGGET": { name: "Big Nugget" }, - "RELIC_GOLD": { name: "Relic Gold" }, + "NUGGET": { name: "Pepita" }, + "BIG_NUGGET": { name: "Granpepita" }, + "RELIC_GOLD": { name: " Dobloantico" }, - "AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" }, - "GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" }, - "COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" }, + "AMULET_COIN": { name: "Monetamuleto", description: "Aumenta le ricompense in denaro del 20%" }, + "GOLDEN_PUNCH": { name: "Pugno Dorato", description: "Garantisce il 50% dei danni inflitti come denaro" }, + "COIN_CASE": { name: " Salvadanaio", description: "Dopo ogni 10° battaglia, riceverete il 10% del vostro denaro in interessi" }, - "LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" }, + "LOCK_CAPSULE": { name: "Capsula Scrigno", description: "Permette di bloccare le rarità degli oggetti quando si fa un reroll degli oggetti" }, - "GRIP_CLAW": { name: "Grip Claw" }, - "WIDE_LENS": { name: "Wide Lens" }, + "GRIP_CLAW": { name: "Presartigli" }, + "WIDE_LENS": { name: "Grandelente" }, - "MULTI_LENS": { name: "Multi Lens" }, + "MULTI_LENS": { name: "Multilente" }, - "HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" }, - "CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" }, + "HEALING_CHARM": { name: "Curamuleto", description: "Aumenta del 10% l'efficacia delle mosse e degli oggetti che ripristinano gli PS (escluse le rianimazioni)" }, + "CANDY_JAR": { name: "Barattolo di caramelle", description: "Aumenta di 1 il numero di livelli aggiunti dalle Caramelle Rare" }, - "BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 25% chance that a used berry will not be consumed" }, + "BERRY_POUCH": { name: "Porta Bacche", description: "Aggiunge il 25% di possibilità che una bacca usata non venga consumata" }, - "FOCUS_BAND": { name: "Focus Band", description: "Adds a 10% chance to survive with 1 HP after being damaged enough to faint" }, + "FOCUS_BAND": { name: "Bandana", description: "Chi ce l'ha ottiene il 10% di possibilità aggiuntivo di evitare un potenziale KO e rimanere con un solo PS" }, - "QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" }, + "QUICK_CLAW": { name: "Rapidartigli", description: "Aggiunge una probabilità del 10% di muoversi per primi, indipendentemente dalla velocità (dopo la priorità)" }, - "KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" }, + "KINGS_ROCK": { name: "Roccia di re", description: "Aggiunge il 10% di possibilità che una mossa d'attacco faccia tentennare l'avversario" }, - "LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" }, - "SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" }, + "LEFTOVERS": { name: "Avanzi", description: "Ripristina 1/16 dei PS massimi di un Pokémon ogni turno" }, + "SHELL_BELL": { name: "Conchinella", description: "Guarisce 1/8 del danno inflitto a un Pokémon" }, - "BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" }, + "BATON": { name: "Staffetta", description: "Permette di trasmettere gli effetti quando si cambia Pokémon, aggirando anche le trappole" }, - "SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" }, - "ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" }, + "SHINY_CHARM": { name: "Cromamuleto", description: "Misterioso amuleto luminoso che aumenta la probabilità di incontrare Pokémon cromatici" }, + "ABILITY_CHARM": { name: "Abilitamuleto", description: "Aumenta drasticamente la possibilità che un Pokémon selvatico abbia un'abilità nascosta" }, - "IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" }, + "IV_SCANNER": { name: "Scanner IV", description: "Permette di scansionare gli IV dei Pokémon selvatici. Vengono rivelati 2 IV per pila. I migliori IV vengono mostrati per primi" }, - "DNA_SPLICERS": { name: "DNA Splicers" }, + "DNA_SPLICERS": { name: " Cuneo DNA" }, - "MINI_BLACK_HOLE": { name: "Mini Black Hole" }, + "MINI_BLACK_HOLE": { name: "Piccolo Buco Nero" }, - "GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" }, + "GOLDEN_POKEBALL": { name: "Poké Ball Oro", description: "Aggiunge 1 opzione di oggetto extra alla fine di ogni battaglia" }, - "ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" }, - "ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" }, - "ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" }, - "ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" }, - "ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" }, - "ENEMY_ATTACK_SLEEP_CHANCE": { name: "Sleep Token" }, - "ENEMY_ATTACK_FREEZE_CHANCE": { name: "Freeze Token" }, - "ENEMY_ATTACK_BURN_CHANCE": { name: "Burn Token" }, - "ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Full Heal Token", description: "Adds a 10% chance every turn to heal a status condition" }, - "ENEMY_ENDURE_CHANCE": { name: "Endure Token" }, - "ENEMY_FUSED_CHANCE": { name: "Fusion Token", description: "Adds a 1% chance that a wild Pokémon will be a fusion" }, + "ENEMY_DAMAGE_BOOSTER": { name: "Gettone del Danno", description: "Aumenta il danno del 5%" }, + "ENEMY_DAMAGE_REDUCTION": { name: "Gettone della Protezione", description: "Riduce i danni ricevuti del 2.5%" }, + "ENEMY_HEAL": { name: "Gettone del Recupero", description: "Cura il 2% dei PS massimi ogni turno" }, + "ENEMY_ATTACK_POISON_CHANCE": { name: "Gettone del Veleno" }, + "ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Gettone della Paralisi" }, + "ENEMY_ATTACK_SLEEP_CHANCE": { name: "Gettone del Sonno" }, + "ENEMY_ATTACK_FREEZE_CHANCE": { name: "Gettone del Congelamento" }, + "ENEMY_ATTACK_BURN_CHANCE": { name: "Gettone della Bruciatura" }, + "ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Gettone Guarigione Completa", description: "Aggiunge una probabilità del 10% a ogni turno di curare una condizione di stato" }, + "ENEMY_ENDURE_CHANCE": { name: "Gettone di Resistenza" }, + "ENEMY_FUSED_CHANCE": { name: "Gettone della fusione", description: "Aggiunge l'1% di possibilità che un Pokémon selvatico sia una fusione" }, }, TempBattleStatBoosterItem: { - "x_attack": "X Attack", - "x_defense": "X Defense", - "x_sp_atk": "X Sp. Atk", - "x_sp_def": "X Sp. Def", - "x_speed": "X Speed", - "x_accuracy": "X Accuracy", - "dire_hit": "Dire Hit", + "x_attack": "Attacco X", + "x_defense": "Difesa X", + "x_sp_atk": "Att. Speciale X", + "x_sp_def": "Dif. Speciale X", + "x_speed": "Velocità X", + "x_accuracy": "Precisione X", + "dire_hit": "Supercolpo", }, AttackTypeBoosterItem: { - "silk_scarf": "Silk Scarf", - "black_belt": "Black Belt", - "sharp_beak": "Sharp Beak", - "poison_barb": "Poison Barb", - "soft_sand": "Soft Sand", - "hard_stone": "Hard Stone", - "silver_powder": "Silver Powder", - "spell_tag": "Spell Tag", - "metal_coat": "Metal Coat", - "charcoal": "Charcoal", - "mystic_water": "Mystic Water", - "miracle_seed": "Miracle Seed", - "magnet": "Magnet", - "twisted_spoon": "Twisted Spoon", - "never_melt_ice": "Never-Melt Ice", - "dragon_fang": "Dragon Fang", - "black_glasses": "Black Glasses", - "fairy_feather": "Fairy Feather", + "silk_scarf": "Sciarpa seta", + "black_belt": "Cinturanera", + "sharp_beak": "Beccaffilato", + "poison_barb": "Velenaculeo", + "soft_sand": "Sabbia soffice", + "hard_stone": "Pietradura", + "silver_powder": "Argenpolvere", + "spell_tag": "Spettrotarga", + "metal_coat": "Metalcopertura", + "charcoal": "Carbonella", + "mystic_water": "Acqua magica", + "miracle_seed": "Miracolseme", + "magnet": "Magnete", + "twisted_spoon": "Cucchiaio torto", + "never_melt_ice": "Gelomai", + "dragon_fang": "Dente di drago", + "black_glasses": "Occhialineri", + "fairy_feather": "Piuma fatata", }, BaseStatBoosterItem: { - "hp_up": "HP Up", - "protein": "Protein", - "iron": "Iron", - "calcium": "Calcium", - "zinc": "Zinc", - "carbos": "Carbos", + "hp_up": "PS-su", + "protein": "Proteina", + "iron": "Ferro", + "calcium": "Calcio", + "zinc": "Zinco", + "carbos": "Carburante", }, EvolutionItem: { - "NONE": "None", + "NONE": "Nessuno", - "LINKING_CORD": "Linking Cord", - "SUN_STONE": "Sun Stone", - "MOON_STONE": "Moon Stone", - "LEAF_STONE": "Leaf Stone", - "FIRE_STONE": "Fire Stone", - "WATER_STONE": "Water Stone", - "THUNDER_STONE": "Thunder Stone", - "ICE_STONE": "Ice Stone", - "DUSK_STONE": "Dusk Stone", - "DAWN_STONE": "Dawn Stone", - "SHINY_STONE": "Shiny Stone", - "CRACKED_POT": "Cracked Pot", - "SWEET_APPLE": "Sweet Apple", - "TART_APPLE": "Tart Apple", - "STRAWBERRY_SWEET": "Strawberry Sweet", - "UNREMARKABLE_TEACUP": "Unremarkable Teacup", + "LINKING_CORD": "Filo dell'unione", + "SUN_STONE": "Pietrasolare", + "MOON_STONE": "Pietralunare", + "LEAF_STONE": "Pietrafoglia", + "FIRE_STONE": "Pietrafocaia", + "WATER_STONE": "Pietraidrica", + "THUNDER_STONE": "Pietratuono", + "ICE_STONE": "Pietragelo", + "DUSK_STONE": "Neropietra", + "DAWN_STONE": "Pietralbore", + "SHINY_STONE": "Pietrabrillo", + "CRACKED_POT": "Teiera rotta", + "SWEET_APPLE": "Dolcepomo", + "TART_APPLE": "Aspropomo", + "STRAWBERRY_SWEET": "Bonbonfragola", + "UNREMARKABLE_TEACUP": "Tazza dozzinale", - "CHIPPED_POT": "Chipped Pot", - "BLACK_AUGURITE": "Black Augurite", - "GALARICA_CUFF": "Galarica Cuff", - "GALARICA_WREATH": "Galarica Wreath", - "PEAT_BLOCK": "Peat Block", - "AUSPICIOUS_ARMOR": "Auspicious Armor", - "MALICIOUS_ARMOR": "Malicious Armor", - "MASTERPIECE_TEACUP": "Masterpiece Teacup", - "METAL_ALLOY": "Metal Alloy", - "SCROLL_OF_DARKNESS": "Scroll Of Darkness", - "SCROLL_OF_WATERS": "Scroll Of Waters", - "SYRUPY_APPLE": "Syrupy Apple", + "CHIPPED_POT": "Teiera crepata", + "BLACK_AUGURITE": "Augite nera", + "GALARICA_CUFF": "Fascia Galarnoce", + "GALARICA_WREATH": "Corona Galarnoce", + "PEAT_BLOCK": "Blocco di torba", + "AUSPICIOUS_ARMOR": "Armatura fausta", + "MALICIOUS_ARMOR": "Armatura infausta", + "MASTERPIECE_TEACUP": "Tazza eccezionale", + "METAL_ALLOY": "Metallo composito", + "SCROLL_OF_DARKNESS": "Rotolo del Buio", + "SCROLL_OF_WATERS": "Rotolo dell'Acqua", + "SYRUPY_APPLE": "Sciroppomo", }, FormChangeItem: { - "NONE": "None", + "NONE": "Nessuno", - "ABOMASITE": "Abomasite", + "ABOMASITE": "Abomasnowite", "ABSOLITE": "Absolite", "AERODACTYLITE": "Aerodactylite", "AGGRONITE": "Aggronite", - "ALAKAZITE": "Alakazite", - "ALTARIANITE": "Altarianite", + "ALAKAZITE": "Alakazamite", + "ALTARIANITE": "Altarite", "AMPHAROSITE": "Ampharosite", "AUDINITE": "Audinite", "BANETTITE": "Banettite", "BEEDRILLITE": "Beedrillite", - "BLASTOISINITE": "Blastoisinite", + "BLASTOISINITE": "Blastoisite", "BLAZIKENITE": "Blazikenite", "CAMERUPTITE": "Cameruptite", "CHARIZARDITE_X": "Charizardite X", @@ -327,83 +327,83 @@ export const modifierType: ModifierTypeTranslationEntries = { "GARCHOMPITE": "Garchompite", "GARDEVOIRITE": "Gardevoirite", "GENGARITE": "Gengarite", - "GLALITITE": "Glalitite", + "GLALITITE": "Glalite", "GYARADOSITE": "Gyaradosite", "HERACRONITE": "Heracronite", - "HOUNDOOMINITE": "Houndoominite", + "HOUNDOOMINITE": "Houndoomite", "KANGASKHANITE": "Kangaskhanite", "LATIASITE": "Latiasite", "LATIOSITE": "Latiosite", "LOPUNNITE": "Lopunnite", - "LUCARIONITE": "Lucarionite", - "MANECTITE": "Manectite", + "LUCARIONITE": "Lucarite", + "MANECTITE": "Manectricite", "MAWILITE": "Mawilite", "MEDICHAMITE": "Medichamite", "METAGROSSITE": "Metagrossite", - "MEWTWONITE_X": "Mewtwonite X", - "MEWTWONITE_Y": "Mewtwonite Y", + "MEWTWONITE_X": "Mewtwoite X", + "MEWTWONITE_Y": "Mewtwoite Y", "PIDGEOTITE": "Pidgeotite", "PINSIRITE": "Pinsirite", "RAYQUAZITE": "Rayquazite", - "SABLENITE": "Sablenite", + "SABLENITE": "Sableyite", "SALAMENCITE": "Salamencite", "SCEPTILITE": "Sceptilite", "SCIZORITE": "Scizorite", - "SHARPEDONITE": "Sharpedonite", - "SLOWBRONITE": "Slowbronite", + "SHARPEDONITE": "Sharpedite", + "SLOWBRONITE": "Slowbroite", "STEELIXITE": "Steelixite", "SWAMPERTITE": "Swampertite", "TYRANITARITE": "Tyranitarite", "VENUSAURITE": "Venusaurite", - "BLUE_ORB": "Blue Orb", - "RED_ORB": "Red Orb", - "SHARP_METEORITE": "Sharp Meteorite", - "HARD_METEORITE": "Hard Meteorite", - "SMOOTH_METEORITE": "Smooth Meteorite", - "ADAMANT_CRYSTAL": "Adamant Crystal", - "LUSTROUS_ORB": "Lustrous Orb", - "GRISEOUS_CORE": "Griseous Core", - "REVEAL_GLASS": "Reveal Glass", + "BLUE_ORB": "Gemma Blu", + "RED_ORB": "Gemma Rossa", + "SHARP_METEORITE": "Meteorite Tagliente", + "HARD_METEORITE": "Meteorite Dura", + "SMOOTH_METEORITE": "Meteorite Liscia", + "ADAMANT_CRYSTAL": "Adamasferoide", + "LUSTROUS_ORB": "Splendisfera", + "GRISEOUS_CORE": "Grigiosferoide", + "REVEAL_GLASS": "Verispecchio", "GRACIDEA": "Gracidea", - "MAX_MUSHROOMS": "Max Mushrooms", - "DARK_STONE": "Dark Stone", - "LIGHT_STONE": "Light Stone", - "PRISON_BOTTLE": "Prison Bottle", - "N_LUNARIZER": "N Lunarizer", - "N_SOLARIZER": "N Solarizer", - "RUSTED_SWORD": "Rusted Sword", - "RUSTED_SHIELD": "Rusted Shield", - "ICY_REINS_OF_UNITY": "Icy Reins Of Unity", - "SHADOW_REINS_OF_UNITY": "Shadow Reins Of Unity", - "WELLSPRING_MASK": "Wellspring Mask", - "HEARTHFLAME_MASK": "Hearthflame Mask", - "CORNERSTONE_MASK": "Cornerstone Mask", - "SHOCK_DRIVE": "Shock Drive", - "BURN_DRIVE": "Burn Drive", - "CHILL_DRIVE": "Chill Drive", - "DOUSE_DRIVE": "Douse Drive", + "MAX_MUSHROOMS": "Fungomax", + "DARK_STONE": "Scurolite", + "LIGHT_STONE": "Chiarolite", + "PRISON_BOTTLE": "Vaso del Vincolo", + "N_LUNARIZER": "Necrolunix", + "N_SOLARIZER": "Necrosolix", + "RUSTED_SWORD": "Spada Rovinata", + "RUSTED_SHIELD": "Scudo Rovinato", + "ICY_REINS_OF_UNITY": "Briglie Legame Giaccio", + "SHADOW_REINS_OF_UNITY": "Briglie legame Ombra", + "WELLSPRING_MASK": "Maschera Pozzo", + "HEARTHFLAME_MASK": "Maschera Focolare", + "CORNERSTONE_MASK": "Maschera Fondamenta", + "SHOCK_DRIVE": "Voltmodulo", + "BURN_DRIVE": "Piromodulo", + "CHILL_DRIVE": "Gelomodulo", + "DOUSE_DRIVE": "Idromodulo", }, TeraType: { - "UNKNOWN": "Unknown", - "NORMAL": "Normal", - "FIGHTING": "Fighting", - "FLYING": "Flying", - "POISON": "Poison", - "GROUND": "Ground", - "ROCK": "Rock", - "BUG": "Bug", - "GHOST": "Ghost", - "STEEL": "Steel", - "FIRE": "Fire", - "WATER": "Water", - "GRASS": "Grass", - "ELECTRIC": "Electric", - "PSYCHIC": "Psychic", - "ICE": "Ice", - "DRAGON": "Dragon", - "DARK": "Dark", - "FAIRY": "Fairy", - "STELLAR": "Stellar", + "UNKNOWN": "Sconosciuto", + "NORMAL": "Normale", + "FIGHTING": "Lotta", + "FLYING": "Volante", + "POISON": "Veleno", + "GROUND": "Terra", + "ROCK": "Roccia", + "BUG": "Coleottero", + "GHOST": "Spettro", + "STEEL": "Acciaio", + "FIRE": "Fuoco", + "WATER": "Acqua", + "GRASS": "Erba", + "ELECTRIC": "Elettro", + "PSYCHIC": "Psico", + "ICE": "Ghiaccio", + "DRAGON": "Drago", + "DARK": "Buio", + "FAIRY": "Folletto", + "STELLAR": "Astrale", }, } as const; \ No newline at end of file diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 957b1e7a482..19afba381b8 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -2,20 +2,22 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { battle } from "./battle"; import { commandUiHandler } from "./command-ui-handler"; +// import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; +import { growth } from "./growth"; import { menu } from "./menu"; import { menuUiHandler } from "./menu-ui-handler"; +import { modifierType } from "./modifier-type"; import { move } from "./move"; +import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; import { pokemonStat } from "./pokemon-stat"; +// import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; +import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { titles,trainerClasses,trainerNames } from "./trainers"; -import { nature } from "./nature"; import { weather } from "./weather"; -import { modifierType } from "./modifier-type"; -import { growth } from "./growth"; export const zhCnConfig = { @@ -23,21 +25,22 @@ export const zhCnConfig = { abilityTriggers: abilityTriggers, battle: battle, commandUiHandler: commandUiHandler, + // egg: egg, fightUiHandler: fightUiHandler, - menuUiHandler: menuUiHandler, + growth: growth, menu: menu, + menuUiHandler: menuUiHandler, + modifierType: modifierType, move: move, - pokeball: pokeball, - pokemonStat: pokemonStat, - pokemon: pokemon, - starterSelectUiHandler: starterSelectUiHandler, nature: nature, + pokeball: pokeball, + pokemon: pokemon, + pokemonStat: pokemonStat, + // splashMessages: splashMessages, + starterSelectUiHandler: starterSelectUiHandler, titles: titles, trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - nature: nature, - growth: growth, weather: weather, - modifierType: modifierType, } diff --git a/src/locales/zh_CN/trainers.ts b/src/locales/zh_CN/trainers.ts index a02383a4f54..5db37c78a6b 100644 --- a/src/locales/zh_CN/trainers.ts +++ b/src/locales/zh_CN/trainers.ts @@ -2,239 +2,297 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n"; // Titles of special trainers like gym leaders, elite four, and the champion export const titles: SimpleTranslationEntries = { - "elite_four": "Elite Four", - "gym_leader": "Gym Leader", - "gym_leader_female": "Gym Leader", - "champion": "Champion", - "rival": "Rival", - "professor": "Professor", - "frontier_brain": "Frontier Brain", + "elite_four": "四天王", + "gym_leader": "道馆馆主", + "gym_leader_female": "道馆馆主", + "champion": "冠军", + "rival": "劲敌", + "professor": "博士", + "frontier_brain": "开拓头脑", // Maybe if we add the evil teams we can add "Team Rocket" and "Team Aqua" etc. here as well as "Team Rocket Boss" and "Team Aqua Admin" etc. } as const; // Titles of trainers like "Youngster" or "Lass" export const trainerClasses: SimpleTranslationEntries = { - "ace_trainer": "Ace Trainer", - "ace_trainer_female": "Ace Trainer", - "ace_duo": "Ace Duo", - "artist": "Artist", - "artist_female": "Artist", - "backers": "Backers", - "backpacker": "Backpacker", - "backpacker_female": "Backpacker", - "backpackers": "Backpackers", - "baker": "Baker", - "battle_girl": "Battle Girl", - "beauty": "Beauty", - "beginners": "Beginners", - "biker": "Biker", - "black_belt": "Black Belt", - "breeder": "Breeder", - "breeder_female": "Breeder", - "breeders": "Breeders", - "clerk": "Clerk", - "clerk_female": "Clerk", - "colleagues": "Colleagues", - "crush_kin": "Crush Kin", - "cyclist": "Cyclist", - "cyclist_female": "Cyclist", - "cyclists": "Cyclists", - "dancer": "Dancer", - "dancer_female": "Dancer", - "depot_agent": "Depot Agent", - "doctor": "Doctor", - "doctor_female": "Doctor", - "fishermen": "Fishermen", - "fishermen_female": "Fishermen", - "gentleman": "Gentleman", - "guitarist": "Guitarist", - "guitarist_female": "Guitarist", - "harlequin": "Harlequin", - "hiker": "Hiker", - "hooligans": "Hooligans", - "hoopster": "Hoopster", - "infielder": "Infielder", - "janitor": "Janitor", - "lady": "Lady", - "lass": "Lass", - "linebacker": "Linebacker", - "maid": "Maid", - "madame": "Madame", - "medical_team": "Medical Team", - "musican": "Musician", - "hex_maniac": "Hex Maniac", - "nurse": "Nurse", - "nursery_aide": "Nursery Aide", - "officer": "Officer", - "parasol_lady": "Parasol Lady", - "pilot": "Pilot", - "poké_fan": "Poké Fan", - "poké_fan_family": "Poké Fan Family", - "preschooler": "Preschooler", - "preschooler_female": "Preschooler", - "preschoolers": "Preschoolers", - "psychic": "Psychic", - "psychic_female": "Psychic", - "psychics": "Psychics", - "pokémon_ranger": "Pokémon Ranger", - "pokémon_rangers": "Pokémon Ranger", - "ranger": "Ranger", - "restaurant_staff": "Restaurant Staff", - "rich_boy": "Rich Boy", - "rich_couple": "Rich Couple", - "rich_kids": "Rich Kids", - "roughneck": "Roughneck", - "scientist": "Scientist", - "scientist_female": "Scientist", - "scientists": "Scientists", - "smasher": "Smasher", - "snow_worker": "Snow Worker", - "snow_worker_female": "Snow Worker", - "striker": "Striker", - "school_kid": "School Kid", - "school_kid_female": "School Kid", - "school_kids": "School Kids", - "swimmer": "Swimmer", - "swimmer_female": "Swimmer", - "swimmers": "Swimmers", - "twins": "Twins", - "veteran": "Veteran", - "veteran_female": "Veteran", - "veteran_duo": "Veteran Duo", - "waiter": "Waiter", - "waitress": "Waitress", - "worker": "Worker", - "worker_female": "Worker", - "workers": "Workers", - "youngster": "Youngster" + "ace_trainer": "精英训练家", + "ace_trainer_female": "精英训练家", + "ace_duo": "精英组合", + "artist": "艺术家", + "artist_female": "艺术家", + "backers": "啦啦队", + "backpacker": "背包客", + "backpacker_female": "背包客", + "backpackers": "背包客组合", + "baker": "面包师", + "battle_girl": "对战少女", + "beauty": "大姐姐", + "beginners": "新人训练家组合", + "biker": "飙车族", + "black_belt": "空手道王", + "breeder": "宝可梦培育家", + "breeder_female": "宝可梦培育家", + "breeders": "宝可梦培育家组合", + "clerk": "商务人士", + "clerk_female": "职场OL", + "colleagues": "商务伙伴", + "crush_kin": "格斗姐弟", + "cyclist": "自行车手", + "cyclist_female": "自行车手", + "cyclists": "自行车手组合", + "dancer": "舞者", + "dancer_female": "舞者", + "depot_agent": "铁路员工", + "doctor": "医生", + "doctor_female": "医生", + "fishermen": "垂钓者", + "fishermen_female": "垂钓者", + "gentleman": "绅士", + "guitarist": "吉他手", + "guitarist_female": "吉他手", + "harlequin": "滑稽演员", + "hiker": "登山男", + "hooligans": "坏组合", + "hoopster": "篮球选手", + "infielder": "棒球选手", + "janitor": "清洁员", + "lady": "千金小姐", + "lass": "迷你裙", + "linebacker": "美式橄榄球选手", + "maid": "女仆", + "madame": "女士", + "medical_team": "医疗团队", + "musican": "音乐家", + "hex_maniac": "灵异迷", + "nurse": "护士", + "nursery_aide": "幼儿园老师", + "officer": "警察", + "parasol_lady": "阳伞姐姐", + "pilot": "飞行员", + "poké_fan": "发烧友俱乐部", + "poké_fan_family": "同好夫妇", + "preschooler": "幼儿园小朋友", + "preschooler_female": "幼儿园小朋友", + "preschoolers": "幼儿园小朋友组合", + "psychic": "超能力者", + "psychic_female": "超能力者", + "psychics": "超能力者组合", + "pokémon_ranger": "宝可梦巡护员", + "pokémon_rangers": "宝可梦巡护员组合", + "ranger": "巡护员", + "restaurant_staff": "服务生组合", + "rich_boy": "富家少爷", + "rich_couple": "富豪夫妇", + "rich_kids": "富二代组合", + "roughneck": "光头男", + "scientist": "研究员", + "scientist_female": "研究员", + "scientists": "研究员组合", + "smasher": "网球选手", + "snow_worker": "雪地工人", + "snow_worker_female": "雪地工人", + "striker": "足球选手", + "school_kid": "补习班学生", + "school_kid_female": "补习班学生", + "school_kids": "补习班学生组合", + "swimmer": "泳裤小伙子", + "swimmer_female": "比基尼大姐姐", + "swimmers": "泳装情侣", + "twins": "双胞胎", + "veteran": "资深训练家", + "veteran_female": "资深训练家", + "veteran_duo": "资深组合", + "waiter": "服务生", + "waitress": "女服务生", + "worker": "工人", + "worker_female": "工人", + "workers": "工人组合", + "youngster": "短裤小子" } as const; // Names of special trainers like gym leaders, elite four, and the champion export const trainerNames: SimpleTranslationEntries = { - "brock": "Brock", - "misty": "Misty", - "lt_surge": "Lt Surge", - "erika": "Erika", - "janine": "Janine", - "sabrina": "Sabrina", - "blaine": "Blaine", - "giovanni": "Giovanni", - "falkner": "Falkner", - "bugsy": "Bugsy", - "whitney": "Whitney", - "morty": "Morty", - "chuck": "Chuck", - "jasmine": "Jasmine", - "pryce": "Pryce", - "clair": "Clair", - "roxanne": "Roxanne", - "brawly": "Brawly", - "wattson": "Wattson", - "flannery": "Flannery", - "norman": "Norman", - "winona": "Winona", - "tate": "Tate", - "liza": "Liza", - "juan": "Juan", - "roark": "Roark", - "gardenia": "Gardenia", - "maylene": "Maylene", - "crasher_wake": "Crasher Wake", - "fantina": "Fantina", - "byron": "Byron", - "candice": "Candice", - "volkner": "Volkner", - "cilan": "Cilan", - "chili": "Chili", - "cress": "Cress", - "cheren": "Cheren", - "lenora": "Lenora", - "roxie": "Roxie", - "burgh": "Burgh", - "elesa": "Elesa", - "clay": "Clay", - "skyla": "Skyla", - "brycen": "Brycen", - "drayden": "Drayden", - "marlon": "Marlon", - "viola": "Viola", - "grant": "Grant", - "korrina": "Korrina", - "ramos": "Ramos", - "clemont": "Clemont", - "valerie": "Valerie", - "olympia": "Olympia", - "wulfric": "Wulfric", - "milo": "Milo", - "nessa": "Nessa", - "kabu": "Kabu", - "bea": "Bea", - "allister": "Allister", - "opal": "Opal", - "bede": "Bede", - "gordie": "Gordie", - "melony": "Melony", - "piers": "Piers", - "marnie": "Marnie", - "raihan": "Raihan", - "katy": "Katy", - "brassius": "Brassius", - "iono": "Iono", - "kofu": "Kofu", - "larry": "Larry", - "ryme": "Ryme", - "tulip": "Tulip", - "grusha": "Grusha", - "lorelei": "Lorelei", - "bruno": "Bruno", - "agatha": "Agatha", - "lance": "Lance", - "will": "Will", - "koga": "Koga", - "karen": "Karen", - "sidney": "Sidney", - "phoebe": "Phoebe", - "glacia": "Glacia", - "drake": "Drake", - "aaron": "Aaron", - "bertha": "Bertha", - "flint": "Flint", - "lucian": "Lucian", - "shauntal": "Shauntal", - "marshal": "Marshal", - "grimsley": "Grimsley", - "caitlin": "Caitlin", - "malva": "Malva", - "siebold": "Siebold", - "wikstrom": "Wikstrom", - "drasna": "Drasna", - "hala": "Hala", - "molayne": "Molayne", - "olivia": "Olivia", - "acerola": "Acerola", - "kahili": "Kahili", - "rika": "Rika", - "poppy": "Poppy", - "larry_elite": "Larry", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here) - "hassel": "Hassel", - "crispin": "Crispin", - "amarys": "Amarys", - "lacey": "Lacey", - "drayton": "Drayton", - "blue": "Blue", - "red": "Red", - "lance_champion": "Lance", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here) - "steven": "Steven", - "wallace": "Wallace", - "cynthia": "Cynthia", - "alder": "Alder", - "iris": "Iris", - "diantha": "Diantha", - "hau": "Hau", - "geeta": "Geeta", - "nemona": "Nemona", - "kieran": "Kieran", - "leon": "Leon", - "rival": "Finn", - "rival_female": "Ivy", + // ---- 馆主 Gym leader ---- + // 关都地区 Kanto Region + "brock": "小刚", + "misty": "小霞", + "lt_surge": "马志士", + "erika": "莉佳", + "janine": "阿杏", + "sabrina": "娜姿", + "blaine": "夏伯", + "giovanni": "坂木", + + // 城都地区 Johto Region + "falkner": "阿速", + "bugsy": "阿笔", + "whitney": "小茜", + "morty": "松叶", + "chuck": "阿四", + "jasmine": "阿蜜", + "pryce": "柳伯", + "clair": "小椿", + + // 丰缘地区 Hoenn Region + "roxanne": "杜娟", + "brawly": "藤树", + "wattson": "铁旋", + "flannery": "亚莎", + "norman": "千里", + "winona": "娜琪", + "tate": "小枫", + "liza": "小南", + "juan": "亚当", + + // 神奥地区 Sinnoh Region + "roark": "瓢太", + "gardenia": "菜种", + "maylene": "阿李", + "crasher_wake": "吉宪", + "fantina": "梅丽莎", + "byron": "东瓜", + "candice": "小菘", + "volkner": "电次", + + // 合众地区 Unova Region + "cilan": "天桐", + "chili": "伯特", + "cress": "寇恩", + "cheren": "黑连", + "lenora": "芦荟", + "roxie": "霍米加", + "burgh": "亚堤", + "elesa": "小菊儿", + "clay": "菊老大", + "skyla": "风露", + "brycen": "哈奇库", + "drayden": "夏卡", + "marlon": "西子伊", + + // 卡洛斯地区 Kalos Region + "viola": "紫罗兰", + "grant": "查克洛", + "korrina": "可尔妮", + "ramos": "福爷", + "clemont": "希特隆", + "valerie": "玛绣", + "olympia": "葛吉花", + "wulfric": "得抚", + + // 伽勒尔地区 Galar Region + "milo": "亚洛", + "nessa": "露璃娜", + "kabu": "卡芜", + "bea": "彩豆", + "allister": "欧尼奥", + "opal": "波普菈", + "bede": "彼特", + "gordie": "玛瓜", + "melony": "美蓉", + "piers": "聂梓", + "marnie": "玛俐", + "raihan": "奇巴纳", + + // 帕底亚地区 Paldea Region + "katy": "阿枫", + "brassius": "寇沙", + "iono": "奇树", + "kofu": "海岱", + "larry": "青木", + "ryme": "莱姆", + "tulip": "莉普", + "grusha": "古鲁夏", + + // ---- 四天王 Elite Four ---- + // 关都地区 Kanto Region + "lorelei": "科拿", + "bruno": "希巴", + "agatha": "菊子", + "lance": "阿渡", + + // 城都地区 Johto Region + "will": "一树", + "koga": "阿桔", + "karen": "梨花", + + // 丰都地区 Hoenn Region + "sidney": "花月", + "phoebe": "芙蓉", + "glacia": "波妮", + "drake": "源治", + + // 神奥地区 Sinnoh Region + "aaron": "阿柳", + "bertha": "菊野", + "flint": "大叶", + "lucian": "悟松", + + // 合众地区 Unova Region + "shauntal": "婉龙", + "marshal": "连武", + "grimsley": "越橘", + "caitlin": "嘉德丽雅", + + // 卡洛斯地区 Kalos Region + "malva": "帕琦拉", + "siebold": "志米", + "wikstrom": "雁铠", + "drasna": "朵拉塞娜", + + // 阿罗拉地区 Alola Region + "hala": "哈拉", + "molayne": "马睿因", + "olivia": "丽姿", + "acerola": "阿塞萝拉", + "kahili": "卡希丽", + + // 帕底亚地区 Paldea Region + "rika": "辛俐", + "poppy": "波琵", + "larry_elite": "青木", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here) + "hassel": "八朔", + + // 蓝莓学院 Blueberry Academy + "crispin": "赤松", + "amarys": "纳莉", + "lacey": "紫竽", + "drayton": "杜若", + + // ---- 冠军 Champion ---- + // 关都地区 Kanto Region + "blue": "青绿", + "red": "赤红", + + // 城都地区 Johto Region + "lance_champion": "阿渡", // Does this really need to be an extra entry? (it is in trainer-type.ts so I added it here) + + // 丰缘地区 Hoenn Region + "steven": "大吾", + "wallace": "米可利", + + // 神奥地区 Sinnoh Region + "cynthia": "竹兰", + + // 合众地区 Unova Region + "alder": "阿戴克", + "iris": "艾莉丝", + + // 卡洛斯地区 Kalos Region + "diantha": "卡露妮", + + // 阿罗拉地区 Alola Region + "hau": "哈乌", + + // 伽勒尔地区 Galar Region + "leon": "丹帝", + + // 帕底亚地区 paldea Region + "geeta": "也慈", + "nemona": "妮莫", + + // 蓝莓学院 Blueberry academy + "kieran": "乌栗", + + // 劲敌 rival + "rival": "芬恩", + "rival_female": "艾薇", } as const; diff --git a/src/overrides.ts b/src/overrides.ts index 704019a1d80..b7307ab2f7f 100644 --- a/src/overrides.ts +++ b/src/overrides.ts @@ -48,6 +48,13 @@ export const POKEBALL_OVERRIDE: { active: boolean, pokeballs: PokeballCounts } = export const STARTER_FORM_OVERRIDE: integer = 0; // default 5 or 20 for Daily export const STARTING_LEVEL_OVERRIDE: integer = 0; +/** + * SPECIES OVERRIDE + * will only apply to the first starter in your party or each enemy pokemon + * default is 0 to not override + * @example SPECIES_OVERRIDE = Species.Bulbasaur; + */ +export const STARTER_SPECIES_OVERRIDE: Species | integer = 0; export const ABILITY_OVERRIDE: Abilities = Abilities.NONE; export const PASSIVE_ABILITY_OVERRIDE: Abilities = Abilities.NONE; export const MOVESET_OVERRIDE: Array = []; @@ -58,21 +65,13 @@ export const VARIANT_OVERRIDE: Variant = 0; * OPPONENT / ENEMY OVERRIDES */ +export const OPP_SPECIES_OVERRIDE: Species | integer = 0; export const OPP_ABILITY_OVERRIDE: Abilities = Abilities.NONE; export const OPP_PASSIVE_ABILITY_OVERRIDE = Abilities.NONE; export const OPP_MOVESET_OVERRIDE: Array = []; export const OPP_SHINY_OVERRIDE: boolean = false; export const OPP_VARIANT_OVERRIDE: Variant = 0; -/** - * SPECIES OVERRIDE - * will only apply to the first starter in your party or each enemy pokemon - * default is 0 to not override - * @example SPECIES_OVERRIDE = Species.Bulbasaur; - */ -export const STARTER_SPECIES_OVERRIDE: Species | integer = 0; -export const OPP_SPECIES_OVERRIDE: Species | integer = 0; - /** * MODIFIER / ITEM OVERRIDES * if count is not provided, it will default to 1 diff --git a/src/phases.ts b/src/phases.ts index f44b4bcaa0b..90d9a54d288 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -37,7 +37,7 @@ import { BattleType, BattlerIndex, TurnCommand } from "./battle"; import { BattleSpec } from "./enums/battle-spec"; import { Species } from "./data/enums/species"; import { HealAchv, LevelAchv, achvs } from "./system/achv"; -import { TrainerSlot, trainerConfigs } from "./data/trainer-config"; +import { TrainerConfig, TrainerSlot, trainerConfigs } from "./data/trainer-config"; import { TrainerType } from "./data/enums/trainer-type"; import { EggHatchPhase } from "./egg-hatch-phase"; import { Egg } from "./data/egg"; @@ -46,7 +46,7 @@ import { loggedInUser, updateUserInfo } from "./account"; import { PlayerGender, SessionSaveData } from "./system/game-data"; import { addPokeballCaptureStars, addPokeballOpenParticles } from "./field/anims"; import { SpeciesFormChangeActiveTrigger, SpeciesFormChangeManualTrigger, SpeciesFormChangeMoveLearnedTrigger, SpeciesFormChangePostMoveTrigger, SpeciesFormChangePreMoveTrigger } from "./data/pokemon-forms"; -import { battleSpecDialogue, getCharVariantFromDialogue } from "./data/dialogue"; +import { battleSpecDialogue, getCharVariantFromDialogue, miscDialogue } from "./data/dialogue"; import ModifierSelectUiHandler, { SHOP_OPTIONS_ROW_LIMIT } from "./ui/modifier-select-ui-handler"; import { Setting } from "./system/settings"; import { Tutorial, handleTutorial } from "./tutorial"; @@ -59,6 +59,9 @@ import PokemonSpecies, { getPokemonSpecies, getPokemonSpeciesForm, speciesStarte import i18next from './plugins/i18n'; import { Abilities } from "./data/enums/abilities"; import * as Overrides from './overrides'; +import { TextStyle, addTextObject } from "./ui/text"; +import { Type } from "./data/type"; + export class LoginPhase extends Phase { private showText: boolean; @@ -160,7 +163,6 @@ export class TitlePhase extends Phase { this.scene.gameData.getSession(loggedInUser.lastSessionSlot).then(sessionData => { if (sessionData) { this.lastSessionData = sessionData; - console.log(sessionData); const biomeKey = getBiomeKey(sessionData.arena.biome); const bgTexture = `${biomeKey}_bg`; this.scene.arenaBg.setTexture(bgTexture); @@ -1816,7 +1818,14 @@ export class CommandPhase extends FieldPhase { if (!isSwitch && this.fieldIndex) this.scene.currentBattle.turnCommands[this.fieldIndex - 1].skip = true; } else if (trapTag) { - if (!isSwitch) { + if(trapTag.sourceMove === Moves.INGRAIN && this.scene.getPokemonById(trapTag.sourceId).isOfType(Type.GHOST)) { + success = true; + this.scene.currentBattle.turnCommands[this.fieldIndex] = isSwitch + ? { command: Command.POKEMON, cursor: cursor, args: args } + : { command: Command.RUN }; + break; + } + if (!isSwitch) { this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); this.scene.ui.setMode(Mode.MESSAGE); } @@ -3219,11 +3228,10 @@ export class FaintPhase extends PokemonPhase { if (defeatSource?.isOnField()) { applyPostVictoryAbAttrs(PostVictoryAbAttr, defeatSource); const pvmove = allMoves[pokemon.turnData.attacksReceived[0].move]; - const pvattrs = pvmove.getAttrs(PostVictoryStatChangeAttr); + const pvattrs = pvmove.getAttrs(PostVictoryStatChangeAttr) as PostVictoryStatChangeAttr[]; if (pvattrs.length) { - for (let pvattr of pvattrs) { + for (let pvattr of pvattrs) pvattr.applyPostVictory(defeatSource, defeatSource, pvmove); - } } } } @@ -3537,12 +3545,10 @@ export class GameOverModifierRewardPhase extends ModifierRewardPhase { this.scene.addModifier(newModifier).then(() => { this.scene.playSound('level_up_fanfare'); this.scene.ui.setMode(Mode.MESSAGE); - this.scene.ui.fadeIn(250).then(() => { - this.scene.ui.showText(`You received\n${newModifier.type.name}!`, null, () => { - this.scene.time.delayedCall(1500, () => this.scene.arenaBg.setVisible(true)); - resolve(); - }, null, true, 1500); - }); + this.scene.ui.showText(`You received\n${newModifier.type.name}!`, null, () => { + this.scene.time.delayedCall(1500, () => this.scene.arenaBg.setVisible(true)); + resolve(); + }, null, true, 1500); }); }) } @@ -3563,11 +3569,9 @@ export class RibbonModifierRewardPhase extends ModifierRewardPhase { this.scene.addModifier(newModifier).then(() => { this.scene.playSound('level_up_fanfare'); this.scene.ui.setMode(Mode.MESSAGE); - this.scene.ui.fadeIn(250).then(() => { - this.scene.ui.showText(`${this.species.name} beat ${this.scene.gameMode.getName()} Mode for the first time!\nYou received ${newModifier.type.name}!`, null, () => { - resolve(); - }, null, true, 1500); - }); + this.scene.ui.showText(`${this.species.name} beat ${this.scene.gameMode.getName()} Mode for the first time!\nYou received ${newModifier.type.name}!`, null, () => { + resolve(); + }, null, true, 1500); }); }) } @@ -3619,6 +3623,7 @@ export class GameOverPhase extends BattlePhase { handleGameOver(): void { const doGameOver = (newClear: boolean) => { + this.scene.disableMenu = true; this.scene.time.delayedCall(1000, () => { let firstClear = false; if (this.victory && newClear) { @@ -3640,20 +3645,40 @@ export class GameOverPhase extends BattlePhase { const activeBattlers = this.scene.getField().filter(p => p?.isActive(true)); activeBattlers.map(p => p.hideInfo()); this.scene.ui.fadeOut(fadeDuration).then(() => { - [ this.scene.field, ...activeBattlers ].map(a => a.setVisible(false)); + activeBattlers.map(a => a.setVisible(false)); this.scene.setFieldScale(1, true); this.scene.clearPhaseQueue(); this.scene.ui.clearText(); - if (newClear) - this.handleUnlocks(); - if (this.victory && newClear) { - for (let species of this.firstRibbons) - this.scene.unshiftPhase(new RibbonModifierRewardPhase(this.scene, modifierTypes.VOUCHER_PLUS, species)); - if (!firstClear) - this.scene.unshiftPhase(new GameOverModifierRewardPhase(this.scene, modifierTypes.VOUCHER_PREMIUM)); + + const clear = (endCardPhase?: EndCardPhase) => { + if (newClear) + this.handleUnlocks(); + if (this.victory && newClear) { + for (let species of this.firstRibbons) + this.scene.unshiftPhase(new RibbonModifierRewardPhase(this.scene, modifierTypes.VOUCHER_PLUS, species)); + if (!firstClear) + this.scene.unshiftPhase(new GameOverModifierRewardPhase(this.scene, modifierTypes.VOUCHER_PREMIUM)); + } + this.scene.pushPhase(new PostGameOverPhase(this.scene, endCardPhase)); + this.end(); } - this.scene.pushPhase(new PostGameOverPhase(this.scene)); - this.end(); + + if (this.victory) { + this.scene.ui.fadeIn(500).then(() => { + this.scene.charSprite.showCharacter(`rival_${this.scene.gameData.gender === PlayerGender.FEMALE ? 'm' : 'f'}`, getCharVariantFromDialogue(miscDialogue.ending[this.scene.gameData.gender === PlayerGender.FEMALE ? 0 : 1])).then(() => { + this.scene.ui.showDialogue(miscDialogue.ending[this.scene.gameData.gender === PlayerGender.FEMALE ? 0 : 1], this.scene.gameData.gender === PlayerGender.FEMALE ? trainerConfigs[TrainerType.RIVAL].name : trainerConfigs[TrainerType.RIVAL].nameFemale, null, () => { + this.scene.ui.fadeOut(500).then(() => { + this.scene.charSprite.hide().then(() => { + const endCardPhase = new EndCardPhase(this.scene); + this.scene.unshiftPhase(endCardPhase); + clear(endCardPhase); + }); + }); + }); + }); + }); + } else + clear(); }); }); }; @@ -3696,6 +3721,41 @@ export class GameOverPhase extends BattlePhase { } } +export class EndCardPhase extends Phase { + public endCard: Phaser.GameObjects.Image; + public text: Phaser.GameObjects.Text; + + constructor(scene: BattleScene) { + super(scene); + } + + start(): void { + super.start(); + + this.scene.ui.getMessageHandler().bg.setVisible(false); + this.scene.ui.getMessageHandler().nameBoxContainer.setVisible(false); + + this.endCard = this.scene.add.image(0, 0, `end_${this.scene.gameData.gender === PlayerGender.FEMALE ? 'f' : 'm'}`); + this.endCard.setOrigin(0); + this.endCard.setScale(0.5); + this.scene.field.add(this.endCard); + + this.text = addTextObject(this.scene, this.scene.game.canvas.width / 12, (this.scene.game.canvas.height / 6) - 16, 'Congratulations!', TextStyle.SUMMARY, { fontSize: '128px' }); + this.text.setOrigin(0.5); + this.scene.field.add(this.text); + + this.scene.ui.clearText(); + + this.scene.ui.fadeIn(1000).then(() => { + + this.scene.ui.showText('', null, () => { + this.scene.ui.getMessageHandler().bg.setVisible(true); + this.end(); + }, null, true); + }); + } +} + export class UnlockPhase extends Phase { private unlockable: Unlockables; @@ -3710,35 +3770,50 @@ export class UnlockPhase extends Phase { this.scene.gameData.unlocks[this.unlockable] = true; this.scene.playSound('level_up_fanfare'); this.scene.ui.setMode(Mode.MESSAGE); - this.scene.ui.fadeIn(250).then(() => { - this.scene.ui.showText(`${getUnlockableName(this.unlockable)}\nhas been unlocked.`, null, () => { - this.scene.time.delayedCall(1500, () => this.scene.arenaBg.setVisible(true)); - this.end(); - }, null, true, 1500); - }); + this.scene.ui.showText(`${getUnlockableName(this.unlockable)}\nhas been unlocked.`, null, () => { + this.scene.time.delayedCall(1500, () => this.scene.arenaBg.setVisible(true)); + this.end(); + }, null, true, 1500); }); } } export class PostGameOverPhase extends Phase { - constructor(scene: BattleScene) { + private endCardPhase: EndCardPhase; + + constructor(scene: BattleScene, endCardPhase: EndCardPhase) { super(scene); + + this.endCardPhase = endCardPhase; } start() { super.start(); - this.scene.gameData.saveAll(this.scene, true, true, true).then(success => { - if (!success) - return this.scene.reset(true); - this.scene.gameData.tryClearSession(this.scene, this.scene.sessionSlotId).then((success: boolean | [boolean, boolean]) => { - if (!success[0]) + const saveAndReset = () => { + this.scene.gameData.saveAll(this.scene, true, true, true).then(success => { + if (!success) return this.scene.reset(true); - this.scene.reset(); - this.scene.unshiftPhase(new TitlePhase(this.scene)); - this.end(); + this.scene.gameData.tryClearSession(this.scene, this.scene.sessionSlotId).then((success: boolean | [boolean, boolean]) => { + if (!success[0]) + return this.scene.reset(true); + this.scene.reset(); + this.scene.unshiftPhase(new TitlePhase(this.scene)); + this.end(); + }); }); - }); + }; + + if (this.endCardPhase) { + this.scene.ui.fadeOut(500).then(() => { + this.scene.ui.getMessageHandler().bg.setVisible(true); + + this.endCardPhase.endCard.destroy(); + this.endCardPhase.text.destroy(); + saveAndReset(); + }); + } else + saveAndReset(); } } diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index d04a98ea810..abcf04b7cc8 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -31,7 +31,7 @@ export default class BattleMessageUiHandler extends MessageUiHandler { this.textCallbackTimer = null; const bg = this.scene.add.sprite(0, 0, 'bg', this.scene.windowType); - bg.setOrigin(0, 1); + bg.setOrigin(0, 1); ui.add(bg); this.bg = bg;