diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 80c6f9d1a9d..5811e4959cc 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -14,7 +14,7 @@ import { GameMode } from "../game-mode"; import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities"; import { VariantSet } from "./variant"; import i18next from "i18next"; -import { Localizable } from "#app/interfaces/locales"; +import { FusionTranslationEntry, Localizable } from "#app/interfaces/locales"; import { Stat } from "./pokemon-stat"; import { Abilities } from "#enums/abilities"; import { PartyMemberStrength } from "#enums/party-member-strength"; @@ -51,18 +51,15 @@ export function getPokemonSpeciesForm(species: Species, formIndex: integer): Pok } export function getFusedSpeciesName(speciesAName: string, speciesBName: string): string { - // Get the fusion affixes for the species - const speciesAFusionAffixes = fusionAffixes[speciesAName]; - const speciesBFusionAffixes = fusionAffixes[speciesBName]; + const speciesA = i18next.t(`fusionAffixes:${speciesAName}`) as FusionTranslationEntry; + const speciesB = i18next.t(`fusionAffixes:${speciesBName}`) as FusionTranslationEntry; - // Get the fusion prefix and suffix for each species - const speciesAPrefix = speciesAFusionAffixes.fusionPrefix; - const speciesBSuffix = speciesBFusionAffixes.fusionSuffix; + if (!speciesA || !speciesB) { + throw new Error(`One or both species not found: ${speciesAName}, ${speciesBName}`); + } - // Construct the fused species name - const fusedSpeciesName = `${speciesAPrefix}${speciesBSuffix}`; - - return fusedSpeciesName; + // Combine the fusionPrefix of speciesA with the fusionSuffix of speciesB using template literals + return `${speciesA.fusionPrefix}${speciesB.fusionSuffix}`; } export type PokemonSpeciesFilter = (species: PokemonSpecies) => boolean; diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 5f1bd541ad2..f63f59f9ed2 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -29,6 +29,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -74,6 +75,7 @@ export const deConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index f37b707479a..b2708ce0db8 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -32,6 +32,7 @@ import { nature } from "./nature"; import { partyUiHandler } from "./party-ui-handler"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -75,6 +76,7 @@ export const enConfig = { partyUiHandler: partyUiHandler, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index f3747b6c619..2925d71d03f 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -29,6 +29,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -74,6 +75,7 @@ export const esConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 59e8eb9f307..db93c01051c 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -29,6 +29,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -74,6 +75,7 @@ export const frConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 7cc063a6b23..6683810746a 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -29,6 +29,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -74,6 +75,7 @@ export const itConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/ko/config.ts b/src/locales/ko/config.ts index 3ec162abd34..f65fa607866 100644 --- a/src/locales/ko/config.ts +++ b/src/locales/ko/config.ts @@ -29,6 +29,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -74,6 +75,7 @@ export const koConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 4effad14af2..193b364c78c 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -32,6 +32,7 @@ import { nature } from "./nature"; import { partyUiHandler } from "./party-ui-handler"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -75,6 +76,7 @@ export const ptBrConfig = { partyUiHandler: partyUiHandler, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index ecef682581f..59ea64a5692 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -29,6 +29,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -74,6 +75,7 @@ export const zhCnConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler, diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts index 08063f9f154..3c5802f6e15 100644 --- a/src/locales/zh_TW/config.ts +++ b/src/locales/zh_TW/config.ts @@ -29,6 +29,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; +import { fusionAffixes } from "./pokemon-fusion-affixes"; import { pokemonInfo } from "./pokemon-info"; import { pokemonInfoContainer } from "./pokemon-info-container"; import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler"; @@ -74,6 +75,7 @@ export const zhTwConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, + fusionAffixes: fusionAffixes, pokemonInfo: pokemonInfo, pokemonInfoContainer: pokemonInfoContainer, saveSlotSelectUiHandler: saveSlotSelectUiHandler,