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
pull/36/head
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
1 changed files with 27 additions and 11 deletions

View File

@ -17,7 +17,21 @@ export enum ArenaTagSide {
ENEMY 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 tagType: ArenaTagType;
public turnCount: integer; public turnCount: integer;
public sourceMove: Moves; public sourceMove: Moves;
@ -211,17 +225,19 @@ class ToxicSpikesTag extends ArenaTrapTag {
} }
activateTrap(pokemon: Pokemon): boolean { activateTrap(pokemon: Pokemon): boolean {
if (!pokemon.status && pokemon.isGrounded()) { if (pokemon.isOfType(Type.POISON) && 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)) {
this.neutralized = true; this.neutralized = true;
if (pokemon.scene.arena.removeTag(this.tagType)) { if (pokemon.scene.arena.removeTag(this.tagType)) {
pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` absorbed the ${this.getMoveName()}!`)); pokemon.scene.queueMessage(getPokemonMessage(pokemon, ` absorbed the ${this.getMoveName()}!`));
return true; 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; return false;