import { Species } from "#app/enums/species.js"; import { GameModes, getGameMode } from "#app/game-mode.js"; import overrides from "#app/overrides.js"; import { EncounterPhase } from "#app/phases/encounter-phase.js"; import { SelectStarterPhase } from "#app/phases/select-starter-phase.js"; import { Mode } from "#app/ui/ui.js"; import { generateStarter } from "../gameManagerUtils"; import { GameManagerHelper } from "./gameManagerHelper"; /** * Helper to handle classic mode specifics */ export class ClassicModeHelper extends GameManagerHelper { /** * Runs the classic game to the summon phase. * @param species - Optional array of species to summon. * @returns A promise that resolves when the summon phase is reached. */ async runToSummon(species?: Species[]) { await this.game.runToTitle(); this.game.onNextPrompt("TitlePhase", Mode.TITLE, () => { this.game.scene.gameMode = getGameMode(GameModes.CLASSIC); const starters = generateStarter(this.game.scene, species); const selectStarterPhase = new SelectStarterPhase(this.game.scene); this.game.scene.pushPhase(new EncounterPhase(this.game.scene, false)); selectStarterPhase.initBattle(starters); }); await this.game.phaseInterceptor.run(EncounterPhase); if (overrides.OPP_HELD_ITEMS_OVERRIDE.length === 0) { this.game.removeEnemyHeldItems(); } } }