Pokémon Ruby/Sapphire - Damage Calculation
Damage Calculation in Detail
The game performs the following steps in this order.
- Some moves have a calculated power, the determination of which is handled here. This applies to Hidden Power, Rollout and Ice Ball, Reversal and Flail, Magnitude, and so on.
- In internal battles, the Gym Badges increase the appropriate stat by 1.1. (The Stone Badge increases Attack, the Balance Badge increases Defense, and the Mind Badge increases Special Attack and Special Defense.)
- The stats are modified according to the attacker's and opponent's stat stages. If the attack is a critical hit, the Attack/Special Attack stat stage is temporarily 0 if it is less than 0, and the Defense/Special Defense stat stage is temporarily 0 if it is greater than 0.
- If the opponent has Marvel Scale and has a status problem, multiply Defense by 1.5.
- If the attack is Selfdestruct or Explosion, the opponent's Defense is halved.
- If the opponent is Clamperl with Deepseascale, Special Defense is doubled.
- If the attacker is Latios/Latias with Soul Dew, multiply Special Attack by 1.5 except in the Battle Tower and the Battle Frontier.
- If the opponent is Latios/Latias with Soul Dew, multiply Special Defense by 1.5 except in the Battle Tower and the Battle Frontier.
- If the opponent is Ditto with Metal Powder, Defense is doubled.
- The following items increase Attack by 1.1 if the attacker is holding it and the attack is the appropriate type:
- Silk Scarf - Normal
- Black Belt - Fighting
- Sharp Beak - Flying
- Poison Barb - Poison
- Soft Sand - Ground
- Hard Stone - Rock
- Silverpowder - Bug
- Spell Tag - Ghost
- Metal Coat - Steel
- The following items increase Special Attack by 1.1 if the attacker is holding it and the attack is the appropriate type:
- Charcoal - Fire
- Mystic Water - Water
- Miracle Seed - Grass
- Magnet - Electric
- TwistedSpoon - Psychic
- Nevermeltice - Ice
- Dragon Fang - Dragon
- Blackglasses - Dark
- If the attacker holds a Sea Incense and the attack is a Water type, multiply Special Attack by 1.05.
- If the attacker holds a Choice Band, multiply Attack by 1.5.
- If the attacker is Clamperl with Deepseatooth, Special Attack is doubled.
- If the attacker is Pikachu with Light Ball, Special Attack is doubled.
- If the attacker is Cubone/Marowak with Thick Club, Attack is doubled.
- If the attacker has Pure Power or Huge Power, Attack is doubled.
- If the attacker has Hustle, multiply Attack by 1.5.
- If the attacker has Guts and has a status problem, multiply Attack by 1.5.
- If the attacker has Minus and another active Pokémon has Plus, multiply Special Attack by 1.5.
- If the attacker has Plus and another active Pokémon has Minus, multiply Special Attack by 1.5.
- If the attacker has Flash Fire and that ability is activated, multiply the power by 1.5 if the attack is of Fire type.
- If the attacker's HP is 1/3 or less and one of the following is true, multiply the power by 1.5.
- Attacker has Overgrow and attack is of type Grass.
- Attacker has Blaze and attack is of type Fire.
- Attacker has Torrent and attack is of type Water.
- Attacker has Swarm and attack is of type Bug.
- Mud Sport/Water Sport
- If the opponent has Thick Fat and the attack is either of Fire or Ice type, Special Attack is halved.
- The damage becomes equal to:
int(int(int(2*L/5+2)*A*P/D)/50)
where L is the attacker's level, A is the attacker's Attack/Special Attack value, P is the attack's power, and D is the opponent's Defense/Special Defense value. For physical attack types (Normal, Fighting, Flying, Poison, Ground, Rock, Bug, Ghost, Steel), use the Attack and Defense values. For special attack types (Fire, Water, Electric, Grass, Ice, Psychic, Dragon, Dark), use the Special Attack and Special Defense values. - If the attack targets "all opposing Pokémon" and there were two Pokémon on the opposing Pokémon's side as the attacker began to use the move, divide the calculated damage by 2.
- If no active Pokémon has the Cloud Nine or Air Lock ability, the damage is modified as follows.
- If the weather is sunny, effectiveness of fire-type attacks is multiplied by 1.5 and effectiveness of water-type attacks is halved.
- If the weather is rain, effectiveness of water-type attacks is multiplied by 1.5 and effectiveness of fire-type attacks is halved.
- During Hail, Rain Dance, or Sandstorm, Solarbeam's effectiveness is halved.
- Add 2 to the calculated damage.
- If the attack type shares a type with one of the attacker's types, multiply the damage by 1.5. (This is called Same Type Attack Bonus.)
- For each type the opponent has, a number is multiplied according to the attack type's effectiveness to that type. See below.
- Stomp/Needle Arm/Astonish/Extrasensory
- Weather Ball
- Pursuit/Facade/Smellingsalt/Revenge
- If the attacker's partner used Helping Hand this round, multiply the damage by 1.5.
- If the attacker is burned, effectiveness of physical attacks is halved unless attacker has Guts.
- If Charge is in effect for the attacker and the attack is of Electric type, multiply the damage by 1.5.
- If Reflect is in effect for opponent and the attack is not a critical hit, effectiveness of physical attacks is halved if there is only one active Pokémon on the opponent's side, or multiplied by 2/3 otherwise.
- If Light Screen is in effect for opponent and the attack is not a critical hit, effectiveness of special attacks is halved if there is only one active Pokémon on the opponent's side, or multiplied by 2/3 otherwise.
- The damage is multiplied by X, where X is a random number from 85 through 100, and divided by 100. This step is called "damage weighting."
- If the attack is a critical hit, the damage is doubled.
Stat Stages
Stat stages refer to levels that increase or decrease stats during a battle. Each stat stage has 13 different levels.
| Stat Stage | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| Stat Multiplier | 10/40 | 10/35 | 10/30 | 10/25 | 10/20 | 10/15 | 10/10 | 15/10 | 20/10 | 25/10 | 30/10 | 35/10 | 40/10 |
That stat scale applies to the stat stages for Attack, Defense, Speed, Special Attack, and Special Defense. At the start of a battle, each Pokémon's stat stages begin at 0. The stat stages for a Pokémon are reset to 0 when the Pokémon is switched.
To apply stat stages, multiply the stat by the stat multiplier for the corresponding stat stage.
The term "stat stages" refers to those for Attack, Defense, Speed, Special Attack, and Special Defense, as well as those for evasiveness and Accuracy (see Accuracy check).
Critical Hit Method
- Set C to 0.
- If Focus Energy is in effect for attacker, add 2 to C.
- If attack has a "good chance for a critical hit", add 1 to C.
- If attacker is Chansey with Lucky Punch, add 2 to C.
- If attacker is Farfetch'd with Stick, add 2 to C.
- If attacker has Scope Lens attached, add 1 to C.
- The critical hit ratio is as follows:
- C = 0: 1/16
- C = 1: 1/8
- C = 2: 1/4
- C = 3: 1/3
- C = 4 or more: 1/2
Battle Chart
Attack types are the rows; Pokémon types are the columns.
| Attack Type | NOR | FIG | FLY | POI | GRO | ROC | BUG | GHO | STE | FIR | WAT | GRA | ELE | PSY | ICE | DRA | DAR |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NORMAL | 1x | 1x | 1x | 1x | 1x | 1/2 | 1x | 0 | 1/2 | 1x | 1x | 1x | 1x | 1x | 1x | 1x | 1x |
| FIGHTING | 2x | 1x | 1/2 | 1/2 | 1x | 2x | 1/2 | 0 | 2x | 1x | 1x | 1x | 1x | 1/2 | 2x | 1x | 2x |
| FLYING | 1x | 2x | 1x | 1x | 1x | 1/2 | 2x | 1x | 1/2 | 1x | 1x | 2x | 1/2 | 1x | 1x | 1x | 1x |
| POISON | 1x | 1x | 1x | 1/2 | 1/2 | 1/2 | 1x | 1/2 | 0 | 1x | 1x | 2x | 1x | 1x | 1x | 1x | 1x |
| GROUND | 1x | 1x | 0 | 2x | 1x | 2x | 1/2 | 1x | 2x | 2x | 1x | 1/2 | 2x | 1x | 1x | 1x | 1x |
| ROCK | 1x | 1/2 | 2x | 1x | 1/2 | 1x | 2x | 1x | 1/2 | 2x | 1x | 1x | 1x | 1x | 2x | 1x | 1x |
| BUG | 1x | 1/2 | 1/2 | 1/2 | 1x | 1x | 1x | 1/2 | 1/2 | 1/2 | 1x | 2x | 1x | 2x | 1x | 1x | 2x |
| GHOST | 0 | 1x | 1x | 1x | 1x | 1x | 1x | 2x | 1/2 | 1x | 1x | 1x | 1x | 2x | 1x | 1x | 1/2 |
| STEEL | 1x | 1x | 1x | 1x | 1x | 2x | 1x | 1x | 1/2 | 1/2 | 1/2 | 1x | 1/2 | 1x | 2x | 1x | 1x |
| FIRE | 1x | 1x | 1x | 1x | 1x | 1/2 | 2x | 1x | 2x | 1/2 | 1/2 | 2x | 1x | 1x | 2x | 1/2 | 1x |
| WATER | 1x | 1x | 1x | 1x | 2x | 2x | 1x | 1x | 1x | 2x | 1/2 | 1/2 | 1x | 1x | 1x | 1/2 | 1x |
| GRASS | 1x | 1x | 1/2 | 1/2 | 2x | 2x | 1/2 | 1x | 1/2 | 1/2 | 2x | 1/2 | 1x | 1x | 1x | 1/2 | 1x |
| ELECTRIC | 1x | 1x | 2x | 1x | 0 | 1x | 1x | 1x | 1x | 1x | 2x | 1/2 | 1/2 | 1x | 1x | 1/2 | 1x |
| PSYCHIC | 1x | 2x | 1x | 2x | 1x | 1x | 1x | 1x | 1/2 | 1x | 1x | 1x | 1x | 1/2 | 1x | 1x | 0 |
| ICE | 1x | 1x | 2x | 1x | 2x | 1x | 1x | 1x | 1/2 | 1/2 | 1/2 | 2x | 1x | 1x | 1/2 | 2x | 1x |
| DRAGON | 1x | 1x | 1x | 1x | 1x | 1x | 1x | 1x | 1/2 | 1x | 1x | 1x | 1x | 1x | 1x | 2x | 1x |
| DARK | 1x | 1/2 | 1x | 1x | 1x | 1x | 1x | 2x | 1/2 | 1x | 1x | 1x | 1x | 2x | 1x | 1x | 1/2 |
