summaryrefslogtreecommitdiff
path: root/engine/battle/move_effects/nightmare.asm
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2018-01-26 11:36:00 -0500
committerRangi <remy.oukaour+rangi42@gmail.com>2018-01-26 11:36:00 -0500
commit0cf4eb68955952659b0e94fbeae0a75fe36255ae (patch)
treef38113626f149a5f71b01212a6440c0f8926b662 /engine/battle/move_effects/nightmare.asm
parenta0cc4a33929f6aeb08a733c4a985c3bbb24ef55f (diff)
Move-unique effect commands consistently go in engine/battle/move_effects/
Diffstat (limited to 'engine/battle/move_effects/nightmare.asm')
-rw-r--r--engine/battle/move_effects/nightmare.asm38
1 files changed, 38 insertions, 0 deletions
diff --git a/engine/battle/move_effects/nightmare.asm b/engine/battle/move_effects/nightmare.asm
new file mode 100644
index 000000000..788e3de41
--- /dev/null
+++ b/engine/battle/move_effects/nightmare.asm
@@ -0,0 +1,38 @@
+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