From 5ce9ab4855e5fe713b476707347a9fd71845fc36 Mon Sep 17 00:00:00 2001 From: ImperialSympathizer Date: Thu, 26 Sep 2024 15:49:35 -0400 Subject: [PATCH] real fix to Fun and Games force switch issues --- src/data/move.ts | 5 +++++ .../mystery-encounters/encounters/fun-and-games-encounter.ts | 4 +--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 5320501cc0d..db37190510f 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -5290,6 +5290,11 @@ export class ForceSwitchOutAttr extends MoveEffectAttr { return false; } + if (!player && user.scene.currentBattle.battleType === BattleType.MYSTERY_ENCOUNTER && !user.scene.currentBattle.mysteryEncounter?.fleeAllowed) { + // Don't allow wild opponents to be force switched during MEs with flee disabled + return false; + } + const blockedByAbility = new Utils.BooleanHolder(false); applyAbAttrs(ForceSwitchOutImmunityAbAttr, target, blockedByAbility); return !blockedByAbility.value; diff --git a/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts b/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts index c6054bab5d6..1d8bf42528b 100644 --- a/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts +++ b/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts @@ -23,7 +23,6 @@ import { modifierTypes } from "#app/modifier/modifier-type"; import { Nature } from "#enums/nature"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { isPokemonValidForEncounterOptionSelection } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; -import { Abilities } from "#enums/abilities"; /** the i18n namespace for the encounter */ const namespace = "mysteryEncounter:funAndGames"; @@ -45,6 +44,7 @@ export const FunAndGamesEncounter: MysteryEncounter = .withSkipEnemyBattleTurns(true) // Will skip COMMAND selection menu and go straight to FIGHT (move select) menu .withSkipToFightInput(true) + .withFleeAllowed(false) .withIntroSpriteConfigs([ { spriteKey: "fun_and_games_game", @@ -202,8 +202,6 @@ async function summonPlayerPokemon(scene: BattleScene) { wobbuffet.setAlpha(0); wobbuffet.setVisible(false); wobbuffet.calculateStats(); - // Workaround to Roar/Dragon Tail/etc. - wobbuffet.mysteryEncounterPokemonData.passive = Abilities.SUCTION_CUPS; scene.currentBattle.enemyParty[0] = wobbuffet; scene.gameData.setPokemonSeen(wobbuffet, true); await wobbuffet.loadAssets();