From ca66acd5db54cd3df7ed255de3678010c31d119d Mon Sep 17 00:00:00 2001 From: innerthunder Date: Sun, 3 Nov 2024 19:03:52 -0800 Subject: [PATCH] semi-invulnerability test --- src/test/abilities/commander.test.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/test/abilities/commander.test.ts b/src/test/abilities/commander.test.ts index 082a311656b..99b3d50797c 100644 --- a/src/test/abilities/commander.test.ts +++ b/src/test/abilities/commander.test.ts @@ -193,4 +193,32 @@ describe("Abilities - Commander", () => { await game.phaseInterceptor.to("TurnEndPhase"); expect(dondozo.isActive(true)).toBeTruthy(); }); + + it("should interrupt the source's semi-invulnerability", async () => { + game.override + .moveset([ Moves.SPLASH, Moves.DIVE ]) + .enemyMoveset(Moves.SPLASH); + + await game.classicMode.startBattle([ Species.TATSUGIRI, Species.MAGIKARP, Species.DONDOZO ]); + + const tatsugiri = game.scene.getPlayerField()[0]; + + game.move.select(Moves.DIVE, 0, BattlerIndex.ENEMY); + game.move.select(Moves.SPLASH, 1); + + await game.phaseInterceptor.to("CommandPhase"); + await game.toNextTurn(); + + expect(tatsugiri.getTag(BattlerTagType.UNDERWATER)).toBeDefined(); + game.doSwitchPokemon(2); + + await game.phaseInterceptor.to("MovePhase", false); + const dondozo = game.scene.getPlayerField()[1]; + expect(tatsugiri.getTag(BattlerTagType.UNDERWATER)).toBeUndefined(); + expect(dondozo.getTag(BattlerTagType.COMMANDED)).toBeDefined(); + + await game.toNextTurn(); + const enemy = game.scene.getEnemyField()[0]; + expect(enemy.isFullHp()).toBeTruthy(); + }); });