From ec37b2170f1fa1e2b27f2329592c1275484398a0 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Fri, 26 Apr 2024 16:29:26 +0200 Subject: [PATCH] Fixes Hospitality triggering on a fainted mon (#4450) --- src/battle_util.c | 5 ++++- test/battle/ability/hospitality.c | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/battle_util.c b/src/battle_util.c index c68959a8ff..498c8c0abb 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -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; diff --git a/test/battle/ability/hospitality.c b/test/battle/ability/hospitality.c index 74648b0c9a..c40512d5be 100644 --- a/test/battle/ability/hospitality.c +++ b/test/battle/ability/hospitality.c @@ -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); + } +}