mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-20 06:19:29 +02:00
Fix flaky unburden tests
This commit is contained in:
parent
22d16a05cb
commit
4e98bcbe89
@ -5,8 +5,10 @@ import GameManager from "#test/utils/gameManager";
|
|||||||
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 { Stat } from "#enums/stat";
|
import { Stat } from "#enums/stat";
|
||||||
import { BerryType } from "#app/enums/berry-type";
|
import { BerryType } from "#enums/berry-type";
|
||||||
import { allMoves, StealHeldItemChanceAttr } from "#app/data/move";
|
import { allMoves, StealHeldItemChanceAttr } from "#app/data/move";
|
||||||
|
import { ContactHeldItemTransferChanceModifier } from "#app/modifier/modifier";
|
||||||
|
import { BattlerIndex } from "#app/battle";
|
||||||
|
|
||||||
|
|
||||||
describe("Abilities - Unburden", () => {
|
describe("Abilities - Unburden", () => {
|
||||||
@ -29,7 +31,7 @@ describe("Abilities - Unburden", () => {
|
|||||||
.battleType("single")
|
.battleType("single")
|
||||||
.starterSpecies(Species.TREECKO)
|
.starterSpecies(Species.TREECKO)
|
||||||
.startingLevel(1)
|
.startingLevel(1)
|
||||||
.moveset([ Moves.POPULATION_BOMB, Moves.KNOCK_OFF, Moves.PLUCK, Moves.THIEF ])
|
.moveset([ Moves.TACKLE, Moves.KNOCK_OFF, Moves.PLUCK, Moves.THIEF ])
|
||||||
.startingHeldItems([
|
.startingHeldItems([
|
||||||
{ name: "BERRY", count: 1, type: BerryType.SITRUS },
|
{ name: "BERRY", count: 1, type: BerryType.SITRUS },
|
||||||
{ name: "BERRY", count: 2, type: BerryType.APICOT },
|
{ name: "BERRY", count: 2, type: BerryType.APICOT },
|
||||||
@ -92,16 +94,15 @@ describe("Abilities - Unburden", () => {
|
|||||||
it("should activate when an item is stolen via attacking ability", async () => {
|
it("should activate when an item is stolen via attacking ability", async () => {
|
||||||
game.override
|
game.override
|
||||||
.ability(Abilities.MAGICIAN)
|
.ability(Abilities.MAGICIAN)
|
||||||
.startingHeldItems([
|
.startingHeldItems([]);
|
||||||
{ name: "MULTI_LENS", count: 3 },
|
|
||||||
]);
|
|
||||||
await game.classicMode.startBattle();
|
await game.classicMode.startBattle();
|
||||||
|
|
||||||
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
||||||
const enemyHeldItemCt = enemyPokemon.getHeldItems().length;
|
const enemyHeldItemCt = enemyPokemon.getHeldItems().length;
|
||||||
const initialEnemySpeed = enemyPokemon.getStat(Stat.SPD);
|
const initialEnemySpeed = enemyPokemon.getStat(Stat.SPD);
|
||||||
|
|
||||||
game.move.select(Moves.POPULATION_BOMB);
|
game.move.select(Moves.TACKLE);
|
||||||
await game.toNextTurn();
|
await game.toNextTurn();
|
||||||
|
|
||||||
expect(enemyPokemon.getHeldItems().length).toBeLessThan(enemyHeldItemCt);
|
expect(enemyPokemon.getHeldItems().length).toBeLessThan(enemyHeldItemCt);
|
||||||
@ -124,7 +125,7 @@ describe("Abilities - Unburden", () => {
|
|||||||
const playerHeldItems = playerPokemon.getHeldItems().length;
|
const playerHeldItems = playerPokemon.getHeldItems().length;
|
||||||
const initialPlayerSpeed = playerPokemon.getStat(Stat.SPD);
|
const initialPlayerSpeed = playerPokemon.getStat(Stat.SPD);
|
||||||
|
|
||||||
game.move.select(Moves.POPULATION_BOMB);
|
game.move.select(Moves.TACKLE);
|
||||||
await game.toNextTurn();
|
await game.toNextTurn();
|
||||||
|
|
||||||
expect(playerPokemon.getHeldItems().length).toBeLessThan(playerHeldItems);
|
expect(playerPokemon.getHeldItems().length).toBeLessThan(playerHeldItems);
|
||||||
@ -152,10 +153,7 @@ describe("Abilities - Unburden", () => {
|
|||||||
it("should activate when an item is stolen via grip claw", async () => {
|
it("should activate when an item is stolen via grip claw", async () => {
|
||||||
game.override
|
game.override
|
||||||
.startingLevel(5)
|
.startingLevel(5)
|
||||||
.startingHeldItems([
|
.startingHeldItems([{ name: "GRIP_CLAW", count: 5 }])
|
||||||
{ name: "GRIP_CLAW", count: 5 },
|
|
||||||
{ name: "MULTI_LENS", count: 3 },
|
|
||||||
])
|
|
||||||
.enemyHeldItems([
|
.enemyHeldItems([
|
||||||
{ name: "SOUL_DEW", count: 1 },
|
{ name: "SOUL_DEW", count: 1 },
|
||||||
{ name: "LUCKY_EGG", count: 1 },
|
{ name: "LUCKY_EGG", count: 1 },
|
||||||
@ -167,14 +165,18 @@ describe("Abilities - Unburden", () => {
|
|||||||
]);
|
]);
|
||||||
await game.classicMode.startBattle();
|
await game.classicMode.startBattle();
|
||||||
|
|
||||||
|
const playerPokemon = game.scene.getPlayerPokemon()!;
|
||||||
|
const gripClaw = playerPokemon.getHeldItems()[0] as ContactHeldItemTransferChanceModifier;
|
||||||
|
vi.spyOn(gripClaw, "chance", "get").mockReturnValue(100);
|
||||||
|
|
||||||
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
||||||
const enemyHeldItemCt = enemyPokemon.getHeldItems().length;
|
const enemyHeldItemCt = enemyPokemon.getHeldItems().length;
|
||||||
const initialEnemySpeed = enemyPokemon.getStat(Stat.SPD);
|
const initialEnemySpeed = enemyPokemon.getStat(Stat.SPD);
|
||||||
|
|
||||||
while (enemyPokemon.getHeldItems().length === enemyHeldItemCt) {
|
game.move.select(Moves.TACKLE);
|
||||||
game.move.select(Moves.POPULATION_BOMB);
|
await game.setTurnOrder([ BattlerIndex.PLAYER, BattlerIndex.ENEMY ]);
|
||||||
await game.toNextTurn();
|
|
||||||
}
|
await game.phaseInterceptor.to("MoveEndPhase");
|
||||||
|
|
||||||
expect(enemyPokemon.getHeldItems().length).toBeLessThan(enemyHeldItemCt);
|
expect(enemyPokemon.getHeldItems().length).toBeLessThan(enemyHeldItemCt);
|
||||||
expect(enemyPokemon.getEffectiveStat(Stat.SPD)).toBeCloseTo(initialEnemySpeed * 2);
|
expect(enemyPokemon.getEffectiveStat(Stat.SPD)).toBeCloseTo(initialEnemySpeed * 2);
|
||||||
|
Loading…
Reference in New Issue
Block a user