diff --git a/src/data/ability.ts b/src/data/ability.ts index d94cf26c4ff..65ae1f22c2e 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -57,9 +57,9 @@ export class Ability implements Localizable { public generation: number; public isBypassFaint: boolean; public isIgnorable: boolean; - public isSuppressable: boolean; - public isCopiable: boolean; - public isReplaceable: boolean; + public isSuppressable = true; + public isCopiable = true; + public isReplaceable = true; public attrs: AbAttr[]; public conditions: AbAttrCondition[]; @@ -78,6 +78,9 @@ export class Ability implements Localizable { this.localize(); } + public get isSwappable(): boolean { + return this.isCopiable && this.isReplaceable; + } localize(): void { const i18nKey = Abilities[this.id].split("_").filter(f => f).map((f, i) => i ? `${f[0]}${f.slice(1).toLowerCase()}` : f.toLowerCase()).join("") as string; @@ -1160,7 +1163,7 @@ export class PostDefendAbilitySwapAbAttr extends PostDefendAbAttr { override canApplyPostDefend(pokemon: Pokemon, passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, hitResult: HitResult | null, args: any[]): boolean { return move.checkFlag(MoveFlags.MAKES_CONTACT, attacker, pokemon) - && attacker.getAbility().isReplaceable && attacker.getAbility().isCopiable && !move.hitsSubstitute(attacker, pokemon); + && attacker.getAbility().isSwappable && !move.hitsSubstitute(attacker, pokemon); } override applyPostDefend(pokemon: Pokemon, _passive: boolean, simulated: boolean, attacker: Pokemon, move: Move, _hitResult: HitResult, args: any[]): void { diff --git a/src/data/moves/move.ts b/src/data/moves/move.ts index 99d6e3fc3cf..0e9bde33fb4 100644 --- a/src/data/moves/move.ts +++ b/src/data/moves/move.ts @@ -7466,7 +7466,7 @@ export class SwitchAbilitiesAttr extends MoveEffectAttr { } getCondition(): MoveConditionFunc { - return (user, target, move) => [user, target].every(pkmn => pkmn.getAbility().isReplaceable && pkmn.getAbility().isCopiable); + return (user, target, move) => [user, target].every(pkmn => pkmn.getAbility().isSwappable); } }