Fixes Hospitality triggering on a fainted mon (#4450)

This commit is contained in:
Alex 2024-04-26 16:29:26 +02:00 committed by GitHub
parent 4935b2b3ad
commit ec37b2170f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 1 deletions

View file

@ -4724,7 +4724,10 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
case ABILITY_HOSPITALITY:
partner = BATTLE_PARTNER(battler);
if (!gSpecialStatuses[battler].switchInAbilityDone && IsDoubleBattle() && gBattleMons[partner].hp < gBattleMons[partner].maxHP)
if (!gSpecialStatuses[battler].switchInAbilityDone
&& IsDoubleBattle()
&& gBattleMons[partner].hp < gBattleMons[partner].maxHP
&& IsBattlerAlive(partner))
{
gBattlerTarget = partner;
gBattlerAttacker = battler;

View file

@ -68,3 +68,24 @@ DOUBLE_BATTLE_TEST("Hospitality ignores Substitute")
MESSAGE("Wobbuffet drank down all the matcha that Ptchageist made!");
}
}
DOUBLE_BATTLE_TEST("Hospitality does not trigger if there is no ally on the field")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_POLTCHAGEIST) { Ability(ABILITY_HOSPITALITY); }
OPPONENT(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponentLeft, MOVE_BLIZZARD); SEND_OUT(playerLeft, 2); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_BLIZZARD, opponentLeft);
HP_BAR(playerLeft);
MESSAGE("Wobbuffet fainted!");
HP_BAR(playerRight);
MESSAGE("Wobbuffet fainted!");
MESSAGE("Go! Ptchageist!");
NOT ABILITY_POPUP(playerLeft, ABILITY_HOSPITALITY);
}
}