From ded3582f46a79df0c62560a0e9b48f8c9165febb Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Sat, 1 Feb 2025 14:38:55 +0100 Subject: [PATCH] Added tests for perish body when one mon already has the perish song tag, both ways --- src/test/abilities/perish_body.test.ts | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/test/abilities/perish_body.test.ts b/src/test/abilities/perish_body.test.ts index 8d77f004554..70ba6d8d684 100644 --- a/src/test/abilities/perish_body.test.ts +++ b/src/test/abilities/perish_body.test.ts @@ -59,4 +59,58 @@ describe("Abilities - Perish Song", () => { expect(magikarp?.summonData.tags[0].turnCount).toBe(3); }); + + it("should not activate if attacker already has perish song", async () => { + game.override.enemyMoveset([ Moves.PERISH_SONG, Moves.AQUA_JET, Moves.SPLASH ]); + await game.classicMode.startBattle([ Species.FEEBAS, Species.CURSOLA ]); + const feebas = game.scene.getPlayerPokemon(); + const magikarp = game.scene.getEnemyPokemon(); + + game.move.select(Moves.SPLASH); + await game.forceEnemyMove(Moves.PERISH_SONG); + await game.toNextTurn(); + + expect(feebas?.summonData.tags[0].turnCount).toBe(3); + expect(magikarp?.summonData.tags[0].turnCount).toBe(3); + + game.doSwitchPokemon(1); + await game.forceEnemyMove(Moves.SPLASH); + await game.toNextTurn(); + + const cursola = game.scene.getPlayerPokemon(); + expect(cursola?.summonData.tags.length).toBe(0); + expect(magikarp?.summonData.tags[0].turnCount).toBe(2); + + game.move.select(Moves.SPLASH); + await game.forceEnemyMove(Moves.AQUA_JET); + await game.toNextTurn(); + + expect(cursola?.summonData.tags.length).toBe(0); + expect(magikarp?.summonData.tags[0].turnCount).toBe(1); + + }); + + it("should activate if cursola already has perish song, but not reset its counter", async () => { + game.override.enemyMoveset([ Moves.PERISH_SONG, Moves.AQUA_JET, Moves.SPLASH ]); + game.override.moveset([ Moves.WHIRLWIND, Moves.SPLASH ]); + game.override.startingWave(5); + await game.classicMode.startBattle([ Species.CURSOLA ]); + const cursola = game.scene.getPlayerPokemon(); + + game.move.select(Moves.WHIRLWIND); + await game.forceEnemyMove(Moves.PERISH_SONG); + await game.toNextTurn(); + + const magikarp = game.scene.getEnemyPokemon(); + expect(cursola?.summonData.tags[0].turnCount).toBe(3); + expect(magikarp?.summonData.tags.length).toBe(0); + + game.move.select(Moves.SPLASH); + await game.forceEnemyMove(Moves.AQUA_JET); + await game.toNextTurn(); + + expect(cursola?.summonData.tags[0].turnCount).toBe(2); + expect(magikarp?.summonData.tags.length).toBe(1); + expect(magikarp?.summonData.tags[0].turnCount).toBe(3); + }); });