mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2024-11-25 08:16:04 +00:00
[Test] Remove nature RNG from Beast Boost tests (#3994)
This commit is contained in:
parent
684d7b3009
commit
d004d905bd
@ -1,15 +1,12 @@
|
|||||||
import { Stat } from "#enums/stat";
|
import { BattlerIndex } from "#app/battle";
|
||||||
import GameManager from "#test/utils/gameManager";
|
|
||||||
import { Abilities } from "#enums/abilities";
|
import { Abilities } from "#enums/abilities";
|
||||||
import { Moves } from "#enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "#enums/species";
|
import { Species } from "#enums/species";
|
||||||
|
import { Stat } from "#enums/stat";
|
||||||
|
import GameManager from "#test/utils/gameManager";
|
||||||
|
import { SPLASH_ONLY } from "#test/utils/testUtils";
|
||||||
import Phaser from "phaser";
|
import Phaser from "phaser";
|
||||||
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
import { SPLASH_ONLY } from "../utils/testUtils";
|
|
||||||
import { EnemyCommandPhase } from "#app/phases/enemy-command-phase";
|
|
||||||
import { VictoryPhase } from "#app/phases/victory-phase";
|
|
||||||
import { TurnStartPhase } from "#app/phases/turn-start-phase";
|
|
||||||
import { BattlerIndex } from "#app/battle";
|
|
||||||
|
|
||||||
describe("Abilities - Beast Boost", () => {
|
describe("Abilities - Beast Boost", () => {
|
||||||
let phaserGame: Phaser.Game;
|
let phaserGame: Phaser.Game;
|
||||||
@ -37,49 +34,44 @@ describe("Abilities - Beast Boost", () => {
|
|||||||
.enemyMoveset(SPLASH_ONLY);
|
.enemyMoveset(SPLASH_ONLY);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Note that both MOXIE and BEAST_BOOST test for their current implementation and not their mainline behavior.
|
|
||||||
it("should prefer highest stat to boost its corresponding stat stage by 1 when winning a battle", async() => {
|
it("should prefer highest stat to boost its corresponding stat stage by 1 when winning a battle", async() => {
|
||||||
// SLOWBRO's highest stat is DEF, so it should be picked here
|
await game.classicMode.startBattle([Species.SLOWBRO]);
|
||||||
await game.startBattle([
|
|
||||||
Species.SLOWBRO
|
|
||||||
]);
|
|
||||||
|
|
||||||
const playerPokemon = game.scene.getPlayerPokemon()!;
|
const playerPokemon = game.scene.getPlayerPokemon()!;
|
||||||
|
// Set the pokemon's highest stat to DEF, so it should be picked by Beast Boost
|
||||||
|
vi.spyOn(playerPokemon, "stats", "get").mockReturnValue([ 10000, 100, 1000, 200, 100, 100 ]);
|
||||||
|
console.log(playerPokemon.stats);
|
||||||
|
|
||||||
expect(playerPokemon.getStatStage(Stat.DEF)).toBe(0);
|
expect(playerPokemon.getStatStage(Stat.DEF)).toBe(0);
|
||||||
|
|
||||||
game.move.select(Moves.FLAMETHROWER);
|
game.move.select(Moves.FLAMETHROWER);
|
||||||
await game.phaseInterceptor.runFrom(EnemyCommandPhase).to(VictoryPhase);
|
await game.phaseInterceptor.to("VictoryPhase");
|
||||||
|
|
||||||
expect(playerPokemon.getStatStage(Stat.DEF)).toBe(1);
|
expect(playerPokemon.getStatStage(Stat.DEF)).toBe(1);
|
||||||
}, 20000);
|
}, 20000);
|
||||||
|
|
||||||
it("should use in-battle overriden stats when determining the stat stage to raise by 1", async() => {
|
it("should use in-battle overriden stats when determining the stat stage to raise by 1", async() => {
|
||||||
// If the opponent can GUARD_SPLIT, SLOWBRO's second highest stat should be SPATK
|
|
||||||
game.override.enemyMoveset(new Array(4).fill(Moves.GUARD_SPLIT));
|
game.override.enemyMoveset(new Array(4).fill(Moves.GUARD_SPLIT));
|
||||||
|
|
||||||
await game.startBattle([
|
await game.classicMode.startBattle([Species.SLOWBRO]);
|
||||||
Species.SLOWBRO
|
|
||||||
]);
|
|
||||||
|
|
||||||
const playerPokemon = game.scene.getPlayerPokemon()!;
|
const playerPokemon = game.scene.getPlayerPokemon()!;
|
||||||
|
// If the opponent uses Guard Split, the pokemon's second highest stat (SPATK) should be chosen
|
||||||
|
vi.spyOn(playerPokemon, "stats", "get").mockReturnValue([ 10000, 100, 201, 200, 100, 100 ]);
|
||||||
|
|
||||||
expect(playerPokemon.getStatStage(Stat.SPATK)).toBe(0);
|
expect(playerPokemon.getStatStage(Stat.SPATK)).toBe(0);
|
||||||
|
|
||||||
game.move.select(Moves.FLAMETHROWER);
|
game.move.select(Moves.FLAMETHROWER);
|
||||||
|
|
||||||
await game.setTurnOrder([ BattlerIndex.ENEMY, BattlerIndex.PLAYER ]);
|
await game.setTurnOrder([ BattlerIndex.ENEMY, BattlerIndex.PLAYER ]);
|
||||||
|
await game.phaseInterceptor.to("VictoryPhase");
|
||||||
await game.phaseInterceptor.runFrom(TurnStartPhase).to(VictoryPhase);
|
|
||||||
|
|
||||||
expect(playerPokemon.getStatStage(Stat.SPATK)).toBe(1);
|
expect(playerPokemon.getStatStage(Stat.SPATK)).toBe(1);
|
||||||
}, 20000);
|
}, 20000);
|
||||||
|
|
||||||
it("should have order preference in case of stat ties", async() => {
|
it("should have order preference in case of stat ties", async() => {
|
||||||
// Order preference follows the order of EFFECTIVE_STAT
|
// Order preference follows the order of EFFECTIVE_STAT
|
||||||
await game.startBattle([
|
await game.classicMode.startBattle([Species.SLOWBRO]);
|
||||||
Species.SLOWBRO
|
|
||||||
]);
|
|
||||||
|
|
||||||
const playerPokemon = game.scene.getPlayerPokemon()!;
|
const playerPokemon = game.scene.getPlayerPokemon()!;
|
||||||
|
|
||||||
@ -90,7 +82,7 @@ describe("Abilities - Beast Boost", () => {
|
|||||||
|
|
||||||
game.move.select(Moves.FLAMETHROWER);
|
game.move.select(Moves.FLAMETHROWER);
|
||||||
|
|
||||||
await game.phaseInterceptor.runFrom(EnemyCommandPhase).to(VictoryPhase);
|
await game.phaseInterceptor.to("VictoryPhase");
|
||||||
|
|
||||||
expect(playerPokemon.getStatStage(Stat.SPATK)).toBe(1);
|
expect(playerPokemon.getStatStage(Stat.SPATK)).toBe(1);
|
||||||
}, 20000);
|
}, 20000);
|
||||||
|
Loading…
Reference in New Issue
Block a user