Appearance
Mirror Armor - Ability ID 240
In-Game Description
"Bounces back any stat drops inflicted by an enemy."
Extended In-Game Description
For use in Elite Redux extended ability UI (IMPORTANT: exactly 280-300 chars counted WITH spaces)
Mirror Armor reflects all stat-lowering moves and abilities back to the attacker. When an opponent tries to lower this Pokémon's stats, the stat drop affects the attacker instead. Includes moves like Intimidate, Sticky Web, and stat-lowering attacks. The reflection bypasses immunities.
Character count: 289
Detailed Mechanical Explanation
For Discord/reference use
Mirror Armor is a defensive ability that completely reverses stat-lowering effects against the user. When any move, ability, or entry hazard attempts to lower one or more of the Pokémon's stats, Mirror Armor activates and instead applies that stat reduction to the attacker.
Key Mechanics:
- Complete Stat Drop Reflection: Any stat-lowering effect is reflected back to the source
- Bypasses Immunities: The reflected stat drop ignores the attacker's normal immunities (e.g., Clear Body, Hyper Cutter)
- Works Against All Sources: Reflects stat drops from:
- Direct moves (e.g., Growl, Leer, Charm)
- Contact abilities (e.g., Intimidate on switch-in)
- Entry hazards (e.g., Sticky Web)
- Secondary effects of damaging moves
Implementation Details:
The ability is implemented through the StatLowerableOrMirrorArmor()
function in battle_util.c, which checks if a stat can be lowered normally OR if the target has Mirror Armor. When Mirror Armor is detected, the battle script system calls BattleScript_MirrorArmorReflect
which:
- Shows the Mirror Armor activation popup
- Redirects the stat change to affect the attacker instead of the defender
- Uses the
MOVE_EFFECT_AFFECTS_USER
flag to properly target the original attacker
Special Interactions:
- Self-Targeting Moves: Does not reflect stat drops from moves that the Pokémon uses on itself
- Multi-Target Moves: In multi-battles, reflects each stat drop individually
- Sticky Web: Has special handling to properly redirect Sticky Web's Speed drop to the original user when Mirror Armor activates on switch-in
- Breakable: The ability can be suppressed by Mold Breaker and similar effects
Battle Script Integration:
The ability integrates deeply with the battle system through multiple battle scripts:
BattleScript_MirrorArmorReflect
: Main reflection handlerBattleScript_MirrorArmorReflectStickyWeb
: Special case for Sticky Web- Uses
STAT_BUFF_ALLOW_PTR
flag for proper stat change redirection
This makes Mirror Armor an extremely powerful defensive ability that not only prevents stat drops but punishes opponents for attempting them, effectively turning their debuff strategies against them.