Refactor to split battle messages from menu
parent
e34b204664
commit
6ac224ab8a
|
@ -1418,7 +1418,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
damage.value = this.damageAndUpdate(damage.value, result as DamageResult, isCritical, oneHitKo, oneHitKo);
|
damage.value = this.damageAndUpdate(damage.value, result as DamageResult, isCritical, oneHitKo, oneHitKo);
|
||||||
this.turnData.damageTaken += damage.value;
|
this.turnData.damageTaken += damage.value;
|
||||||
if (isCritical)
|
if (isCritical)
|
||||||
this.scene.queueMessage(i18next.t('menu:hitResultCriticalHit'));
|
this.scene.queueMessage(i18next.t('battle:hitResultCriticalHit'));
|
||||||
this.scene.setPhaseQueueSplice();
|
this.scene.setPhaseQueueSplice();
|
||||||
if (source.isPlayer()) {
|
if (source.isPlayer()) {
|
||||||
this.scene.validateAchvs(DamageAchv, damage);
|
this.scene.validateAchvs(DamageAchv, damage);
|
||||||
|
@ -1436,16 +1436,16 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
if (source.turnData.hitsLeft === 1) {
|
if (source.turnData.hitsLeft === 1) {
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case HitResult.SUPER_EFFECTIVE:
|
case HitResult.SUPER_EFFECTIVE:
|
||||||
this.scene.queueMessage(i18next.t('menu:hitResultSuperEffective'));
|
this.scene.queueMessage(i18next.t('battle:hitResultSuperEffective'));
|
||||||
break;
|
break;
|
||||||
case HitResult.NOT_VERY_EFFECTIVE:
|
case HitResult.NOT_VERY_EFFECTIVE:
|
||||||
this.scene.queueMessage(i18next.t('menu:hitResultNotVeryEffective'));
|
this.scene.queueMessage(i18next.t('battle:hitResultNotVeryEffective'));
|
||||||
break;
|
break;
|
||||||
case HitResult.NO_EFFECT:
|
case HitResult.NO_EFFECT:
|
||||||
this.scene.queueMessage(i18next.t('menu:hitResultNoEffect', { pokemonName: this.name }));
|
this.scene.queueMessage(i18next.t('battle:hitResultNoEffect', { pokemonName: this.name }));
|
||||||
break;
|
break;
|
||||||
case HitResult.ONE_HIT_KO:
|
case HitResult.ONE_HIT_KO:
|
||||||
this.scene.queueMessage(i18next.t('menu:hitResultOneHitKO'));
|
this.scene.queueMessage(i18next.t('battle:hitResultOneHitKO'));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1462,7 +1462,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
defendingSidePlayField.forEach((p) => applyPreDefendAbAttrs(FieldPriorityMoveImmunityAbAttr, p, source, battlerMove, cancelled, typeMultiplier));
|
defendingSidePlayField.forEach((p) => applyPreDefendAbAttrs(FieldPriorityMoveImmunityAbAttr, p, source, battlerMove, cancelled, typeMultiplier));
|
||||||
}
|
}
|
||||||
if (!typeMultiplier.value)
|
if (!typeMultiplier.value)
|
||||||
this.scene.queueMessage(i18next.t('menu:hitResultNoEffect', { pokemonName: this.name }));
|
this.scene.queueMessage(i18next.t('battle:hitResultNoEffect', { pokemonName: this.name }));
|
||||||
result = cancelled.value || !typeMultiplier.value ? HitResult.NO_EFFECT : HitResult.STATUS;
|
result = cancelled.value || !typeMultiplier.value ? HitResult.NO_EFFECT : HitResult.STATUS;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const battle: SimpleTranslationEntries = {
|
||||||
|
"bossAppeared": "{{bossName}} erscheint.",
|
||||||
|
"trainerAppeared": "{{trainerName}}\nmöchte kämpfen!",
|
||||||
|
"singleWildAppeared": "Ein wildes {{pokemonName}} erscheint!",
|
||||||
|
"multiWildAppeared": "Ein wildes {{pokemonName1}}\nund {{pokemonName2}} erscheinen!",
|
||||||
|
"playerComeBack": "Komm zurück, {{pokemonName}}!",
|
||||||
|
"trainerComeBack": "{{trainerName}} ruft {{pokemonName}} zurück!",
|
||||||
|
"playerGo": "Los! {{pokemonName}}!",
|
||||||
|
"trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!",
|
||||||
|
"switchQuestion": "Willst du\n{{pokemonName}} auswechseln?",
|
||||||
|
"trainerDefeated": `You defeated\n{{trainerName}}!`,
|
||||||
|
"pokemonCaught": "{{pokemonName}} was caught!",
|
||||||
|
"pokemon": "Pokémon",
|
||||||
|
"sendOutPokemon": "Los! {{pokemonName}}!",
|
||||||
|
"hitResultCriticalHit": "A critical hit!",
|
||||||
|
"hitResultSuperEffective": "It's super effective!",
|
||||||
|
"hitResultNotVeryEffective": "It's not very effective…",
|
||||||
|
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
||||||
|
"hitResultOneHitKO": "It's a one-hit KO!",
|
||||||
|
"attackFailed": "But it failed!",
|
||||||
|
"attackHitsCount": `Hit {{count}} time(s)!`,
|
||||||
|
"expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
|
||||||
|
"levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
|
||||||
|
"learnMove": "{{pokemonName}} learned\n{{moveName}}!",
|
||||||
|
"learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
|
||||||
|
"learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
|
||||||
|
"learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
|
||||||
|
"learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
|
||||||
|
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
|
||||||
|
"learnMoveForgetQuestion": "Which move should be forgotten?",
|
||||||
|
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
|
||||||
|
"levelCapUp": "Das Levellimit\nhat sich zu {{levelCap}} erhöht!",
|
||||||
|
"moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",
|
||||||
|
"moveDisabled": "{{moveName}} ist deaktiviert!",
|
||||||
|
"noPokeballForce": "Eine unsichtbare Kraft\nverhindert die Nutzung von Pokébällen.",
|
||||||
|
"noPokeballTrainer": "Du kannst das Pokémon\neines anderen Trainers nicht fangen!",
|
||||||
|
"noPokeballMulti": "Du kannst erst einen Pokéball werden,\nwenn nur noch ein Pokémon übrig ist!",
|
||||||
|
"noPokeballStrong": "Das Ziel-Pokémon ist zu stark, um gefangen zu werden!\nDu musst es zuerst schwächen!",
|
||||||
|
"noEscapeForce": "Eine unsichtbare Kraft\nverhindert die Flucht.",
|
||||||
|
"noEscapeTrainer": "Du kannst nicht\naus einem Trainerkampf fliehen!",
|
||||||
|
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nverhindert {{escapeVerb}}!",
|
||||||
|
"runAwaySuccess": "You got away safely!",
|
||||||
|
"runAwayCannotEscape": 'You can\'t escape!',
|
||||||
|
"escapeVerbSwitch": "auswechseln",
|
||||||
|
"escapeVerbFlee": "flucht",
|
||||||
|
"notDisabled": "{{moveName}} ist\nnicht mehr deaktiviert!",
|
||||||
|
"skipItemQuestion": "Are you sure you want to skip taking an item?",
|
||||||
|
"eggHatching": "Oh?",
|
||||||
|
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?"
|
||||||
|
} as const;
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const fightUiHandler: SimpleTranslationEntries = {
|
||||||
|
"pp": "PP",
|
||||||
|
"power": "POWER",
|
||||||
|
} as const;
|
|
@ -35,38 +35,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"boyOrGirl": "Bist du ein Junge oder ein Mädchen?",
|
"boyOrGirl": "Bist du ein Junge oder ein Mädchen?",
|
||||||
"boy": "Junge",
|
"boy": "Junge",
|
||||||
"girl": "Mädchen",
|
"girl": "Mädchen",
|
||||||
"bossAppeared": "{{bossName}} erscheint.",
|
|
||||||
"trainerAppeared": "{{trainerName}}\nmöchte kämpfen!",
|
|
||||||
"singleWildAppeared": "Ein wildes {{pokemonName}} erscheint!",
|
|
||||||
"multiWildAppeared": "Ein wildes {{pokemonName1}}\nund {{pokemonName2}} erscheinen!",
|
|
||||||
"playerComeBack": "Komm zurück, {{pokemonName}}!",
|
|
||||||
"trainerComeBack": "{{trainerName}} ruft {{pokemonName}} zurück!",
|
|
||||||
"playerGo": "Los! {{pokemonName}}!",
|
|
||||||
"trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!",
|
|
||||||
"switchQuestion": "Willst du\n{{pokemonName}} auswechseln?",
|
|
||||||
"pokemon": "Pokémon",
|
|
||||||
"sendOutPokemon": "Los! {{pokemonName}}!",
|
|
||||||
"levelCapUp": "Das Levellimit\nhat sich zu {{levelCap}} erhöht!",
|
|
||||||
"moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",
|
|
||||||
"moveDisabled": "{{moveName}} ist deaktiviert!",
|
|
||||||
"noPokeballForce": "Eine unsichtbare Kraft\nverhindert die Nutzung von Pokébällen.",
|
|
||||||
"noPokeballTrainer": "Du kannst das Pokémon\neines anderen Trainers nicht fangen!",
|
|
||||||
"noPokeballMulti": "Du kannst erst einen Pokéball werden,\nwenn nur noch ein Pokémon übrig ist!",
|
|
||||||
"noPokeballStrong": "Das Ziel-Pokémon ist zu stark, um gefangen zu werden!\nDu musst es zuerst schwächen!",
|
|
||||||
"noEscapeForce": "Eine unsichtbare Kraft\nverhindert die Flucht.",
|
|
||||||
"noEscapeTrainer": "Du kannst nicht\naus einem Trainerkampf fliehen!",
|
|
||||||
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nverhindert {{escapeVerb}}!",
|
|
||||||
"escapeVerbSwitch": "auswechseln",
|
|
||||||
"escapeVerbFlee": "flucht",
|
|
||||||
"notDisabled": "{{moveName}} ist\nnicht mehr deaktiviert!",
|
|
||||||
"dailyRankings": "Daily Rankings",
|
"dailyRankings": "Daily Rankings",
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"playersOnline": "Players Online",
|
"playersOnline": "Players Online"
|
||||||
"hitResultCriticalHit": "A critical hit!",
|
|
||||||
"hitResultSuperEffective": "It's super effective!",
|
|
||||||
"hitResultNotVeryEffective": "It's not very effective…",
|
|
||||||
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
|
||||||
"hitResultOneHitKO": "It's a one-hit KO!"
|
|
||||||
} as const;
|
} as const;
|
|
@ -0,0 +1,52 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const battle: SimpleTranslationEntries = {
|
||||||
|
"bossAppeared": "{{bossName}} appeared.",
|
||||||
|
"trainerAppeared": "{{trainerName}}\nwould like to battle!",
|
||||||
|
"singleWildAppeared": "A wild {{pokemonName}} appeared!",
|
||||||
|
"multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
|
||||||
|
"playerComeBack": "Come back, {{pokemonName}}!",
|
||||||
|
"trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
|
||||||
|
"playerGo": "Go! {{pokemonName}}!",
|
||||||
|
"trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
|
||||||
|
"switchQuestion": "Will you switch\n{{pokemonName}}?",
|
||||||
|
"trainerDefeated": `You defeated\n{{trainerName}}!`,
|
||||||
|
"pokemonCaught": "{{pokemonName}} was caught!",
|
||||||
|
"pokemon": "Pokémon",
|
||||||
|
"sendOutPokemon": "Go! {{pokemonName}}!",
|
||||||
|
"hitResultCriticalHit": "A critical hit!",
|
||||||
|
"hitResultSuperEffective": "It's super effective!",
|
||||||
|
"hitResultNotVeryEffective": "It's not very effective…",
|
||||||
|
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
||||||
|
"hitResultOneHitKO": "It's a one-hit KO!",
|
||||||
|
"attackFailed": "But it failed!",
|
||||||
|
"attackHitsCount": `Hit {{count}} time(s)!`,
|
||||||
|
"expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
|
||||||
|
"levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
|
||||||
|
"learnMove": "{{pokemonName}} learned\n{{moveName}}!",
|
||||||
|
"learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
|
||||||
|
"learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
|
||||||
|
"learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
|
||||||
|
"learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
|
||||||
|
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
|
||||||
|
"learnMoveForgetQuestion": "Which move should be forgotten?",
|
||||||
|
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
|
||||||
|
"levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
|
||||||
|
"moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
|
||||||
|
"moveDisabled": "{{moveName}} is disabled!",
|
||||||
|
"noPokeballForce": "An unseen force\nprevents using Poké Balls.",
|
||||||
|
"noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
|
||||||
|
"noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
|
||||||
|
"noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
|
||||||
|
"noEscapeForce": "An unseen force\nprevents escape.",
|
||||||
|
"noEscapeTrainer": "You can't run\nfrom a trainer battle!",
|
||||||
|
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
|
||||||
|
"runAwaySuccess": "You got away safely!",
|
||||||
|
"runAwayCannotEscape": 'You can\'t escape!',
|
||||||
|
"escapeVerbSwitch": "switching",
|
||||||
|
"escapeVerbFlee": "fleeing",
|
||||||
|
"notDisabled": "{{moveName}} is disabled\nno more!",
|
||||||
|
"skipItemQuestion": "Are you sure you want to skip taking an item?",
|
||||||
|
"eggHatching": "Oh?",
|
||||||
|
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?"
|
||||||
|
} as const;
|
|
@ -35,57 +35,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"boyOrGirl": "Are you a boy or a girl?",
|
"boyOrGirl": "Are you a boy or a girl?",
|
||||||
"boy": "Boy",
|
"boy": "Boy",
|
||||||
"girl": "Girl",
|
"girl": "Girl",
|
||||||
"bossAppeared": "{{bossName}} appeared.",
|
|
||||||
"trainerAppeared": "{{trainerName}}\nwould like to battle!",
|
|
||||||
"singleWildAppeared": "A wild {{pokemonName}} appeared!",
|
|
||||||
"multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
|
|
||||||
"playerComeBack": "Come back, {{pokemonName}}!",
|
|
||||||
"trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
|
|
||||||
"playerGo": "Go! {{pokemonName}}!",
|
|
||||||
"trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
|
|
||||||
"switchQuestion": "Will you switch\n{{pokemonName}}?",
|
|
||||||
"trainerDefeated": `You defeated\n{{trainerName}}!`,
|
|
||||||
"pokemonCaught": "{{pokemonName}} was caught!",
|
|
||||||
"pokemon": "Pokémon",
|
|
||||||
"sendOutPokemon": "Go! {{pokemonName}}!",
|
|
||||||
"attackFailed": "But it failed!",
|
|
||||||
"attackHitsCount": `Hit {{count}} time(s)!`,
|
|
||||||
"expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
|
|
||||||
"levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
|
|
||||||
"learnMove": "{{pokemonName}} learned\n{{moveName}}!",
|
|
||||||
"learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
|
|
||||||
"learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
|
|
||||||
"learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
|
|
||||||
"learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
|
|
||||||
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
|
|
||||||
"learnMoveForgetQuestion": "Which move should be forgotten?",
|
|
||||||
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
|
|
||||||
"levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
|
|
||||||
"moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
|
|
||||||
"moveDisabled": "{{moveName}} is disabled!",
|
|
||||||
"noPokeballForce": "An unseen force\nprevents using Poké Balls.",
|
|
||||||
"noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
|
|
||||||
"noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
|
|
||||||
"noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
|
|
||||||
"noEscapeForce": "An unseen force\nprevents escape.",
|
|
||||||
"noEscapeTrainer": "You can't run\nfrom a trainer battle!",
|
|
||||||
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
|
|
||||||
"runAwaySuccess": "You got away safely!",
|
|
||||||
"runAwayCannotEscape": 'You can\'t escape!',
|
|
||||||
"escapeVerbSwitch": "switching",
|
|
||||||
"escapeVerbFlee": "fleeing",
|
|
||||||
"notDisabled": "{{moveName}} is disabled\nno more!",
|
|
||||||
"skipItemQuestion": "Are you sure you want to skip taking an item?",
|
|
||||||
"eggHatching": "Oh?",
|
|
||||||
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?",
|
|
||||||
"dailyRankings": "Daily Rankings",
|
"dailyRankings": "Daily Rankings",
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"playersOnline": "Players Online",
|
"playersOnline": "Players Online"
|
||||||
"hitResultCriticalHit": "A critical hit!",
|
|
||||||
"hitResultSuperEffective": "It's super effective!",
|
|
||||||
"hitResultNotVeryEffective": "It's not very effective…",
|
|
||||||
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
|
||||||
"hitResultOneHitKO": "It's a one-hit KO!"
|
|
||||||
} as const;
|
} as const;
|
|
@ -0,0 +1,52 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const battle: SimpleTranslationEntries = {
|
||||||
|
"bossAppeared": "¡{{bossName}} te corta el paso!",
|
||||||
|
"trainerAppeared": "¡{{trainerName}}\nte desafía!",
|
||||||
|
"singleWildAppeared": "¡Un {{pokemonName}} salvaje te corta el paso!",
|
||||||
|
"multiWildAppeared": "¡Un {{pokemonName1}} y un {{pokemonName2}} salvajes\nte cortan el paso!",
|
||||||
|
"playerComeBack": "¡{{pokemonName}}, ven aquí!",
|
||||||
|
"trainerComeBack": "¡{{trainerName}} retira a {{pokemonName}} del combate!",
|
||||||
|
"playerGo": "¡Adelante, {{pokemonName}}!",
|
||||||
|
"trainerGo": "¡{{trainerName}} saca a {{pokemonName}}!",
|
||||||
|
"switchQuestion": "¿Quieres cambiar a\n{{pokemonName}}?",
|
||||||
|
"trainerDefeated": "¡Has derrotado a\n{{trainerName}}!",
|
||||||
|
"pokemonCaught": "¡{{pokemonName}} atrapado!",
|
||||||
|
"pokemon": "Pokémon",
|
||||||
|
"sendOutPokemon": "¡Adelante, {{pokemonName}}!",
|
||||||
|
"hitResultCriticalHit": "A critical hit!",
|
||||||
|
"hitResultSuperEffective": "It's super effective!",
|
||||||
|
"hitResultNotVeryEffective": "It's not very effective…",
|
||||||
|
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
||||||
|
"hitResultOneHitKO": "It's a one-hit KO!",
|
||||||
|
"attackFailed": "¡Pero ha fallado!",
|
||||||
|
"attackHitsCount": `N.º de golpes: {{count}}.`,
|
||||||
|
"expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",
|
||||||
|
"levelUp": "¡{{pokemonName}} ha subido al \nNv. {{level}}!",
|
||||||
|
"learnMove": "¡{{pokemonName}} ha aprendido {{moveName}}!",
|
||||||
|
"learnMovePrompt": "{{pokemonName}} quiere aprender {{moveName}}.",
|
||||||
|
"learnMoveLimitReached": "Pero, {{pokemonName}} ya conoce\ncuatro movimientos.",
|
||||||
|
"learnMoveReplaceQuestion": "¿Quieres sustituir uno de sus movimientos por {{moveName}}?",
|
||||||
|
"learnMoveStopTeaching": "¿Prefieres que no aprenda\n{{moveName}}?",
|
||||||
|
"learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.",
|
||||||
|
"learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?",
|
||||||
|
"learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.",
|
||||||
|
"levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!",
|
||||||
|
"moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.",
|
||||||
|
"moveDisabled": "!No puede usar {{moveName}} porque ha sido anulado!",
|
||||||
|
"noPokeballForce": "Una fuerza misteriosa\nte impide usar Poké Balls.",
|
||||||
|
"noPokeballTrainer": "¡No puedes atrapar a los\nPokémon de los demás!",
|
||||||
|
"noPokeballMulti": "¡No se pueden lanzar Poké Balls\ncuando hay más de un Pokémon!",
|
||||||
|
"noPokeballStrong": "¡Este Pokémon es demasiado fuerte para ser capturado!\nNecesitas bajarle los PS primero!",
|
||||||
|
"noEscapeForce": "Una fuerza misteriosa\nte impide huir.",
|
||||||
|
"noEscapeTrainer": "¡No puedes huir de los\ncombates contra Entrenadores!",
|
||||||
|
"noEscapePokemon": "¡El movimiento {{moveName}} de {{pokemonName}} impide la huida!",
|
||||||
|
"runAwaySuccess": "¡Escapas sin problemas!",
|
||||||
|
"runAwayCannotEscape": "¡No has podido escapar!",
|
||||||
|
"escapeVerbSwitch": "cambiar",
|
||||||
|
"escapeVerbFlee": "huir",
|
||||||
|
"notDisabled": "¡El movimiento {{moveName}}\nya no está anulado!",
|
||||||
|
"skipItemQuestion": "¿Estás seguro de que no quieres coger un objeto?",
|
||||||
|
"eggHatching": "¿Y esto?",
|
||||||
|
"ivScannerUseQuestion": "¿Quieres usar el Escáner de IVs en {{pokemonName}}?"
|
||||||
|
} as const;
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const fightUiHandler: SimpleTranslationEntries = {
|
||||||
|
"pp": "PP",
|
||||||
|
"power": "POWER",
|
||||||
|
} as const;
|
|
@ -19,57 +19,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"boyOrGirl": "¿Eres un chico o una chica?",
|
"boyOrGirl": "¿Eres un chico o una chica?",
|
||||||
"boy": "Chico",
|
"boy": "Chico",
|
||||||
"girl": "Chica",
|
"girl": "Chica",
|
||||||
"bossAppeared": "¡{{bossName}} te corta el paso!",
|
|
||||||
"trainerAppeared": "¡{{trainerName}}\nte desafía!",
|
|
||||||
"singleWildAppeared": "¡Un {{pokemonName}} salvaje te corta el paso!",
|
|
||||||
"multiWildAppeared": "¡Un {{pokemonName1}} y un {{pokemonName2}} salvajes\nte cortan el paso!",
|
|
||||||
"playerComeBack": "¡{{pokemonName}}, ven aquí!",
|
|
||||||
"trainerComeBack": "¡{{trainerName}} retira a {{pokemonName}} del combate!",
|
|
||||||
"playerGo": "¡Adelante, {{pokemonName}}!",
|
|
||||||
"trainerGo": "¡{{trainerName}} saca a {{pokemonName}}!",
|
|
||||||
"switchQuestion": "¿Quieres cambiar a\n{{pokemonName}}?",
|
|
||||||
"trainerDefeated": "¡Has derrotado a\n{{trainerName}}!",
|
|
||||||
"pokemonCaught": "¡{{pokemonName}} atrapado!",
|
|
||||||
"pokemon": "Pokémon",
|
|
||||||
"sendOutPokemon": "¡Adelante, {{pokemonName}}!",
|
|
||||||
"attackFailed": "¡Pero ha fallado!",
|
|
||||||
"attackHitsCount": `N.º de golpes: {{count}}.`,
|
|
||||||
"expGain": "{{pokemonName}} ha ganado\n{{exp}} puntos de experiencia.",
|
|
||||||
"levelUp": "¡{{pokemonName}} ha subido al \nNv. {{level}}!",
|
|
||||||
"learnMove": "¡{{pokemonName}} ha aprendido {{moveName}}!",
|
|
||||||
"learnMovePrompt": "{{pokemonName}} quiere aprender {{moveName}}.",
|
|
||||||
"learnMoveLimitReached": "Pero, {{pokemonName}} ya conoce\ncuatro movimientos.",
|
|
||||||
"learnMoveReplaceQuestion": "¿Quieres sustituir uno de sus movimientos por {{moveName}}?",
|
|
||||||
"learnMoveStopTeaching": "¿Prefieres que no aprenda\n{{moveName}}?",
|
|
||||||
"learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.",
|
|
||||||
"learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?",
|
|
||||||
"learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.",
|
|
||||||
"levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!",
|
|
||||||
"moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.",
|
|
||||||
"moveDisabled": "!No puede usar {{moveName}} porque ha sido anulado!",
|
|
||||||
"noPokeballForce": "Una fuerza misteriosa\nte impide usar Poké Balls.",
|
|
||||||
"noPokeballTrainer": "¡No puedes atrapar a los\nPokémon de los demás!",
|
|
||||||
"noPokeballMulti": "¡No se pueden lanzar Poké Balls\ncuando hay más de un Pokémon!",
|
|
||||||
"noPokeballStrong": "¡Este Pokémon es demasiado fuerte para ser capturado!\nNecesitas bajarle los PS primero!",
|
|
||||||
"noEscapeForce": "Una fuerza misteriosa\nte impide huir.",
|
|
||||||
"noEscapeTrainer": "¡No puedes huir de los\ncombates contra Entrenadores!",
|
|
||||||
"noEscapePokemon": "¡El movimiento {{moveName}} de {{pokemonName}} impide la huida!",
|
|
||||||
"runAwaySuccess": "¡Escapas sin problemas!",
|
|
||||||
"runAwayCannotEscape": "¡No has podido escapar!",
|
|
||||||
"escapeVerbSwitch": "cambiar",
|
|
||||||
"escapeVerbFlee": "huir",
|
|
||||||
"notDisabled": "¡El movimiento {{moveName}}\nya no está anulado!",
|
|
||||||
"skipItemQuestion": "¿Estás seguro de que no quieres coger un objeto?",
|
|
||||||
"eggHatching": "¿Y esto?",
|
|
||||||
"ivScannerUseQuestion": "¿Quieres usar el Escáner de IVs en {{pokemonName}}?",
|
|
||||||
"dailyRankings": "Daily Rankings",
|
"dailyRankings": "Daily Rankings",
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"playersOnline": "Players Online",
|
"playersOnline": "Players Online"
|
||||||
"hitResultCriticalHit": "A critical hit!",
|
|
||||||
"hitResultSuperEffective": "It's super effective!",
|
|
||||||
"hitResultNotVeryEffective": "It's not very effective…",
|
|
||||||
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
|
||||||
"hitResultOneHitKO": "It's a one-hit KO!"
|
|
||||||
} as const;
|
} as const;
|
|
@ -0,0 +1,52 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const battle: SimpleTranslationEntries = {
|
||||||
|
"bossAppeared": "Un {{bossName}} apparaît.",
|
||||||
|
"trainerAppeared": "Un combat est lancé\npar {{trainerName}} !",
|
||||||
|
"singleWildAppeared": "Un {{pokemonName}} sauvage apparaît !",
|
||||||
|
"multiWildAppeared": "Un {{pokemonName1}} et un {{pokemonName2}}\nsauvages apparaissent !",
|
||||||
|
"playerComeBack": "{{pokemonName}}, on change !\nReviens !",
|
||||||
|
"trainerComeBack": "{{trainerName}} retire {{pokemonName}} !",
|
||||||
|
"playerGo": "{{pokemonName}} ! Go !",
|
||||||
|
"trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
|
||||||
|
"switchQuestion": "Voulez-vous changer\n{{pokemonName}} ?",
|
||||||
|
"trainerDefeated": `Vous avez battu\n{{trainerName}} !`,
|
||||||
|
"pokemonCaught": "Vous avez attrapé {{pokemonName}} !",
|
||||||
|
"pokemon": "Pokémon",
|
||||||
|
"sendOutPokemon": "{{pokemonName}} ! Go !",
|
||||||
|
"hitResultCriticalHit": "Coup critique!",
|
||||||
|
"hitResultSuperEffective": "C’est super efficace!",
|
||||||
|
"hitResultNotVeryEffective": "Ce n’est pas très efficace…",
|
||||||
|
"hitResultNoEffect": "Ça n’affecte pas {{pokemonName}}…",
|
||||||
|
"hitResultOneHitKO": "K.O. en un coup!",
|
||||||
|
"attackFailed": "Mais cela échoue !",
|
||||||
|
"attackHitsCount": `Touché {{count}} fois !`,
|
||||||
|
"expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
|
||||||
|
"levelUp": "{{pokemonName}} monte au\nN. {{level}} !",
|
||||||
|
"learnMove": "{{pokemonName}} apprend \n{{moveName}} !",
|
||||||
|
"learnMovePrompt": "{{pokemonName}} veut apprendre\n{{moveName}}.",
|
||||||
|
"learnMoveLimitReached": "Cependant, {{pokemonName}} connait\ndéjà quatre capacités.",
|
||||||
|
"learnMoveReplaceQuestion": "Voulez-vous oublier une capacité\net la remplacer par {{moveName}} ?",
|
||||||
|
"learnMoveStopTeaching": "Arrêter d’apprendre\n{{moveName}} ?",
|
||||||
|
"learnMoveNotLearned": "{{pokemonName}} n’a pas appris\n{{moveName}}.",
|
||||||
|
"learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?",
|
||||||
|
"learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
|
||||||
|
"levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
|
||||||
|
"moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.",
|
||||||
|
"moveDisabled": "{{moveName}} est sous entrave !",
|
||||||
|
"noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
|
||||||
|
"noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
|
||||||
|
"noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon!",
|
||||||
|
"noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d’abord l’affaiblir !",
|
||||||
|
"noEscapeForce": "Une force mystérieuse\nempêche la fuite.",
|
||||||
|
"noEscapeTrainer": "On ne s’enfuit pas d’un\ncombat de Dresseurs !",
|
||||||
|
"noEscapePokemon": "{{moveName}} de {{pokemonName}}\nempêche {{escapeVerb}} !",
|
||||||
|
"runAwaySuccess": "Vous prenez la fuite !",
|
||||||
|
"runAwayCannotEscape": "Fuite impossible !",
|
||||||
|
"escapeVerbSwitch": "le changement",
|
||||||
|
"escapeVerbFlee": "la fuite",
|
||||||
|
"notDisabled": "{{moveName}} n’est plus sous entrave !",
|
||||||
|
"skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
|
||||||
|
"eggHatching": "Oh ?",
|
||||||
|
"ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?"
|
||||||
|
} as const;
|
|
@ -30,57 +30,9 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"boyOrGirl": "Es-tu un garçon ou une fille ?",
|
"boyOrGirl": "Es-tu un garçon ou une fille ?",
|
||||||
"boy": "Garçon",
|
"boy": "Garçon",
|
||||||
"girl": "Fille",
|
"girl": "Fille",
|
||||||
"bossAppeared": "Un {{bossName}} apparaît.",
|
|
||||||
"trainerAppeared": "Un combat est lancé\npar {{trainerName}} !",
|
|
||||||
"singleWildAppeared": "Un {{pokemonName}} sauvage apparaît !",
|
|
||||||
"multiWildAppeared": "Un {{pokemonName1}} et un {{pokemonName2}}\nsauvages apparaissent !",
|
|
||||||
"playerComeBack": "{{pokemonName}}, on change !\nReviens !",
|
|
||||||
"trainerComeBack": "{{trainerName}} retire {{pokemonName}} !",
|
|
||||||
"playerGo": "{{pokemonName}} ! Go !",
|
|
||||||
"trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
|
|
||||||
"switchQuestion": "Voulez-vous changer\n{{pokemonName}} ?",
|
|
||||||
"trainerDefeated": `Vous avez battu\n{{trainerName}} !`,
|
|
||||||
"pokemonCaught": "Vous avez attrapé {{pokemonName}} !",
|
|
||||||
"pokemon": "Pokémon",
|
|
||||||
"sendOutPokemon": "{{pokemonName}} ! Go !",
|
|
||||||
"attackFailed": "Mais cela échoue !",
|
|
||||||
"attackHitsCount": `Touché {{count}} fois !`,
|
|
||||||
"expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
|
|
||||||
"levelUp": "{{pokemonName}} monte au\nN. {{level}} !",
|
|
||||||
"learnMove": "{{pokemonName}} apprend \n{{moveName}} !",
|
|
||||||
"learnMovePrompt": "{{pokemonName}} veut apprendre\n{{moveName}}.",
|
|
||||||
"learnMoveLimitReached": "Cependant, {{pokemonName}} connait\ndéjà quatre capacités.",
|
|
||||||
"learnMoveReplaceQuestion": "Voulez-vous oublier une capacité\net la remplacer par {{moveName}} ?",
|
|
||||||
"learnMoveStopTeaching": "Arrêter d’apprendre\n{{moveName}} ?",
|
|
||||||
"learnMoveNotLearned": "{{pokemonName}} n’a pas appris\n{{moveName}}.",
|
|
||||||
"learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?",
|
|
||||||
"learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
|
|
||||||
"levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
|
|
||||||
"moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.",
|
|
||||||
"moveDisabled": "{{moveName}} est sous entrave !",
|
|
||||||
"noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
|
|
||||||
"noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
|
|
||||||
"noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon!",
|
|
||||||
"noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d’abord l’affaiblir !",
|
|
||||||
"noEscapeForce": "Une force mystérieuse\nempêche la fuite.",
|
|
||||||
"noEscapeTrainer": "On ne s’enfuit pas d’un\ncombat de Dresseurs !",
|
|
||||||
"noEscapePokemon": "{{moveName}} de {{pokemonName}}\nempêche {{escapeVerb}} !",
|
|
||||||
"runAwaySuccess": "Vous prenez la fuite !",
|
|
||||||
"runAwayCannotEscape": "Fuite impossible !",
|
|
||||||
"escapeVerbSwitch": "le changement",
|
|
||||||
"escapeVerbFlee": "la fuite",
|
|
||||||
"notDisabled": "{{moveName}} n’est plus sous entrave !",
|
|
||||||
"skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
|
|
||||||
"eggHatching": "Oh ?",
|
|
||||||
"ivScannerUseQuestion": "Utiliser le Scanner d’IV sur {{pokemonName}} ?",
|
|
||||||
"dailyRankings": "Classement du Jour",
|
"dailyRankings": "Classement du Jour",
|
||||||
"weeklyRankings": "Classement de la Semaine",
|
"weeklyRankings": "Classement de la Semaine",
|
||||||
"noRankings": "Pas de Classement",
|
"noRankings": "Pas de Classement",
|
||||||
"loading": "Chargement…",
|
"loading": "Chargement…",
|
||||||
"playersOnline": "Joueurs Connectés",
|
"playersOnline": "Joueurs Connectés"
|
||||||
"hitResultCriticalHit": "Coup critique!",
|
|
||||||
"hitResultSuperEffective": "C'est super efficace!",
|
|
||||||
"hitResultNotVeryEffective": "Ce n'est pas très efficace…",
|
|
||||||
"hitResultNoEffect": "Ça n'affecte pas {{pokemonName}}…",
|
|
||||||
"hitResultOneHitKO": "K.O. en un coup!"
|
|
||||||
} as const;
|
} as const;
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const battle: SimpleTranslationEntries = {
|
||||||
|
"bossAppeared": "{{bossName}} appeared.",
|
||||||
|
"trainerAppeared": "{{trainerName}}\nwould like to battle!",
|
||||||
|
"singleWildAppeared": "A wild {{pokemonName}} appeared!",
|
||||||
|
"multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
|
||||||
|
"playerComeBack": "Come back, {{pokemonName}}!",
|
||||||
|
"trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
|
||||||
|
"playerGo": "Go! {{pokemonName}}!",
|
||||||
|
"trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
|
||||||
|
"switchQuestion": "Will you switch\n{{pokemonName}}?",
|
||||||
|
"trainerDefeated": `You defeated\n{{trainerName}}!`,
|
||||||
|
"pokemonCaught": "{{pokemonName}} was caught!",
|
||||||
|
"pokemon": "Pokémon",
|
||||||
|
"sendOutPokemon": "Go! {{pokemonName}}!",
|
||||||
|
"hitResultCriticalHit": "A critical hit!",
|
||||||
|
"hitResultSuperEffective": "It's super effective!",
|
||||||
|
"hitResultNotVeryEffective": "It's not very effective…",
|
||||||
|
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
||||||
|
"hitResultOneHitKO": "It's a one-hit KO!",
|
||||||
|
"attackFailed": "But it failed!",
|
||||||
|
"attackHitsCount": `Hit {{count}} time(s)!`,
|
||||||
|
"expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
|
||||||
|
"levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
|
||||||
|
"learnMove": "{{pokemonName}} learned\n{{moveName}}!",
|
||||||
|
"learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
|
||||||
|
"learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
|
||||||
|
"learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
|
||||||
|
"learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
|
||||||
|
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
|
||||||
|
"learnMoveForgetQuestion": "Which move should be forgotten?",
|
||||||
|
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
|
||||||
|
"levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
|
||||||
|
"moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
|
||||||
|
"moveDisabled": "{{moveName}} is disabled!",
|
||||||
|
"noPokeballForce": "An unseen force\nprevents using Poké Balls.",
|
||||||
|
"noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
|
||||||
|
"noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
|
||||||
|
"noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
|
||||||
|
"noEscapeForce": "An unseen force\nprevents escape.",
|
||||||
|
"noEscapeTrainer": "You can't run\nfrom a trainer battle!",
|
||||||
|
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
|
||||||
|
"runAwaySuccess": "You got away safely!",
|
||||||
|
"runAwayCannotEscape": 'You can\'t escape!',
|
||||||
|
"escapeVerbSwitch": "switching",
|
||||||
|
"escapeVerbFlee": "fleeing",
|
||||||
|
"notDisabled": "{{moveName}} is disabled\nno more!",
|
||||||
|
"skipItemQuestion": "Are you sure you want to skip taking an item?",
|
||||||
|
"eggHatching": "Oh?",
|
||||||
|
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?"
|
||||||
|
} as const;
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
export const fightUiHandler: SimpleTranslationEntries = {
|
||||||
|
"pp": "PP",
|
||||||
|
"power": "POWER",
|
||||||
|
} as const;
|
|
@ -1,5 +1,10 @@
|
||||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
|
||||||
|
* contents or directly related to Pokemon data. This includes menu navigation, settings,
|
||||||
|
* account interactions, descriptive text, etc.
|
||||||
|
*/
|
||||||
export const menu: SimpleTranslationEntries = {
|
export const menu: SimpleTranslationEntries = {
|
||||||
"cancel": "Annulla",
|
"cancel": "Annulla",
|
||||||
"continue": "Continua",
|
"continue": "Continua",
|
||||||
|
@ -7,14 +12,32 @@ export const menu: SimpleTranslationEntries = {
|
||||||
"loadGame": "Carica Partita",
|
"loadGame": "Carica Partita",
|
||||||
"dailyRun": "Corsa Giornaliera (Beta)",
|
"dailyRun": "Corsa Giornaliera (Beta)",
|
||||||
"selectGameMode": "Seleziona una modalità di gioco.",
|
"selectGameMode": "Seleziona una modalità di gioco.",
|
||||||
|
"logInOrCreateAccount": "Log in or create an account to start. No email required!",
|
||||||
|
"username": "Username",
|
||||||
|
"password": "Password",
|
||||||
|
"login": "Login",
|
||||||
|
"register": "Register",
|
||||||
|
"emptyUsername": "Username must not be empty",
|
||||||
|
"invalidLoginUsername": "The provided username is invalid",
|
||||||
|
"invalidRegisterUsername": "Username must only contain letters, numbers, or underscores",
|
||||||
|
"invalidLoginPassword": "The provided password is invalid",
|
||||||
|
"invalidRegisterPassword": "Password must be 6 characters or longer",
|
||||||
|
"usernameAlreadyUsed": "The provided username is already in use",
|
||||||
|
"accountNonExistent": "The provided user does not exist",
|
||||||
|
"unmatchingPassword": "The provided password does not match",
|
||||||
|
"passwordNotMatchingConfirmPassword": "Password must match confirm password",
|
||||||
|
"confirmPassword": "Confirm Password",
|
||||||
|
"registrationAgeWarning": "By registering, you confirm you are of 13 years of age or older.",
|
||||||
|
"backToLogin": "Back to Login",
|
||||||
|
"failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this continues, please contact the administrator.",
|
||||||
|
"sessionSuccess": "Session loaded successfully.",
|
||||||
|
"failedToLoadSession": "Your session data could not be loaded.\nIt may be corrupted.",
|
||||||
|
"boyOrGirl": "Are you a boy or a girl?",
|
||||||
|
"boy": "Boy",
|
||||||
|
"girl": "Girl",
|
||||||
"dailyRankings": "Daily Rankings",
|
"dailyRankings": "Daily Rankings",
|
||||||
"weeklyRankings": "Weekly Rankings",
|
"weeklyRankings": "Weekly Rankings",
|
||||||
"noRankings": "No Rankings",
|
"noRankings": "No Rankings",
|
||||||
"loading": "Loading…",
|
"loading": "Loading…",
|
||||||
"playersOnline": "Players Online",
|
"playersOnline": "Players Online"
|
||||||
"hitResultCriticalHit": "A critical hit!",
|
|
||||||
"hitResultSuperEffective": "It's super effective!",
|
|
||||||
"hitResultNotVeryEffective": "It's not very effective…",
|
|
||||||
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
|
|
||||||
"hitResultOneHitKO": "It's a one-hit KO!"
|
|
||||||
} as const;
|
} as const;
|
|
@ -815,14 +815,14 @@ export class EncounterPhase extends BattlePhase {
|
||||||
const enemyField = this.scene.getEnemyField();
|
const enemyField = this.scene.getEnemyField();
|
||||||
|
|
||||||
if (this.scene.currentBattle.battleSpec === BattleSpec.FINAL_BOSS)
|
if (this.scene.currentBattle.battleSpec === BattleSpec.FINAL_BOSS)
|
||||||
return i18next.t('menu:bossAppeared', {bossName: enemyField[0].name});
|
return i18next.t('battle:bossAppeared', {bossName: enemyField[0].name});
|
||||||
|
|
||||||
if (this.scene.currentBattle.battleType === BattleType.TRAINER)
|
if (this.scene.currentBattle.battleType === BattleType.TRAINER)
|
||||||
return i18next.t('menu:trainerAppeared', {trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true)});
|
return i18next.t('battle:trainerAppeared', {trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true)});
|
||||||
|
|
||||||
return enemyField.length === 1
|
return enemyField.length === 1
|
||||||
? i18next.t('menu:singleWildAppeared', {pokemonName: enemyField[0].name})
|
? i18next.t('battle:singleWildAppeared', {pokemonName: enemyField[0].name})
|
||||||
: i18next.t('menu:multiWildAppeared', {pokemonName1: enemyField[0].name, pokemonName2: enemyField[1].name})
|
: i18next.t('battle:multiWildAppeared', {pokemonName1: enemyField[0].name, pokemonName2: enemyField[1].name})
|
||||||
}
|
}
|
||||||
|
|
||||||
doEncounterCommon(showEncounterMessage: boolean = true) {
|
doEncounterCommon(showEncounterMessage: boolean = true) {
|
||||||
|
@ -1187,7 +1187,7 @@ export class SummonPhase extends PartyMemberPokemonPhase {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.player) {
|
if (this.player) {
|
||||||
this.scene.ui.showText(i18next.t('menu:playerGo', { pokemonName: this.getPokemon().name }));
|
this.scene.ui.showText(i18next.t('battle:playerGo', { pokemonName: this.getPokemon().name }));
|
||||||
if (this.player)
|
if (this.player)
|
||||||
this.scene.pbTray.hide();
|
this.scene.pbTray.hide();
|
||||||
this.scene.trainer.setTexture(`trainer_${this.scene.gameData.gender === PlayerGender.FEMALE ? 'f' : 'm'}_back_pb`);
|
this.scene.trainer.setTexture(`trainer_${this.scene.gameData.gender === PlayerGender.FEMALE ? 'f' : 'm'}_back_pb`);
|
||||||
|
@ -1355,8 +1355,8 @@ export class SwitchSummonPhase extends SummonPhase {
|
||||||
applyPreSwitchOutAbAttrs(PreSwitchOutAbAttr, pokemon);
|
applyPreSwitchOutAbAttrs(PreSwitchOutAbAttr, pokemon);
|
||||||
|
|
||||||
this.scene.ui.showText(this.player ?
|
this.scene.ui.showText(this.player ?
|
||||||
i18next.t('menu:playerComeBack', { pokemonName: pokemon.name }) :
|
i18next.t('battle:playerComeBack', { pokemonName: pokemon.name }) :
|
||||||
i18next.t('menu:trainerComeBack', {
|
i18next.t('battle:trainerComeBack', {
|
||||||
trainerName: this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER),
|
trainerName: this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER),
|
||||||
pokemonName: pokemon.name
|
pokemonName: pokemon.name
|
||||||
})
|
})
|
||||||
|
@ -1396,8 +1396,8 @@ export class SwitchSummonPhase extends SummonPhase {
|
||||||
party[this.fieldIndex] = switchedPokemon;
|
party[this.fieldIndex] = switchedPokemon;
|
||||||
const showTextAndSummon = () => {
|
const showTextAndSummon = () => {
|
||||||
this.scene.ui.showText(this.player ?
|
this.scene.ui.showText(this.player ?
|
||||||
i18next.t('menu:playerGo', { pokemonName: switchedPokemon.name }) :
|
i18next.t('battle:playerGo', { pokemonName: switchedPokemon.name }) :
|
||||||
i18next.t('menu:trainerGo', {
|
i18next.t('battle:trainerGo', {
|
||||||
trainerName: this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER),
|
trainerName: this.scene.currentBattle.trainer.getName(!(this.fieldIndex % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER),
|
||||||
pokemonName: this.getPokemon().name
|
pokemonName: this.getPokemon().name
|
||||||
})
|
})
|
||||||
|
@ -1544,7 +1544,7 @@ export class CheckSwitchPhase extends BattlePhase {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.scene.ui.showText(i18next.t('menu:switchQuestion', { pokemonName: this.useName ? pokemon.name : i18next.t('menu:pokemon') }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:switchQuestion', { pokemonName: this.useName ? pokemon.name : i18next.t('battle:pokemon') }), null, () => {
|
||||||
this.scene.ui.setMode(Mode.CONFIRM, () => {
|
this.scene.ui.setMode(Mode.CONFIRM, () => {
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.tryRemovePhase(p => p instanceof PostSummonPhase && p.player && p.fieldIndex === this.fieldIndex);
|
this.scene.tryRemovePhase(p => p instanceof PostSummonPhase && p.player && p.fieldIndex === this.fieldIndex);
|
||||||
|
@ -1564,7 +1564,7 @@ export class SummonMissingPhase extends SummonPhase {
|
||||||
}
|
}
|
||||||
|
|
||||||
preSummon(): void {
|
preSummon(): void {
|
||||||
this.scene.ui.showText(i18next.t('menu:sendOutPokemon', { pokemonName: this.getPokemon().name}));
|
this.scene.ui.showText(i18next.t('battle:sendOutPokemon', { pokemonName: this.getPokemon().name}));
|
||||||
this.scene.time.delayedCall(250, () => this.summon());
|
this.scene.time.delayedCall(250, () => this.summon());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1579,7 +1579,7 @@ export class LevelCapPhase extends FieldPhase {
|
||||||
|
|
||||||
this.scene.ui.setMode(Mode.MESSAGE).then(() => {
|
this.scene.ui.setMode(Mode.MESSAGE).then(() => {
|
||||||
this.scene.playSound('level_up_fanfare');
|
this.scene.playSound('level_up_fanfare');
|
||||||
this.scene.ui.showText(i18next.t('menu:levelCapUp', { levelCap: this.scene.getMaxExpLevel() }), null, () => this.end(), null, true);
|
this.scene.ui.showText(i18next.t('battle:levelCapUp', { levelCap: this.scene.getMaxExpLevel() }), null, () => this.end(), null, true);
|
||||||
this.executeForAll(pokemon => pokemon.updateInfo(true));
|
this.executeForAll(pokemon => pokemon.updateInfo(true));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1673,7 +1673,7 @@ export class CommandPhase extends FieldPhase {
|
||||||
const move = playerPokemon.getMoveset()[cursor];
|
const move = playerPokemon.getMoveset()[cursor];
|
||||||
if (move.getName().endsWith(' (N)')) {
|
if (move.getName().endsWith(' (N)')) {
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:moveNotImplemented', { moveName: move.getName().slice(0, -4) }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:moveNotImplemented', { moveName: move.getName().slice(0, -4) }), null, () => {
|
||||||
this.scene.ui.clearText();
|
this.scene.ui.clearText();
|
||||||
this.scene.ui.setMode(Mode.FIGHT, this.fieldIndex);
|
this.scene.ui.setMode(Mode.FIGHT, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
|
@ -1692,7 +1692,7 @@ export class CommandPhase extends FieldPhase {
|
||||||
const move = playerPokemon.getMoveset()[cursor];
|
const move = playerPokemon.getMoveset()[cursor];
|
||||||
if (playerPokemon.summonData.disabledMove === move.moveId) {
|
if (playerPokemon.summonData.disabledMove === move.moveId) {
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:moveDisabled', { moveName: move.getName() }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:moveDisabled', { moveName: move.getName() }), null, () => {
|
||||||
this.scene.ui.clearText();
|
this.scene.ui.clearText();
|
||||||
this.scene.ui.setMode(Mode.FIGHT, this.fieldIndex);
|
this.scene.ui.setMode(Mode.FIGHT, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
|
@ -1703,14 +1703,14 @@ export class CommandPhase extends FieldPhase {
|
||||||
if (this.scene.arena.biomeType === Biome.END && (!this.scene.gameMode.isClassic || (this.scene.getEnemyField().filter(p => p.isActive(true)).some(p => !p.scene.gameData.dexData[p.species.speciesId].caughtAttr) && this.scene.gameData.getStarterCount(d => !!d.caughtAttr) < Object.keys(speciesStarters).length - 1))) {
|
if (this.scene.arena.biomeType === Biome.END && (!this.scene.gameMode.isClassic || (this.scene.getEnemyField().filter(p => p.isActive(true)).some(p => !p.scene.gameData.dexData[p.species.speciesId].caughtAttr) && this.scene.gameData.getStarterCount(d => !!d.caughtAttr) < Object.keys(speciesStarters).length - 1))) {
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:noPokeballForce'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:noPokeballForce'), null, () => {
|
||||||
this.scene.ui.showText(null, 0);
|
this.scene.ui.showText(null, 0);
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
} else if (this.scene.currentBattle.battleType === BattleType.TRAINER) {
|
} else if (this.scene.currentBattle.battleType === BattleType.TRAINER) {
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:noPokeballTrainer'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:noPokeballTrainer'), null, () => {
|
||||||
this.scene.ui.showText(null, 0);
|
this.scene.ui.showText(null, 0);
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
|
@ -1719,7 +1719,7 @@ export class CommandPhase extends FieldPhase {
|
||||||
if (targets.length > 1) {
|
if (targets.length > 1) {
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:noPokeballMulti'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:noPokeballMulti'), null, () => {
|
||||||
this.scene.ui.showText(null, 0);
|
this.scene.ui.showText(null, 0);
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
|
@ -1728,7 +1728,7 @@ export class CommandPhase extends FieldPhase {
|
||||||
if (targetPokemon.isBoss() && targetPokemon.bossSegmentIndex >= 1 && cursor < PokeballType.MASTER_BALL) {
|
if (targetPokemon.isBoss() && targetPokemon.bossSegmentIndex >= 1 && cursor < PokeballType.MASTER_BALL) {
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:noPokeballStrong'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:noPokeballStrong'), null, () => {
|
||||||
this.scene.ui.showText(null, 0);
|
this.scene.ui.showText(null, 0);
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
|
@ -1748,14 +1748,14 @@ export class CommandPhase extends FieldPhase {
|
||||||
if (!isSwitch && this.scene.arena.biomeType === Biome.END) {
|
if (!isSwitch && this.scene.arena.biomeType === Biome.END) {
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:noEscapeForce'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:noEscapeForce'), null, () => {
|
||||||
this.scene.ui.showText(null, 0);
|
this.scene.ui.showText(null, 0);
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
} else if (!isSwitch && this.scene.currentBattle.battleType === BattleType.TRAINER) {
|
} else if (!isSwitch && this.scene.currentBattle.battleType === BattleType.TRAINER) {
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.showText(i18next.t('menu:noEscapeTrainer'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:noEscapeTrainer'), null, () => {
|
||||||
this.scene.ui.showText(null, 0);
|
this.scene.ui.showText(null, 0);
|
||||||
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex);
|
||||||
}, null, true);
|
}, null, true);
|
||||||
|
@ -1778,10 +1778,10 @@ export class CommandPhase extends FieldPhase {
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
}
|
}
|
||||||
this.scene.ui.showText(
|
this.scene.ui.showText(
|
||||||
i18next.t('menu:noEscapePokemon', {
|
i18next.t('battle:noEscapePokemon', {
|
||||||
pokemonName: this.scene.getPokemonById(trapTag.sourceId).name,
|
pokemonName: this.scene.getPokemonById(trapTag.sourceId).name,
|
||||||
moveName: trapTag.getMoveName(),
|
moveName: trapTag.getMoveName(),
|
||||||
escapeVerb: isSwitch ? i18next.t('menu:escapeVerbSwitch') : i18next.t('menu:escapeVerbFlee')
|
escapeVerb: isSwitch ? i18next.t('battle:escapeVerbSwitch') : i18next.t('battle:escapeVerbFlee')
|
||||||
}),
|
}),
|
||||||
null,
|
null,
|
||||||
() => {
|
() => {
|
||||||
|
@ -2031,7 +2031,7 @@ export class TurnEndPhase extends FieldPhase {
|
||||||
pokemon.lapseTags(BattlerTagLapseType.TURN_END);
|
pokemon.lapseTags(BattlerTagLapseType.TURN_END);
|
||||||
|
|
||||||
if (pokemon.summonData.disabledMove && !--pokemon.summonData.disabledTurns) {
|
if (pokemon.summonData.disabledMove && !--pokemon.summonData.disabledTurns) {
|
||||||
this.scene.pushPhase(new MessagePhase(this.scene, i18next.t('menu:notDisabled', { moveName: allMoves[pokemon.summonData.disabledMove].name })));
|
this.scene.pushPhase(new MessagePhase(this.scene, i18next.t('battle:notDisabled', { moveName: allMoves[pokemon.summonData.disabledMove].name })));
|
||||||
pokemon.summonData.disabledMove = Moves.NONE;
|
pokemon.summonData.disabledMove = Moves.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2339,7 +2339,7 @@ export class MovePhase extends BattlePhase {
|
||||||
}
|
}
|
||||||
|
|
||||||
showFailedText(failedText: string = null): void {
|
showFailedText(failedText: string = null): void {
|
||||||
this.scene.queueMessage(failedText || i18next.t('menu:attackFailed'));
|
this.scene.queueMessage(failedText || i18next.t('battle:attackFailed'));
|
||||||
}
|
}
|
||||||
|
|
||||||
end() {
|
end() {
|
||||||
|
@ -2402,7 +2402,7 @@ export class MoveEffectPhase extends PokemonPhase {
|
||||||
moveHistoryEntry.result = MoveResult.MISS;
|
moveHistoryEntry.result = MoveResult.MISS;
|
||||||
applyMoveAttrs(MissEffectAttr, user, null, this.move.getMove());
|
applyMoveAttrs(MissEffectAttr, user, null, this.move.getMove());
|
||||||
} else {
|
} else {
|
||||||
this.scene.queueMessage(i18next.t('menu:attackFailed'));
|
this.scene.queueMessage(i18next.t('battle:attackFailed'));
|
||||||
moveHistoryEntry.result = MoveResult.FAIL;
|
moveHistoryEntry.result = MoveResult.FAIL;
|
||||||
}
|
}
|
||||||
return this.end();
|
return this.end();
|
||||||
|
@ -2486,7 +2486,7 @@ export class MoveEffectPhase extends PokemonPhase {
|
||||||
else {
|
else {
|
||||||
const hitsTotal = user.turnData.hitCount - Math.max(user.turnData.hitsLeft, 0);
|
const hitsTotal = user.turnData.hitCount - Math.max(user.turnData.hitsLeft, 0);
|
||||||
if (hitsTotal > 1)
|
if (hitsTotal > 1)
|
||||||
this.scene.queueMessage(i18next.t('menu:attackHitsCount', { count: hitsTotal }));
|
this.scene.queueMessage(i18next.t('battle:attackHitsCount', { count: hitsTotal }));
|
||||||
this.scene.applyModifiers(HitHealModifier, this.player, user);
|
this.scene.applyModifiers(HitHealModifier, this.player, user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3342,7 +3342,7 @@ export class TrainerVictoryPhase extends BattlePhase {
|
||||||
this.scene.unshiftPhase(new ModifierRewardPhase(this.scene, [ modifierTypes.VOUCHER, modifierTypes.VOUCHER, modifierTypes.VOUCHER_PLUS, modifierTypes.VOUCHER_PREMIUM ][vouchers[TrainerType[trainerType]].voucherType]));
|
this.scene.unshiftPhase(new ModifierRewardPhase(this.scene, [ modifierTypes.VOUCHER, modifierTypes.VOUCHER, modifierTypes.VOUCHER_PLUS, modifierTypes.VOUCHER_PREMIUM ][vouchers[TrainerType[trainerType]].voucherType]));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.scene.ui.showText(i18next.t('menu:trainerDefeated', { trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true) }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:trainerDefeated', { trainerName: this.scene.currentBattle.trainer.getName(TrainerSlot.NONE, true) }), null, () => {
|
||||||
const victoryMessages = this.scene.currentBattle.trainer.getVictoryMessages();
|
const victoryMessages = this.scene.currentBattle.trainer.getVictoryMessages();
|
||||||
const showMessage = () => {
|
const showMessage = () => {
|
||||||
let message: string;
|
let message: string;
|
||||||
|
@ -3609,7 +3609,7 @@ export class ExpPhase extends PlayerPartyMemberPokemonPhase {
|
||||||
let exp = new Utils.NumberHolder(this.expValue);
|
let exp = new Utils.NumberHolder(this.expValue);
|
||||||
this.scene.applyModifiers(ExpBoosterModifier, true, exp);
|
this.scene.applyModifiers(ExpBoosterModifier, true, exp);
|
||||||
exp.value = Math.floor(exp.value);
|
exp.value = Math.floor(exp.value);
|
||||||
this.scene.ui.showText(i18next.t('menu:expGain', { pokemonName: pokemon.name, exp: exp.value }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:expGain', { pokemonName: pokemon.name, exp: exp.value }), null, () => {
|
||||||
const lastLevel = pokemon.level;
|
const lastLevel = pokemon.level;
|
||||||
let newLevel: integer;
|
let newLevel: integer;
|
||||||
pokemon.addExp(exp.value);
|
pokemon.addExp(exp.value);
|
||||||
|
@ -3697,7 +3697,7 @@ export class LevelUpPhase extends PlayerPartyMemberPokemonPhase {
|
||||||
pokemon.calculateStats();
|
pokemon.calculateStats();
|
||||||
pokemon.updateInfo();
|
pokemon.updateInfo();
|
||||||
this.scene.playSound('level_up_fanfare');
|
this.scene.playSound('level_up_fanfare');
|
||||||
this.scene.ui.showText(i18next.t('menu:levelUp', { pokemonName: this.getPokemon().name, level: this.level }), null, () => this.scene.ui.getMessageHandler().promptLevelUpStats(this.partyMemberIndex, prevStats, false).then(() => this.end()), null, true);
|
this.scene.ui.showText(i18next.t('battle:levelUp', { pokemonName: this.getPokemon().name, level: this.level }), null, () => this.scene.ui.getMessageHandler().promptLevelUpStats(this.partyMemberIndex, prevStats, false).then(() => this.end()), null, true);
|
||||||
if (this.level <= 100) {
|
if (this.level <= 100) {
|
||||||
const levelMoves = this.getPokemon().getLevelMoves(this.lastLevel + 1);
|
const levelMoves = this.getPokemon().getLevelMoves(this.lastLevel + 1);
|
||||||
for (let lm of levelMoves)
|
for (let lm of levelMoves)
|
||||||
|
@ -3746,7 +3746,7 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.scene.ui.setMode(messageMode).then(() => {
|
this.scene.ui.setMode(messageMode).then(() => {
|
||||||
this.scene.playSound('level_up_fanfare');
|
this.scene.playSound('level_up_fanfare');
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMove', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:learnMove', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
|
||||||
this.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeMoveLearnedTrigger, true);
|
this.scene.triggerPokemonFormChange(pokemon, SpeciesFormChangeMoveLearnedTrigger, true);
|
||||||
this.end();
|
this.end();
|
||||||
}, messageMode === Mode.EVOLUTION_SCENE ? 1000 : null, true);
|
}, messageMode === Mode.EVOLUTION_SCENE ? 1000 : null, true);
|
||||||
|
@ -3755,15 +3755,15 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.scene.ui.setMode(messageMode).then(() => {
|
this.scene.ui.setMode(messageMode).then(() => {
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMovePrompt', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:learnMovePrompt', { pokemonName: pokemon.name, moveName: move.name }), null, () => {
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMoveLimitReached', { pokemonName: pokemon.name }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:learnMoveLimitReached', { pokemonName: pokemon.name }), null, () => {
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMoveReplaceQuestion', { moveName: move.name }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:learnMoveReplaceQuestion', { moveName: move.name }), null, () => {
|
||||||
const noHandler = () => {
|
const noHandler = () => {
|
||||||
this.scene.ui.setMode(messageMode).then(() => {
|
this.scene.ui.setMode(messageMode).then(() => {
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMoveStopTeaching', { moveName: move.name }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:learnMoveStopTeaching', { moveName: move.name }), null, () => {
|
||||||
this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => {
|
this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => {
|
||||||
this.scene.ui.setMode(messageMode);
|
this.scene.ui.setMode(messageMode);
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMoveNotLearned', { pokemonName: pokemon.name, moveName: move.name }), null, () => this.end(), null, true);
|
this.scene.ui.showText(i18next.t('battle:learnMoveNotLearned', { pokemonName: pokemon.name, moveName: move.name }), null, () => this.end(), null, true);
|
||||||
}, () => {
|
}, () => {
|
||||||
this.scene.ui.setMode(messageMode);
|
this.scene.ui.setMode(messageMode);
|
||||||
this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId));
|
this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId));
|
||||||
|
@ -3774,7 +3774,7 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
|
||||||
};
|
};
|
||||||
this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => {
|
this.scene.ui.setModeWithoutClear(Mode.CONFIRM, () => {
|
||||||
this.scene.ui.setMode(messageMode);
|
this.scene.ui.setMode(messageMode);
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMoveForgetQuestion'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:learnMoveForgetQuestion'), null, () => {
|
||||||
this.scene.ui.setModeWithoutClear(Mode.SUMMARY, this.getPokemon(), SummaryUiMode.LEARN_MOVE, move, (moveIndex: integer) => {
|
this.scene.ui.setModeWithoutClear(Mode.SUMMARY, this.getPokemon(), SummaryUiMode.LEARN_MOVE, move, (moveIndex: integer) => {
|
||||||
if (moveIndex === 4) {
|
if (moveIndex === 4) {
|
||||||
noHandler();
|
noHandler();
|
||||||
|
@ -3782,7 +3782,7 @@ export class LearnMovePhase extends PlayerPartyMemberPokemonPhase {
|
||||||
}
|
}
|
||||||
this.scene.ui.setMode(messageMode).then(() => {
|
this.scene.ui.setMode(messageMode).then(() => {
|
||||||
this.scene.ui.showText('@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!', null, () => {
|
this.scene.ui.showText('@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!', null, () => {
|
||||||
this.scene.ui.showText(i18next.t('menu:learnMoveForgetSuccess', { pokemonName: pokemon.name, moveName: pokemon.moveset[moveIndex].getName() }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:learnMoveForgetSuccess', { pokemonName: pokemon.name, moveName: pokemon.moveset[moveIndex].getName() }), null, () => {
|
||||||
this.scene.ui.showText('And…', null, () => {
|
this.scene.ui.showText('And…', null, () => {
|
||||||
pokemon.setMove(moveIndex, Moves.NONE);
|
pokemon.setMove(moveIndex, Moves.NONE);
|
||||||
this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId));
|
this.scene.unshiftPhase(new LearnMovePhase(this.scene, this.partyMemberIndex, this.moveId));
|
||||||
|
@ -4097,7 +4097,7 @@ export class AttemptCapturePhase extends PokemonPhase {
|
||||||
|
|
||||||
this.scene.gameData.updateSpeciesDexIvs(pokemon.species.getRootSpeciesId(true), pokemon.ivs);
|
this.scene.gameData.updateSpeciesDexIvs(pokemon.species.getRootSpeciesId(true), pokemon.ivs);
|
||||||
|
|
||||||
this.scene.ui.showText(i18next.t('menu:pokemonCaught', { pokemonName: pokemon.name }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:pokemonCaught', { pokemonName: pokemon.name }), null, () => {
|
||||||
const end = () => {
|
const end = () => {
|
||||||
this.scene.pokemonInfoContainer.hide();
|
this.scene.pokemonInfoContainer.hide();
|
||||||
this.removePb();
|
this.removePb();
|
||||||
|
@ -4183,7 +4183,7 @@ export class AttemptRunPhase extends PokemonPhase {
|
||||||
|
|
||||||
if (playerPokemon.randSeedInt(256) < escapeChance.value) {
|
if (playerPokemon.randSeedInt(256) < escapeChance.value) {
|
||||||
this.scene.playSound('flee');
|
this.scene.playSound('flee');
|
||||||
this.scene.queueMessage(i18next.t('menu:runAwaySuccess'), null, true, 500);
|
this.scene.queueMessage(i18next.t('battle:runAwaySuccess'), null, true, 500);
|
||||||
|
|
||||||
this.scene.tweens.add({
|
this.scene.tweens.add({
|
||||||
targets: [ this.scene.arenaEnemy, enemyField ].flat(),
|
targets: [ this.scene.arenaEnemy, enemyField ].flat(),
|
||||||
|
@ -4204,7 +4204,7 @@ export class AttemptRunPhase extends PokemonPhase {
|
||||||
this.scene.pushPhase(new BattleEndPhase(this.scene));
|
this.scene.pushPhase(new BattleEndPhase(this.scene));
|
||||||
this.scene.pushPhase(new NewBattlePhase(this.scene));
|
this.scene.pushPhase(new NewBattlePhase(this.scene));
|
||||||
} else
|
} else
|
||||||
this.scene.queueMessage(i18next.t('menu:runAwayCannotEscape'), null, true, 500);
|
this.scene.queueMessage(i18next.t('battle:runAwayCannotEscape'), null, true, 500);
|
||||||
|
|
||||||
this.end();
|
this.end();
|
||||||
}
|
}
|
||||||
|
@ -4236,7 +4236,7 @@ export class SelectModifierPhase extends BattlePhase {
|
||||||
|
|
||||||
const modifierSelectCallback = (rowCursor: integer, cursor: integer) => {
|
const modifierSelectCallback = (rowCursor: integer, cursor: integer) => {
|
||||||
if (rowCursor < 0 || cursor < 0) {
|
if (rowCursor < 0 || cursor < 0) {
|
||||||
this.scene.ui.showText(i18next.t('menu:skipItemQuestion'), null, () => {
|
this.scene.ui.showText(i18next.t('battle:skipItemQuestion'), null, () => {
|
||||||
this.scene.ui.setOverlayMode(Mode.CONFIRM, () => {
|
this.scene.ui.setOverlayMode(Mode.CONFIRM, () => {
|
||||||
this.scene.ui.revertMode();
|
this.scene.ui.revertMode();
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
|
@ -4415,7 +4415,7 @@ export class EggLapsePhase extends Phase {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (eggsToHatch.length) {
|
if (eggsToHatch.length) {
|
||||||
this.scene.queueMessage(i18next.t('menu:eggHatching'));
|
this.scene.queueMessage(i18next.t('battle:eggHatching'));
|
||||||
|
|
||||||
for (let egg of eggsToHatch)
|
for (let egg of eggsToHatch)
|
||||||
this.scene.unshiftPhase(new EggHatchPhase(this.scene, egg));
|
this.scene.unshiftPhase(new EggHatchPhase(this.scene, egg));
|
||||||
|
@ -4509,7 +4509,7 @@ export class ScanIvsPhase extends PokemonPhase {
|
||||||
|
|
||||||
const pokemon = this.getPokemon();
|
const pokemon = this.getPokemon();
|
||||||
|
|
||||||
this.scene.ui.showText(i18next.t('menu:ivScannerUseQuestion', { pokemonName: pokemon.name }), null, () => {
|
this.scene.ui.showText(i18next.t('battle:ivScannerUseQuestion', { pokemonName: pokemon.name }), null, () => {
|
||||||
this.scene.ui.setMode(Mode.CONFIRM, () => {
|
this.scene.ui.setMode(Mode.CONFIRM, () => {
|
||||||
this.scene.ui.setMode(Mode.MESSAGE);
|
this.scene.ui.setMode(Mode.MESSAGE);
|
||||||
this.scene.ui.clearText();
|
this.scene.ui.clearText();
|
||||||
|
|
|
@ -13,6 +13,12 @@ import { menuUiHandler as frMenuUiHandler } from '../locales/fr/menu-ui-handler.
|
||||||
import { menuUiHandler as itMenuUiHandler } from '../locales/it/menu-ui-handler.js';
|
import { menuUiHandler as itMenuUiHandler } from '../locales/it/menu-ui-handler.js';
|
||||||
import { menuUiHandler as deMenuUiHandler } from '../locales/de/menu-ui-handler.js';
|
import { menuUiHandler as deMenuUiHandler } from '../locales/de/menu-ui-handler.js';
|
||||||
|
|
||||||
|
import { battle as enBattle } from '../locales/en/battle';
|
||||||
|
import { battle as esBattle } from '../locales/es/battle';
|
||||||
|
import { battle as itBattle } from '../locales/it/battle';
|
||||||
|
import { battle as frBattle } from '../locales/fr/battle';
|
||||||
|
import { battle as deBattle } from '../locales/de/battle';
|
||||||
|
|
||||||
import { move as enMove } from '../locales/en/move';
|
import { move as enMove } from '../locales/en/move';
|
||||||
import { move as esMove } from '../locales/es/move';
|
import { move as esMove } from '../locales/es/move';
|
||||||
import { move as frMove } from '../locales/fr/move';
|
import { move as frMove } from '../locales/fr/move';
|
||||||
|
@ -45,7 +51,10 @@ import { commandUiHandler as frCommandUiHandler } from '../locales/fr/command-ui
|
||||||
import { commandUiHandler as deCommandUiHandler } from '../locales/de/command-ui-handler';
|
import { commandUiHandler as deCommandUiHandler } from '../locales/de/command-ui-handler';
|
||||||
|
|
||||||
import { fightUiHandler as enFightUiHandler } from '../locales/en/fight-ui-handler';
|
import { fightUiHandler as enFightUiHandler } from '../locales/en/fight-ui-handler';
|
||||||
|
import { fightUiHandler as esFightUiHandler } from '../locales/es/fight-ui-handler';
|
||||||
import { fightUiHandler as frFightUiHandler } from '../locales/fr/fight-ui-handler';
|
import { fightUiHandler as frFightUiHandler } from '../locales/fr/fight-ui-handler';
|
||||||
|
import { fightUiHandler as itFightUiHandler } from '../locales/it/fight-ui-handler';
|
||||||
|
import { fightUiHandler as deFightUiHandler } from '../locales/de/fight-ui-handler';
|
||||||
|
|
||||||
import { tutorial as enTutorial } from '../locales/en/tutorial';
|
import { tutorial as enTutorial } from '../locales/en/tutorial';
|
||||||
import { tutorial as esTutorial } from '../locales/es/tutorial';
|
import { tutorial as esTutorial } from '../locales/es/tutorial';
|
||||||
|
@ -113,6 +122,7 @@ export function initI18n(): void {
|
||||||
en: {
|
en: {
|
||||||
menu: enMenu,
|
menu: enMenu,
|
||||||
menuUiHandler: enMenuUiHandler,
|
menuUiHandler: enMenuUiHandler,
|
||||||
|
battle: enBattle,
|
||||||
move: enMove,
|
move: enMove,
|
||||||
ability: enAbility,
|
ability: enAbility,
|
||||||
pokeball: enPokeball,
|
pokeball: enPokeball,
|
||||||
|
@ -125,17 +135,20 @@ export function initI18n(): void {
|
||||||
es: {
|
es: {
|
||||||
menu: esMenu,
|
menu: esMenu,
|
||||||
menuUiHandler: esMenuUiHandler,
|
menuUiHandler: esMenuUiHandler,
|
||||||
|
battle: esBattle,
|
||||||
move: esMove,
|
move: esMove,
|
||||||
ability: esAbility,
|
ability: esAbility,
|
||||||
pokeball: esPokeball,
|
pokeball: esPokeball,
|
||||||
pokemon: esPokemon,
|
pokemon: esPokemon,
|
||||||
pokemonStat: esPokemonStat,
|
pokemonStat: esPokemonStat,
|
||||||
commandUiHandler: esCommandUiHandler,
|
commandUiHandler: esCommandUiHandler,
|
||||||
|
fightUiHandler: esFightUiHandler,
|
||||||
tutorial: esTutorial,
|
tutorial: esTutorial,
|
||||||
},
|
},
|
||||||
fr: {
|
fr: {
|
||||||
menu: frMenu,
|
menu: frMenu,
|
||||||
menuUiHandler: frMenuUiHandler,
|
menuUiHandler: frMenuUiHandler,
|
||||||
|
battle: frBattle,
|
||||||
move: frMove,
|
move: frMove,
|
||||||
ability: frAbility,
|
ability: frAbility,
|
||||||
pokeball: frPokeball,
|
pokeball: frPokeball,
|
||||||
|
@ -148,18 +161,22 @@ export function initI18n(): void {
|
||||||
it: {
|
it: {
|
||||||
menu: itMenu,
|
menu: itMenu,
|
||||||
menuUiHandler: itMenuUiHandler,
|
menuUiHandler: itMenuUiHandler,
|
||||||
|
battle: itBattle,
|
||||||
pokemonStat: itPokemonStat,
|
pokemonStat: itPokemonStat,
|
||||||
|
fightUiHandler: itFightUiHandler,
|
||||||
tutorial: itTutorial,
|
tutorial: itTutorial,
|
||||||
},
|
},
|
||||||
de: {
|
de: {
|
||||||
menu: deMenu,
|
menu: deMenu,
|
||||||
menuUiHandler: deMenuUiHandler,
|
menuUiHandler: deMenuUiHandler,
|
||||||
|
battle: deBattle,
|
||||||
move: deMove,
|
move: deMove,
|
||||||
ability: deAbility,
|
ability: deAbility,
|
||||||
pokeball: dePokeball,
|
pokeball: dePokeball,
|
||||||
pokemon: dePokemon,
|
pokemon: dePokemon,
|
||||||
pokemonStat: dePokemonStat,
|
pokemonStat: dePokemonStat,
|
||||||
commandUiHandler: deCommandUiHandler,
|
commandUiHandler: deCommandUiHandler,
|
||||||
|
fightUiHandler: deFightUiHandler,
|
||||||
tutorial: deTutorial,
|
tutorial: deTutorial,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -173,6 +190,7 @@ declare module 'i18next' {
|
||||||
menu: typeof enMenu;
|
menu: typeof enMenu;
|
||||||
menuUiHandler: typeof enMenuUiHandler;
|
menuUiHandler: typeof enMenuUiHandler;
|
||||||
move: typeof enMove;
|
move: typeof enMove;
|
||||||
|
battle: typeof enBattle,
|
||||||
ability: typeof enAbility;
|
ability: typeof enAbility;
|
||||||
pokeball: typeof enPokeball;
|
pokeball: typeof enPokeball;
|
||||||
pokemon: typeof enPokemon;
|
pokemon: typeof enPokemon;
|
||||||
|
|
Loading…
Reference in New Issue