From 60ad302298969fcd1c8d2fdbb7576e438111e382 Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Sun, 2 Feb 2025 17:26:53 +0100 Subject: [PATCH] pokemon.getType() properly recognizes Normal secondary type --- src/field/pokemon.ts | 6 +++--- src/test/field/pokemon.test.ts | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index e523e2eed9e..d8f452aaa90 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1269,7 +1269,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { types.push(firstType); // Second type - let secondType: Type | null = null; + let secondType: Type = Type.UNKNOWN; if (fusionSpeciesForm) { // Check if the fusion Pokemon also had permanently changes when determining the fusion types @@ -1287,10 +1287,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { } else { // If not a fusion, just get the second type from the species, checking for permanent changes from ME secondType = (customTypes && this.customPokemonData.types.length > 1 && this.customPokemonData.types[1] !== Type.UNKNOWN) - ? this.customPokemonData.types[1] : speciesForm.type2; + ? this.customPokemonData.types[1] : (speciesForm.type2 ?? Type.UNKNOWN); } - if (secondType) { + if (secondType !== Type.UNKNOWN) { types.push(secondType); } } diff --git a/src/test/field/pokemon.test.ts b/src/test/field/pokemon.test.ts index b8b7349c1f8..e18dd1f6bb0 100644 --- a/src/test/field/pokemon.test.ts +++ b/src/test/field/pokemon.test.ts @@ -98,15 +98,15 @@ describe("Spec - Pokemon", () => { expect(types[1]).toBe(Type.FIRE); // Abra Psychic/Grass - pokemon.customPokemonData.types = [ Type.UNKNOWN, Type.GRASS ]; + pokemon.customPokemonData.types = [ Type.UNKNOWN, Type.NORMAL ]; types = pokemon.getTypes(); expect(types[0]).toBe(Type.PSYCHIC); expect(types[1]).toBe(Type.FIRE); // Abra Grass - pokemon.customPokemonData.types = [ Type.GRASS, Type.UNKNOWN ]; + pokemon.customPokemonData.types = [ Type.NORMAL, Type.UNKNOWN ]; types = pokemon.getTypes(); - expect(types[0]).toBe(Type.GRASS); + expect(types[0]).toBe(Type.NORMAL); expect(types[1]).toBe(Type.FIRE); if (!pokemon.fusionCustomPokemonData) { @@ -115,23 +115,23 @@ describe("Spec - Pokemon", () => { pokemon.customPokemonData.types = []; // Charmander Fire/Grass - pokemon.fusionCustomPokemonData.types = [ Type.UNKNOWN, Type.GRASS ]; + pokemon.fusionCustomPokemonData.types = [ Type.UNKNOWN, Type.NORMAL ]; types = pokemon.getTypes(); expect(types[0]).toBe(Type.PSYCHIC); - expect(types[1]).toBe(Type.GRASS); + expect(types[1]).toBe(Type.NORMAL); // Charmander Grass - pokemon.fusionCustomPokemonData.types = [ Type.GRASS, Type.UNKNOWN ]; + pokemon.fusionCustomPokemonData.types = [ Type.NORMAL, Type.UNKNOWN ]; types = pokemon.getTypes(); expect(types[0]).toBe(Type.PSYCHIC); - expect(types[1]).toBe(Type.GRASS); + expect(types[1]).toBe(Type.NORMAL); // Abra Grass // Charmander Fire/Grass - pokemon.customPokemonData.types = [ Type.GRASS, Type.UNKNOWN ]; - pokemon.fusionCustomPokemonData.types = [ Type.UNKNOWN, Type.GRASS ]; + pokemon.customPokemonData.types = [ Type.NORMAL, Type.UNKNOWN ]; + pokemon.fusionCustomPokemonData.types = [ Type.UNKNOWN, Type.NORMAL ]; types = pokemon.getTypes(); - expect(types[0]).toBe(Type.GRASS); + expect(types[0]).toBe(Type.NORMAL); expect(types[1]).toBe(Type.FIRE); });