mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-26 09:19:31 +02:00
adding tests so that git doesn't auto-fail
This commit is contained in:
parent
880736277a
commit
87b4af04be
@ -2482,7 +2482,8 @@ export class TormentTag extends MoveRestrictionBattlerTag {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const isLockedIntoMove = allMoves[lastMove.move].hasAttr(ConsecutiveUseDoublePowerAttr);
|
const isLockedIntoMove = allMoves[lastMove.move].hasAttr(ConsecutiveUseDoublePowerAttr);
|
||||||
if (lastMove.move === move && lastMove.result === MoveResult.SUCCESS && lastMove.move !== Moves.STRUGGLE && !isLockedIntoMove) {
|
const validLastMoveResult = (lastMove.result === MoveResult.SUCCESS) || (lastMove.result === MoveResult.MISS);
|
||||||
|
if (lastMove.move === move && validLastMoveResult && lastMove.move !== Moves.STRUGGLE && !isLockedIntoMove) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
import { Moves } from "#app/enums/moves";
|
||||||
|
import { Species } from "#app/enums/species";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import GameManager from "#test/utils/gameManager";
|
||||||
|
import Phaser from "phaser";
|
||||||
|
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
||||||
|
import { MoveResult } from "#app/field/pokemon";
|
||||||
|
import { BattlerTagType } from "#app/enums/battler-tag-type";
|
||||||
|
|
||||||
|
describe("Moves - Aroma Veil", () => {
|
||||||
|
let phaserGame: Phaser.Game;
|
||||||
|
let game: GameManager;
|
||||||
|
beforeAll(() => {
|
||||||
|
phaserGame = new Phaser.Game({
|
||||||
|
type: Phaser.HEADLESS,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
game.phaseInterceptor.restoreOg();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
game = new GameManager(phaserGame);
|
||||||
|
game.override
|
||||||
|
.battleType("single")
|
||||||
|
.enemyAbility(Abilities.BALL_FETCH)
|
||||||
|
.enemyMoveset([Moves.TAUNT, Moves.SPLASH])
|
||||||
|
.enemySpecies(Species.SHUCKLE)
|
||||||
|
.moveset([Moves.GROWL]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Pokemon should not be able to use the same move consecutively", async () => {
|
||||||
|
await game.classicMode.startBattle([Species.REGIELEKI]);
|
||||||
|
|
||||||
|
const playerPokemon = game.scene.getPlayerPokemon();
|
||||||
|
|
||||||
|
// First turn, Player Pokemon fails usin
|
||||||
|
game.move.select(Moves.GROWL);
|
||||||
|
await game.forceEnemyMove(Moves.TAUNT);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move1 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move1.move).toBe(Moves.GROWL);
|
||||||
|
expect(move1.result).toBe(MoveResult.SUCCESS);
|
||||||
|
expect(playerPokemon?.getTag(BattlerTagType.TAUNT)).toBeDefined();
|
||||||
|
|
||||||
|
// Second turn, Taunt forces Struggle to occur
|
||||||
|
game.move.select(Moves.GROWL);
|
||||||
|
await game.forceEnemyMove(Moves.SPLASH);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move2 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move2.move).toBe(Moves.STRUGGLE);
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,54 @@
|
|||||||
|
import { Moves } from "#app/enums/moves";
|
||||||
|
import { Species } from "#app/enums/species";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import GameManager from "#test/utils/gameManager";
|
||||||
|
import Phaser from "phaser";
|
||||||
|
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
||||||
|
import { MoveResult } from "#app/field/pokemon";
|
||||||
|
import { BattlerTagType } from "#app/enums/battler-tag-type";
|
||||||
|
|
||||||
|
describe("Moves - Imprison", () => {
|
||||||
|
let phaserGame: Phaser.Game;
|
||||||
|
let game: GameManager;
|
||||||
|
beforeAll(() => {
|
||||||
|
phaserGame = new Phaser.Game({
|
||||||
|
type: Phaser.HEADLESS,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
game.phaseInterceptor.restoreOg();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
game = new GameManager(phaserGame);
|
||||||
|
game.override
|
||||||
|
.battleType("single")
|
||||||
|
.enemyAbility(Abilities.BALL_FETCH)
|
||||||
|
.enemyMoveset([Moves.IMPRISON, Moves.SPLASH])
|
||||||
|
.enemySpecies(Species.SHUCKLE)
|
||||||
|
.moveset([Moves.GROWL]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Pokemon should not be able to use the same move consecutively", async () => {
|
||||||
|
await game.classicMode.startBattle([Species.REGIELEKI]);
|
||||||
|
|
||||||
|
const playerPokemon = game.scene.getPlayerPokemon();
|
||||||
|
|
||||||
|
// First turn, Player Pokemon fails usin
|
||||||
|
game.move.select(Moves.GROWL);
|
||||||
|
await game.forceEnemyMove(Moves.IMPRISON);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move1 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move1.move).toBe(Moves.GROWL);
|
||||||
|
expect(move1.result).toBe(MoveResult.SUCCESS);
|
||||||
|
expect(playerPokemon?.getTag(BattlerTagType.TAUNT)).toBeDefined();
|
||||||
|
|
||||||
|
// Second turn, Taunt forces Struggle to occur
|
||||||
|
game.move.select(Moves.GROWL);
|
||||||
|
await game.forceEnemyMove(Moves.SPLASH);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move2 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move2.move).toBe(Moves.STRUGGLE);
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,54 @@
|
|||||||
|
import { Moves } from "#app/enums/moves";
|
||||||
|
import { Species } from "#app/enums/species";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import GameManager from "#test/utils/gameManager";
|
||||||
|
import Phaser from "phaser";
|
||||||
|
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
||||||
|
import { MoveResult } from "#app/field/pokemon";
|
||||||
|
import { BattlerTagType } from "#app/enums/battler-tag-type";
|
||||||
|
|
||||||
|
describe("Moves - Taunt", () => {
|
||||||
|
let phaserGame: Phaser.Game;
|
||||||
|
let game: GameManager;
|
||||||
|
beforeAll(() => {
|
||||||
|
phaserGame = new Phaser.Game({
|
||||||
|
type: Phaser.HEADLESS,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
game.phaseInterceptor.restoreOg();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
game = new GameManager(phaserGame);
|
||||||
|
game.override
|
||||||
|
.battleType("single")
|
||||||
|
.enemyAbility(Abilities.BALL_FETCH)
|
||||||
|
.enemyMoveset([Moves.TAUNT, Moves.SPLASH])
|
||||||
|
.enemySpecies(Species.SHUCKLE)
|
||||||
|
.moveset([Moves.GROWL]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Pokemon should not be able to use Status Moves", async () => {
|
||||||
|
await game.classicMode.startBattle([Species.REGIELEKI]);
|
||||||
|
|
||||||
|
const playerPokemon = game.scene.getPlayerPokemon();
|
||||||
|
|
||||||
|
// First turn, Player Pokemon succeeds using Growl
|
||||||
|
game.move.select(Moves.GROWL);
|
||||||
|
await game.forceEnemyMove(Moves.TAUNT);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move1 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move1.move).toBe(Moves.GROWL);
|
||||||
|
expect(move1.result).toBe(MoveResult.SUCCESS);
|
||||||
|
expect(playerPokemon?.getTag(BattlerTagType.TAUNT)).toBeDefined();
|
||||||
|
|
||||||
|
// Second turn, Taunt forces Struggle to occur
|
||||||
|
game.move.select(Moves.GROWL);
|
||||||
|
await game.forceEnemyMove(Moves.SPLASH);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move2 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move2.move).toBe(Moves.STRUGGLE);
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,63 @@
|
|||||||
|
import { Moves } from "#app/enums/moves";
|
||||||
|
import { Species } from "#app/enums/species";
|
||||||
|
import { Abilities } from "#enums/abilities";
|
||||||
|
import GameManager from "#test/utils/gameManager";
|
||||||
|
import Phaser from "phaser";
|
||||||
|
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
||||||
|
import { MoveResult } from "#app/field/pokemon";
|
||||||
|
import { BattlerTagType } from "#app/enums/battler-tag-type";
|
||||||
|
import { TurnEndPhase } from "#app/phases/turn-end-phase";
|
||||||
|
|
||||||
|
describe("Moves - Torment", () => {
|
||||||
|
let phaserGame: Phaser.Game;
|
||||||
|
let game: GameManager;
|
||||||
|
beforeAll(() => {
|
||||||
|
phaserGame = new Phaser.Game({
|
||||||
|
type: Phaser.HEADLESS,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
game.phaseInterceptor.restoreOg();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
game = new GameManager(phaserGame);
|
||||||
|
game.override
|
||||||
|
.battleType("single")
|
||||||
|
.enemyAbility(Abilities.BALL_FETCH)
|
||||||
|
.enemyMoveset([Moves.TORMENT, Moves.SPLASH])
|
||||||
|
.enemySpecies(Species.SHUCKLE)
|
||||||
|
.enemyLevel(30)
|
||||||
|
.moveset([Moves.TACKLE]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Pokemon should not be able to use the same move consecutively", async () => {
|
||||||
|
await game.classicMode.startBattle([Species.CHANSEY]);
|
||||||
|
|
||||||
|
const playerPokemon = game.scene.getPlayerPokemon();
|
||||||
|
|
||||||
|
// First turn, Player Pokemon uses Tackle successfully
|
||||||
|
game.move.select(Moves.TACKLE);
|
||||||
|
await game.forceEnemyMove(Moves.TORMENT);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move1 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move1.move).toBe(Moves.TACKLE);
|
||||||
|
expect(move1.result).toBe(MoveResult.SUCCESS);
|
||||||
|
expect(playerPokemon?.getTag(BattlerTagType.TORMENT)).toBeDefined();
|
||||||
|
|
||||||
|
// Second turn, Torment forces Struggle to occur
|
||||||
|
game.move.select(Moves.TACKLE);
|
||||||
|
await game.forceEnemyMove(Moves.SPLASH);
|
||||||
|
await game.toNextTurn();
|
||||||
|
const move2 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move2.move).toBe(Moves.STRUGGLE);
|
||||||
|
|
||||||
|
// Third turn, Tackle can be used.
|
||||||
|
game.move.select(Moves.TACKLE);
|
||||||
|
await game.forceEnemyMove(Moves.SPLASH);
|
||||||
|
await game.phaseInterceptor.to(TurnEndPhase);
|
||||||
|
const move3 = playerPokemon?.getLastXMoves(1)[0]!;
|
||||||
|
expect(move3.move).toBe(Moves.TACKLE);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user