diff --git a/src/data/move.ts b/src/data/move.ts index b1b82009f3e..b47a9ea2a0b 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -4905,7 +4905,7 @@ export class SwapArenaTagsAttr extends MoveEffectAttr { } - user.scene.queueMessage( i18next.t("moveTriggers:swapArenaTags", {pokemonName: getPokemonNameWithAffix(user)})); + user.scene.queueMessage(i18next.t("moveTriggers:swapArenaTags", {pokemonName: getPokemonNameWithAffix(user)})); return true; } } @@ -4946,7 +4946,7 @@ export class RevivalBlessingAttr extends MoveEffectAttr { const slotIndex = user.scene.getEnemyParty().findIndex(p => pokemon.id === p.id); pokemon.resetStatus(); pokemon.heal(Math.min(Utils.toDmgValue(0.5 * pokemon.getMaxHp()), pokemon.getMaxHp())); - user.scene.queueMessage(`${getPokemonNameWithAffix(pokemon)} was revived!`,0,true); + user.scene.queueMessage(i18next.t("moveTriggers:revivalBlessing", {pokemonName: getPokemonNameWithAffix(pokemon)}),0,true); if (user.scene.currentBattle.double && user.scene.getEnemyParty().length > 1) { const allyPokemon = user.getAlly(); diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 030297a2126..97ecb65cc02 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -2228,7 +2228,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { this.scene.queueMessage(i18next.t("battle:hitResultNoEffect", { pokemonName: getPokemonNameWithAffix(this) })); break; case HitResult.IMMUNE: - this.scene.queueMessage(`${this.name} is unaffected!`); + this.scene.queueMessage(i18next.t("battle:hitResultImmune", { pokemonName: this.name })); break; case HitResult.ONE_HIT_KO: this.scene.queueMessage(i18next.t("battle:hitResultOneHitKO")); @@ -3456,7 +3456,7 @@ export class PlayerPokemon extends Pokemon { pokemon.resetTurnData(); pokemon.resetStatus(); pokemon.heal(Math.min(Utils.toDmgValue(0.5 * pokemon.getMaxHp()), pokemon.getMaxHp())); - this.scene.queueMessage(`${pokemon.name} was revived!`,0,true); + this.scene.queueMessage(i18next.t("moveTriggers:revivalBlessing", {pokemonName: pokemon.name}),0,true); if (this.scene.currentBattle.double && this.scene.getParty().length > 1) { const allyPokemon = this.getAlly(); diff --git a/src/locales/ca_ES/battle.ts b/src/locales/ca_ES/battle.ts index 522fbb3261b..f86b597874f 100644 --- a/src/locales/ca_ES/battle.ts +++ b/src/locales/ca_ES/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "It's super effective!", "hitResultNotVeryEffective": "It's not very effective…", "hitResultNoEffect": "It doesn't affect {{pokemonName}}!", + "hitResultImmune": "{{pokemonName}} is unaffected!", "hitResultOneHitKO": "It's a one-hit KO!", "attackFailed": "But it failed!", "attackMissed": "{{pokemonNameWithAffix}} avoided the attack!", diff --git a/src/locales/ca_ES/move-trigger.ts b/src/locales/ca_ES/move-trigger.ts index 5f9c6c0cdc2..96a9874a4fa 100644 --- a/src/locales/ca_ES/move-trigger.ts +++ b/src/locales/ca_ES/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.", "copyType": "{{pokemonName}}'s type became the same as\n{{targetPokemonName}}'s type!", "suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!", + "revivalBlessing": "{{pokemonName}} was revived!", "swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", } as const; diff --git a/src/locales/de/battle.ts b/src/locales/de/battle.ts index b082a6932e9..bb8af9e0bda 100644 --- a/src/locales/de/battle.ts +++ b/src/locales/de/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "Das ist sehr effektiv!", "hitResultNotVeryEffective": "Das ist nicht sehr effektiv…", "hitResultNoEffect": "Es hat keine Wirkung auf {{pokemonName}}…", + "hitResultImmune": "{{pokemonName}} ist unversehrt!", "hitResultOneHitKO": "Ein K.O.-Treffer!", "attackFailed": "Es ist fehlgeschlagen!", "attackMissed": "Die Attacke hat {{pokemonNameWithAffix}} verfehlt!", diff --git a/src/locales/de/move-trigger.ts b/src/locales/de/move-trigger.ts index c3d063c4b3f..7f942fd6554 100644 --- a/src/locales/de/move-trigger.ts +++ b/src/locales/de/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}} geht nach {{turnCount}} Runden K.O.!", "copyType": "{{pokemonName}} hat den Typ von {{targetPokemonName}} angenommen!", "suppressAbilities": "Die Fähigkeit von {{pokemonName}} wirkt nicht mehr!", + "revivalBlessing": "{{pokemonName}} ist wieder fit und kampfbereit!", "swapArenaTags": "{{pokemonName}} hat die Effekte, die auf den beiden Seiten des Kampffeldes wirken, miteinander getauscht!", "exposedMove": "{{pokemonName}} erkennt {{targetPokemonName}}!", } as const; diff --git a/src/locales/en/battle.ts b/src/locales/en/battle.ts index 522fbb3261b..f86b597874f 100644 --- a/src/locales/en/battle.ts +++ b/src/locales/en/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "It's super effective!", "hitResultNotVeryEffective": "It's not very effective…", "hitResultNoEffect": "It doesn't affect {{pokemonName}}!", + "hitResultImmune": "{{pokemonName}} is unaffected!", "hitResultOneHitKO": "It's a one-hit KO!", "attackFailed": "But it failed!", "attackMissed": "{{pokemonNameWithAffix}} avoided the attack!", diff --git a/src/locales/en/move-trigger.ts b/src/locales/en/move-trigger.ts index 5f9c6c0cdc2..96a9874a4fa 100644 --- a/src/locales/en/move-trigger.ts +++ b/src/locales/en/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.", "copyType": "{{pokemonName}}'s type became the same as\n{{targetPokemonName}}'s type!", "suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!", + "revivalBlessing": "{{pokemonName}} was revived!", "swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", } as const; diff --git a/src/locales/es/battle.ts b/src/locales/es/battle.ts index eb37699d911..83ecbc93503 100644 --- a/src/locales/es/battle.ts +++ b/src/locales/es/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "¡Es supereficaz!", "hitResultNotVeryEffective": "No es muy eficaz…", "hitResultNoEffect": "No afecta a {{pokemonName}}!", + "hitResultImmune": "¡No afecta a {{pokemonName}}!", "hitResultOneHitKO": "¡KO en 1 golpe!", "attackFailed": "¡Pero ha fallado!", "attackMissed": "¡{{pokemonNameWithAffix}}\nha evitado el ataque!", diff --git a/src/locales/es/move-trigger.ts b/src/locales/es/move-trigger.ts index cee5b58508f..140d7d8a4bd 100644 --- a/src/locales/es/move-trigger.ts +++ b/src/locales/es/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.", "copyType": "{{pokemonName}}'s type\nchanged to match {{targetPokemonName}}'s!", "suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!", + "revivalBlessing": "¡{{pokemonName}} ha revivido!", "swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", } as const; diff --git a/src/locales/fr/battle.ts b/src/locales/fr/battle.ts index 12ee9e0d696..fcb78e02f84 100644 --- a/src/locales/fr/battle.ts +++ b/src/locales/fr/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "C’est super efficace !", "hitResultNotVeryEffective": "Ce n’est pas très efficace…", "hitResultNoEffect": "Ça n’affecte pas {{pokemonName}}…", + "hitResultImmune": "{{pokemonName}} n’est pas affecté !", "hitResultOneHitKO": "K.O. en un coup !", "attackFailed": "Mais cela échoue !", "attackMissed": "{{pokemonNameWithAffix}}\névite l’attaque !", diff --git a/src/locales/fr/move-trigger.ts b/src/locales/fr/move-trigger.ts index 988db2e1959..e30bf2c313e 100644 --- a/src/locales/fr/move-trigger.ts +++ b/src/locales/fr/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\nsera K.O. dans {{turnCount}} tours !", "copyType": "{{pokemonName}} prend le type\nde {{targetPokemonName}} !", "suppressAbilities": "Le talent de {{pokemonName}}\na été rendu inactif !", + "revivalBlessing": "{{pokemonName}} a repris connaissance\net est prêt à se battre de nouveau !", "swapArenaTags": "Les effets affectant chaque côté du terrain\nont été échangés par {{pokemonName}} !", "exposedMove": "{{targetPokemonName}} est identifié\npar {{pokemonName}} !", } as const; diff --git a/src/locales/it/battle.ts b/src/locales/it/battle.ts index 347a9968e96..5d024547aa8 100644 --- a/src/locales/it/battle.ts +++ b/src/locales/it/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "È superefficace!", "hitResultNotVeryEffective": "Non è molto efficace…", "hitResultNoEffect": "Non ha effetto su {{pokemonName}}!", + "hitResultImmune": "{{pokemonName}} è incolume!", "hitResultOneHitKO": "KO con un colpo!", "attackFailed": "Ma ha fallito!", "attackMissed": "{{pokemonNameWithAffix}}\nevita l’attacco!", diff --git a/src/locales/it/move-trigger.ts b/src/locales/it/move-trigger.ts index 92ce6a76a74..b3dee3d8f8c 100644 --- a/src/locales/it/move-trigger.ts +++ b/src/locales/it/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\nandrà KO dopo {{turnCount}} turni.", "copyType": "{{pokemonName}} assume il tipo\ndi {{targetPokemonName}}!", "suppressAbilities": "L’abilità di {{pokemonName}}\nperde ogni efficacia!", + "revivalBlessing": "{{pokemonName}} torna in forze!", "swapArenaTags": "{{pokemonName}} ha invertito gli effetti attivi\nnelle due metà del campo!", "exposedMove": "{{pokemonName}} ha identificato\n{{targetPokemonName}}!", } as const; diff --git a/src/locales/ja/battle.ts b/src/locales/ja/battle.ts index 926e2d9b0e4..061614202a0 100644 --- a/src/locales/ja/battle.ts +++ b/src/locales/ja/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "効果は バツグンだ!", "hitResultNotVeryEffective": "効果は 今ひとつの ようだ……", "hitResultNoEffect": "{{pokemonName}}には 効果が ないようだ…", + "hitResultImmune": "{{pokemonName}}には\n全然 効いてない!", "hitResultOneHitKO": "一撃必殺!", "attackFailed": "しかし うまく 決まらなかった!!", "attackMissed": "{{pokemonNameWithAffix}}には 当たらなかった!", diff --git a/src/locales/ja/move-trigger.ts b/src/locales/ja/move-trigger.ts index e3a089db53b..231af3596df 100644 --- a/src/locales/ja/move-trigger.ts +++ b/src/locales/ja/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}は\n{{turnCount}}ターンごに ほろびてしまう!", "copyType": "{{pokemonName}}は {{targetPokemonName}}と\n同じタイプに なった!", "suppressAbilities": "{{pokemonName}}の とくせいが きかなくなった!", + "revivalBlessing": "{{pokemonName}}は\n復活して 戦えるようになった!", "swapArenaTags": "{{pokemonName}}は\nおたがいの ばのこうかを いれかえた!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", } as const; diff --git a/src/locales/ko/battle.ts b/src/locales/ko/battle.ts index bdbcbcdf8d2..e4f67c32c74 100644 --- a/src/locales/ko/battle.ts +++ b/src/locales/ko/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "효과가 굉장했다!", "hitResultNotVeryEffective": "효과가 별로인 듯하다…", "hitResultNoEffect": "{{pokemonName}}에게는\n효과가 없는 것 같다…", + "hitResultImmune": "{{pokemonName}}에게는\n전혀 효과가 없다!", "hitResultOneHitKO": "일격필살!", "attackFailed": "그러나 실패하고 말았다!!", "attackMissed": "{{pokemonNameWithAffix}}에게는\n맞지 않았다!", diff --git a/src/locales/ko/move-trigger.ts b/src/locales/ko/move-trigger.ts index e93639689d8..f4c981a2c78 100644 --- a/src/locales/ko/move-trigger.ts +++ b/src/locales/ko/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}[[는]]\n{{turnCount}}턴 후에 쓰러져 버린다!", "copyType": "{{pokemonName}}[[는]]\n{{targetPokemonName}}[[와]] 같은 타입이 되었다!", "suppressAbilities": "{{pokemonName}}의\n특성이 효과를 발휘하지 못하게 되었다!", + "revivalBlessing": "{{pokemonName}}[[는]]\n정신을 차려 싸울 수 있게 되었다!", "swapArenaTags": "{{pokemonName}}[[는]]\n서로의 필드 효과를 교체했다!", "exposedMove": "{{pokemonName}}[[는]]\n{{targetPokemonName}}의 정체를 꿰뚫어 보았다!", } as const; diff --git a/src/locales/pt_BR/battle.ts b/src/locales/pt_BR/battle.ts index 24d4e8c928f..fd2695ed3c3 100644 --- a/src/locales/pt_BR/battle.ts +++ b/src/locales/pt_BR/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "É supereficaz!", "hitResultNotVeryEffective": "É pouco eficaz...", "hitResultNoEffect": "Isso não afeta {{pokemonName}}!", + "hitResultImmune": "{{pokemonName}} não é afetado!", "hitResultOneHitKO": "Foi um nocaute de um golpe!", "attackFailed": "Mas falhou!", "attackMissed": "{{pokemonNameWithAffix}} desviou do ataque!", diff --git a/src/locales/pt_BR/move-trigger.ts b/src/locales/pt_BR/move-trigger.ts index 620f867ae9a..33d05867a6a 100644 --- a/src/locales/pt_BR/move-trigger.ts +++ b/src/locales/pt_BR/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\nirá desmaiar em {{turnCount}} turnos.", "copyType": "O tipo de {{pokemonName}}\nmudou para combinar com {{targetPokemonName}}!", "suppressAbilities": "A habilidade de {{pokemonName}}\nfoi suprimida!", + "revivalBlessing": "{{pokemonName}} foi reanimado!", "swapArenaTags": "{{pokemonName}} trocou os efeitos de batalha que afetam cada lado do campo!", "exposedMove": "{{pokemonName}} identificou\n{{targetPokemonName}}!", } as const; diff --git a/src/locales/zh_CN/battle.ts b/src/locales/zh_CN/battle.ts index 5a73fbba09f..7b757941983 100644 --- a/src/locales/zh_CN/battle.ts +++ b/src/locales/zh_CN/battle.ts @@ -24,6 +24,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "效果拔群!", "hitResultNotVeryEffective": "收效甚微…", "hitResultNoEffect": "对{{pokemonName}}没有效果!!", + "hitResultImmune": "对于{{pokemonName}},\n完全没有效果!", "hitResultOneHitKO": "一击必杀!", "attackFailed": "但是失败了!", "attackMissed": "没有命中{{pokemonNameWithAffix}}!", diff --git a/src/locales/zh_CN/move-trigger.ts b/src/locales/zh_CN/move-trigger.ts index 3bbab276a87..cc39220d7f5 100644 --- a/src/locales/zh_CN/move-trigger.ts +++ b/src/locales/zh_CN/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\n将在{{turnCount}}回合后灭亡!", "copyType": "{{pokemonName}}\n变成了{{targetPokemonName}}的属性!", "suppressAbilities": "{{pokemonName}}的特性\n变得无效了!", + "revivalBlessing": "{{pokemonName}}复活了!", "swapArenaTags": "{{pokemonName}}\n交换了双方的场地效果!", "exposedMove": "{{pokemonName}}识破了\n{{targetPokemonName}}的原型!", } as const; diff --git a/src/locales/zh_TW/battle.ts b/src/locales/zh_TW/battle.ts index 357ad4ffbc3..116c891d74c 100644 --- a/src/locales/zh_TW/battle.ts +++ b/src/locales/zh_TW/battle.ts @@ -21,6 +21,7 @@ export const battle: SimpleTranslationEntries = { "hitResultSuperEffective": "效果拔群!", "hitResultNotVeryEffective": "收效甚微…", "hitResultNoEffect": "對 {{pokemonName}} 沒有效果!", + "hitResultImmune": "對于{{pokemonName}},\n完全沒有效果!", "hitResultOneHitKO": "一擊切殺!", "attackFailed": "但是失敗了!", "attackMissed": "沒有命中{{pokemonNameWithAffix}}!", diff --git a/src/locales/zh_TW/move-trigger.ts b/src/locales/zh_TW/move-trigger.ts index 9eb7a38dfb3..39b8cebaa78 100644 --- a/src/locales/zh_TW/move-trigger.ts +++ b/src/locales/zh_TW/move-trigger.ts @@ -61,6 +61,7 @@ export const moveTriggers: SimpleTranslationEntries = { "faintCountdown": "{{pokemonName}}\n將在{{turnCount}}回合後滅亡!", "copyType": "{{pokemonName}}變成了{{targetPokemonName}}的屬性!", "suppressAbilities": "{{pokemonName}}的特性\n變得無效了!", + "revivalBlessing": "{{pokemonName}}復活了!", "swapArenaTags": "{{pokemonName}}\n交換了雙方的場地效果!", "exposedMove": "{{pokemonName}}識破了\n{{targetPokemonName}}的原形!", } as const; diff --git a/src/phases/move-phase.ts b/src/phases/move-phase.ts index 2aed0bb9495..c446660b16f 100644 --- a/src/phases/move-phase.ts +++ b/src/phases/move-phase.ts @@ -65,7 +65,7 @@ export class MovePhase extends BattlePhase { if (!this.canMove()) { if (this.move.moveId && this.pokemon.summonData?.disabledMove === this.move.moveId) { - this.scene.queueMessage(`${this.move.getName()} is disabled!`); + this.scene.queueMessage(i18next.t("battle:moveDisabled", { moveName: this.move.getName() })); } if (this.pokemon.isActive(true) && this.move.ppUsed >= this.move.getMovePp()) { // if the move PP was reduced from Spite or otherwise, the move fails this.fail();