From ecf91033503385ed83bbed4698ddc1c657e408f1 Mon Sep 17 00:00:00 2001 From: ImperialSympathizer Date: Thu, 17 Oct 2024 14:22:01 -0400 Subject: [PATCH] some unit test cleanup and general tidying --- src/battle.ts | 3 ++- .../encounters/berries-abound-encounter.ts | 7 ++----- .../encounters/bug-type-superfan-encounter.ts | 4 ++-- src/system/version_migration/versions/v1_0_4.ts | 15 --------------- .../bug-type-superfan-encounter.test.ts | 7 ++++--- 5 files changed, 10 insertions(+), 26 deletions(-) diff --git a/src/battle.ts b/src/battle.ts index 6086c2ceb4e..07e7a7187cb 100644 --- a/src/battle.ts +++ b/src/battle.ts @@ -19,6 +19,7 @@ import { MysteryEncounterMode } from "#enums/mystery-encounter-mode"; import { CustomModifierSettings } from "#app/modifier/modifier-type"; import { ModifierTier } from "#app/modifier/modifier-tier"; import { MysteryEncounterType } from "#enums/mystery-encounter-type"; +import { isNullOrUndefined } from "./utils"; export enum ClassicFixedBossWaves { // TODO: other fixed wave battles should be added here @@ -414,7 +415,7 @@ export default class Battle { * Returns if the battle is of type {@linkcode BattleType.MYSTERY_ENCOUNTER} */ isBattleMysteryEncounter(): boolean { - return this.battleType === BattleType.MYSTERY_ENCOUNTER; + return !isNullOrUndefined(this.battleType) && this.battleType === BattleType.MYSTERY_ENCOUNTER; } } diff --git a/src/data/mystery-encounters/encounters/berries-abound-encounter.ts b/src/data/mystery-encounters/encounters/berries-abound-encounter.ts index 5703937e2a7..dc58fc0b353 100644 --- a/src/data/mystery-encounters/encounters/berries-abound-encounter.ts +++ b/src/data/mystery-encounters/encounters/berries-abound-encounter.ts @@ -7,7 +7,7 @@ import { } from "#app/data/mystery-encounters/utils/encounter-phase-utils"; import Pokemon, { EnemyPokemon, PlayerPokemon } from "#app/field/pokemon"; import { - BerryModifierType, + BerryModifierType, getPartyLuckValue, ModifierPoolType, ModifierTypeOption, modifierTypes, regenerateModifierPoolThresholds, @@ -30,8 +30,6 @@ import { BerryType } from "#enums/berry-type"; import { PERMANENT_STATS, Stat } from "#enums/stat"; import { StatStageChangePhase } from "#app/phases/stat-stage-change-phase"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; -import { getPokemonSpecies } from "#app/data/pokemon-species"; -import { Species } from "#enums/species"; /** the i18n namespace for the encounter */ const namespace = "mysteryEncounters/berriesAbound"; @@ -59,8 +57,7 @@ export const BerriesAboundEncounter: MysteryEncounter = // Calculate boss mon const level = getEncounterPokemonLevelForWave(scene, STANDARD_ENCOUNTER_BOOSTED_LEVEL_MODIFIER); - // const bossSpecies = scene.arena.randomSpecies(scene.currentBattle.waveIndex, level, 0, getPartyLuckValue(scene.getParty()), true); - const bossSpecies = getPokemonSpecies(Species.KELDEO); + const bossSpecies = scene.arena.randomSpecies(scene.currentBattle.waveIndex, level, 0, getPartyLuckValue(scene.getParty()), true); const bossPokemon = new EnemyPokemon(scene, bossSpecies, level, TrainerSlot.NONE, true); encounter.setDialogueToken("enemyPokemon", getPokemonNameWithAffix(bossPokemon)); const config: EnemyPartyConfig = { diff --git a/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts b/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts index f2584ec2077..9f777d680c2 100644 --- a/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts +++ b/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts @@ -361,10 +361,10 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = const specialOptions: ModifierTypeOption[] = []; if (!scene.findModifier(m => m instanceof MegaEvolutionAccessModifier)) { - specialOptions.push(generateModifierTypeOption(scene, modifierTypes.MEGA_BRACELET)!); + modifierOptions.push(generateModifierTypeOption(scene, modifierTypes.MEGA_BRACELET)!); } if (!scene.findModifier(m => m instanceof GigantamaxAccessModifier)) { - specialOptions.push(generateModifierTypeOption(scene, modifierTypes.DYNAMAX_BAND)!); + modifierOptions.push(generateModifierTypeOption(scene, modifierTypes.DYNAMAX_BAND)!); } const nonRareEvolutionModifier = generateModifierTypeOption(scene, modifierTypes.EVOLUTION_ITEM); if (nonRareEvolutionModifier) { diff --git a/src/system/version_migration/versions/v1_0_4.ts b/src/system/version_migration/versions/v1_0_4.ts index 3a6ec0b830b..c20e2a281e7 100644 --- a/src/system/version_migration/versions/v1_0_4.ts +++ b/src/system/version_migration/versions/v1_0_4.ts @@ -1,7 +1,6 @@ import { SettingKeys } from "../../settings/settings"; import { AbilityAttr, defaultStarterSpecies, DexAttr, SystemSaveData, SessionSaveData } from "../../game-data"; import { allSpecies } from "../../../data/pokemon-species"; -import { CustomPokemonData } from "#app/data/custom-pokemon-data"; export const systemMigrators = [ /** @@ -132,19 +131,5 @@ export const sessionMigrators = [ m.className = "ResetNegativeStatStageModifier"; } }); - - // Fix Pokemon nature overrides and custom data migration - data.party.forEach(pokemon => { - if (pokemon["mysteryEncounterData"]) { - pokemon.customPokemonData = new CustomPokemonData(pokemon["mysteryEncounterData"]); - } - if (pokemon["fusionMysteryEncounterData"]) { - pokemon.fusionCustomPokemonData = new CustomPokemonData(pokemon["fusionMysteryEncounterData"]); - } - pokemon.customPokemonData = pokemon.customPokemonData ?? new CustomPokemonData(); - if (pokemon["natureOverride"]) { - pokemon.customPokemonData.nature = pokemon["natureOverride"]; - } - }); } ] as const; diff --git a/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts b/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts index 0dc02e03c6d..e0f37c7e045 100644 --- a/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts @@ -476,10 +476,11 @@ describe("Bug-Type Superfan - Mystery Encounter", () => { expect(scene.ui.getMode()).to.equal(Mode.MODIFIER_SELECT); const modifierSelectHandler = scene.ui.handlers.find(h => h instanceof ModifierSelectUiHandler) as ModifierSelectUiHandler; - expect(modifierSelectHandler.options.length).toEqual(3); + expect(modifierSelectHandler.options.length).toEqual(4); expect(modifierSelectHandler.options[0].modifierTypeOption.type.id).toBe("MASTER_BALL"); - expect(modifierSelectHandler.options[1].modifierTypeOption.type.id).toBe("MAX_LURE"); - expect(modifierSelectHandler.options[2].modifierTypeOption.type.id).toBe("FORM_CHANGE_ITEM"); + expect(modifierSelectHandler.options[1].modifierTypeOption.type.id).toBe("MEGA_BRACELET"); + expect(modifierSelectHandler.options[2].modifierTypeOption.type.id).toBe("DYNAMAX_BAND"); + expect(modifierSelectHandler.options[3].modifierTypeOption.type.id).toBe("FORM_CHANGE_ITEM"); }); it("should leave encounter without battle", async () => {