diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 4104f1dd57..9c4172861f 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2234,6 +2234,7 @@ BattleScript_EffectAbsorb:: resultmessage waitmessage 0x40 setdrainedhp + manipulatedamage DMG_BIG_ROOT orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze setbyte cMULTISTRING_CHOOSER, 0x0 @@ -2361,6 +2362,7 @@ BattleScript_DreamEaterWorked: resultmessage waitmessage 0x40 setdrainedhp + manipulatedamage DMG_BIG_ROOT orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index df3e8da3d9..3d7f2858a7 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -8877,15 +8877,16 @@ static void Cmd_stockpiletohpheal(void) } } +// Sign change for drained HP handled in GetDrainedBigRootHp static void Cmd_setdrainedhp(void) { if (gBattleMoves[gCurrentMove].argument != 0) - gBattleMoveDamage = -(gHpDealt * gBattleMoves[gCurrentMove].argument / 100); + gBattleMoveDamage = (gHpDealt * gBattleMoves[gCurrentMove].argument / 100); else - gBattleMoveDamage = -(gHpDealt / 2); + gBattleMoveDamage = (gHpDealt / 2); if (gBattleMoveDamage == 0) - gBattleMoveDamage = -1; + gBattleMoveDamage = 1; gBattlescriptCurrInstr++; }