ref: 6e91c3a293d94990695e6b002a8c031873aefdf9
dir: /engine/battle/move_effects/nightmare.asm/
BattleCommand_Nightmare: ; 37536 ; nightmare ; Can't hit an absent opponent. call CheckHiddenOpponent jr nz, .failed ; Can't hit a substitute. call CheckSubstituteOpp jr nz, .failed ; Only works on a sleeping opponent. ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr and SLP jr z, .failed ; Bail if the opponent is already having a nightmare. ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVarAddr bit SUBSTATUS_NIGHTMARE, [hl] jr nz, .failed ; Otherwise give the opponent a nightmare. set SUBSTATUS_NIGHTMARE, [hl] call AnimateCurrentMove ld hl, StartedNightmareText jp StdBattleTextBox .failed call AnimateFailedMove jp PrintButItFailed ; 37563