More edge case tests
This commit is contained in:
parent
a3986b1fac
commit
7870c718b2
|
@ -51,14 +51,50 @@ describe("Moves - Powder", () => {
|
||||||
await game.phaseInterceptor.to(BerryPhase, false);
|
await game.phaseInterceptor.to(BerryPhase, false);
|
||||||
expect(enemyPokemon.getLastXMoves()[0].result).toBe(MoveResult.FAIL);
|
expect(enemyPokemon.getLastXMoves()[0].result).toBe(MoveResult.FAIL);
|
||||||
expect(enemyPokemon.hp).toBe(Math.ceil(3 * enemyPokemon.getMaxHp() / 4));
|
expect(enemyPokemon.hp).toBe(Math.ceil(3 * enemyPokemon.getMaxHp() / 4));
|
||||||
|
|
||||||
|
await game.toNextTurn();
|
||||||
|
|
||||||
|
game.move.select(Moves.SPLASH);
|
||||||
|
|
||||||
|
await game.phaseInterceptor.to(BerryPhase, false);
|
||||||
|
expect(enemyPokemon.getLastXMoves()[0].result).toBe(MoveResult.SUCCESS);
|
||||||
|
expect(enemyPokemon.hp).toBe(Math.ceil(3 * enemyPokemon.getMaxHp() / 4));
|
||||||
}, TIMEOUT
|
}, TIMEOUT
|
||||||
);
|
);
|
||||||
|
|
||||||
it.todo("should not cancel Fire-type moves after the turn it's used");
|
it(
|
||||||
|
"should have no effect against Grass-type Pokemon",
|
||||||
|
async () => {
|
||||||
|
game.override.enemySpecies(Species.AMOONGUSS);
|
||||||
|
|
||||||
it.todo("should have no effect against Grass-type Pokemon");
|
await game.classicMode.startBattle([Species.CHARIZARD]);
|
||||||
|
|
||||||
it.todo("should have no effect against Pokemon with Overcoat");
|
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
||||||
|
|
||||||
|
game.move.select(Moves.POWDER);
|
||||||
|
|
||||||
|
await game.phaseInterceptor.to(BerryPhase, false);
|
||||||
|
expect(enemyPokemon.getLastXMoves()[0].result).toBe(MoveResult.SUCCESS);
|
||||||
|
expect(enemyPokemon.hp).toBe(enemyPokemon.getMaxHp());
|
||||||
|
}, TIMEOUT
|
||||||
|
);
|
||||||
|
|
||||||
|
it(
|
||||||
|
"should have no effect against Pokemon with Overcoat",
|
||||||
|
async () => {
|
||||||
|
game.override.enemyAbility(Abilities.OVERCOAT);
|
||||||
|
|
||||||
|
await game.classicMode.startBattle([Species.CHARIZARD]);
|
||||||
|
|
||||||
|
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
||||||
|
|
||||||
|
game.move.select(Moves.POWDER);
|
||||||
|
|
||||||
|
await game.phaseInterceptor.to(BerryPhase, false);
|
||||||
|
expect(enemyPokemon.getLastXMoves()[0].result).toBe(MoveResult.SUCCESS);
|
||||||
|
expect(enemyPokemon.hp).toBe(enemyPokemon.getMaxHp());
|
||||||
|
}, TIMEOUT
|
||||||
|
);
|
||||||
|
|
||||||
it(
|
it(
|
||||||
"should not damage the target if the target has Magic Guard",
|
"should not damage the target if the target has Magic Guard",
|
||||||
|
@ -115,6 +151,7 @@ describe("Moves - Powder", () => {
|
||||||
}, TIMEOUT
|
}, TIMEOUT
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// TODO: Implement this interaction and enable this test
|
||||||
it.skip(
|
it.skip(
|
||||||
"should cancel Fire-type moves generated by the target's Dancer ability",
|
"should cancel Fire-type moves generated by the target's Dancer ability",
|
||||||
async () => {
|
async () => {
|
||||||
|
@ -140,7 +177,39 @@ describe("Moves - Powder", () => {
|
||||||
}, TIMEOUT
|
}, TIMEOUT
|
||||||
);
|
);
|
||||||
|
|
||||||
it.todo("should cancel Revelation Dance if it becomes a Fire-type move");
|
it(
|
||||||
|
"should cancel Revelation Dance if it becomes a Fire-type move",
|
||||||
|
async () => {
|
||||||
|
game.override
|
||||||
|
.enemySpecies(Species.CHARIZARD)
|
||||||
|
.enemyMoveset(Array(4).fill(Moves.REVELATION_DANCE));
|
||||||
|
|
||||||
it.todo("should cancel Shell Trap and damage the target, even if the move would fail");
|
await game.classicMode.startBattle([Species.CHARIZARD]);
|
||||||
|
|
||||||
|
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
||||||
|
|
||||||
|
game.move.select(Moves.POWDER);
|
||||||
|
|
||||||
|
await game.phaseInterceptor.to(BerryPhase, false);
|
||||||
|
expect(enemyPokemon.getLastXMoves()[0].result).toBe(MoveResult.FAIL);
|
||||||
|
expect(enemyPokemon.hp).toBe(Math.ceil(3 * enemyPokemon.getMaxHp() / 4));
|
||||||
|
}, TIMEOUT
|
||||||
|
);
|
||||||
|
|
||||||
|
it(
|
||||||
|
"should cancel Shell Trap and damage the target, even if the move would fail",
|
||||||
|
async () => {
|
||||||
|
game.override.enemyMoveset(Array(4).fill(Moves.SHELL_TRAP));
|
||||||
|
|
||||||
|
await game.classicMode.startBattle([Species.CHARIZARD]);
|
||||||
|
|
||||||
|
const enemyPokemon = game.scene.getEnemyPokemon()!;
|
||||||
|
|
||||||
|
game.move.select(Moves.POWDER);
|
||||||
|
|
||||||
|
await game.phaseInterceptor.to(BerryPhase, false);
|
||||||
|
expect(enemyPokemon.getLastXMoves()[0].result).toBe(MoveResult.FAIL);
|
||||||
|
expect(enemyPokemon.hp).toBe(Math.ceil(3 * enemyPokemon.getMaxHp() / 4));
|
||||||
|
}, TIMEOUT
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue