Fixes Multi Hit moves removing destiny bond flag in the middle of attack (#5377)

This commit is contained in:
Alex 2024-09-12 23:46:59 +02:00 committed by GitHub
parent 5d8c61d813
commit 3d8b73300a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 44 additions and 1 deletions

View File

@ -4686,7 +4686,8 @@ static void MoveValuesCleanUp(void)
gIsCriticalHit = FALSE;
gBattleScripting.moveEffect = 0;
gBattleCommunication[MISS_TYPE] = 0;
gHitMarker &= ~HITMARKER_DESTINYBOND;
if (!gMultiHitCounter)
gHitMarker &= ~HITMARKER_DESTINYBOND;
gHitMarker &= ~HITMARKER_SYNCHRONISE_EFFECT;
}

View File

@ -0,0 +1,17 @@
#include "global.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Destiny Bond faints the opposing mon if it fainted from the attack")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_DESTINY_BOND); MOVE(opponent, MOVE_TACKLE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_DESTINY_BOND, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent);
MESSAGE("Wobbuffet took Foe Wobbuffet with it!");
MESSAGE("Foe Wobbuffet fainted!");
}
}

View File

@ -231,3 +231,28 @@ SINGLE_BATTLE_TEST("Scale Shot decreases defense and increases speed after killi
MESSAGE("Bagon's Speed rose!");
}
}
SINGLE_BATTLE_TEST("Multi Hit moves will not disrupt Destiny Bond flag")
{
u32 hp;
PARAMETRIZE { hp = 11; }
PARAMETRIZE { hp = 55; }
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { HP(55); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_DESTINY_BOND); MOVE(opponent, MOVE_BULLET_SEED); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_DESTINY_BOND, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent);
if (hp == 55)
{
ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent);
}
MESSAGE("Wobbuffet took Foe Wobbuffet with it!");
MESSAGE("Foe Wobbuffet fainted!");
}
}