diff --git a/test/moves/mirror_move.test.ts b/test/moves/mirror_move.test.ts index 03de93c56dc..53b84c1e25c 100644 --- a/test/moves/mirror_move.test.ts +++ b/test/moves/mirror_move.test.ts @@ -25,7 +25,6 @@ describe("Moves - Mirror Move", () => { beforeEach(() => { game = new GameManager(phaserGame); game.override - .moveset([MoveId.MIRROR_MOVE, MoveId.SPLASH]) .ability(AbilityId.BALL_FETCH) .battleStyle("single") .criticalHits(false) @@ -34,49 +33,40 @@ describe("Moves - Mirror Move", () => { .enemyMoveset(MoveId.SPLASH); }); - it("should use the last move that the target used on the user", async () => { - game.override.battleStyle("double").enemyMoveset([MoveId.TACKLE, MoveId.GROWL]); + it("should use the last move that the target used against any pokemon", async () => { + game.override.battleStyle("double"); await game.classicMode.startBattle([SpeciesId.FEEBAS, SpeciesId.MAGIKARP]); - game.move.select(MoveId.MIRROR_MOVE, 0, BattlerIndex.ENEMY); // target's last move is Tackle, enemy should receive damage from Mirror Move copying Tackle - game.move.select(MoveId.SPLASH, 1); - await game.move.selectEnemyMove(MoveId.TACKLE, BattlerIndex.PLAYER_2); - await game.move.selectEnemyMove(MoveId.GROWL, BattlerIndex.PLAYER_2); + game.move.use(MoveId.MIRROR_MOVE, BattlerIndex.PLAYER, BattlerIndex.ENEMY); + game.move.use(MoveId.SWORDS_DANCE, BattlerIndex.PLAYER_2, BattlerIndex.ENEMY_2); + await game.move.forceEnemyMove(MoveId.TACKLE, BattlerIndex.PLAYER_2); + await game.move.forceEnemyMove(MoveId.SWORDS_DANCE); await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.ENEMY_2, BattlerIndex.PLAYER_2, BattlerIndex.PLAYER]); await game.toNextTurn(); - expect(game.scene.getEnemyField()[0].isFullHp()).toBeFalsy(); + const [feebas, magikarp] = game.scene.getPlayerField(); + expect(feebas.getLastXMoves()[0].move).toBe(MoveId.TACKLE); + expect(magikarp.getLastXMoves()[0].move).toBe(MoveId.SWORDS_DANCE); }); - it("should apply secondary effects of a move", async () => { - game.override.enemyMoveset(MoveId.ACID_SPRAY); + it("should apply secondary effects of the called move", async () => { await game.classicMode.startBattle([SpeciesId.FEEBAS]); - game.move.select(MoveId.MIRROR_MOVE); + game.move.use(MoveId.MIRROR_MOVE); + await game.move.forceEnemyMove(MoveId.ACID_SPRAY); await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); await game.toNextTurn(); - expect(game.scene.getEnemyPokemon()!.getStatStage(Stat.SPDEF)).toBe(-2); - }); - - it("should be able to copy status moves", async () => { - game.override.enemyMoveset(MoveId.GROWL); - await game.classicMode.startBattle([SpeciesId.FEEBAS]); - - game.move.select(MoveId.MIRROR_MOVE); - await game.setTurnOrder([BattlerIndex.ENEMY, BattlerIndex.PLAYER]); - await game.toNextTurn(); - - expect(game.scene.getEnemyPokemon()!.getStatStage(Stat.ATK)).toBe(-1); + expect(game.field.getEnemyPokemon().getStatStage(Stat.SPDEF)).toBe(-2); }); it("should fail if the target has not used any moves", async () => { await game.classicMode.startBattle([SpeciesId.FEEBAS]); - game.move.select(MoveId.MIRROR_MOVE); + game.move.use(MoveId.MIRROR_MOVE); await game.setTurnOrder([BattlerIndex.PLAYER, BattlerIndex.ENEMY]); await game.toNextTurn(); - expect(game.scene.getPlayerPokemon()!.getLastXMoves()[0].result).toBe(MoveResult.FAIL); + expect(game.field.getPlayerPokemon().getLastXMoves()[0].result).toBe(MoveResult.FAIL); }); });