From 884d4434b9a42d128fd94f99e16a8d93f8c7c19d Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Sun, 18 Aug 2024 18:59:13 +0200 Subject: [PATCH] Form names are now localized when catching a pokemon (and probably hatching a egg since its the same dialogue) --- src/ui/pokemon-info-container.ts | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/ui/pokemon-info-container.ts b/src/ui/pokemon-info-container.ts index edb85ecff7a..cf910499d06 100644 --- a/src/ui/pokemon-info-container.ts +++ b/src/ui/pokemon-info-container.ts @@ -12,6 +12,7 @@ import ConfirmUiHandler from "./confirm-ui-handler"; import { StatsContainer } from "./stats-container"; import { TextStyle, addBBCodeTextObject, addTextObject, getTextColor } from "./text"; import { addWindow } from "./ui-theme"; +import {Species} from "#enums/species"; interface LanguageSetting { infoContainerTextSize: string; @@ -226,7 +227,7 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container { this.pokemonGenderText.setVisible(false); } - if (pokemon.species.forms?.[pokemon.formIndex]?.formName) { + if (pokemon.species.forms?.[pokemon.formIndex]?.formName && pokemon.species.forms?.[pokemon.formIndex]?.formName !== "Normal") { this.pokemonFormLabelText.setVisible(true); this.pokemonFormText.setVisible(true); const newForm = BigInt(1 << pokemon.formIndex) * DexAttr.DEFAULT_FORM; @@ -239,15 +240,28 @@ export default class PokemonInfoContainer extends Phaser.GameObjects.Container { this.pokemonFormLabelText.setShadowColor(getTextColor(TextStyle.WINDOW, true, this.scene.uiTheme)); } - const formName = pokemon.species.forms?.[pokemon.formIndex]?.formName; - this.pokemonFormText.setText(formName.length > this.numCharsBeforeCutoff ? formName.substring(0, this.numCharsBeforeCutoff - 3) + "..." : formName); - if (formName.length > this.numCharsBeforeCutoff) { - this.pokemonFormText.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.pokemonFormText.width, this.pokemonFormText.height), Phaser.Geom.Rectangle.Contains); - this.pokemonFormText.on("pointerover", () => (this.scene as BattleScene).ui.showTooltip("", pokemon.species.forms?.[pokemon.formIndex]?.formName, true)); - this.pokemonFormText.on("pointerout", () => (this.scene as BattleScene).ui.hideTooltip()); - } else { - this.pokemonFormText.disableInteractive(); + const pokemonForm = (pokemon.species?.forms?.[pokemon.formIndex!]?.formKey) || ""; + let formName = ""; + if (pokemonForm !== "") { + const formText = Utils.capitalizeString(pokemonForm, "-", false, false); // TODO: is the bang correct? + + const speciesName = Utils.capitalizeString(Species[pokemon.species.getRootSpeciesId()], "_", true, false); + if (pokemon.species.speciesId === Species.ARCEUS) { + formName = i18next.t(`pokemonInfo:Type.${formText?.toUpperCase()}`); + } else { + formName = formText ? i18next.t(`pokemonForm:${speciesName}${formText}`) : ""; + } + + this.pokemonFormText.setText(formName.length > this.numCharsBeforeCutoff ? formName.substring(0, this.numCharsBeforeCutoff - 3) + "..." : formName); + if (formName.length > this.numCharsBeforeCutoff) { + this.pokemonFormText.setInteractive(new Phaser.Geom.Rectangle(0, 0, this.pokemonFormText.width, this.pokemonFormText.height), Phaser.Geom.Rectangle.Contains); + this.pokemonFormText.on("pointerover", () => (this.scene as BattleScene).ui.showTooltip("", formName, true)); + this.pokemonFormText.on("pointerout", () => (this.scene as BattleScene).ui.hideTooltip()); + } else { + this.pokemonFormText.disableInteractive(); + } } + } else { this.pokemonFormLabelText.setVisible(false); this.pokemonFormText.setVisible(false);