# PostDefendPerishSongAbAttr | pokemon-rogue-battle
Documentation for pokemon-rogue-battle

# Class PostDefendPerishSongAbAttr

@description: This ability applies the Perish Song tag to the attacking pokemon and the defending pokemon if the move makes physical contact and neither pokemon already has the Perish Song tag. PostDefendPerishSongAbAttr

#### Hierarchy (View Summary)

- PostDefendAbAttr
  - PostDefendPerishSongAbAttr

- Defined in src/data/ability.ts:1111

##### Index

### Constructors

constructor

### Properties

showAbility

### Methods

addCondition
apply
applyPostDefend
canApply
canApplyPostDefend
getCondition
getTriggerMessage

## Constructors

### constructor

- new PostDefendPerishSongAbAttr(turns: number): PostDefendPerishSongAbAttr

  #### Parameters

  - turns: number

  #### Returns PostDefendPerishSongAbAttr

  Overrides PostDefendAbAttr.constructor

  - Defined in src/data/ability.ts:1114

## Properties

### showAbility

showAbility: boolean

Inherited from PostDefendAbAttr.showAbility

- Defined in src/data/ability.ts:184

## Methods

### addCondition

- addCondition(condition: AbAttrCondition): AbAttr

  #### Parameters

  - condition: AbAttrCondition

  #### Returns AbAttr

  Inherited from PostDefendAbAttr.addCondition

  - Defined in src/data/ability.ts:209

### apply

- apply(
  pokemon: default ,
  passive: boolean,
  simulated: boolean,
  cancelled: null | BooleanHolder ,
  args: any[],
  ): void

  Applies ability effects without checking conditions

  #### Parameters

  - pokemon: default

    The pokemon to apply this ability to

  - passive: boolean

    Whether or not the ability is a passive

  - simulated: boolean

    Whether the call is simulated

  - cancelled: null | BooleanHolder
  - args: any[]

    Extra args passed to the function. Handled by child classes.

  #### Returns void

  #### See

  `canApply`

  Inherited from PostDefendAbAttr.apply

  - Defined in src/data/ability.ts:199

### applyPostDefend

- applyPostDefend(
  pokemon: default ,
  _passive: boolean,
  simulated: boolean,
  attacker: default ,
  move: default ,
  _hitResult: HitResult ,
  _args: any[],
  ): void

  #### Parameters

  - pokemon: default
  - _passive: boolean
  - simulated: boolean
  - attacker: default
  - move: default
  - _hitResult: HitResult
  - _args: any[]

  #### Returns void

  Overrides PostDefendAbAttr.applyPostDefend

  - Defined in src/data/ability.ts:1125

### canApply

- canApply(
  pokemon: default ,
  passive: boolean,
  simulated: boolean,
  args: any[],
  ): boolean

  Returns a boolean describing whether the ability can be applied under current conditions

  #### Parameters

  - pokemon: default

    The pokemon to apply this ability to

  - passive: boolean

    Whether or not the ability is a passive

  - simulated: boolean

    Whether the call is simulated

  - args: any[]

    Extra args passed to the function. Handled by child classes.

  #### Returns boolean

  `true` if the ability can be applied, `false` otherwise

  #### See

  `apply`

  Inherited from PostDefendAbAttr.canApply

  - Defined in src/data/ability.ts:223

### canApplyPostDefend

- canApplyPostDefend(
  pokemon: default ,
  passive: boolean,
  simulated: boolean,
  attacker: default ,
  move: default ,
  hitResult: null | HitResult ,
  args: any[],
  ): boolean

  #### Parameters

  - pokemon: default
  - passive: boolean
  - simulated: boolean
  - attacker: default
  - move: default
  - hitResult: null | HitResult
  - args: any[]

  #### Returns boolean

  Overrides PostDefendAbAttr.canApplyPostDefend

  - Defined in src/data/ability.ts:1120

### getCondition

- getCondition(): null | AbAttrCondition

  #### Returns null | AbAttrCondition

  Inherited from PostDefendAbAttr.getCondition

  - Defined in src/data/ability.ts:205

### getTriggerMessage

- getTriggerMessage(
  pokemon: default ,
  abilityName: string,
  ..._args: any[],
  ): string

  #### Parameters

  - pokemon: default
  - abilityName: string
  - ..._args: any[]

  #### Returns string

  Overrides PostDefendAbAttr.getTriggerMessage

  - Defined in src/data/ability.ts:1132