diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index 7286045684..557ed604fe 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -207,6 +207,7 @@ void UndoDynamax(u16 battlerId) u16 mult = UQ_4_12(1.0/1.5); // placeholder gBattleMons[battlerId].hp = UQ_4_12_TO_INT((GetMonData(mon, MON_DATA_HP) * mult + 1) + UQ_4_12_ROUND); // round up SetMonData(mon, MON_DATA_HP, &gBattleMons[battlerId].hp); + CalculateMonStats(mon); } // Makes sure there are no Dynamax flags set, including on switch / faint. diff --git a/src/battle_main.c b/src/battle_main.c index 3bf3a3e638..0ab3a67fa8 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3677,6 +3677,9 @@ const u8* FaintClearSetData(u32 battler) gBattleStruct->zmove.active = FALSE; gBattleStruct->zmove.toBeUsed[battler] = MOVE_NONE; gBattleStruct->zmove.effect = EFFECT_HIT; + // Clear Dynamax data + UndoDynamax(battler); + return result; }