mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-02-25 13:38:37 +00:00
merge up-to-date
This commit is contained in:
commit
34c534fe57
@ -22,7 +22,7 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
name: "Banquier",
|
name: "Banquier",
|
||||||
},
|
},
|
||||||
"10M_MONEY": {
|
"10M_MONEY": {
|
||||||
name: "Évadé·e fiscal·e",
|
name: "Évadé fiscal",
|
||||||
},
|
},
|
||||||
|
|
||||||
"DamageAchv": {
|
"DamageAchv": {
|
||||||
@ -45,7 +45,7 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
description: "Soigner {{healAmount}} {{HP}} en une fois avec une capacité, un talent ou un objet tenu",
|
description: "Soigner {{healAmount}} {{HP}} en une fois avec une capacité, un talent ou un objet tenu",
|
||||||
},
|
},
|
||||||
"250_HEAL": {
|
"250_HEAL": {
|
||||||
name: "Infirmier·ère",
|
name: "Infirmier",
|
||||||
},
|
},
|
||||||
"1000_HEAL": {
|
"1000_HEAL": {
|
||||||
name: "Médecin",
|
name: "Médecin",
|
||||||
@ -74,19 +74,19 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
description: "Accumuler un total de {{ribbonAmount}} Rubans",
|
description: "Accumuler un total de {{ribbonAmount}} Rubans",
|
||||||
},
|
},
|
||||||
"10_RIBBONS": {
|
"10_RIBBONS": {
|
||||||
name: "Maitre·sse de la Ligue",
|
name: "Maitre de la Ligue",
|
||||||
},
|
},
|
||||||
"25_RIBBONS": {
|
"25_RIBBONS": {
|
||||||
name: "Super Maitre·sse de la Ligue",
|
name: "Super Maitre de la Ligue",
|
||||||
},
|
},
|
||||||
"50_RIBBONS": {
|
"50_RIBBONS": {
|
||||||
name: "Hyper Maitre·sse de la Ligue",
|
name: "Hyper Maitre de la Ligue",
|
||||||
},
|
},
|
||||||
"75_RIBBONS": {
|
"75_RIBBONS": {
|
||||||
name: "Rogue Maitre·sse de la Ligue",
|
name: "Rogue Maitre de la Ligue",
|
||||||
},
|
},
|
||||||
"100_RIBBONS": {
|
"100_RIBBONS": {
|
||||||
name: "Master Maitre·sse de la Ligue",
|
name: "Master Maitre de la Ligue",
|
||||||
},
|
},
|
||||||
|
|
||||||
"TRANSFER_MAX_BATTLE_STAT": {
|
"TRANSFER_MAX_BATTLE_STAT": {
|
||||||
@ -166,7 +166,7 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
description: "Avoir des IV parfaits sur un Pokémon",
|
description: "Avoir des IV parfaits sur un Pokémon",
|
||||||
},
|
},
|
||||||
"CLASSIC_VICTORY": {
|
"CLASSIC_VICTORY": {
|
||||||
name: "Invaincu·e",
|
name: "Invaincu",
|
||||||
description: "Terminer le jeu en mode classique",
|
description: "Terminer le jeu en mode classique",
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -267,4 +267,267 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
||||||
export const PGFachv: AchievementTranslationEntries = PGMachv;
|
export const PGFachv: AchievementTranslationEntries = {
|
||||||
|
"Achievements": {
|
||||||
|
name: "Succès",
|
||||||
|
},
|
||||||
|
"Locked": {
|
||||||
|
name: "Verrouillé",
|
||||||
|
},
|
||||||
|
|
||||||
|
"MoneyAchv": {
|
||||||
|
description: "Récolter un total de {{moneyAmount}} ₽",
|
||||||
|
},
|
||||||
|
"10K_MONEY": {
|
||||||
|
name: "Épargnante",
|
||||||
|
},
|
||||||
|
"100K_MONEY": {
|
||||||
|
name: "Je possède des thunes",
|
||||||
|
},
|
||||||
|
"1M_MONEY": {
|
||||||
|
name: "Banquière",
|
||||||
|
},
|
||||||
|
"10M_MONEY": {
|
||||||
|
name: "Évadée fiscale",
|
||||||
|
},
|
||||||
|
|
||||||
|
"DamageAchv": {
|
||||||
|
description: "Infliger {{damageAmount}} de dégâts en un coup",
|
||||||
|
},
|
||||||
|
"250_DMG": {
|
||||||
|
name: "Caïd",
|
||||||
|
},
|
||||||
|
"1000_DMG": {
|
||||||
|
name: "Boxeuse",
|
||||||
|
},
|
||||||
|
"2500_DMG": {
|
||||||
|
name: "Distributrice de pains",
|
||||||
|
},
|
||||||
|
"10000_DMG": {
|
||||||
|
name: "One Punch Woman",
|
||||||
|
},
|
||||||
|
|
||||||
|
"HealAchv": {
|
||||||
|
description: "Soigner {{healAmount}} {{HP}} en une fois avec une capacité, un talent ou un objet tenu",
|
||||||
|
},
|
||||||
|
"250_HEAL": {
|
||||||
|
name: "Infirmière",
|
||||||
|
},
|
||||||
|
"1000_HEAL": {
|
||||||
|
name: "Médecin",
|
||||||
|
},
|
||||||
|
"2500_HEAL": {
|
||||||
|
name: "Clerc",
|
||||||
|
},
|
||||||
|
"10000_HEAL": {
|
||||||
|
name: "Centre Pokémon",
|
||||||
|
},
|
||||||
|
|
||||||
|
"LevelAchv": {
|
||||||
|
description: "Monter un Pokémon au N.{{level}}",
|
||||||
|
},
|
||||||
|
"LV_100": {
|
||||||
|
name: "Et c’est pas fini !",
|
||||||
|
},
|
||||||
|
"LV_250": {
|
||||||
|
name: "Élite",
|
||||||
|
},
|
||||||
|
"LV_1000": {
|
||||||
|
name: "Vers l’infini et au-delà",
|
||||||
|
},
|
||||||
|
|
||||||
|
"RibbonAchv": {
|
||||||
|
description: "Accumuler un total de {{ribbonAmount}} Rubans",
|
||||||
|
},
|
||||||
|
"10_RIBBONS": {
|
||||||
|
name: "Maitresse de la Ligue",
|
||||||
|
},
|
||||||
|
"25_RIBBONS": {
|
||||||
|
name: "Super Maitresse de la Ligue",
|
||||||
|
},
|
||||||
|
"50_RIBBONS": {
|
||||||
|
name: "Hyper Maitresse de la Ligue",
|
||||||
|
},
|
||||||
|
"75_RIBBONS": {
|
||||||
|
name: "Rogue Maitresse de la Ligue",
|
||||||
|
},
|
||||||
|
"100_RIBBONS": {
|
||||||
|
name: "Master Maitresse de la Ligue",
|
||||||
|
},
|
||||||
|
|
||||||
|
"TRANSFER_MAX_BATTLE_STAT": {
|
||||||
|
name: "Travail d’équipe",
|
||||||
|
description: "Utiliser Relais avec au moins une statistique montée à fond",
|
||||||
|
},
|
||||||
|
"MAX_FRIENDSHIP": {
|
||||||
|
name: "Copinage",
|
||||||
|
description: "Atteindre le niveau de bonheur maximal avec un Pokémon",
|
||||||
|
},
|
||||||
|
"MEGA_EVOLVE": {
|
||||||
|
name: "Mégamorph",
|
||||||
|
description: "Méga-évoluer un Pokémon",
|
||||||
|
},
|
||||||
|
"GIGANTAMAX": {
|
||||||
|
name: "Kaijū",
|
||||||
|
description: "Gigamaxer un Pokémon",
|
||||||
|
},
|
||||||
|
"TERASTALLIZE": {
|
||||||
|
name: "J’aime les STAB",
|
||||||
|
description: "Téracristalliser un Pokémon",
|
||||||
|
},
|
||||||
|
"STELLAR_TERASTALLIZE": {
|
||||||
|
name: "Le type enfoui",
|
||||||
|
description: "Téracristalliser un Pokémon en type Stellaire",
|
||||||
|
},
|
||||||
|
"SPLICE": {
|
||||||
|
name: "Infinite Fusion",
|
||||||
|
description: "Fusionner deux Pokémon avec le Pointeau ADN",
|
||||||
|
},
|
||||||
|
"MINI_BLACK_HOLE": {
|
||||||
|
name: "Item-stellar",
|
||||||
|
description: "Obtenir un Mini Trou Noir",
|
||||||
|
},
|
||||||
|
"CATCH_MYTHICAL": {
|
||||||
|
name: "Fabuleux",
|
||||||
|
description: "Capturer un Pokémon fabuleux",
|
||||||
|
},
|
||||||
|
"CATCH_SUB_LEGENDARY": {
|
||||||
|
name: "(Semi-)Légendaire",
|
||||||
|
description: "Capturer un Pokémon semi-légendaire",
|
||||||
|
},
|
||||||
|
"CATCH_LEGENDARY": {
|
||||||
|
name: "Légendaire",
|
||||||
|
description: "Capturer un Pokémon légendaire",
|
||||||
|
},
|
||||||
|
"SEE_SHINY": {
|
||||||
|
name: "Chromatique",
|
||||||
|
description: "Trouver un Pokémon sauvage chromatique",
|
||||||
|
},
|
||||||
|
"SHINY_PARTY": {
|
||||||
|
name: "Shasseuse",
|
||||||
|
description: "Avoir une équipe exclusivement composée de Pokémon chromatiques",
|
||||||
|
},
|
||||||
|
"HATCH_MYTHICAL": {
|
||||||
|
name: "Œuf fabuleux",
|
||||||
|
description: "Obtenir un Pokémon fabuleux dans un Œuf",
|
||||||
|
},
|
||||||
|
"HATCH_SUB_LEGENDARY": {
|
||||||
|
name: "Œuf semi-légendaire",
|
||||||
|
description: "Obtenir un Pokémon semi-légendaire dans un Œuf",
|
||||||
|
},
|
||||||
|
"HATCH_LEGENDARY": {
|
||||||
|
name: "Œuf légendaire",
|
||||||
|
description: "Obtenir un Pokémon légendaire dans un Œuf",
|
||||||
|
},
|
||||||
|
"HATCH_SHINY": {
|
||||||
|
name: "Œuf chromatique",
|
||||||
|
description: "Obtenir un Pokémon chromatique dans un Œuf",
|
||||||
|
},
|
||||||
|
"HIDDEN_ABILITY": {
|
||||||
|
name: "Potentiel enfoui",
|
||||||
|
description: "Capturer un Pokémon possédant un talent caché",
|
||||||
|
},
|
||||||
|
"PERFECT_IVS": {
|
||||||
|
name: "Certificat d’authenticité",
|
||||||
|
description: "Avoir des IV parfaits sur un Pokémon",
|
||||||
|
},
|
||||||
|
"CLASSIC_VICTORY": {
|
||||||
|
name: "Invaincue",
|
||||||
|
description: "Terminer le jeu en mode classique",
|
||||||
|
},
|
||||||
|
|
||||||
|
"MONO_GEN_ONE": {
|
||||||
|
name: "Le rival originel",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 1re génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_TWO": {
|
||||||
|
name: "Entre tradition et modernité",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 2e génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_THREE": {
|
||||||
|
name: "Too much water ?",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 3e génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_FOUR": {
|
||||||
|
name: "Réellement la plus difficile ?",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 4e génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_FIVE": {
|
||||||
|
name: "Recast complet",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 5e génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_SIX": {
|
||||||
|
name: "Aristocrate",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 6e génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_SEVEN": {
|
||||||
|
name: "Seulement techniquement",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 7e génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_EIGHT": {
|
||||||
|
name: "L’heure de gloire",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 8e génération.",
|
||||||
|
},
|
||||||
|
"MONO_GEN_NINE": {
|
||||||
|
name: "Ça va, c’était EZ",
|
||||||
|
description: "Terminer un challenge avec uniquement des Pokémon de 9e génération.",
|
||||||
|
},
|
||||||
|
|
||||||
|
"MonoType": {
|
||||||
|
description: "Terminer un challenge en monotype {{type}}.",
|
||||||
|
},
|
||||||
|
"MONO_NORMAL": {
|
||||||
|
name: "Extraordinairement banal",
|
||||||
|
},
|
||||||
|
"MONO_FIGHTING": {
|
||||||
|
name: "Je connais le kung-fu",
|
||||||
|
},
|
||||||
|
"MONO_FLYING": {
|
||||||
|
name: "Angry Birds",
|
||||||
|
},
|
||||||
|
"MONO_POISON": {
|
||||||
|
name: "Touche moi je t’empoisonne !",
|
||||||
|
},
|
||||||
|
"MONO_GROUND": {
|
||||||
|
name: "Prévisions : Séisme",
|
||||||
|
},
|
||||||
|
"MONO_ROCK": {
|
||||||
|
name: "Comme un roc",
|
||||||
|
},
|
||||||
|
"MONO_BUG": {
|
||||||
|
name: "Une chenille !",
|
||||||
|
},
|
||||||
|
"MONO_GHOST": {
|
||||||
|
name: "SOS Fantômes",
|
||||||
|
},
|
||||||
|
"MONO_STEEL": {
|
||||||
|
name: "De type Acier !",
|
||||||
|
},
|
||||||
|
"MONO_FIRE": {
|
||||||
|
name: "Allumer le feu",
|
||||||
|
},
|
||||||
|
"MONO_WATER": {
|
||||||
|
name: "Vacances en Bretagne",
|
||||||
|
},
|
||||||
|
"MONO_GRASS": {
|
||||||
|
name: "Ne pas toucher !",
|
||||||
|
},
|
||||||
|
"MONO_ELECTRIC": {
|
||||||
|
name: "À la masse",
|
||||||
|
},
|
||||||
|
"MONO_PSYCHIC": {
|
||||||
|
name: "Grocervo",
|
||||||
|
},
|
||||||
|
"MONO_ICE": {
|
||||||
|
name: "Froid comme la glace",
|
||||||
|
},
|
||||||
|
"MONO_DRAGON": {
|
||||||
|
name: "Légendes du club, ou presque",
|
||||||
|
},
|
||||||
|
"MONO_DARK": {
|
||||||
|
name: "Ça va lui passer",
|
||||||
|
},
|
||||||
|
"MONO_FAIRY": {
|
||||||
|
name: "Hey ! Listen !",
|
||||||
|
},
|
||||||
|
} as const;
|
||||||
|
@ -18,10 +18,10 @@ export const menuUiHandler: SimpleTranslationEntries = {
|
|||||||
"exportSlotSelect": "Sélectionnez l’emplacement depuis lequel exporter les données.",
|
"exportSlotSelect": "Sélectionnez l’emplacement depuis lequel exporter les données.",
|
||||||
"importData": "Importer données",
|
"importData": "Importer données",
|
||||||
"exportData": "Exporter données",
|
"exportData": "Exporter données",
|
||||||
"linkDiscord": "Link Discord",
|
"linkDiscord": "Lier à Discord",
|
||||||
"unlinkDiscord": "Unlink Discord",
|
"unlinkDiscord": "Délier Discord",
|
||||||
"linkGoogle": "Link Google",
|
"linkGoogle": "Lier à Google",
|
||||||
"unlinkGoogle": "Unlink Google",
|
"unlinkGoogle": "Délier Google",
|
||||||
"cancel": "Retour",
|
"cancel": "Retour",
|
||||||
"losingProgressionWarning": "Vous allez perdre votre progression depuis le début du combat. Continuer ?",
|
"losingProgressionWarning": "Vous allez perdre votre progression depuis le début du combat. Continuer ?",
|
||||||
"noEggs": "Vous ne faites actuellement\néclore aucun Œuf !"
|
"noEggs": "Vous ne faites actuellement\néclore aucun Œuf !"
|
||||||
|
@ -1,50 +1,50 @@
|
|||||||
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
||||||
|
|
||||||
export const arenaTag: SimpleTranslationEntries = {
|
export const arenaTag: SimpleTranslationEntries = {
|
||||||
"yourTeam": "your team",
|
"yourTeam": "sua equipe",
|
||||||
"opposingTeam": "the opposing team",
|
"opposingTeam": "a equipe adversária",
|
||||||
"arenaOnRemove": "{{moveName}}'s effect wore off.",
|
"arenaOnRemove": "O efeito de {{moveName}} acabou.",
|
||||||
"arenaOnRemovePlayer": "{{moveName}}'s effect wore off\non your side.",
|
"arenaOnRemovePlayer": "O efeito de {{moveName}} acabou\nem sua equipe.",
|
||||||
"arenaOnRemoveEnemy": "{{moveName}}'s effect wore off\non the foe's side.",
|
"arenaOnRemoveEnemy": "O efeito de {{moveName}} acabou\nna equipe adversária.",
|
||||||
"mistOnAdd": "{{pokemonNameWithAffix}}'s team became\nshrouded in mist!",
|
"mistOnAdd": "A equipe de {{pokemonNameWithAffix}} está protegida\npela névoa!",
|
||||||
"mistApply": "The mist prevented\nthe lowering of stats!",
|
"mistApply": "A névoa previne\na diminuição de atributos!",
|
||||||
"reflectOnAdd": "Reflect reduced the damage of physical moves.",
|
"reflectOnAdd": "Reflect reduziu o dano de movimentos físicos.",
|
||||||
"reflectOnAddPlayer": "Reflect reduced the damage of physical moves on your side.",
|
"reflectOnAddPlayer": "Reflect reduziu o dano de movimentos físicos em sua equipe.",
|
||||||
"reflectOnAddEnemy": "Reflect reduced the damage of physical moves on the foe's side.",
|
"reflectOnAddEnemy": "Reflect reduziu o dano de movimentos físicos na equipe adversária.",
|
||||||
"lightScreenOnAdd": "Light Screen reduced the damage of special moves.",
|
"lightScreenOnAdd": "Light Screen reduziu o dano de movimentos especiais.",
|
||||||
"lightScreenOnAddPlayer": "Light Screen reduced the damage of special moves on your side.",
|
"lightScreenOnAddPlayer": "Light Screen reduziu o dano de movimentos especiais em sua equipe.",
|
||||||
"lightScreenOnAddEnemy": "Light Screen reduced the damage of special moves on the foe's side.",
|
"lightScreenOnAddEnemy": "Light Screen reduziu o dano de movimentos especiais na equipe adversária.",
|
||||||
"auroraVeilOnAdd": "Aurora Veil reduced the damage of moves.",
|
"auroraVeilOnAdd": "Aurora Veil reduziu o dano de movimentos.",
|
||||||
"auroraVeilOnAddPlayer": "Aurora Veil reduced the damage of moves on your side.",
|
"auroraVeilOnAddPlayer": "Aurora Veil reduziu o dano de movimentos em sua equipe.",
|
||||||
"auroraVeilOnAddEnemy": "Aurora Veil reduced the damage of moves on the foe's side.",
|
"auroraVeilOnAddEnemy": "Aurora Veil reduziu o dano de movimentos na equipe adversária.",
|
||||||
"conditionalProtectOnAdd": "{{moveName}} protected team!",
|
"conditionalProtectOnAdd": "{{moveName}} protegeu a equipe!",
|
||||||
"conditionalProtectOnAddPlayer": "{{moveName}} protected your team!",
|
"conditionalProtectOnAddPlayer": "{{moveName}} protegeu sua equipe!",
|
||||||
"conditionalProtectOnAddEnemy": "{{moveName}} protected the\nopposing team!",
|
"conditionalProtectOnAddEnemy": "{{moveName}} protegeu a\nequipe adversária!",
|
||||||
"conditionalProtectApply": "{{moveName}} protected {{pokemonNameWithAffix}}!",
|
"conditionalProtectApply": "{{moveName}} protegeu {{pokemonNameWithAffix}}!",
|
||||||
"matBlockOnAdd": "{{pokemonNameWithAffix}} intends to flip up a mat\nand block incoming attacks!",
|
"matBlockOnAdd": "{{pokemonNameWithAffix}} pretende levantar um tapete\npara bloquear ataques!",
|
||||||
"wishTagOnAdd": "{{pokemonNameWithAffix}}'s wish\ncame true!",
|
"wishTagOnAdd": "O desejo de {{pokemonNameWithAffix}}\nfoi concedido!",
|
||||||
"mudSportOnAdd": "Electricity's power was weakened!",
|
"mudSportOnAdd": "O poder de movimentos elétricos foi enfraquecido!",
|
||||||
"mudSportOnRemove": "The effects of Mud Sport\nhave faded.",
|
"mudSportOnRemove": "Os efeitos de Mud Sport\nsumiram.",
|
||||||
"waterSportOnAdd": "Fire's power was weakened!",
|
"waterSportOnAdd": "O poder de movimentos de fogo foi enfraquecido!",
|
||||||
"waterSportOnRemove": "The effects of Water Sport\nhave faded.",
|
"waterSportOnRemove": "Os efeitos de Water Sport\nsumiram.",
|
||||||
"spikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
|
"spikesOnAdd": "{{moveName}} foram espalhados\nno chão ao redor de {{opponentDesc}}!",
|
||||||
"spikesActivateTrap": "{{pokemonNameWithAffix}} is hurt\nby the spikes!",
|
"spikesActivateTrap": "{{pokemonNameWithAffix}} foi ferido\npelos espinhos!",
|
||||||
"toxicSpikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
|
"toxicSpikesOnAdd": "{{moveName}} foram espalhados\nno chão ao redor de {{opponentDesc}}!",
|
||||||
"toxicSpikesActivateTrapPoison": "{{pokemonNameWithAffix}} absorbed the {{moveName}}!",
|
"toxicSpikesActivateTrapPoison": "{{pokemonNameWithAffix}} absorveu os {{moveName}}!",
|
||||||
"stealthRockOnAdd": "Pointed stones float in the air\naround {{opponentDesc}}!",
|
"stealthRockOnAdd": "Pedras pontiagudas estão flutuando\nao redor de {{opponentDesc}}!",
|
||||||
"stealthRockActivateTrap": "Pointed stones dug into\n{{pokemonNameWithAffix}}!",
|
"stealthRockActivateTrap": "{{pokemonNameWithAffix}} foi atingido\npor pedras pontiagudas!",
|
||||||
"stickyWebOnAdd": "A {{moveName}} has been laid out on the ground around the opposing team!",
|
"stickyWebOnAdd": "Uma {{moveName}} foi espalhada no chão ao redor da equipe adversária!",
|
||||||
"stickyWebActivateTrap": "The opposing {{pokemonName}} was caught in a sticky web!",
|
"stickyWebActivateTrap": "{{pokemonName}} adversário foi pego por uma Sticky Web!",
|
||||||
"trickRoomOnAdd": "{{pokemonNameWithAffix}} twisted\nthe dimensions!",
|
"trickRoomOnAdd": "{{pokemonNameWithAffix}} distorceu\nas dimensões!",
|
||||||
"trickRoomOnRemove": "The twisted dimensions\nreturned to normal!",
|
"trickRoomOnRemove": "As dimensões distorcidas\nretornaram ao normal!",
|
||||||
"gravityOnAdd": "Gravity intensified!",
|
"gravityOnAdd": "A gravidade aumentou!",
|
||||||
"gravityOnRemove": "Gravity returned to normal!",
|
"gravityOnRemove": "A gravidade retornou ao normal!",
|
||||||
"tailwindOnAdd": "The Tailwind blew from behind team!",
|
"tailwindOnAdd": "O Tailwind soprou de trás de sua equipe!",
|
||||||
"tailwindOnAddPlayer": "The Tailwind blew from behind\nyour team!",
|
"tailwindOnAddPlayer": "O Tailwind soprou de trás de\nsua equipe!",
|
||||||
"tailwindOnAddEnemy": "The Tailwind blew from behind\nthe opposing team!",
|
"tailwindOnAddEnemy": "O Tailwind soprou de trás da\nequipe adversária!",
|
||||||
"tailwindOnRemove": "Team's Tailwind petered out!",
|
"tailwindOnRemove": "O Tailwind de sua equipe acabou!",
|
||||||
"tailwindOnRemovePlayer": "Your team's Tailwind petered out!",
|
"tailwindOnRemovePlayer": "O Tailwind de sua equipe acabou!",
|
||||||
"tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!",
|
"tailwindOnRemoveEnemy": "O Tailwind da equipe adversária acabou!",
|
||||||
"happyHourOnAdd": "Everyone is caught up in the happy atmosphere!",
|
"happyHourOnAdd": "Todos foram envolvidos por uma atmosfera alegre!",
|
||||||
"happyHourOnRemove": "The atmosphere returned to normal.",
|
"happyHourOnRemove": "A atmosfera retornou ao normal.",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -10,5 +10,5 @@ export const modifier: SimpleTranslationEntries = {
|
|||||||
"turnHeldItemTransferApply": "{{itemName}} de {{pokemonNameWithAffix}} foi absorvido(a)\npelo {{typeName}} de {{pokemonName}}!",
|
"turnHeldItemTransferApply": "{{itemName}} de {{pokemonNameWithAffix}} foi absorvido(a)\npelo {{typeName}} de {{pokemonName}}!",
|
||||||
"contactHeldItemTransferApply": "{{itemName}} de {{pokemonNameWithAffix}} foi pego(a)\npela {{typeName}} de {{pokemonName}}!",
|
"contactHeldItemTransferApply": "{{itemName}} de {{pokemonNameWithAffix}} foi pego(a)\npela {{typeName}} de {{pokemonName}}!",
|
||||||
"enemyTurnHealApply": "{{pokemonNameWithAffix}}\nrestaurou um pouco de seus PS!",
|
"enemyTurnHealApply": "{{pokemonNameWithAffix}}\nrestaurou um pouco de seus PS!",
|
||||||
"bypassSpeedChanceApply": "{{pokemonName}} se move mais rápido que o normal graças a sua {{itemName}}!",
|
"bypassSpeedChanceApply": "{{pokemonName}} se move mais rápido que o normal graças à sua {{itemName}}!",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -41,7 +41,6 @@ import { Moves } from "#enums/moves";
|
|||||||
import { PlayerGender } from "#enums/player-gender";
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
import { Species } from "#enums/species";
|
import { Species } from "#enums/species";
|
||||||
import { applyChallenges, ChallengeType } from "#app/data/challenge.js";
|
import { applyChallenges, ChallengeType } from "#app/data/challenge.js";
|
||||||
import { Abilities } from "#app/enums/abilities.js";
|
|
||||||
|
|
||||||
export const defaultStarterSpecies: Species[] = [
|
export const defaultStarterSpecies: Species[] = [
|
||||||
Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE,
|
Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE,
|
||||||
@ -852,14 +851,6 @@ export class GameData {
|
|||||||
const handleSessionData = async (sessionDataStr: string) => {
|
const handleSessionData = async (sessionDataStr: string) => {
|
||||||
try {
|
try {
|
||||||
const sessionData = this.parseSessionData(sessionDataStr);
|
const sessionData = this.parseSessionData(sessionDataStr);
|
||||||
for (let i = 0; i <= 5; i++) {
|
|
||||||
const speciesToCheck = getPokemonSpecies(sessionData.party[i]?.species);
|
|
||||||
if (sessionData.party[i]?.abilityIndex === 1) {
|
|
||||||
if (speciesToCheck.ability1 === speciesToCheck.ability2 && speciesToCheck.abilityHidden !== Abilities.NONE && speciesToCheck.abilityHidden !== speciesToCheck.ability1) {
|
|
||||||
sessionData.party[i].abilityIndex = 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
resolve(sessionData);
|
resolve(sessionData);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
reject(err);
|
reject(err);
|
||||||
|
@ -288,6 +288,36 @@ export default class PartyUiHandler extends MessageUiHandler {
|
|||||||
const pokemon = this.scene.getParty()[this.cursor];
|
const pokemon = this.scene.getParty()[this.cursor];
|
||||||
if (this.partyUiMode === PartyUiMode.MODIFIER_TRANSFER && !this.transferMode && option !== PartyOption.CANCEL) {
|
if (this.partyUiMode === PartyUiMode.MODIFIER_TRANSFER && !this.transferMode && option !== PartyOption.CANCEL) {
|
||||||
this.startTransfer();
|
this.startTransfer();
|
||||||
|
|
||||||
|
let ableToTransfer: string;
|
||||||
|
for (let p = 0; p < this.scene.getParty().length; p++) { // this fore look goes through each of the party pokemon
|
||||||
|
const newPokemon = this.scene.getParty()[p];
|
||||||
|
// this next line gets all of the transferable items from pokemon [p]; it does this by getting all the held modifiers that are transferable and checking to see if they belong to pokemon [p]
|
||||||
|
const getTransferrableItemsFromPokemon = (newPokemon: PlayerPokemon) =>
|
||||||
|
this.scene.findModifiers(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).isTransferrable && (m as PokemonHeldItemModifier).pokemonId === newPokemon.id) as PokemonHeldItemModifier[];
|
||||||
|
// this next bit checks to see if the the selected item from the original transfer pokemon exists on the new pokemon [p]; this returns undefined if the new pokemon doesn't have the item at all, otherwise it returns the pokemonHeldItemModifier for that item
|
||||||
|
const matchingModifier = newPokemon.scene.findModifier(m => m instanceof PokemonHeldItemModifier && m.pokemonId === newPokemon.id && m.matchType(getTransferrableItemsFromPokemon(pokemon)[this.transferOptionCursor])) as PokemonHeldItemModifier;
|
||||||
|
const partySlot = this.partySlots.filter(m => m.getPokemon() === newPokemon)[0]; // this gets pokemon [p] for us
|
||||||
|
if (p !== this.transferCursor) { // this skips adding the able/not able labels on the pokemon doing the transfer
|
||||||
|
if (matchingModifier) { // if matchingModifier exists then the item exists on the new pokemon
|
||||||
|
if (matchingModifier.getMaxStackCount(this.scene) === matchingModifier.stackCount) { // checks to see if the stack of items is at max stack; if so, set the description label to "Not able"
|
||||||
|
ableToTransfer = "Not able";
|
||||||
|
} else { // if the pokemon isn't at max stack, make the label "Able"
|
||||||
|
ableToTransfer = "Able";
|
||||||
|
}
|
||||||
|
} else { // if matchingModifier doesn't exist, that means the pokemon doesn't have any of the item, and we need to show "Able"
|
||||||
|
ableToTransfer = "Able";
|
||||||
|
}
|
||||||
|
} else { // this else relates to the transfer pokemon. We set the text to be blank so there's no "Able"/"Not able" text
|
||||||
|
ableToTransfer = "";
|
||||||
|
}
|
||||||
|
partySlot.slotHpBar.setVisible(false);
|
||||||
|
partySlot.slotHpOverlay.setVisible(false);
|
||||||
|
partySlot.slotHpText.setVisible(false);
|
||||||
|
partySlot.slotDescriptionLabel.setText(ableToTransfer);
|
||||||
|
partySlot.slotDescriptionLabel.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
this.clearOptions();
|
this.clearOptions();
|
||||||
ui.playSelect();
|
ui.playSelect();
|
||||||
return true;
|
return true;
|
||||||
@ -947,6 +977,12 @@ export default class PartyUiHandler extends MessageUiHandler {
|
|||||||
this.transferMode = false;
|
this.transferMode = false;
|
||||||
this.transferAll = false;
|
this.transferAll = false;
|
||||||
this.partySlots[this.transferCursor].setTransfer(false);
|
this.partySlots[this.transferCursor].setTransfer(false);
|
||||||
|
for (let i = 0; i < this.partySlots.length; i++) {
|
||||||
|
this.partySlots[i].slotDescriptionLabel.setVisible(false);
|
||||||
|
this.partySlots[i].slotHpBar.setVisible(true);
|
||||||
|
this.partySlots[i].slotHpOverlay.setVisible(true);
|
||||||
|
this.partySlots[i].slotHpText.setVisible(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
doRelease(slotIndex: integer): void {
|
doRelease(slotIndex: integer): void {
|
||||||
@ -1041,6 +1077,12 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
|
|
||||||
private slotBg: Phaser.GameObjects.Image;
|
private slotBg: Phaser.GameObjects.Image;
|
||||||
private slotPb: Phaser.GameObjects.Sprite;
|
private slotPb: Phaser.GameObjects.Sprite;
|
||||||
|
public slotName: Phaser.GameObjects.Text;
|
||||||
|
public slotHpBar: Phaser.GameObjects.Image;
|
||||||
|
public slotHpOverlay: Phaser.GameObjects.Sprite;
|
||||||
|
public slotHpText: Phaser.GameObjects.Text;
|
||||||
|
public slotDescriptionLabel: Phaser.GameObjects.Text; // this is used to show text instead of the HP bar i.e. for showing "Able"/"Not Able" for TMs when you try to learn them
|
||||||
|
|
||||||
|
|
||||||
private pokemonIcon: Phaser.GameObjects.Container;
|
private pokemonIcon: Phaser.GameObjects.Container;
|
||||||
private iconAnimHandler: PokemonIconAnimHandler;
|
private iconAnimHandler: PokemonIconAnimHandler;
|
||||||
@ -1057,6 +1099,10 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
this.setup(partyUiMode, tmMoveId);
|
this.setup(partyUiMode, tmMoveId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getPokemon(): PlayerPokemon {
|
||||||
|
return this.pokemon;
|
||||||
|
}
|
||||||
|
|
||||||
setup(partyUiMode: PartyUiMode, tmMoveId: Moves) {
|
setup(partyUiMode: PartyUiMode, tmMoveId: Moves) {
|
||||||
const battlerCount = (this.scene as BattleScene).currentBattle.getBattlerCount();
|
const battlerCount = (this.scene as BattleScene).currentBattle.getBattlerCount();
|
||||||
|
|
||||||
@ -1095,19 +1141,19 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
|
|
||||||
nameSizeTest.destroy();
|
nameSizeTest.destroy();
|
||||||
|
|
||||||
const slotName = addTextObject(this.scene, 0, 0, displayName, TextStyle.PARTY);
|
this.slotName = addTextObject(this.scene, 0, 0, displayName, TextStyle.PARTY);
|
||||||
slotName.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 21 : 24, this.slotIndex >= battlerCount ? 2 : 10);
|
this.slotName.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 21 : 24, this.slotIndex >= battlerCount ? 2 : 10);
|
||||||
slotName.setOrigin(0, 0);
|
this.slotName.setOrigin(0, 0);
|
||||||
|
|
||||||
const slotLevelLabel = this.scene.add.image(0, 0, "party_slot_overlay_lv");
|
const slotLevelLabel = this.scene.add.image(0, 0, "party_slot_overlay_lv");
|
||||||
slotLevelLabel.setPositionRelative(slotName, 8, 12);
|
slotLevelLabel.setPositionRelative(this.slotName, 8, 12);
|
||||||
slotLevelLabel.setOrigin(0, 0);
|
slotLevelLabel.setOrigin(0, 0);
|
||||||
|
|
||||||
const slotLevelText = addTextObject(this.scene, 0, 0, this.pokemon.level.toString(), this.pokemon.level < (this.scene as BattleScene).getMaxExpLevel() ? TextStyle.PARTY : TextStyle.PARTY_RED);
|
const slotLevelText = addTextObject(this.scene, 0, 0, this.pokemon.level.toString(), this.pokemon.level < (this.scene as BattleScene).getMaxExpLevel() ? TextStyle.PARTY : TextStyle.PARTY_RED);
|
||||||
slotLevelText.setPositionRelative(slotLevelLabel, 9, 0);
|
slotLevelText.setPositionRelative(slotLevelLabel, 9, 0);
|
||||||
slotLevelText.setOrigin(0, 0.25);
|
slotLevelText.setOrigin(0, 0.25);
|
||||||
|
|
||||||
slotInfoContainer.add([ slotName, slotLevelLabel, slotLevelText ]);
|
slotInfoContainer.add([this.slotName, slotLevelLabel, slotLevelText ]);
|
||||||
|
|
||||||
const genderSymbol = getGenderSymbol(this.pokemon.getGender(true));
|
const genderSymbol = getGenderSymbol(this.pokemon.getGender(true));
|
||||||
|
|
||||||
@ -1118,7 +1164,7 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
if (this.slotIndex >= battlerCount) {
|
if (this.slotIndex >= battlerCount) {
|
||||||
slotGenderText.setPositionRelative(slotLevelLabel, 36, 0);
|
slotGenderText.setPositionRelative(slotLevelLabel, 36, 0);
|
||||||
} else {
|
} else {
|
||||||
slotGenderText.setPositionRelative(slotName, 76 - (this.pokemon.fusionSpecies ? 8 : 0), 3);
|
slotGenderText.setPositionRelative(this.slotName, 76 - (this.pokemon.fusionSpecies ? 8 : 0), 3);
|
||||||
}
|
}
|
||||||
slotGenderText.setOrigin(0, 0.25);
|
slotGenderText.setOrigin(0, 0.25);
|
||||||
|
|
||||||
@ -1132,7 +1178,7 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
if (this.slotIndex >= battlerCount) {
|
if (this.slotIndex >= battlerCount) {
|
||||||
splicedIcon.setPositionRelative(slotLevelLabel, 36 + (genderSymbol ? 8 : 0), 0.5);
|
splicedIcon.setPositionRelative(slotLevelLabel, 36 + (genderSymbol ? 8 : 0), 0.5);
|
||||||
} else {
|
} else {
|
||||||
splicedIcon.setPositionRelative(slotName, 76, 3.5);
|
splicedIcon.setPositionRelative(this.slotName, 76, 3.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
slotInfoContainer.add(splicedIcon);
|
slotInfoContainer.add(splicedIcon);
|
||||||
@ -1152,7 +1198,7 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
|
|
||||||
const shinyStar = this.scene.add.image(0, 0, `shiny_star_small${doubleShiny ? "_1" : ""}`);
|
const shinyStar = this.scene.add.image(0, 0, `shiny_star_small${doubleShiny ? "_1" : ""}`);
|
||||||
shinyStar.setOrigin(0, 0);
|
shinyStar.setOrigin(0, 0);
|
||||||
shinyStar.setPositionRelative(slotName, -9, 3);
|
shinyStar.setPositionRelative(this.slotName, -9, 3);
|
||||||
shinyStar.setTint(getVariantTint(this.pokemon.getBaseVariant(doubleShiny)));
|
shinyStar.setTint(getVariantTint(this.pokemon.getBaseVariant(doubleShiny)));
|
||||||
|
|
||||||
slotInfoContainer.add(shinyStar);
|
slotInfoContainer.add(shinyStar);
|
||||||
@ -1167,24 +1213,40 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (partyUiMode !== PartyUiMode.TM_MODIFIER) {
|
this.slotHpBar = this.scene.add.image(0, 0, "party_slot_hp_bar");
|
||||||
const slotHpBar = this.scene.add.image(0, 0, "party_slot_hp_bar");
|
this.slotHpBar.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 72 : 8, this.slotIndex >= battlerCount ? 6 : 31);
|
||||||
slotHpBar.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 72 : 8, this.slotIndex >= battlerCount ? 6 : 31);
|
this.slotHpBar.setOrigin(0, 0);
|
||||||
slotHpBar.setOrigin(0, 0);
|
this.slotHpBar.setVisible(false);
|
||||||
|
|
||||||
const hpRatio = this.pokemon.getHpRatio();
|
const hpRatio = this.pokemon.getHpRatio();
|
||||||
|
|
||||||
const slotHpOverlay = this.scene.add.sprite(0, 0, "party_slot_hp_overlay", hpRatio > 0.5 ? "high" : hpRatio > 0.25 ? "medium" : "low");
|
this.slotHpOverlay = this.scene.add.sprite(0, 0, "party_slot_hp_overlay", hpRatio > 0.5 ? "high" : hpRatio > 0.25 ? "medium" : "low");
|
||||||
slotHpOverlay.setPositionRelative(slotHpBar, 16, 2);
|
this.slotHpOverlay.setPositionRelative(this.slotHpBar, 16, 2);
|
||||||
slotHpOverlay.setOrigin(0, 0);
|
this.slotHpOverlay.setOrigin(0, 0);
|
||||||
slotHpOverlay.setScale(hpRatio, 1);
|
this.slotHpOverlay.setScale(hpRatio, 1);
|
||||||
|
this.slotHpOverlay.setVisible(false);
|
||||||
|
|
||||||
const slotHpText = addTextObject(this.scene, 0, 0, `${this.pokemon.hp}/${this.pokemon.getMaxHp()}`, TextStyle.PARTY);
|
this.slotHpText = addTextObject(this.scene, 0, 0, `${this.pokemon.hp}/${this.pokemon.getMaxHp()}`, TextStyle.PARTY);
|
||||||
slotHpText.setPositionRelative(slotHpBar, slotHpBar.width - 3, slotHpBar.height - 2);
|
this.slotHpText.setPositionRelative(this.slotHpBar, this.slotHpBar.width - 3, this.slotHpBar.height - 2);
|
||||||
slotHpText.setOrigin(1, 0);
|
this.slotHpText.setOrigin(1, 0);
|
||||||
|
this.slotHpText.setVisible(false);
|
||||||
|
|
||||||
slotInfoContainer.add([ slotHpBar, slotHpOverlay, slotHpText ]);
|
this.slotDescriptionLabel = addTextObject(this.scene, 0, 0, "", TextStyle.MESSAGE);
|
||||||
|
this.slotDescriptionLabel.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 94 : 32, this.slotIndex >= battlerCount ? 16 : 46);
|
||||||
|
this.slotDescriptionLabel.setOrigin(0, 1);
|
||||||
|
this.slotDescriptionLabel.setVisible(false);
|
||||||
|
|
||||||
|
slotInfoContainer.add([this.slotHpBar, this.slotHpOverlay, this.slotHpText, this.slotDescriptionLabel]);
|
||||||
|
|
||||||
|
if (partyUiMode !== PartyUiMode.TM_MODIFIER) {
|
||||||
|
this.slotDescriptionLabel.setVisible(false);
|
||||||
|
this.slotHpBar.setVisible(true);
|
||||||
|
this.slotHpOverlay.setVisible(true);
|
||||||
|
this.slotHpText.setVisible(true);
|
||||||
} else {
|
} else {
|
||||||
|
this.slotHpBar.setVisible(false);
|
||||||
|
this.slotHpOverlay.setVisible(false);
|
||||||
|
this.slotHpText.setVisible(false);
|
||||||
let slotTmText: string;
|
let slotTmText: string;
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case (this.pokemon.compatibleTms.indexOf(tmMoveId) === -1):
|
case (this.pokemon.compatibleTms.indexOf(tmMoveId) === -1):
|
||||||
@ -1198,11 +1260,9 @@ class PartySlot extends Phaser.GameObjects.Container {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const slotTmLabel = addTextObject(this.scene, 0, 0, slotTmText, TextStyle.MESSAGE);
|
this.slotDescriptionLabel.setText(slotTmText);
|
||||||
slotTmLabel.setPositionRelative(slotBg, this.slotIndex >= battlerCount ? 94 : 32, this.slotIndex >= battlerCount ? 16 : 46);
|
this.slotDescriptionLabel.setVisible(true);
|
||||||
slotTmLabel.setOrigin(0, 1);
|
|
||||||
|
|
||||||
slotInfoContainer.add(slotTmLabel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user