From 99d10b78afed8c8d02da645844d97280d3c9918a Mon Sep 17 00:00:00 2001 From: Dean Date: Fri, 28 Mar 2025 12:34:41 -0700 Subject: [PATCH] Update locale key usage --- .../encounters/global-trade-system-encounter.ts | 8 +++++--- src/field/trainer.ts | 14 +++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts b/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts index 78ef8a5698f..4f10a657e4e 100644 --- a/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts +++ b/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts @@ -23,7 +23,7 @@ import { allSpecies, getPokemonSpecies } from "#app/data/pokemon-species"; import { getTypeRgb } from "#app/data/type"; import { MysteryEncounterOptionBuilder } from "#app/data/mystery-encounters/mystery-encounter-option"; import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode"; -import { NumberHolder, isNullOrUndefined, randInt, randSeedInt, randSeedShuffle } from "#app/utils"; +import { NumberHolder, isNullOrUndefined, randInt, randSeedInt, randSeedShuffle, randSeedItem } from "#app/utils"; import type { PlayerPokemon } from "#app/field/pokemon"; import type Pokemon from "#app/field/pokemon"; import { EnemyPokemon, PokemonMove } from "#app/field/pokemon"; @@ -986,8 +986,10 @@ function generateRandomTraderName() { // +1 avoids TrainerType.UNKNOWN const trainerTypePool = i18next.t("trainersCommon:" + TrainerType[randInt(length) + 1], { returnObjects: true }); // Some trainers have 2 gendered pools, some do not - const genderedPool = trainerTypePool[randInt(trainerTypePool.length)]; - const trainerNameString = Array.isArray(genderedPool) ? genderedPool[randInt(genderedPool.length)] : genderedPool; + const gender = randInt(2) === 0 ? "MALE" : "FEMALE"; + const trainerNameString = randSeedItem( + Object.values(trainerTypePool.hasOwnProperty(gender) ? trainerTypePool[gender] : trainerTypePool), + ) as string; // Some names have an '&' symbol and need to be trimmed to a single name instead of a double name const trainerNames = trainerNameString.split(" & "); return trainerNames[randInt(trainerNames.length)]; diff --git a/src/field/trainer.ts b/src/field/trainer.ts index 1f5f6dd3d5c..2af3e25050f 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -61,10 +61,16 @@ export default class Trainer extends Phaser.GameObjects.Container { this.config.partyTemplates.length - 1, ); if (i18next.exists("trainersCommon:" + TrainerType[trainerType], { returnObjects: true })) { - const namePool = i18next.t("trainersCommon:" + TrainerType[trainerType], { returnObjects: true }) as any; + const namePool = i18next.t("trainersCommon:" + TrainerType[trainerType], { returnObjects: true }); this.name = name || - Utils.randSeedItem(Array.isArray(namePool[0]) ? namePool[variant === TrainerVariant.FEMALE ? 1 : 0] : namePool); + Utils.randSeedItem( + Object.values( + namePool.hasOwnProperty("MALE") + ? namePool[variant === TrainerVariant.FEMALE ? "FEMALE" : "MALE"] + : namePool, + ), + ); if (variant === TrainerVariant.DOUBLE) { if (this.config.doubleOnly) { if (partnerName) { @@ -73,7 +79,9 @@ export default class Trainer extends Phaser.GameObjects.Container { [this.name, this.partnerName] = this.name.split(" & "); } } else { - this.partnerName = partnerName || Utils.randSeedItem(Array.isArray(namePool[0]) ? namePool[1] : namePool); + this.partnerName = + partnerName || + Utils.randSeedItem(Object.values(namePool.hasOwnProperty("FEMALE") ? namePool["FEMALE"] : namePool)); } } }