Fixes moveend_absorb hitmarker (#7591)

This commit is contained in:
Alex 2025-08-21 16:49:13 +02:00 committed by GitHub
parent f24b919a11
commit 504d3bc31f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2635,7 +2635,7 @@ static void Cmd_healthbarupdate(void)
static void Cmd_datahpupdate(void)
{
CMD_ARGS(u8 battler);
bool32 isPassiveDamageOrHealing = gHitMarker & HITMARKER_PASSIVE_DAMAGE;
bool32 isPassiveHpUpdate = gHitMarker & HITMARKER_PASSIVE_HP_UPDATE;
if (gBattleControllerExecFlags)
return;
@ -2751,13 +2751,13 @@ static void Cmd_datahpupdate(void)
}
if (gBattlerAttacker != gBattlerTarget
&& !isPassiveDamageOrHealing
&& !isPassiveHpUpdate
&& GetMoveCategory(gCurrentMove) != DAMAGE_CATEGORY_STATUS
&& IsBattlerTurnDamaged(gBattlerTarget))
gBattleStruct->timesGotHit[GetBattlerSide(gBattlerTarget)][gBattlerPartyIndexes[gBattlerTarget]]++;
if (GetMoveEffect(gCurrentMove) == EFFECT_KNOCK_OFF
&& !isPassiveDamageOrHealing
&& !isPassiveHpUpdate
&& IsBattlerTurnDamaged(gBattlerTarget)
&& gBattleMons[gBattlerTarget].item != ITEM_NONE
&& !DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove)
@ -6633,12 +6633,11 @@ static void Cmd_moveend(void)
{
gBattleStruct->moveDamage[gBattlerAttacker] = max(1, (gBattleStruct->moveDamage[gBattlerTarget] * GetMoveAbsorbPercentage(gCurrentMove) / 100));
gBattleStruct->moveDamage[gBattlerAttacker] = GetDrainedBigRootHp(gBattlerAttacker, gBattleStruct->moveDamage[gBattlerAttacker]);
gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE;
gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_HP_UPDATE;
effect = TRUE;
if (GetBattlerAbility(gBattlerTarget) == ABILITY_LIQUID_OOZE)
{
gBattleStruct->moveDamage[gBattlerAttacker] *= -1;
gHitMarker |= HITMARKER_PASSIVE_HP_UPDATE;
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABSORB_OOZE;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_EffectAbsorbLiquidOoze;