From 3ccbe51f9e3d93c3dd7744bce4c44a5b500008f5 Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Sat, 1 Feb 2025 23:01:17 +0100 Subject: [PATCH] speciesTmMoves now properly accounts for form-specific tms --- src/data/balance/tms.ts | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/data/balance/tms.ts b/src/data/balance/tms.ts index 12e402af4ed..ce74a29b3ae 100644 --- a/src/data/balance/tms.ts +++ b/src/data/balance/tms.ts @@ -68434,10 +68434,10 @@ export const tmSpecies: TmSpecies = { }; interface SpeciesTmMoves { - [key: integer]: Moves[] + [key: integer]: (Moves | [string | Species, Moves])[]; } -function flipTmSpecies(tmSpecies: TmSpecies): SpeciesTmMoves { +function transposeTmSpecies(tmSpecies: TmSpecies): SpeciesTmMoves { const flipped: SpeciesTmMoves = {}; for (const move in tmSpecies) { @@ -68445,18 +68445,33 @@ function flipTmSpecies(tmSpecies: TmSpecies): SpeciesTmMoves { const speciesList = tmSpecies[move]; for (const species of speciesList) { - const speciesKey = Number(species); - if (!flipped[speciesKey]) { - flipped[speciesKey] = []; + + if (Array.isArray(species)) { + // Extract base species and all associated forms + const [ baseSpecies, ...forms ] = species; + const speciesKey = Number(baseSpecies); + + if (!flipped[speciesKey]) { + flipped[speciesKey] = []; + } + + for (const form of forms) { + flipped[speciesKey].push([ form, moveKey ]); + } + + } else { + const speciesKey = Number(species); + if (!flipped[speciesKey]) { + flipped[speciesKey] = []; + } + flipped[speciesKey].push(moveKey); } - flipped[speciesKey].push(moveKey); } } return flipped; } -export const speciesTmMoves: SpeciesTmMoves = flipTmSpecies(tmSpecies); - +export const speciesTmMoves: SpeciesTmMoves = transposeTmSpecies(tmSpecies); interface TmPoolTiers { [key: integer]: ModifierTier