Appearance
Vengeful Spirit - Ability ID 565
In-Game Description
"Haunted Spirit + Vengeance."
Extended In-Game Description
For use in Elite Redux extended ability UI (IMPORTANT: exactly 280-300 chars counted WITH spaces)
Combines Haunted Spirit and Vengeance effects. When KO'd by contact moves, curses the attacker to lose 1/4 HP each turn. When at 1/3 HP or less, Ghost-type moves deal 50% more damage. Provides both defensive punishment and offensive comeback potential.
Character count: 296
Detailed Mechanical Explanation
For Discord/reference use
Vengeful Spirit is a powerful combination ability that merges two distinct effects:
Haunted Spirit Component (.onDefender)
- Trigger: When the Pokémon is KO'd by a contact move
- Effect: Applies Curse status to the attacker (STATUS2_CURSED)
- Damage: Cursed Pokémon lose 1/4 of their max HP each turn
- Immunities:
- Ghost-type attackers are immune
- Attackers already cursed are immune
- Contact Requirement: Only works against moves that make contact
Vengeance Component (.onOffensiveMultiplier)
- Trigger: When using Ghost-type moves at low HP
- Condition: Pokémon must be at 1/3 HP or less
- Effect: 1.5x damage multiplier for Ghost-type moves
- Implementation: Uses SWARM_MULTIPLIER(TYPE_GHOST) macro
Technical Implementation
cpp
constexpr Ability VengefulSpirit = {
.onDefender = HauntedSpirit.onDefender,
.onOffensiveMultiplier = Vengeance.onOffensiveMultiplier,
};
The HauntedSpirit.onDefender function:
cpp
.onDefender = +[](ON_DEFENDER) -> int {
CHECK(ShouldApplyOnHitAffect(attacker))
CHECK_NOT(IsBattlerAlive(battler))
CHECK_NOT(IS_BATTLER_OF_TYPE(attacker, TYPE_GHOST))
CHECK_NOT(gBattleMons[attacker].status2 & STATUS2_CURSED)
CHECK(IsMoveMakingContact(move, attacker))
gBattleMons[attacker].status2 |= STATUS2_CURSED;
BattleScriptCall(BattleScript_HauntedSpiritActivated);
return TRUE;
},
The Vengeance.onOffensiveMultiplier uses SWARM_MULTIPLIER:
cpp
#define SWARM_MULTIPLIER(type) \
+[](ON_OFFENSIVE_MULTIPLIER) { \
if (moveType == type) { \
if (gBattleMons[battler].hp <= (gBattleMons[battler].maxHP / 3)) \
MUL(1.5); \
} \
}
Competitive Applications
- Defensive Punishment: Deters physical attackers from making contact
- Revenge Kills: Low HP Ghost moves become extremely powerful
- Pivot Potential: Forces opponents to choose between curse damage or switching
- Ghost-type Synergy: Pairs excellently with Ghost-type movesets
- Anti-Physical: Specifically counters contact-based physical attackers
Strategic Usage
- Setup Sweepers: Can threaten curse while setting up
- Revenge Killers: Becomes dangerous when brought in at low HP
- Pivot Pokémon: Forces difficult decisions for opponents
- Wall Breakers: Low HP Ghost moves can break through defensive cores
- End Game: Curse damage can secure late-game victories
Notable Interactions
- Magic Guard: Prevents curse damage to Magic Guard users
- Ghost-types: Immune to the curse effect but not the damage boost
- Non-contact moves: Bypass the curse effect entirely
- Status moves: Don't trigger the offensive multiplier