From 8c42eafd0af83188d11188d9060b95ecc77d3ed6 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Sat, 7 Mar 2026 16:29:31 +0100 Subject: [PATCH] Fix Lightning Rod activation on fainted mon (#9434) --- src/battle_move_resolution.c | 3 +++ test/battle/ability/lightning_rod.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/battle_move_resolution.c b/src/battle_move_resolution.c index 69a5d4bb22..4a590a2cae 100644 --- a/src/battle_move_resolution.c +++ b/src/battle_move_resolution.c @@ -824,6 +824,9 @@ static bool32 HandleMoveTargetRedirection(enum MoveTarget moveTarget) enum BattlerId battler; for (battler = 0; battler < gBattlersCount; battler++) { + if (!IsBattlerAlive(battler) || gBattlerAttacker == battler) + continue; + ability = GetBattlerAbility(battler); if ((B_REDIRECT_ABILITY_ALLIES >= GEN_4 || !IsBattlerAlly(gBattlerAttacker, battler)) && battler != gBattlerAttacker diff --git a/test/battle/ability/lightning_rod.c b/test/battle/ability/lightning_rod.c index c87b69bcd7..a9dcac38e9 100644 --- a/test/battle/ability/lightning_rod.c +++ b/test/battle/ability/lightning_rod.c @@ -130,3 +130,21 @@ DOUBLE_BATTLE_TEST("Lightning Rod absorbs moves that targets all battlers but do HP_BAR(playerRight); } } + +DOUBLE_BATTLE_TEST("Lightning Rod doesn't activate if user has fainted") +{ + GIVEN { + ASSUME(GetMoveType(MOVE_SPARK) == TYPE_ELECTRIC); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_RAICHU) { HP(1); Ability(ABILITY_LIGHTNING_ROD); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_POUND, target: opponentRight); MOVE(playerRight, MOVE_SPARK, target: opponentLeft); } + } SCENE { + NONE_OF { + MESSAGE("The opposing Raichu's Lightning Rod took the attack"); + ABILITY_POPUP(opponentRight, ABILITY_LIGHTNING_ROD); + } + } +}