Please donate money and help me raise over $3100 for my education.

Pokemon Ruby/Sapphire - Attack Explanations

This page is intended as a supplement to the Ruby/Sapphire attack list. For an explanation of terms used in this page, see the Glossary.

Two-turn attacks

In a two-turn attack, the user prepares for the attack on the first turn, and hits the opponent on the second turn. If the opponent is replaced or faints in between, the attack will hit the Pokemon currently on the opponent's position if possible; otherwise the opposing Pokemon closest to the (trainer's) left.

A two-turn attack is not a multi-turn attack, and vice versa.

Pay Day

In FireRed/LeafGreen, the amount of money gained per use is 10 times the user's level rather than 5 times the user's level.

Last move used

Whenever a Pokemon uses an attack, even if it fails, the game sets a variable to that move at the end of that Pokemon's turn. This variable is called the "last move used" and each Pokemon has a "last move used".

The "last move used" is set to 0xFFFF, an invalid identifier for a move, if the move used is Mimic, Sketch, or Transform.

The use of Pursuit while a Pokemon is being switched doesn't count as the "last move used".

Sketch uses a different version of the "last move used". The differences are that this variable does not change on the first turn of a two-turn attack or when a Pokemon tries to use a disabled move.

Weather

The weather moves can be used at any time, even during weather. A weather move fails if the weather condition associated with that move is already in effect. For example, Rain Dance fails while the weather is rainy.

In some wild battles, a particular weather condition already comes in effect before the first round of the battle. This condition lasts indefinitely. If a Pokemon has an ability that makes the weather change to a different condition, it then takes effect.

Multi-hit attacks

The multi-hit attacks are labeled "Multi-hit attack" and "Strikes twice" in the attack descriptions, as well as Triple Kick and Beat Up. For all multi-hit attacks except Triple Kick, an accuracy check is performed only once, namely, before the attack hits the opponent multiple times.

If the user is asleep when it would perform a hit of a multi-hit attack, the attack stops unless the multi-hit attack was used with Sleep Talk.

When the target of a multi-hit attack faints, the attack stops.

Moves that use other moves

In the Ruby/Sapphire games, the moves Mirror Move, Nature Power, Assist, Metronome, and Sleep Talk can use other moves.

For all these moves, the move being used is not considered the "last move used"; the move being used can be used even if it is disabled.

Assist

For Assist, the original, unmodified list of moves is used in move selection. Also, in Pokemon Colosseum, a move from a fainted Pokemon is not chosen.

Transform

When a wild Pokemon using Transform is caught, the effect of Transform ends.

In internal battles, the player's Pokemon gain Exp. Points based on the species that the enemy Pokemon was when it was defeated.

Mirror Move

Mirror Move uses a variable X. X is set to the last move that targeted the user for which all of the following are true:

  • The move succeeded in affecting Mirror Move's user (i.e. didn't miss, fail, or be ineffective against it).
  • The move has a target of "single non-user", "all opposing Pokemon", "opposing Pokemon selected at random", or "no target".
  • An accuracy check is performed for the move (i.e. the move has flag "e" in the Attack List).

If the move's target is "single non-user", the game chooses at random one of the opposing Pokemon as the target.

Special targeting cases:

  • A two-turn attack targets a Pokemon on both turns of use.
  • Snatch targets the opposing Pokemon closest to the trainer's left.

The variable X is set separately for each Pokemon and does not change as rounds end. When a Pokemon is replaced, its value for X is reset, as well as those of all of its opposing Pokemon.

If a move uses another move, these variables are not modified during its user's turn even if the move being used meets the criteria.

Descriptions of Common Effects

Common effects of attacks include status problems, confusion, and flinch. These effects are described below. A status problem is one of burn, poison, paralysis, sleep, or freeze. Status problems do not go away by replacing Pokemon, and they linger after battle. The status monitor also indicates fainting (FNT), when a Pokemon runs out of HP. Because of this, fainting overwrites other status problems. A status problem cannot be inflicted on a Pokemon if it already has a status problem.

Burn (BRN)

If a Pokemon is burned, the effectiveness of physical attacks it uses is halved, and it loses 1/8 of total HP at the end of every round. Fire types cannot be burned.

Poison (PSN)

If a Pokemon is poisoned, it loses 1/8 of total HP at the end of every round. Poison and steel types cannot be poisoned. Outside of battle, a poisoned Pokemon loses 1 HP every four steps the player walks. (The effect of Toxic is in all respects the same as poison, except for the HP loss method during battle, see "Toxic".)

