diff --git a/src/data/move.ts b/src/data/move.ts index a81bbd4940e..7b5be63d603 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -7635,11 +7635,12 @@ export class SuppressAbilitiesAttr extends MoveEffectAttr { return false; } - target.summonData.abilitySuppressed = true; - globalScene.arena.triggerWeatherBasedFormChangesToNormal(); - globalScene.queueMessage(i18next.t("moveTriggers:suppressAbilities", { pokemonName: getPokemonNameWithAffix(target) })); + target.suppressAbility(); + + globalScene.arena.triggerWeatherBasedFormChangesToNormal(); + return true; } diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index 2aabaeacda4..5f4834595b5 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1498,6 +1498,14 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { applyOnGainAbAttrs(this, passive); } + /** + * Suppresses an ability and calls its onlose attributes + */ + public suppressAbility() { + this.summonData.abilitySuppressed = true; + [ true, false ].forEach((v) => applyOnLoseAbAttrs(this, v)); + } + /** * Checks if a pokemon has a passive either from: * - bought with starter candy diff --git a/src/test/abilities/neutralizing_gas.test.ts b/src/test/abilities/neutralizing_gas.test.ts index 2bfaf01df27..e3a577bf173 100644 --- a/src/test/abilities/neutralizing_gas.test.ts +++ b/src/test/abilities/neutralizing_gas.test.ts @@ -125,7 +125,7 @@ describe("Abilities - Neutralizing Gas", () => { expect(game.scene.arena.getTag(ArenaTagType.NEUTRALIZING_GAS)).toBeUndefined(); // No neut gas users are left }); - it.todo("should deactivate when suppressed by gastro acid", async () => { + it("should deactivate when suppressed by gastro acid", async () => { game.override.enemyMoveset(Moves.GASTRO_ACID); await game.classicMode.startBattle([ Species.FEEBAS ]);