Toxic Spikes - Properly removed by statused Poison types

Toxic spikes should now be removed by poison types who are statused before they are switched to, instead of ignoring their entry
This commit is contained in:
Stophles 2024-04-04 19:33:07 -05:00 committed by GitHub
parent 925bb73f0b
commit fab415c156
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -17,7 +17,21 @@ export enum ArenaTagSide {
ENEMY
}
export abstract class ArenaTag {
export abstract class ArenaTag {activateTrap(pokemon: Pokemon): boolean {
if (pokemon.isOfType(Type.POISON) && pokemon.isGrounded()) {
this.neutralized = true;
if (pokemon.scene.arena.removeTag(this.tagType)) {
pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` absorbed the ${this.getMoveName()}!`));
return true;
}
}
else if (!pokemon.status && pokemon.isGrounded()) {
const toxic = this.layers > 1;
if (pokemon.trySetStatus(!toxic ? StatusEffect.POISON : StatusEffect.TOXIC, true, null, `the ${this.getMoveName()}`))
return true;
}
return false;
}
public tagType: ArenaTagType;
public turnCount: integer;
public sourceMove: Moves;
@ -211,17 +225,19 @@ class ToxicSpikesTag extends ArenaTrapTag {
}
activateTrap(pokemon: Pokemon): boolean {
if (!pokemon.status && pokemon.isGrounded()) {
const toxic = this.layers > 1;
if (pokemon.trySetStatus(!toxic ? StatusEffect.POISON : StatusEffect.TOXIC, true, null, `the ${this.getMoveName()}`))
return true;
else if (pokemon.isOfType(Type.POISON)) {
if (pokemon.isOfType(Type.POISON) && pokemon.isGrounded()) {
this.neutralized = true;
if (pokemon.scene.arena.removeTag(this.tagType)) {
pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` absorbed the ${this.getMoveName()}!`));
return true;
}
}
else if (!pokemon.status && pokemon.isGrounded()) {
const toxic = this.layers > 1;
if (pokemon.trySetStatus(!toxic ? StatusEffect.POISON : StatusEffect.TOXIC, true, null, `the ${this.getMoveName()}`))
return true;
}
return false;
}
return false;