Paralysis (PAR)

If a Pokemon is paralyzed, its Speed is multiplied by 1/4 (see Priority) and there is a 1/4 chance that it will be unable to attack during its turn. Ground types can be paralyzed by non-electric type attacks and by abilities.

Sleep (SLP)

When a Pokemon falls asleep, it receives a sleep count of 2 to 7. At the beginning of the Pokemon's turn, its sleep count declines by 1, and then it wakes up if the sleep count equals 0. The game stores the current duration of a Pokemon who is asleep, in case the Pokemon leaves battle and becomes active in another one.

Freeze (FRZ)

If a Pokemon is frozen, it cannot attack during its turn. Ice types cannot be frozen. At the beginning of the Pokemon's turn, it may be defrosted at a 10% chance. If the Pokemon loses HP due to a Fire-type attack, it becomes defrosted.

Confusion

When a Pokemon becomes confused, it receives a count of 2 to 5. At the beginning of the Pokemon's turn, this count declines by 1, then if it is greater than 0, there is a 50% chance that the Pokemon will deal damage to itself rather than use an attack. The self-inflicted confusion attack is a physical attack, has a base damage of 40, has no type, cannot be a critical hit, and ignores the effects of Reflect and Helping Hand. Confusion is removed from the Pokemon when it is switched.

Flinch

After another Pokemon uses a move that causes a Pokemon to flinch in the same round, the opponent can flinch and thus skip its attack this round.

Roar and Whirlwind

In wild battles, this attack fails if:

