# Class MoveEffectAttr

Base class defining all Move Effect Attributes

#### See

`apply`

#### Hierarchy (view full)

- MoveAttr
  - MoveEffectAttr
    - RecoilAttr
    - SacrificialAttr
    - SacrificialAttrOnHit
    - HalfSacrificialAttr
    - HealAttr
    - PartyStatusCureAttr
    - HitHealAttr
    - StatusEffectAttr
    - PsychoShiftEffectAttr
    - StealHeldItemChanceAttr
    - RemoveHeldItemAttr
    - EatBerryAttr
    - HealStatusEffectAttr
    - WeatherChangeAttr
    - ClearWeatherAttr
    - TerrainChangeAttr
    - ClearTerrainAttr
    - StatChangeAttr
    - AcupressureStatChangeAttr
    - CopyStatsAttr
    - InvertStatsAttr
    - ResetStatsAttr
    - SwapStatsAttr
    - HpSplitAttr
    - DisableMoveAttr
    - FrenzyAttr
    - AddBattlerTagAttr
    - CurseAttr
    - LapseBattlerTagAttr
    - RemoveBattlerTagAttr
    - AddArenaTagAttr
    - RemoveArenaTagsAttr
    - RemoveArenaTrapAttr
    - RemoveScreensAttr
    - SwapArenaTagsAttr
    - RevivalBlessingAttr
    - ForceSwitchOutAttr
    - RemoveTypeAttr
    - CopyTypeAttr
    - CopyBiomeTypeAttr
    - ChangeTypeAttr
    - AddTypeAttr
    - FirstMoveTypeAttr
    - ReducePpMoveAttr
    - SketchAttr
    - AbilityChangeAttr
    - AbilityCopyAttr
    - AbilityGiveAttr
    - SwitchAbilitiesAttr
    - SuppressAbilitiesAttr
    - TransformAttr
    - MoneyAttr
    - DestinyBondAttr

- Defined in src/data/move.ts:789

#####
Index

### Constructors

constructor

### Properties

firstHitOnly
selfTarget
trigger

### Methods

apply
canApply
getCondition
getFailedText
getTargetBenefitScore
getUserBenefitScore

## Constructors

### constructor

- new MoveEffectAttr(selfTarget?, trigger?, firstHitOnly?): MoveEffectAttr

- #### Parameters

  - `Optional` selfTarget: boolean
  - `Optional` trigger: MoveEffectTrigger
  - firstHitOnly: boolean = false

  #### Returns MoveEffectAttr

  Overrides MoveAttr.constructor

  - Defined in src/data/move.ts:797

## Properties

### firstHitOnly

firstHitOnly: boolean

Should this effect only apply on the first hit?

- Defined in src/data/move.ts:795

### selfTarget

selfTarget: boolean

Should this `Move` target the user?

Inherited from MoveAttr.selfTarget

- Defined in src/data/move.ts:718

### trigger

trigger: MoveEffectTrigger

Defines when this effect should trigger in the move's effect order

#### See

MoveEffectPhase.start

- Defined in src/data/move.ts:793

## Methods

### apply

- apply(user, target, move, args): boolean | Promise<boolean>

- Applies move effects so long as they are able based on `canApply`

  #### Parameters

  - user: default
  - target: default
  - move: default
  - args: any[]

  #### Returns boolean | Promise<boolean>

  Overrides MoveAttr.apply

  - Defined in src/data/move.ts:818

### canApply

- canApply(user, target, move, args): boolean

- Determines whether the `Move`'s effects are valid to `apply`

  #### Parameters

  - user: default

    `Pokemon` using the move

  - target: default

    `Pokemon` target of the move

  - move: default

    `Move` with this attribute

  - args: any[]

    Set of unique arguments needed by this attribute

  #### Returns boolean

  true if basic application of the ability attribute should be possible

  - Defined in src/data/move.ts:812

### getCondition

- getCondition(): MoveCondition | MoveConditionFunc

- #### Returns MoveCondition | MoveConditionFunc

  the `MoveCondition` or MoveConditionFunc for this `Move`

  Inherited from MoveAttr.getCondition

  - Defined in src/data/move.ts:742

### getFailedText

- getFailedText(user, target, move, cancelled): string

- #### Parameters

  - user: default

    `Pokemon` using the move

  - target: default

    `Pokemon` target of the move

  - move: default

    `Move` with this attribute

  - cancelled: BooleanHolder

    `Utils.BooleanHolder` which stores if the move should fail

  #### Returns string

  the string representing failure of this `Move`

  Inherited from MoveAttr.getFailedText

  - Defined in src/data/move.ts:754

### getTargetBenefitScore

- getTargetBenefitScore(user, target, move): number

- Used by the Enemy AI to rank an attack based on a given target

  #### Parameters

  - user: default
  - target: default
  - move: default

  #### Returns number

  #### See

  `EnemyPokemon.getNextMove`

  Inherited from MoveAttr.getTargetBenefitScore

  - Defined in src/data/move.ts:772

### getUserBenefitScore

- getUserBenefitScore(user, target, move): number

- Used by the Enemy AI to rank an attack based on a given user

  #### Parameters

  - user: default
  - target: default
  - move: default

  #### Returns number

  #### See

  `EnemyPokemon.getNextMove`

  Inherited from MoveAttr.getUserBenefitScore

  - Defined in src/data/move.ts:763