Appearance
Sea Guardian (Ability #356)
Overview
Sea Guardian is a weather-dependent entry ability that provides an immediate stat boost when switching into battle during rain conditions. The ability intelligently selects the Pokémon's highest current stat (including existing modifications) and raises it by one stage, making it highly adaptable to different battle situations.
Mechanics
Activation Requirements
- Weather: Any form of rain weather must be active
- Trigger: Activates on entry (switching in or battle start)
- One-time: Only triggers once per battle entry
Weather Detection
The ability recognizes all rain types:
- Standard Rain (5/8 turns)
- Permanent Rain effects
- Primordial Sea (infinite rain)
Stat Selection Process
- Calculates current values for all five battle stats
- Includes existing stat stage modifications
- Selects the highest total value
- Applies +1 stage boost to that stat
Code Implementation
Location: /Users/joel/Github/eliteredux/eliteredux-source/src/abilities.cc
(lines 3753-3763)
cpp
constexpr Ability SeaGuardian = {
.onEntry = +[](ON_ENTRY) -> int {
CHECK(IsBattlerWeatherAffected(battler, WEATHER_RAIN_ANY))
CHECK(ChangeStatBuffs(battler, 1, GetHighestStatId(battler, TRUE), MOVE_EFFECT_AFFECTS_USER, NULL))
BattleScriptPushCursorAndCallback(BattleScript_AttackerAbilityStatRaiseEnd3);
return TRUE;
},
};
Key Functions
IsBattlerWeatherAffected()
: Checks for rain weather affecting the PokémonGetHighestStatId(battler, TRUE)
: Determines highest stat including current stagesChangeStatBuffs()
: Applies the +1 stage boost
Strategic Applications
Offensive Usage
- Boosts Attack for physical sweepers in rain
- Enhances Special Attack for special attackers
- Provides Speed boosts for fast pivots
Defensive Usage
- Improves bulk with Defense/Special Defense boosts
- Adapts to current battle conditions automatically
Weather Team Synergy
- Perfect for Rain teams with Drizzle setters
- Combines well with Swift Swim and other rain abilities
- Provides immediate value upon entry
Pokémon Distribution
Sea Guardian appears on 16 different Pokémon, including:
Water-type Legends: Gyarados, Suicune, Milotic, Kyogre, Palkia Mega Forms: Mega Kingdra variants, Mega Gallade Redux Redux Variants: Gible/Gabite/Garchomp Redux line Mixed Types: Various Water-types and rain-associated Pokémon
Competitive Analysis
Strengths
- Immediate stat boost without turn investment
- Adapts to current battle state intelligently
- Strong synergy with rain teams
- Unpredictable boost target makes it hard to counter
Weaknesses
- Weather dependency limits activation
- One-time use per entry
- Can be disrupted by weather removal
- Boost can be negated by stat reset moves
Counters
- Weather Control: Removes rain conditions
- Clear Smog/Haze: Resets stat boosts
- Air Lock/Cloud Nine: Negates weather effects
- Rapid weather changes: Can prevent activation
Related Abilities
- Majestic Moth: Similar highest stat boost without weather requirement
- Intrepid Sword/Dauntless Shield: Fixed stat boosts on entry
- Download: Context-sensitive stat boost ability
- Weather-dependent abilities: Swift Swim, Chlorophyll, etc.
Battle Messages
When Sea Guardian activates:
- Shows ability activation message
- Displays stat boost notification
- Updates battle display with new stat stage
Technical Notes
- Uses standard stat boost mechanics
- Cannot boost beyond +6 stages
- Fails if already at maximum boost for the highest stat
- Weather immunity abilities can prevent activation
- Works in all battle formats (singles, doubles, etc.)
Code References
- Implementation:
src/abilities.cc:3753-3763
- Weather Check:
src/battle_util.c
(IsBattlerWeatherAffected) - Stat Selection:
src/battle_util.c
(GetHighestStatId) - Battle Script:
data/battle_scripts_1.s
(BattleScript_AttackerAbilityStatRaiseEnd3) - Ability ID: 356 (ABILITY_SEA_GUARDIAN)