From 31022189503e925ed3c84eb609abc9adf9eeee55 Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:59:29 -0700 Subject: [PATCH] fix: the-expert-pokemon-breeder the new i18n pattern requires a different namespacing which has been adopted --- .../the-expert-pokemon-breeder-encounter.ts | 82 +++++++++---------- src/plugins/i18n.ts | 1 + .../the-expert-breeder-encounter.test.ts | 24 +++--- 3 files changed, 54 insertions(+), 53 deletions(-) diff --git a/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts b/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts index 104ddd3d663..abb7ee29008 100644 --- a/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts +++ b/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts @@ -26,7 +26,7 @@ import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode import { achvs } from "#app/system/achv"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:expertPokemonBreeder"; +const namespace = "mysteryEncounters/theExpertPokemonBreeder"; const trainerNameKey = "trainerNames:expert_pokemon_breeder"; @@ -85,11 +85,11 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = .withIntroSpriteConfigs([]) // These are set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { speaker: trainerNameKey, - text: `${namespace}.intro_dialogue`, + text: `${namespace}:intro_dialogue`, }, ]) .withOnInit((scene: BattleScene) => { @@ -138,45 +138,45 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = // Dialogue and egg calcs for Pokemon 1 const [pokemon1CommonEggs, pokemon1RareEggs] = calculateEggRewardsForPokemon(pokemon1); - let pokemon1Tooltip = getEncounterText(scene, `${namespace}.option.1.tooltip_base`)!; + let pokemon1Tooltip = getEncounterText(scene, `${namespace}:option.1.tooltip_base`)!; if (pokemon1RareEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon1RareEggs, rarity: i18next.t("egg:greatTier") }); - pokemon1Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon1RareEggs, rarity: i18next.t("egg:greatTier") }); + pokemon1Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon1RareEggs", eggsText); } if (pokemon1CommonEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon1CommonEggs, rarity: i18next.t("egg:defaultTier") }); - pokemon1Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon1CommonEggs, rarity: i18next.t("egg:defaultTier") }); + pokemon1Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon1CommonEggs", eggsText); } encounter.options[0].dialogue!.buttonTooltip = pokemon1Tooltip; // Dialogue and egg calcs for Pokemon 2 const [pokemon2CommonEggs, pokemon2RareEggs] = calculateEggRewardsForPokemon(pokemon2); - let pokemon2Tooltip = getEncounterText(scene, `${namespace}.option.2.tooltip_base`)!; + let pokemon2Tooltip = getEncounterText(scene, `${namespace}:option.2.tooltip_base`)!; if (pokemon2RareEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon2RareEggs, rarity: i18next.t("egg:greatTier") }); - pokemon2Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon2RareEggs, rarity: i18next.t("egg:greatTier") }); + pokemon2Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon2RareEggs", eggsText); } if (pokemon2CommonEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon2CommonEggs, rarity: i18next.t("egg:defaultTier") }); - pokemon2Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon2CommonEggs, rarity: i18next.t("egg:defaultTier") }); + pokemon2Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon1CommonEggs", eggsText); } encounter.options[1].dialogue!.buttonTooltip = pokemon2Tooltip; // Dialogue and egg calcs for Pokemon 3 const [pokemon3CommonEggs, pokemon3RareEggs] = calculateEggRewardsForPokemon(pokemon3); - let pokemon3Tooltip = getEncounterText(scene, `${namespace}.option.3.tooltip_base`)!; + let pokemon3Tooltip = getEncounterText(scene, `${namespace}:option.3.tooltip_base`)!; if (pokemon3RareEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon3RareEggs, rarity: i18next.t("egg:greatTier") }); - pokemon3Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon3RareEggs, rarity: i18next.t("egg:greatTier") }); + pokemon3Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon3RareEggs", eggsText); } if (pokemon3CommonEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon3CommonEggs, rarity: i18next.t("egg:defaultTier") }); - pokemon3Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon3CommonEggs, rarity: i18next.t("egg:defaultTier") }); + pokemon3Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon3CommonEggs", eggsText); } encounter.options[2].dialogue!.buttonTooltip = pokemon3Tooltip; @@ -195,18 +195,18 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, + buttonLabel: `${namespace}:option.1.label`, selected: [ { speaker: trainerNameKey, - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -227,17 +227,17 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = encounter.dialogue.outro = [ { speaker: trainerNameKey, - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]; if (encounter.dialogueTokens.hasOwnProperty("pokemon1CommonEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1CommonEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1CommonEggs"] }), }); } if (encounter.dialogueTokens.hasOwnProperty("pokemon1RareEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1RareEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1RareEggs"] }), }); } @@ -256,11 +256,11 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, + buttonLabel: `${namespace}:option.2.label`, selected: [ { speaker: trainerNameKey, - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -281,17 +281,17 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = encounter.dialogue.outro = [ { speaker: trainerNameKey, - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]; if (encounter.dialogueTokens.hasOwnProperty("pokemon2CommonEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2CommonEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2CommonEggs"] }), }); } if (encounter.dialogueTokens.hasOwnProperty("pokemon2RareEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2RareEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2RareEggs"] }), }); } @@ -310,11 +310,11 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, + buttonLabel: `${namespace}:option.3.label`, selected: [ { speaker: trainerNameKey, - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -335,17 +335,17 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = encounter.dialogue.outro = [ { speaker: trainerNameKey, - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]; if (encounter.dialogueTokens.hasOwnProperty("pokemon3CommonEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3CommonEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3CommonEggs"] }), }); } if (encounter.dialogueTokens.hasOwnProperty("pokemon3RareEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3RareEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3RareEggs"] }), }); } @@ -362,7 +362,7 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = ) .withOutroDialogue([ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]) .build(); @@ -379,7 +379,7 @@ function getPartyConfig(scene: BattleScene): EnemyPartyConfig { trainerType: TrainerType.EXPERT_POKEMON_BREEDER, pokemonConfigs: [ { - nickname: i18next.t(`${namespace}.cleffa_1_nickname`), + nickname: i18next.t(`${namespace}:cleffa_1_nickname`), species: getPokemonSpecies(cleffaSpecies), isBoss: false, abilityIndex: 1, // Magic Guard @@ -407,7 +407,7 @@ function getPartyConfig(scene: BattleScene): EnemyPartyConfig { if (scene.arena.biomeType === Biome.SPACE) { // All 3 members always Cleffa line, but different configs baseConfig.pokemonConfigs!.push({ - nickname: i18next.t(`${namespace}.cleffa_2_nickname`), + nickname: i18next.t(`${namespace}:cleffa_2_nickname`), species: getPokemonSpecies(cleffaSpecies), isBoss: false, abilityIndex: 1, // Magic Guard @@ -418,7 +418,7 @@ function getPartyConfig(scene: BattleScene): EnemyPartyConfig { ivs: [31, 31, 31, 31, 31, 31] }, { - nickname: i18next.t(`${namespace}.cleffa_3_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), + nickname: i18next.t(`${namespace}:cleffa_3_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), species: getPokemonSpecies(cleffaSpecies), isBoss: false, abilityIndex: 2, // Friend Guard / Unaware @@ -485,7 +485,7 @@ function calculateEggRewardsForPokemon(pokemon: PlayerPokemon): [number, number] } function getEggOptions(scene: BattleScene, commonEggs: number, rareEggs: number) { - const eggDescription = i18next.t(`${namespace}.title`) + ":\n" + i18next.t(trainerNameKey); + const eggDescription = i18next.t(`${namespace}:title`) + ":\n" + i18next.t(trainerNameKey); const eggOptions: IEggOptions[] = []; if (commonEggs > 0) { diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 8ebaa666a4d..0ace83fdf90 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -238,6 +238,7 @@ export async function initI18n(): Promise { "mysteryEncounters/funAndGames", "mysteryEncounters/uncommonBreed", "mysteryEncounters/globalTradeSystem", + "mysteryEncounters/theExpertPokemonBreeder", "mysteryEncounterMessages", ], diff --git a/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts b/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts index 59765148ead..a0120522fd2 100644 --- a/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts @@ -19,7 +19,7 @@ import { TrainerType } from "#enums/trainer-type"; import { EggTier } from "#enums/egg-type"; import { PostMysteryEncounterPhase } from "#app/phases/mystery-encounter-phases"; -const namespace = "mysteryEncounter:expertPokemonBreeder"; +const namespace = "mysteryEncounters/theExpertPokemonBreeder"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -64,16 +64,16 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(TheExpertPokemonBreederEncounter.dialogue).toBeDefined(); expect(TheExpertPokemonBreederEncounter.dialogue.intro).toStrictEqual([ { - text: `${namespace}.intro` + text: `${namespace}:intro` }, { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.intro_dialogue` + text: `${namespace}:intro_dialogue` }, ]); - expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(TheExpertPokemonBreederEncounter.options.length).toBe(3); }); @@ -113,12 +113,12 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, + buttonLabel: `${namespace}:option.1.label`, buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); @@ -171,12 +171,12 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, + buttonLabel: `${namespace}:option.2.label`, buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); @@ -229,12 +229,12 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, + buttonLabel: `${namespace}:option.3.label`, buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], });