diff --git a/src/data/arena-tag.ts b/src/data/arena-tag.ts index 23471b30e8a..be08c38c3d7 100644 --- a/src/data/arena-tag.ts +++ b/src/data/arena-tag.ts @@ -8,7 +8,7 @@ import type Pokemon from "#app/field/pokemon"; import { HitResult, PokemonMove } from "#app/field/pokemon"; import { StatusEffect } from "#enums/status-effect"; import type { BattlerIndex } from "#app/battle"; -import { BlockNonDirectDamageAbAttr, InfiltratorAbAttr, PreLeaveFieldRemoveSuppressAbilitiesSourceAbAttr, ProtectStatAbAttr, applyAbAttrs, applyOnGainAbAttrs } from "#app/data/ability"; +import { BlockNonDirectDamageAbAttr, InfiltratorAbAttr, PreLeaveFieldRemoveSuppressAbilitiesSourceAbAttr, ProtectStatAbAttr, applyAbAttrs, applyOnGainAbAttrs, applyOnLoseAbAttrs } from "#app/data/ability"; import { Stat } from "#enums/stat"; import { CommonAnim, CommonBattleAnim } from "#app/data/battle-anims"; import i18next from "i18next"; @@ -1233,6 +1233,12 @@ export class SuppressAbilitiesTag extends ArenaTag { const pokemon = this.getSourcePokemon(); if (pokemon) { globalScene.queueMessage(i18next.t("abilityTriggers:postSummonNeutralizingGas", { pokemonNameWithAffix: getPokemonNameWithAffix(pokemon) })); + + for (const fieldPokemon of globalScene.getField()) { + if (fieldPokemon && fieldPokemon.id !== pokemon.id) { + [ true, false ].forEach((v) => applyOnLoseAbAttrs(fieldPokemon, v)); + } + } } } diff --git a/src/field/arena.ts b/src/field/arena.ts index 60ee4b5b03c..752eef81596 100644 --- a/src/field/arena.ts +++ b/src/field/arena.ts @@ -588,8 +588,8 @@ export class Arena { // creates a new tag object const newTag = getArenaTag(tagType, turnCount || 0, sourceMove, sourceId, targetIndex, side); if (newTag) { - this.tags.push(newTag); newTag.onAdd(this, quiet); + this.tags.push(newTag); const { layers = 0, maxLayers = 0 } = newTag instanceof ArenaTrapTag ? newTag : {};