Every pokémon has 3 base stats: stamina, attack, defense. Stamina determines a pokémon's HP. However, I still don't understand what attack and defense do. If pokémon use moves that deal a fixed amount of damage (e.g. Vine Whip does 7 damage), why do attack/defense stats matter?
For example, Venusaur has a higher attack stat than Bulbasaur (198 vs. 126). Both of them can use Vine Whip. Wouldn't they both deal the same amount of damage? So why does it matter that Venusaur has a higher attack stat than Bulbasaur?
I feel like there should be some kind of equation that uses the attack stat of the attacker, and the defense stat of the defender in order to modify the damage in some way. Otherwise, these two stats seem irrelevant.
Note that I am not talking about Type Effectiveness or STAB. I know how those modify the damage. I'm asking about how the attack and defense stats that pokémon have modify the damage they do.
"V0001_POKEMON_BULBASAUR"
...
Stats {
BaseStamina: 90
BaseAttack: 126
BaseDefense: 126
}
"V0003_POKEMON_VENUSAUR"
...
Stats {
BaseStamina: 160
BaseAttack: 198
BaseDefense: 200
}
Best Answer
Attack and Defense greatly affect damage.
There is an equation used by the game, but it never reveals exactly what that formula is. However, after lots of testing I believe we've finally figured out what that formula is. You can see how it was done on Reddit here!
Note: Testing has determined that critical damage is not currently implemented in Pokemon GO, so it is not included in the formula.
Note: Some versions of the formula do not have "CpM_Atk / CpM_Def". This means that those numbers were already factored into "Attack / Defense". I choose to separate these so that it is more clear how a pokemon's level affects damage.
Extra Information
The base Attack and Defense stats for all pokemon: here.
The CP_Multiplier for each pokemon level: here.
The type effectiveness for all 18 types: here
Information about what IV's are: here.
Example #1
Attack = 100
Defense = 50
CpM_Atk = 0.7317 (level 30)
CpM_Def = 0.5974 (level 20)
STAB = 1.25
Effectiveness = 1.25
Power = 25
Example #2
Now for a real example, and I will go into much more detail this time. Let's say a level 20 Venusaur attacks level 20 Bulbasaur with Razor Leaf. Let's also assume Venusaur's IV's are all 12, and Bulbasaur's IV's are all 9.
Attack = 210
Venusaur's base attack stat is 198. Its Attack IV is 12, so we add those together to have a combined attack stat of 210 (198 + 12).
Defense = 135
Bulbasaur's base defense stat is 126. Its Defense IV is 9, so we add those together to have a combined defense stat of 135 (126 + 9).
CpM_Atk = 0.5974
Venusaur is level 20, and the CP_Multiplier for that level is 0.5974.
CpM_Def = 0.5974
Bulbasaur is level 20, and the CP_Multiplier for that level is 0.5974.
STAB = 1.25
Venusaur is a Grass/Poison type pokemon. Razor Leaf is a Grass type attack. Since the attack type matches one of Venusaur's types, the attack deals bonus damage.
Type = 0.64
Vine Whip is a Grass type attack being used against a Grass/Poison type pokemon.
Grass type attacks are not very effective against Grass type pokemon (x0.8).
They are also not very effective against Poison type pokemon (x0.8).
These two damage multipliers combine to make the attack double ineffective. 0.8 * 0.8 = 0.64.
Power = 15
The base damage for Razor Leaf is 15.
Example #3
Now let's do the reverse of the above: Bulbasaur attacks Venusaur with Razor Leaf.
Attack = 135 (126 + 9)
Defense = 212 (200 + 12)
CpM_Atk = 0.5974 (level 20)
CpM_Def = 0.5974 (level 20)
STAB = 1.25
Type = 0.64
Power = 15
Summary
Example 1 showed how both attack/defense and level affect damage.
Example 2 & 3 showed that when pokemon are the same level, attack and defense play a large role in damage. Venusaur did 10 damage to Bulbasaur with Razor Leaf, while Bulbasaur only did 4 damage with the same attack.
The formula also shows why Magikarp deals damage even though Splash has a base damage of 0. One damage is always added onto the end of every attack.