Uploaded November 2015 | Updated September 2026, 2 weeks ago
In a trainer battle, if the player uses a healing item or throws a ball during a turn in which the enemy uses Counter or Mirror Coat, the move will be succesful if it had effect against the player's previously used move.
If it's succesful in this scenario, it will deal damage to the player equal to twice the damage Counter or Mirror Coat would've dealt if they had no additional effect (like a move such as Tackle or Water Gun). In other words, since both Counter and Mirror Coat have a hardcoded base power of 1, they would "strike back" damage equivalent to a 1-base power fighting-type move or a 1-base power psychic-type move respectively.
The minimum damage in the battle formula is 2 for neutral moves, becoming 3 with STAB. Since the base power used during the calculation is merely 1, Counter or Mirror Coat will usually deal twice the value of the minimum possible damage, but they could do more if the attack/defense ratio is high enough.
This occurs because Counter and Mirror Coat also call the generic damage calculation function despite ignoring the result under normal circumstances. The result is still written to wCurDamage and stays there until it gets overwritten or cleared. This oversight doesn't occur in a wild battle, because in this case the wCurDamage address is cleared before Counter or Mirror Coat are used.
In a trainer battle, if the player uses a healing item or throws a ball during a turn in which the enemy uses Counter or Mirror Coat, the move will be succesful if it had effect against the player's previously used move.
If it's succesful in this scenario, it will deal damage to the player equal to twice the damage Counter or Mirror Coat would've dealt if they had no additional effect (like a move such as Tackle or Water Gun). In other words, since both Counter and Mirror Coat have a hardcoded base power of 1, they would "strike back" damage equivalent to a 1-base power fighting-type move or a 1-base power psychic-type move respectively.
The minimum damage in the battle formula is 2 for neutral moves, becoming 3 with STAB. Since the base power used during the calculation is merely 1, Counter or Mirror Coat will usually deal twice the value of the minimum possible damage, but they could do more if the attack/defense ratio is high enough.
This occurs because Counter and Mirror Coat also call the generic damage calculation function despite ignoring the result under normal circumstances. The result is still written to wCurDamage and stays there until it gets overwritten or cleared. This oversight doesn't occur in a wild battle, because in this case the wCurDamage address is cleared before Counter or Mirror Coat are used.










