Appearance
Impenetrable (Ability #326)
Overview
Impenetrable is a defensive ability that provides comprehensive protection against all forms of indirect damage. The Pokémon with this ability can only take damage from direct attacking moves, making it immune to various environmental hazards and status-related damage sources.
Mechanics
Core Protection
Impenetrable protects against all non-attack damage sources:
- Entry hazards: Spikes, Stealth Rock, Toxic Spikes
- Weather damage: Sandstorm, Hail
- Status condition damage: Poison, Burn, Bleeding, etc.
- Recoil damage: From moves like Take Down, Double-Edge
- Other indirect damage: Life Orb recoil, Curse damage, etc.
Implementation Details
- Uses the
magicGuard = TRUE
flag in the ability system - Functionally identical to the standard Magic Guard ability
- Checked via
IsMagicGuardProtected(battler)
function in battle logic - Also activated by Magic Room field condition
What It Does NOT Protect Against
- Direct damage from attacking moves
- Self-inflicted damage from moves like Belly Drum
- Struggle damage (when no PP remains)
Extended In-Game Description
Character Count Check: Let me count the extended description characters:
"Provides complete immunity to all forms of indirect damage including entry hazards like Spikes and Stealth Rock, weather effects such as Sandstorm and Hail, status condition damage from Poison and Burn, recoil damage from high-power moves, and various other sources."
Let me count: "Provides complete immunity to all forms of indirect damage including entry hazards like Spikes and Stealth Rock, weather effects such as Sandstorm and Hail, status condition damage from Poison and Burn, recoil damage from high-power moves, and various other sources." = 296 characters.
Extended Description (296 characters): "Provides complete immunity to all forms of indirect damage including entry hazards like Spikes and Stealth Rock, weather effects such as Sandstorm and Hail, status condition damage from Poison and Burn, recoil damage from high-power moves, and various other sources."
Battle Applications
Defensive Strategy
- Excellent for switching into hazard-heavy teams
- Allows safe use of Life Orb without recoil
- Immune to weather-based team strategies
- Can tank status moves without fear of residual damage
Synergy Considerations
- Pairs well with high-power recoil moves
- Benefits from status-inducing moves on the user's side
- Works well with Life Orb and similar items
Code Implementation
The ability is implemented as a simple flag in the Ability struct:
cpp
constexpr Ability Impenetrable = {
.magicGuard = TRUE,
};
The protection is checked throughout the battle system via the IsMagicGuardProtected()
function, which returns true for battlers with this ability or when Magic Room is active.
Related Systems
- Magic Room: Field condition that grants Magic Guard effect to all Pokémon
- IsMagicGuardProtected(): Central function for checking protection
- Entry hazard system: Spikes and Stealth Rock damage calculation
- Weather damage system: Sandstorm and Hail end-of-turn effects
- Status damage system: Poison, Burn, and other DoT effects
Competitive Impact
Strengths
- Complete immunity to chip damage
- Excellent for stallish strategies
- Counters hazard-stacking teams
- Enables Life Orb usage without drawback
Limitations
- No protection against direct attacks
- Cannot prevent status conditions (only their damage)
- Still vulnerable to direct move effects
- Struggle damage bypasses protection
Notes
- This ability is functionally identical to the classic Magic Guard ability
- The name "Impenetrable" suggests a defensive barrier concept
- Implementation reuses existing Magic Guard infrastructure for consistency