( ( ( X * ( (user's level) + (opponent's level) ) ) / 256 ) + 1 ) <= ((opponent's level) / 4)

where X is a random number from 0 through 255.

Toxic

"Toxic" poisoning is treated as a different status problem from normal poisoning; thus "toxic" poisoning does not revert to normal poisoning by any means, even when a battle ends.

When a Pokemon becomes badly poisoned, a variable, T, is set to 0. At the end of each round, if the Pokemon is badly poisoned, T increases by 1 (up to a maximum of 15) and the Pokemon loses 1/16 of its total HP, rounded down, times T. T is reset to 0 whenever the Pokemon becomes active.

Conversion 2

Conversion 2 takes into account the last move that targeted the user after the user's last turn. This move is represented by a variable (separate for each Pokemon) that is reset at the end of that Pokemon's turn and when that Pokemon is replaced.

This variable is set if the attack was successful against a Pokemon, meaning it didn't miss, fail, or be ineffective against it. If the variable is set to a move, the game also stores the type of that move. (The determined types of Hidden Power and Weather Ball are used.) If the attack was used, but wasn't successful against a Pokemon, the variable is set to 0xFFFF, an invalid identifier for a move, for that Pokemon.

Special targeting cases:

  • A two-turn attack targets a Pokemon on both turns of use.
  • Spikes and Snatch target the opposing Pokemon closest to the trainer's left.
  • Future Sight and Doom Desire target a Pokemon only when the attack is used.
  • Counter, Mirror Coat, and Bide target a Pokemon when an attack is returned.
  • Magic Coat has no target.
  • Curse targets a Pokemon only in its Ghost version. (Its type stored will be "???".)
  • The variable will be set to any moves that a move uses, when appropriate.

To avoid misunderstandings, abilities of Pokemon are ignored when determining whether a type is resistant or immune to another type. Furthermore, the effects of Foresight and Odor Sleuth are ignored in this determination.

Substitute

Substitute creates a decoy of the user; to make a decoy, the user loses 1/4 of its total HP. This attack fails if the HP reduced would faint the user or if the user already has a decoy. The decoy has life points equal to the HP lost this way. (The term "life points" is used here to differentiate it from HP, to avoid confusion when describing Substitute's effect.)

These are the main effects that happen while the user has a decoy:

  • Attacks by non-users can't inflict status problems, confusion, or flinching against the user, and Yawn will fail against the user.
  • Attacks and abilities by non-users, other than Haze or Tickle, can't reduce the user's stat stages.
  • If user would lose HP due to an attack by a non-user, the user's decoy loses that many life points instead.

Note that the last effect listed above is a replacement effect. If damage is intercepted to the decoy, Counter, Mirror Coat, Bide, and Rage are not affected by it.

When the decoy has no life points left, it breaks and Substitute's effect ends.

Any other effects that affect the user's HP do not involve the decoy in any way. This applies to reductions of the user's HP from poison, Leech Seed, Sandstorm, recoil, etc.; to effects that recover the user's HP; and to effects that need to know the user's HP (Super Fang, Reversal, Flail, Eruption, etc.). (This is why "life points" is used instead of HP to describe the decoy's vitality.)

The decoy will be removed when the user is switched or if the user faints before the decoy breaks. If the user uses Baton Pass, the decoy retains its current life points.

  • Effects that prevent the user from fainting (False Swipe, Endure, Focus Band) are ignored while the user has a decoy.
  • The game checks whether a decoy breaks after every hit of a multi-hit attack. The multi-hit attack will continue even after the decoy breaks.
  • Damage due to the user's confusion is given to the user.
  • Effects that cause the user to lose its item will fail, but other effects of the attack, if any, function normally. (The user may use Trick normally.)
  • If an opponent misses when using Jump Kick or Hi Jump Kick, it loses HP as normal.
  • Pain Split and Dream Eater will fail for non-users that target the user. The user may use these attacks normally.
  • The attack from Future Sight and Doom Desire is passed to the decoy instead of the user.
  • Swagger and Flatter will miss against the user.
  • Pay Day will not cause the opponent to gain money if it hits the user's decoy.
  • While user has a decoy, non-users' use of Smellingsalt against the user will have normal effectiveness, even if the user is paralyzed, and will not heal the user's paralysis if the attack hits the decoy.
  • Protect, Detect, and Endure work as normal for the user and non-users.
  • If the user has a decoy when a non-user begins to use a multi-turn attack, the secondary effect of that attack will not occur. The effect of multi-turn attacks will end when the user creates a decoy.
  • Trick will fail against the user. The user may use Trick normally.
  • When an opponent uses a recoil attack or a life-draining move (other than Dream Eater) against the user, it loses or recovers HP according to the number of life points lost by the decoy. (For example, if the opponent uses Absorb on the user and the decoy loses 10 life points, the opponent gains 5 HP.)
  • Block, Mean Look, and Spider Web will fail against the user.
  • Lock-on and Mind Reader will fail against the user. The user can use these attacks normally.
  • If a non-user is of Ghost type, Curse will fail for that non-user when used against the user.
  • Nightmare and Leech Seed will fail against the user.
  • Mimic and Sketch will fail against the user.
  • Transform will work as normal for the user and non-users.
  • The decoy will absorb damage from Pursuit if it attempts to switch normally.

Endure/Protect/Detect

If a Pokemon uses any of these three moves consecutively (for example, Protect then Endure, or Protect then Protect), the success rate for the move changes. If a random number from 0 through 65535 is less than or equal to the success rate, the attack succeeds. The number of uses is reset to 0 when the Pokemon is replaced or when one of these moves fails.

  • Uses: Success Rate
  • 1: 65535
  • 2: 32767
  • 3: 16383
  • 4: 8191

As a bug, the game doesn't set a maximum for the number of consecutive uses. Thus, in the rare case that more than four consecutive uses is achieved, the success rate can take on strange values as it accesses other data structures. For example, in the Ruby/Sapphire version, the next two values after these four are 118 and 165.

Of the moves that don't target an opponent (Bide, Haze, Milk Drink, Wish, Hail, Grudge, Imprison), only Bide is affected by Protect and Detect, namely when Bide returns an attack to a Pokemon.

The effect of Endure doesn't modify the damage calculated when Future Sight or Doom Desire, and neither does Focus Band's effect, since in both cases the opponent doesn't actually lose HP.

Reversal/Flail

N = int(User's current HP * 48 / User's total HP)

Value of N Base damage
33 or more 20
17 - 32 40
10 - 16 80
5 - 9 100
2 - 4 150
Less than 2 200

Low Kick

The base damage for Low Kick depends on the weight of the opponent's species:

Weight (kg)Base damage
0.1-9.9 kg20
10.0-24.9 kg40
25.0-49.9 kg60
50.0-99.9 kg80
100.0-199.9 kg100
200.0 kg or more120

Magnitude

Magnitude's base damage is randomly determined according to the table below.

MagnitudeProbabilityBase damage
45%10
510%30
620%50
730%70
820%90
910%110
105%150

Magic Coat

For attacks that target a single Pokemon, Magic Coat's effect bounces back the entire attack, making Magic Coat's user the user of that attack and targeting the attack's original user.

For attacks that target all opposing Pokemon, such as Leer and String Shot, Magic Coat works differently in double battles depending on where the user is located. If the user is the one on the (trainer's) left or if the user doesn't have a partner, Magic Coat's effect bounces back the entire attack, making Magic Coat's user the user of that attack and thereby affecting all opposing Pokemon. (If one of the opposing Pokemon used Magic Coat, the attack's effect on it will be bounced back [that user of Magic Coat will then be treated as the user of that portion of the attack].) If the user is the one on the right, the attack executes as normal, the user's partner is affected as normal, and the attack's effect on the user is bounced back. (If Magic Coat is in effect for both the user and its partner the one on the left's Magic Coat effect will be used against attacks like these.)

Things get complicated when Soundproof comes into play. For one attack, Growl, Soundproof bypasses Magic Coat's effect:

  • Pokemon 1A and 2A, who belong to side A, each use Magic Coat.
  • Pokemon 1B, who belongs to side B, uses Growl.
  • The attack first tries to target Pokemon 1A, but its Soundproof blocks Growl. Its Magic Coat effect is bypassed.
  • The attack then tries to target Pokemon 2A, but Pokemon 2A instead uses Growl and the attack goes back to Pokemon 1B.
  • If Pokemon 1B has Soundproof, it absorbs its Growl attack.

The attack's target and user are changed before an accuracy check is made for the attack.

Lock-On/Mind Reader

When the user uses either of these moves, the effect begins, two variables, X and Y, are set for the opponent's position: X is set to the user's position, and Y is set to 2. (Each position has a different set of variables.)

During the effect, upon reaching an accuracy check for an attack against the opponent, the game checks if the attacker's position is equal to X. If so, the attack succeeds automatically. However, the effect of Protect or Detect may override this effect. At the end of each round, Y is decreased by 1, and then if Y equals 0, the effect ends.

The effect ends when the user is switched or the opponent is switched. If either Pokemon uses Baton Pass, Y is reset to 2.

If a Pokemon uses Lock-On or Mind Reader against the opponent during the effect, the effect resets (X is set to the Pokemon's position and Y is set to 2).

Baton Pass

Effects transferred when Baton Pass is used:

  • Stat stages
  • Confusion
  • Substitute
  • Curse
  • Mean Look/Block/Spider Web
  • Leech Seed
  • Focus Energy
  • Lock-On/Mind Reader
  • Ingrain
  • Perish Song
  • Water Sport
  • Mud Sport

Snatch

If an attack affected by Snatch targets an opponent (the only such attack is Psych Up), the attack's new target becomes the attack's original user when the attack is taken due to Snatch. (Follow Me can't affect this.)

If more than one Pokemon uses Snatch in a round, the effect will create a chain if an attack affected by Snatch is then used: A Pokemon uses, e.g. Psych Up. Then the first user of Snatch takes the attack, then the second user of Snatch takes it, and finally the third user of Snatch, which will be the true user of Psych Up, targeting the second user of Snatch.

Hidden Power

The type and base damage of Hidden Power depend on its user's Individual Values (IVs).

HP Type = int((A+B+C+D+E+F)*15/63)

  • A through F are initially 0.
  • If HP IV is odd, A=1.
  • If Attack IV is odd, B=2.
  • If Defense IV is odd, C=4.
  • If Speed IV is odd, D=8.
  • If Special Attack IV is odd, E=16.
  • If Special Defense IV is odd, F=32.

The type is as follows:

0 = Fighting; 1 = Flying; 2 = Poison; 3 = Ground; 4 = Rock; 5 = Bug; 6 = Ghost; 7 = Steel; 8 = Fire; 9 = Water; 10 = Grass; 11 = Electric; 12 = Psychic; 13 = Ice; 14 = Dragon; 15 = Dark.

HP Base Damage = int((A+B+C+D+E+F)*40/63)+30

  • A through F are initially 0.
  • If BIT1(HP IV) is 1, A=1.
  • If BIT1(Attack IV) is 1, B=2.
  • If BIT1(Defense IV) is 1, C=4.
  • If BIT1(Speed IV) is 1, D=8.
  • If BIT1(Special Attack IV) is 1, E=16.
  • If BIT1(Special Defense IV) is 1, F=32.

Please donate money and help me raise over $3100 for my education.


Discussion