Fixes Shell Bell inlcuding heal amount from Future Sight when triggered (#5962)

This commit is contained in:
Alex 2025-01-12 00:27:31 +01:00 committed by GitHub
parent 10a3ed2044
commit 2da547908e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 29 additions and 1 deletions

View File

@ -2456,7 +2456,9 @@ static void Cmd_datahpupdate(void)
}
// Record damage for Shell Bell
if (gSpecialStatuses[battler].shellBellDmg == 0 && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE))
if (gSpecialStatuses[gBattlerTarget].shellBellDmg == IGNORE_SHELL_BELL)
gSpecialStatuses[battler].shellBellDmg = 0;
else if (gSpecialStatuses[battler].shellBellDmg == 0 && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE))
gSpecialStatuses[battler].shellBellDmg = gHpDealt;
// Record damage for foreseen moves

View File

@ -34,3 +34,29 @@ SINGLE_BATTLE_TEST("Shell Bell doesn't restore HP for damage dealt by a foreseen
}
}
}
SINGLE_BATTLE_TEST("Shell Bell does not activate on Future Sight if the original user is on the field")
{
s16 damage = 0;
s16 healed = 0;
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { HP(1); Item(ITEM_SHELL_BELL); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { MOVE(player, MOVE_FUTURE_SIGHT); }
TURN {}
TURN {}
TURN { MOVE(player, MOVE_DRAGON_RAGE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player);
MESSAGE("The opposing Wynaut took the Future Sight attack!");
HP_BAR(opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_RAGE, player);
HP_BAR(opponent, captureDamage: &damage);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
HP_BAR(player, captureDamage: &healed);
} THEN {
EXPECT_MUL_EQ(damage, Q_4_12(-0.25), healed);
}
}