From c831baa37521e28579df7efe0445eb26dbff2179 Mon Sep 17 00:00:00 2001 From: ImperialSympathizer Date: Mon, 19 Aug 2024 12:56:50 -0400 Subject: [PATCH] fix pokemon not returning after winstrate battle --- .../encounters/the-winstrate-challenge-encounter.ts | 3 ++- src/data/mystery-encounters/utils/encounter-phase-utils.ts | 5 +++-- src/data/trainer-config.ts | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts b/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts index e3da86ca299..c0886ed9f6b 100644 --- a/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts +++ b/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts @@ -17,6 +17,7 @@ import { PartyHealPhase, ReturnPhase, ShowTrainerPhase } from "#app/phases"; import { SpeciesFormChangeManualTrigger } from "#app/data/pokemon-forms"; import { applyPostBattleInitAbAttrs, PostBattleInitAbAttr } from "#app/data/ability"; import { showEncounterDialogue } from "#app/data/mystery-encounters/utils/encounter-dialogue-utils"; +import { MysteryEncounterMode } from "#enums/mystery-encounter-mode"; /** the i18n namespace for the encounter */ const namespace = "mysteryEncounter:theWinstrateChallenge"; @@ -140,7 +141,7 @@ async function spawnNextTrainerOrEndEncounter(scene: BattleScene) { await showEncounterDialogue(scene, `${namespace}.victory`, `${namespace}.speaker`); setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.MYSTERY_ENCOUNTER_MACHO_BRACE], fillRemaining: false }); encounter.doContinueEncounter = null; - leaveEncounterWithoutBattle(scene); + leaveEncounterWithoutBattle(scene, false, MysteryEncounterMode.TRAINER_BATTLE); } else { await initBattleWithEnemyConfig(scene, nextConfig); } diff --git a/src/data/mystery-encounters/utils/encounter-phase-utils.ts b/src/data/mystery-encounters/utils/encounter-phase-utils.ts index 5a98d7737c0..c58e0fbad1f 100644 --- a/src/data/mystery-encounters/utils/encounter-phase-utils.ts +++ b/src/data/mystery-encounters/utils/encounter-phase-utils.ts @@ -634,9 +634,10 @@ export function initSubsequentOptionSelect(scene: BattleScene, optionSelectSetti * Will skip any shops and rewards, and queue the next encounter phase as normal * @param scene * @param addHealPhase - when true, will add a shop phase to end of encounter with 0 rewards but healing items are available + * @param encounterMode - Can set custom encounter mode if necessary (may be required for forcing Pokemon to return before next phase) */ -export function leaveEncounterWithoutBattle(scene: BattleScene, addHealPhase: boolean = false) { - scene.currentBattle.mysteryEncounter.encounterMode = MysteryEncounterMode.NO_BATTLE; +export function leaveEncounterWithoutBattle(scene: BattleScene, addHealPhase: boolean = false, encounterMode: MysteryEncounterMode = MysteryEncounterMode.NO_BATTLE) { + scene.currentBattle.mysteryEncounter.encounterMode = encounterMode; scene.clearPhaseQueue(); scene.clearPhaseQueueSplice(); handleMysteryEncounterVictory(scene, addHealPhase); diff --git a/src/data/trainer-config.ts b/src/data/trainer-config.ts index 54efc6bd900..eeffd02bc15 100644 --- a/src/data/trainer-config.ts +++ b/src/data/trainer-config.ts @@ -1969,7 +1969,7 @@ export const trainerConfigs: TrainerConfigs = { .setPartyTemplates(trainerPartyTemplates.TWO_AVG_ONE_STRONG), [TrainerType.VICKY]: new TrainerConfig(++t).setName("Vicky").setTitle("The Winstrates") .setMoneyMultiplier(1) - .setPartyTemplates(trainerPartyTemplates.ONE_STRONG), + .setPartyTemplates(trainerPartyTemplates.ONE_AVG), [TrainerType.VITO]: new TrainerConfig(++t).setName("Vito").setTitle("The Winstrates") .setMoneyMultiplier(2) .setPartyTemplates(new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(2, PartyMemberStrength.STRONG)))