diff --git a/src/data/ability.ts b/src/data/ability.ts index 7fa046e2369..0ba4eb472ab 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -47,6 +47,7 @@ export class Ability implements Localizable { public description: string; public generation: integer; public isBypassFaint: boolean; + public isBypassOnField: boolean; public isIgnorable: boolean; public attrs: AbAttr[]; public conditions: AbAttrCondition[]; @@ -107,6 +108,11 @@ export class Ability implements Localizable { return this; } + bypassOnField(): Ability { + this.isBypassOnField = true; + return this; + } + ignorable(): Ability { this.isIgnorable = true; return this; @@ -5423,7 +5429,8 @@ export function initAbilities() { .attr(ProtectStatAbAttr) .ignorable(), new Ability(Abilities.NATURAL_CURE, 3) - .attr(PreSwitchOutResetStatusAbAttr), + .attr(PreSwitchOutResetStatusAbAttr) + .bypassOnField(), new Ability(Abilities.LIGHTNING_ROD, 3) .attr(RedirectTypeMoveAbAttr, Type.ELECTRIC) .attr(TypeImmunityStatStageChangeAbAttr, Type.ELECTRIC, Stat.SPATK, 1) @@ -5769,7 +5776,8 @@ export function initAbilities() { new Ability(Abilities.POISON_TOUCH, 5) .attr(PostAttackContactApplyStatusEffectAbAttr, 30, StatusEffect.POISON), new Ability(Abilities.REGENERATOR, 5) - .attr(PreSwitchOutHealAbAttr), + .attr(PreSwitchOutHealAbAttr) + .bypassOnField(), new Ability(Abilities.BIG_PECKS, 5) .attr(ProtectStatAbAttr, Stat.DEF) .ignorable(), @@ -5915,19 +5923,22 @@ export function initAbilities() { .attr(PostBiomeChangeWeatherChangeAbAttr, WeatherType.HEAVY_RAIN) .attr(PreSwitchOutClearWeatherAbAttr) .attr(PostFaintClearWeatherAbAttr) - .bypassFaint(), + .bypassFaint() + .bypassOnField(), new Ability(Abilities.DESOLATE_LAND, 6) .attr(PostSummonWeatherChangeAbAttr, WeatherType.HARSH_SUN) .attr(PostBiomeChangeWeatherChangeAbAttr, WeatherType.HARSH_SUN) .attr(PreSwitchOutClearWeatherAbAttr) .attr(PostFaintClearWeatherAbAttr) - .bypassFaint(), + .bypassFaint() + .bypassOnField(), new Ability(Abilities.DELTA_STREAM, 6) .attr(PostSummonWeatherChangeAbAttr, WeatherType.STRONG_WINDS) .attr(PostBiomeChangeWeatherChangeAbAttr, WeatherType.STRONG_WINDS) .attr(PreSwitchOutClearWeatherAbAttr) .attr(PostFaintClearWeatherAbAttr) - .bypassFaint(), + .bypassFaint() + .bypassOnField(), new Ability(Abilities.STAMINA, 7) .attr(PostDefendStatStageChangeAbAttr, (target, user, move) => move.category !== MoveCategory.STATUS, Stat.DEF, 1), new Ability(Abilities.WIMP_OUT, 7) @@ -6264,6 +6275,7 @@ export function initAbilities() { .attr(NoFusionAbilityAbAttr) .attr(PostBattleInitFormChangeAbAttr, () => 0) .attr(PreSwitchOutFormChangeAbAttr, (pokemon) => !pokemon.isFainted() ? 1 : pokemon.formIndex) + .bypassOnField() .bypassFaint(), new Ability(Abilities.COMMANDER, 9) .attr(CommanderAbAttr)