41 lines
1.7 KiB
TypeScript
41 lines
1.7 KiB
TypeScript
import { BattleSpec } from "#enums/battle-spec";
|
|
import Pokemon from "./field/pokemon";
|
|
import i18next from "i18next";
|
|
|
|
/**
|
|
* Builds a message by concatenating the Pokemon name with its potential affix and the given text
|
|
* @param pokemon {@linkcode Pokemon} name and battle context will be retrieved from this instance for {@linkcode getPokemonNameWithAffix}
|
|
* @param {string} content any text
|
|
* @returns {string} ex: "Wild Gengar fainted!", "Ectoplasma sauvage est K.O!"
|
|
* @see {@linkcode getPokemonNameWithAffix} for the Pokemon's name and potentiel affix
|
|
*/
|
|
export function getPokemonMessage(pokemon: Pokemon, content: string): string {
|
|
return `${getPokemonNameWithAffix(pokemon)}${content}`;
|
|
}
|
|
|
|
/**
|
|
* Retrieves the Pokemon's name, potentially with an affix indicating its role (wild or foe) in the current battle context, translated
|
|
* @param pokemon {@linkcode Pokemon} name and battle context will be retrieved from this instance
|
|
* @returns {string} ex: "Wild Gengar", "Ectoplasma sauvage"
|
|
*/
|
|
export function getPokemonNameWithAffix(pokemon: Pokemon): string {
|
|
switch (pokemon.scene.currentBattle.battleSpec) {
|
|
case BattleSpec.DEFAULT:
|
|
return !pokemon.isPlayer()
|
|
? pokemon.hasTrainer()
|
|
? i18next.t("battle:foePokemonWithAffix", {
|
|
pokemonName: pokemon.getNameToRender(),
|
|
})
|
|
: i18next.t("battle:wildPokemonWithAffix", {
|
|
pokemonName: pokemon.getNameToRender(),
|
|
})
|
|
: pokemon.getNameToRender();
|
|
case BattleSpec.FINAL_BOSS:
|
|
return !pokemon.isPlayer()
|
|
? i18next.t("battle:foePokemonWithAffix", { pokemonName: pokemon.getNameToRender() })
|
|
: pokemon.getNameToRender();
|
|
default:
|
|
return pokemon.getNameToRender();
|
|
}
|
|
}
|