Move check to trySetStatus() and update test

This commit is contained in:
NightKev 2025-01-17 22:23:34 -08:00
parent 1f9842328a
commit c76784135e
2 changed files with 5 additions and 4 deletions

View File

@ -3525,9 +3525,6 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
*/
canSetStatus(effect: StatusEffect | undefined, quiet: boolean = false, overrideStatus: boolean = false, sourcePokemon: Pokemon | null = null, ignoreField: boolean = false): boolean {
if (effect !== StatusEffect.FAINT) {
if (this.isFainted()) {
return false;
}
if (overrideStatus ? this.status?.effect === effect : this.status) {
return false;
}
@ -3609,6 +3606,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
if (!this.canSetStatus(effect, asPhase, false, sourcePokemon)) {
return false;
}
if (this.isFainted() && effect !== StatusEffect.FAINT) {
return false;
}
/**
* If this Pokemon falls asleep or freezes in the middle of a multi-hit attack,

View File

@ -434,7 +434,8 @@ describe("Status Effects", () => {
const player = game.scene.getPlayerPokemon()!;
player.hp = 0;
expect(player.canSetStatus(StatusEffect.BURN)).toBe(false);
expect(player.trySetStatus(StatusEffect.BURN)).toBe(false);
expect(player.status?.effect).not.toBe(StatusEffect.BURN);
});
});
});