Fixes moves based on Dragon Darts with strikeCount > 2 always hitting the same battler from the second hit onwards (#5830)

This commit is contained in:
PhallenTree 2024-12-19 12:15:58 +00:00 committed by GitHub
parent a2aba3f86a
commit a60a23474b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1734,7 +1734,6 @@ static void AccuracyCheck(bool32 recalcDragonDarts, const u8 *nextInstr, const u
{
// Smart target to partner if miss
gBattlerTarget = BATTLE_PARTNER(battlerDef);
gBattleStruct->moveResultFlags[battlerDef] &= ~MOVE_RESULT_MISSED;
AccuracyCheck(TRUE, nextInstr, failInstr, move);
return;
}
@ -6511,7 +6510,7 @@ static void Cmd_moveend(void)
else
{
if (gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_DARTS
&& gBattleStruct->moveTarget[gBattlerAttacker] == gBattlerTarget // Haven't already changed targets
&& !(gBattleStruct->moveResultFlags[BATTLE_PARTNER(gBattlerTarget)] & MOVE_RESULT_MISSED) // didn't miss the other target
&& CanTargetPartner(gBattlerAttacker, gBattlerTarget)
&& !TargetFullyImmuneToCurrMove(gBattlerAttacker, BATTLE_PARTNER(gBattlerTarget)))
gBattlerTarget = BATTLE_PARTNER(gBattlerTarget); // Target the partner in doubles for second hit.