shithub: pokecrystal

Download patch

ref: 05db4b4cb6ec2247c321a5ad7d842db9233fda2f
parent: b4d37c675fea5ed3b156e1701b6b89154f974de8
author: yenatch <yenatch@gmail.com>
date: Sun Sep 8 18:42:07 EDT 2013

comment nightmare move effect asm

--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -9432,23 +9432,38 @@
 BattleCommand52: ; 37536
 ; nightmare
 
+; Can't hit an absent opponent.
+
 	call CheckHiddenOpponent
-	jr nz, .asm_3755d ; 37539 $22
+	jr nz, .failed
+
+; Can't hit a substitute.
+
 	call CheckSubstituteOpp
-	jr nz, .asm_3755d ; 3753e $1d
+	jr nz, .failed
+
+; Only works on a sleeping opponent.
+
 	ld a, BATTLE_VARS_STATUS_OPP
 	call GetBattleVarPair
-	and $7
-	jr z, .asm_3755d ; 37547 $14
+	and SLP
+	jr z, .failed
+
+; Bail if the opponent is already having a nightmare.
+
 	ld a, BATTLE_VARS_SUBSTATUS1_OPP
 	call GetBattleVarPair
-	bit 0, [hl]
-	jr nz, .asm_3755d ; 37550 $b
-	set 0, [hl]
+	bit SUBSTATUS_NIGHTMARE, [hl]
+	jr nz, .failed
+
+; Otherwise give the opponent a nightmare.
+
+	set SUBSTATUS_NIGHTMARE, [hl]
 	call Function0x37e01
 	ld hl, StartedNightmareText
 	jp StdBattleTextBox
-.asm_3755d
+
+.failed
 	call Function0x37e77
 	jp PrintButItFailed
 ; 37563
--