From 4b61766430fc5bf88e5639a6d9eedb3266927b3d Mon Sep 17 00:00:00 2001 From: Sirz Benjie <142067137+SirzBenjie@users.noreply.github.com> Date: Tue, 4 Feb 2025 20:49:36 -0600 Subject: [PATCH] Magic bounce should not bounce anything during semi-invulnerable state --- src/test/abilities/magic_bounce.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/abilities/magic_bounce.test.ts b/src/test/abilities/magic_bounce.test.ts index 01f94712bb5..10befed75b4 100644 --- a/src/test/abilities/magic_bounce.test.ts +++ b/src/test/abilities/magic_bounce.test.ts @@ -330,5 +330,23 @@ describe("Abilities - Magic Bounce", () => { await game.phaseInterceptor.to("BerryPhase"); expect(game.scene.arena.getTagOnSide(ArenaTagType.STICKY_WEB, ArenaTagSide.PLAYER)?.getSourcePokemon()?.getBattlerIndex()).toBe(BattlerIndex.ENEMY); }); + + it("should not bounce back status moves that hit through semi-invulnerable states", async () => { + game.override.moveset([ Moves.TOXIC, Moves.CHARM ]); + await game.classicMode.startBattle([ Species.BULBASAUR ]); + game.move.select(Moves.TOXIC); + await game.forceEnemyMove(Moves.FLY); + await game.setTurnOrder([ BattlerIndex.ENEMY, BattlerIndex.PLAYER ]); + await game.phaseInterceptor.to("BerryPhase"); + expect(game.scene.getEnemyPokemon()!.status?.effect).toBe(StatusEffect.TOXIC); + expect(game.scene.getPlayerPokemon()!.status).toBeUndefined(); + + game.override.ability(Abilities.NO_GUARD); + game.move.select(Moves.CHARM); + await game.setTurnOrder([ BattlerIndex.PLAYER, BattlerIndex.ENEMY ]); + await game.phaseInterceptor.to("BerryPhase"); + expect(game.scene.getEnemyPokemon()!.getStatStage(Stat.ATK)).toBe(-2); + expect(game.scene.getPlayerPokemon()!.getStatStage(Stat.ATK)).toBe(0); + }); });