| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | DoPlayerTurn: ; 34000 | 
					
						
							|  |  |  | 	call SetPlayerTurn | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [wd0ec] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	jr DoTurn | 
					
						
							|  |  |  | ; 3400a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DoEnemyTurn: ; 3400a | 
					
						
							|  |  |  | 	call SetEnemyTurn | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, DoTurn | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld a, [wBattleAction] | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	cp BATTLEACTION_E | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, DoTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	cp BATTLEACTION_SWITCH1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 3401d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DoTurn: ; 3401d | 
					
						
							|  |  |  | ; Read in and execute the user's move effects for this turn. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [wTurnEnded], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Effect command checkturn is called for every move. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckTurn | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, [wTurnEnded] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call UpdateMoveData | 
					
						
							|  |  |  | ; 3402c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DoMove: ; 3402c | 
					
						
							|  |  |  | ; Get the user's move effect. | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	ld hl, MoveEffectsPointers | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BANK(MoveEffectsPointers) | 
					
						
							|  |  |  | 	call GetFarHalfword | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld de, BattleScriptBuffer | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .GetMoveEffect | 
					
						
							|  |  |  | 	ld a, BANK(MoveEffects) | 
					
						
							|  |  |  | 	call GetFarByte | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	cp $ff | 
					
						
							|  |  |  | 	jr nz, .GetMoveEffect | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Start at the first command. | 
					
						
							|  |  |  | 	ld hl, BattleScriptBuffer | 
					
						
							|  |  |  | 	ld a, l | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc], a | 
					
						
							|  |  |  | 	ld a, h | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc + 1], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .ReadMoveEffectCommand | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; ld a, [BattleScriptBufferLoc++] | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc + 1] | 
					
						
							|  |  |  | 	ld h, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	push af | 
					
						
							|  |  |  | 	ld a, l | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc], a | 
					
						
							|  |  |  | 	ld a, h | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc + 1], a | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | ; endturn_command (-2) is used to terminate branches without ending the read cycle. | 
					
						
							|  |  |  | 	cp endturn_command | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; The rest of the commands (01-af) are read from BattleCommandPointers. | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	ld hl, BattleCommandPointers | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BANK(BattleCommandPointers) | 
					
						
							|  |  |  | 	call GetFarHalfword | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .DoMoveEffectCommand | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	jr .ReadMoveEffectCommand | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .DoMoveEffectCommand | 
					
						
							|  |  |  | 	jp [hl] | 
					
						
							|  |  |  | ; 34084 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CheckTurn: | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckTurn: ; 34084 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; checkturn | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Repurposed as hardcoded turn handling. Useless as a command. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Move $ff immediately ends the turn. | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp z, EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [EffectFailed], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AlreadyDisobeyed], a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	ld [AlreadyFailed], a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wc73e], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, 10 ; 1.0 | 
					
						
							|  |  |  | 	ld [TypeModifier], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jp nz, CheckEnemyTurn | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CheckPlayerTurn: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, PlayerSubStatus4 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_RECHARGE, [hl] | 
					
						
							|  |  |  | 	jr z, .no_recharge | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_RECHARGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, MustRechargeText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .no_recharge | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonStatus | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and SLP | 
					
						
							|  |  |  | 	jr z, .not_asleep | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [BattleMonStatus], a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and SLP | 
					
						
							|  |  |  | 	jr z, .woke_up | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-12-19 04:47:39 -05:00
										 |  |  | 	ld de, ANIM_SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call FarPlayBattleAnimation | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .fast_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .woke_up | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, WokeUpText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateBattleMonInParty | 
					
						
							| 
									
										
										
										
											2014-06-16 22:52:59 -07:00
										 |  |  | 	ld hl, UpdatePlayerHUD | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [hBGMapMode], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerSubStatus1 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_NIGHTMARE, [hl] | 
					
						
							|  |  |  | 	jr .not_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .fast_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, FastAsleepText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Snore and Sleep Talk bypass sleep. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurPlayerMove] | 
					
						
							|  |  |  | 	cp SNORE | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp SLEEP_TALK | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_asleep | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_asleep | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonStatus | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit FRZ, [hl] | 
					
						
							|  |  |  | 	jr z, .not_frozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Flame Wheel and Sacred Fire thaw the user. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurPlayerMove] | 
					
						
							|  |  |  | 	cp FLAME_WHEEL | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_frozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp SACRED_FIRE | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_frozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FrozenSolidText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_frozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld hl, PlayerSubStatus3 | 
					
						
							|  |  |  | 	bit SUBSTATUS_FLINCHED, [hl] | 
					
						
							|  |  |  | 	jr z, .not_flinched | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_FLINCHED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, FlinchedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_flinched | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, PlayerDisableCount | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_disabled | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	and $f | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .not_disabled | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ld [DisabledMove], a | 
					
						
							|  |  |  | 	ld hl, DisabledNoMoreText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_disabled | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [PlayerSubStatus3] | 
					
						
							|  |  |  | 	add a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nc, .not_confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerConfuseCount | 
					
						
							|  |  |  | 	dec [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, PlayerSubStatus3 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_CONFUSED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, ConfusedNoMoreText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .not_confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, IsConfusedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, ANIM_CONFUSED | 
					
						
							|  |  |  | 	call FarPlayBattleAnimation | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; 50% chance of hitting itself | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $80 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nc, .not_confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-09 15:05:19 -06:00
										 |  |  | 	; clear confusion-dependent substatus | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerSubStatus3 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << SUBSTATUS_CONFUSED | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call HitConfusion | 
					
						
							|  |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_confused | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [PlayerSubStatus1] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	add a ; bit SUBSTATUS_ATTRACT | 
					
						
							|  |  |  | 	jr nc, .not_infatuated | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, InLoveWithText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-12-19 04:47:39 -05:00
										 |  |  | 	ld de, ANIM_IN_LOVE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call FarPlayBattleAnimation | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; 50% chance of infatuation | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $80 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr c, .not_infatuated | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, InfatuationText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_infatuated | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	; We can't disable a move that doesn't exist. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [DisabledMove] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .no_disabled_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Are we using the disabled move? | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurPlayerMove | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .no_disabled_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call MoveDisabled | 
					
						
							|  |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .no_disabled_move | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonStatus | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit PAR, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; 25% chance to be fully paralyzed | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $3f | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FullyParalyzedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 341f0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CantMove: ; 341f0 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	res SUBSTATUS_ROLLOUT, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	and $ff ^ (1<<SUBSTATUS_BIDE + 1<<SUBSTATUS_RAMPAGE + 1<<SUBSTATUS_CHARGED) | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	call ResetFuryCutterCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp FLY | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .fly_dig | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp DIG | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .fly_dig | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_UNDERGROUND, [hl] | 
					
						
							|  |  |  | 	res SUBSTATUS_FLYING, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp AppearUserRaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 34216 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | OpponentCantMove: ; 34216 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	jp BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3421f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CheckEnemyTurn: ; 3421f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemySubStatus4 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_RECHARGE, [hl] | 
					
						
							|  |  |  | 	jr z, .no_recharge | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_RECHARGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, MustRechargeText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .no_recharge | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemyMonStatus | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and SLP | 
					
						
							|  |  |  | 	jr z, .not_asleep | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [EnemyMonStatus], a | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .woke_up | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FastAsleepText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-12-19 04:47:39 -05:00
										 |  |  | 	ld de, ANIM_SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call FarPlayBattleAnimation | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .fast_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .woke_up | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, WokeUpText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateEnemyMonInParty | 
					
						
							| 
									
										
										
										
											2014-06-16 22:52:59 -07:00
										 |  |  | 	ld hl, UpdateEnemyHUD | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [hBGMapMode], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemySubStatus1 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_NIGHTMARE, [hl] | 
					
						
							|  |  |  | 	jr .not_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .fast_asleep | 
					
						
							|  |  |  | 	; Snore and Sleep Talk bypass sleep. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurEnemyMove] | 
					
						
							|  |  |  | 	cp SNORE | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp SLEEP_TALK | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_asleep | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_asleep | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemyMonStatus | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit FRZ, [hl] | 
					
						
							|  |  |  | 	jr z, .not_frozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurEnemyMove] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp FLAME_WHEEL | 
					
						
							|  |  |  | 	jr z, .not_frozen | 
					
						
							|  |  |  | 	cp SACRED_FIRE | 
					
						
							|  |  |  | 	jr z, .not_frozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FrozenSolidText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_frozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld hl, EnemySubStatus3 | 
					
						
							|  |  |  | 	bit SUBSTATUS_FLINCHED, [hl] | 
					
						
							|  |  |  | 	jr z, .not_flinched | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_FLINCHED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, FlinchedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_flinched | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld hl, EnemyDisableCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .not_disabled | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	and $f | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .not_disabled | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2013-05-03 21:04:34 -04:00
										 |  |  | 	ld [EnemyDisabledMove], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, DisabledNoMoreText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_disabled | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [EnemySubStatus3] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	add a ; bit SUBSTATUS_CONFUSED | 
					
						
							|  |  |  | 	jr nc, .not_confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, EnemyConfuseCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemySubStatus3 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_CONFUSED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, ConfusedNoMoreText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .not_confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, IsConfusedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, ANIM_CONFUSED | 
					
						
							|  |  |  | 	call FarPlayBattleAnimation | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; 50% chance of hitting itself | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	cp 1 + 50 percent | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nc, .not_confused | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; clear confusion-dependent substatus | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemySubStatus3 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << SUBSTATUS_CONFUSED | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, HurtItselfText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call HitSelfInConfusion | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_DamageCalc | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Flicker the monster pic unless flying or underground. | 
					
						
							|  |  |  | 	ld de, ANIM_HIT_CONFUSION | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call z, PlayFXAnimID | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld c, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call EnemyHurtItself | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_confused | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [EnemySubStatus1] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	add a ; bit SUBSTATUS_ATTRACT | 
					
						
							|  |  |  | 	jr nc, .not_infatuated | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, InLoveWithText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-12-19 04:47:39 -05:00
										 |  |  | 	ld de, ANIM_IN_LOVE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call FarPlayBattleAnimation | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; 50% chance of infatuation | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	cp 1 + 50 percent | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr c, .not_infatuated | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, InfatuationText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .not_infatuated | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; We can't disable a move that doesn't exist. | 
					
						
							| 
									
										
										
										
											2013-05-03 21:04:34 -04:00
										 |  |  | 	ld a, [EnemyDisabledMove] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .no_disabled_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Are we using the disabled move? | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurEnemyMove | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .no_disabled_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call MoveDisabled | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call CantMove | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp EndTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .no_disabled_move | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemyMonStatus | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit PAR, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; 25% chance to be fully paralyzed | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $3f | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FullyParalyzedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CantMove | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 34385 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | EndTurn: ; 34385 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [wTurnEnded], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp ResetDamage | 
					
						
							|  |  |  | ; 3438d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MoveDisabled: ; 3438d | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Make sure any charged moves fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_CHARGED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call GetMoveName | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, DisabledMoveText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 343a5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HitConfusion: ; 343a5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, HurtItselfText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call HitSelfInConfusion | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_DamageCalc | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Flicker the monster pic unless flying or underground. | 
					
						
							|  |  |  | 	ld de, ANIM_HIT_CONFUSION | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call z, PlayFXAnimID | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-16 22:52:59 -07:00
										 |  |  | 	ld hl, UpdatePlayerHUD | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [hBGMapMode], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call PlayerHurtItself | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jp BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 343db | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckObedience: ; 343db | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; checkobedience | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Enemy can't disobey | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckUserIsCharging | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; If we've already checked this turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AlreadyDisobeyed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [AlreadyDisobeyed], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; No obedience in link battles | 
					
						
							|  |  |  | 	; (since no handling exists for enemy) | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 	ld a, [InBattleTowerBattle] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; If the monster's id doesn't match the player's, | 
					
						
							|  |  |  | 	; some conditions need to be met. | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld a, MON_ID | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call BattlePartyAttr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [PlayerID] | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							|  |  |  | 	jr nz, .obeylevel | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, [PlayerID + 1] | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .obeylevel | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; The maximum obedience level is constrained by owned badges: | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, JohtoBadges | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; risingbadge | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	bit RISINGBADGE, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld a, MAX_LEVEL + 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr nz, .getlevel | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; stormbadge | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	bit STORMBADGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 70 | 
					
						
							|  |  |  | 	jr nz, .getlevel | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; fogbadge | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	bit FOGBADGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 50 | 
					
						
							|  |  |  | 	jr nz, .getlevel | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; hivebadge | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	bit HIVEBADGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 30 | 
					
						
							|  |  |  | 	jr nz, .getlevel | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; no badges | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 10 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .getlevel | 
					
						
							|  |  |  | ; c = obedience level | 
					
						
							|  |  |  | ; d = monster level | 
					
						
							|  |  |  | ; b = c + d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [BattleMonLevel] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	add b | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; No overflow (this should never happen) | 
					
						
							|  |  |  | 	jr nc, .checklevel | 
					
						
							|  |  |  | 	ld b, $ff | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .checklevel | 
					
						
							|  |  |  | ; If the monster's level is lower than the obedience level, it will obey. | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							|  |  |  | 	cp d | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Random number from 0 to obedience level + monster level | 
					
						
							|  |  |  | .rand1 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	swap a | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr nc, .rand1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; The higher above the obedience level the monster is, | 
					
						
							|  |  |  | ; the more likely it is to disobey. | 
					
						
							|  |  |  | 	cp c | 
					
						
							|  |  |  | 	ret c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Sleep-only moves have separate handling, and a higher chance of | 
					
						
							|  |  |  | ; being ignored. Lazy monsters like their sleep. | 
					
						
							|  |  |  | 	call IgnoreSleepOnly | 
					
						
							|  |  |  | 	ret c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Another random number from 0 to obedience level + monster level | 
					
						
							|  |  |  | .rand2 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							|  |  |  | 	jr nc, .rand2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; A second chance. | 
					
						
							|  |  |  | 	cp c | 
					
						
							|  |  |  | 	jr c, .UseInstead | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; No hope of using a move now. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; b = number of levels the monster is above the obedience level | 
					
						
							|  |  |  | 	ld a, d | 
					
						
							|  |  |  | 	sub c | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; The chance of napping is the difference out of 256. | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	swap a | 
					
						
							|  |  |  | 	sub b | 
					
						
							|  |  |  | 	jr c, .Nap | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; The chance of not hitting itself is the same. | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr nc, .DoNothing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, WontObeyText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call HitConfusion | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp .asm_3450c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Nap | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add a | 
					
						
							|  |  |  | 	swap a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .Nap | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld [BattleMonStatus], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BeganToNapText | 
					
						
							|  |  |  | 	jr .Print | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .DoNothing | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and 3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, LoafingAroundText | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .Print | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, WontObeyText | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	jr z, .Print | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, TurnedAwayText | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	jr z, .Print | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, IgnoredOrdersText | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Print | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp .asm_3450c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .UseInstead | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Can't use another move if the monster only has one! | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, [BattleMonMoves + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .DoNothing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Don't bother trying to handle Disable. | 
					
						
							|  |  |  | 	ld a, [DisabledMove] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr nz, .DoNothing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonPP | 
					
						
							|  |  |  | 	ld de, BattleMonMoves | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	ld c, NUM_MOVES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .GetTotalPP | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	and $3f ; exclude pp up | 
					
						
							|  |  |  | 	add b | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	dec c | 
					
						
							|  |  |  | 	jr z, .CheckMovePP | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Stop at undefined moves. | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr nz, .GetTotalPP | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .CheckMovePP | 
					
						
							|  |  |  | 	ld hl, BattleMonPP | 
					
						
							|  |  |  | 	ld a, [CurMoveNum] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld d, 0 | 
					
						
							|  |  |  | 	add hl, de | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Can't use another move if only one move has PP. | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and $3f | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr z, .DoNothing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Make sure we can actually use the move once we get there. | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	ld [AlreadyDisobeyed], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [wcfa3] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Save the move we originally picked for afterward. | 
					
						
							|  |  |  | 	ld a, [CurMoveNum] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	push af | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .RandomMove | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 3 ; TODO NUM_MOVES | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr nc, .RandomMove | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Not the move we were trying to use. | 
					
						
							|  |  |  | 	cp c | 
					
						
							|  |  |  | 	jr z, .RandomMove | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Make sure it has PP. | 
					
						
							|  |  |  | 	ld [CurMoveNum], a | 
					
						
							|  |  |  | 	ld hl, BattleMonPP | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld d, 0 | 
					
						
							|  |  |  | 	add hl, de | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and $3f | 
					
						
							|  |  |  | 	jr z, .RandomMove | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Use it. | 
					
						
							|  |  |  | 	ld a, [CurMoveNum] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld [CurPlayerMove], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call SetPlayerTurn | 
					
						
							|  |  |  | 	call UpdateMoveData | 
					
						
							|  |  |  | 	call DoMove | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Restore original move choice. | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 	ld [CurMoveNum], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | .asm_3450c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [LastPlayerMove], a | 
					
						
							|  |  |  | 	ld [LastEnemyCounterMove], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	; Break Encore too. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerSubStatus5 | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	res SUBSTATUS_ENCORED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [PlayerEncoreCount], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 3451f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | IgnoreSleepOnly: ; 3451f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp SNORE | 
					
						
							|  |  |  | 	jr z, .CheckSleep | 
					
						
							|  |  |  | 	cp SLEEP_TALK | 
					
						
							|  |  |  | 	jr z, .CheckSleep | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .CheckSleep | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; 'ignored orders…sleeping!' | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, IgnoredSleepingText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call EndMoveEffect | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	scf | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 34541 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_UsedMoveText: ; 34541 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; usedmovetext | 
					
						
							|  |  |  | 	callba DisplayUsedMoveText | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 34548 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | CheckUserIsCharging: ; 34548 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld a, [wPlayerCharging] ; player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .end | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld a, [wEnemyCharging] ; enemy | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .end | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 34555 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DoTurn: ; 34555 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckUserIsCharging | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonPP | 
					
						
							|  |  |  | 	ld de, PlayerSubStatus3 | 
					
						
							|  |  |  | 	ld bc, PlayerTurnsTaken | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-10-07 21:27:32 -04:00
										 |  |  | 	jr z, .proceed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemyMonPP | 
					
						
							|  |  |  | 	ld de, EnemySubStatus3 | 
					
						
							|  |  |  | 	ld bc, EnemyTurnsTaken | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 21:27:32 -04:00
										 |  |  | .proceed | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; If we've gotten this far, this counts as a turn. | 
					
						
							|  |  |  | 	ld a, [bc] | 
					
						
							|  |  |  | 	inc a | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp STRUGGLE | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	and 1 << SUBSTATUS_IN_LOOP | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_BIDE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call .consume_pp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jp nz, EndMoveEffect | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	; SubStatus5 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_TRANSFORMED, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, PartyMon1PP | 
					
						
							|  |  |  | 	ld a, [CurBattleMon] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ; mimic this part entirely if wildbattle | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .wild | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, OTPartyMon1PP | 
					
						
							|  |  |  | 	ld a, [CurOTMon] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetPartyLocation | 
					
						
							|  |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckMimicUsed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret c | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .consume_pp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [CurMoveNum] | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr z, .okay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurEnemyMoveNum] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | .okay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and $3f | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .out_of_pp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .wild | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							|  |  |  | 	ld a, [CurEnemyMoveNum] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp MIMIC | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr z, .mimic | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld hl, wWildMonMoves | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp MIMIC | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | .mimic | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld hl, wWildMonPP | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call .consume_pp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .out_of_pp | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; get move effect | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; continuous? | 
					
						
							|  |  |  | 	ld hl, .continuousmoves | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	ld de, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call IsInArray | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; 'has no pp left for [move]' | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, HasNoPPLeftText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr c, .print | 
					
						
							|  |  |  | ; 'but no pp is left for the move' | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, NoPPLeftText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .print | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	ld b, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 34602 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .continuousmoves ; 34602 | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	db EFFECT_RAZOR_WIND | 
					
						
							|  |  |  | 	db EFFECT_SKY_ATTACK | 
					
						
							|  |  |  | 	db EFFECT_SKULL_BASH | 
					
						
							|  |  |  | 	db EFFECT_SOLARBEAM | 
					
						
							|  |  |  | 	db EFFECT_FLY | 
					
						
							|  |  |  | 	db EFFECT_ROLLOUT | 
					
						
							|  |  |  | 	db EFFECT_BIDE | 
					
						
							|  |  |  | 	db EFFECT_RAMPAGE | 
					
						
							|  |  |  | 	db $ff | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3460b | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | CheckMimicUsed: ; 3460b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [CurMoveNum] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurEnemyMoveNum] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, MON_MOVES | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call UserPartyAttr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp MIMIC | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .mimic | 
					
						
							|  |  |  | ;  | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp MIMIC | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .mimic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	scf | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 34631 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Critical: ; 34631 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; critical | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Determine whether this attack's hit will be critical. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_POWER | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld hl, EnemyMonItem | 
					
						
							|  |  |  | 	ld a, [EnemyMonSpecies] | 
					
						
							|  |  |  | 	jr nz, .Item | 
					
						
							|  |  |  | 	ld hl, BattleMonItem | 
					
						
							|  |  |  | 	ld a, [BattleMonSpecies] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Item | 
					
						
							|  |  |  | 	ld c, 0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cp CHANSEY | 
					
						
							|  |  |  | 	jr nz, .Farfetchd | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp LUCKY_PUNCH | 
					
						
							|  |  |  | 	jr nz, .FocusEnergy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; +2 critical level | 
					
						
							|  |  |  | 	ld c, 2 | 
					
						
							|  |  |  | 	jr .Tally | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Farfetchd | 
					
						
							|  |  |  | 	cp FARFETCH_D | 
					
						
							|  |  |  | 	jr nz, .FocusEnergy | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp STICK | 
					
						
							|  |  |  | 	jr nz, .FocusEnergy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; +2 critical level | 
					
						
							|  |  |  | 	ld c, 2 | 
					
						
							|  |  |  | 	jr .Tally | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .FocusEnergy | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	bit SUBSTATUS_FOCUS_ENERGY, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .CheckCritical | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; +1 critical level | 
					
						
							|  |  |  | 	inc c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .CheckCritical | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, 1 | 
					
						
							|  |  |  | 	ld hl, .Criticals | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	call IsInArray | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	jr nc, .ScopeLens | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; +2 critical level | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .ScopeLens | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	call GetUserItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-01-20 00:07:51 -05:00
										 |  |  | 	cp HELD_CRITICAL_UP ; Increased critical chance. Only Scope Lens has this. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	jr nz, .Tally | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; +1 critical level | 
					
						
							|  |  |  | 	inc c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Tally | 
					
						
							|  |  |  | 	ld hl, .Chances | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp [hl] | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Criticals | 
					
						
							|  |  |  | 	db KARATE_CHOP, RAZOR_WIND, RAZOR_LEAF, CRABHAMMER, SLASH, AEROBLAST, CROSS_CHOP, $ff | 
					
						
							|  |  |  | .Chances | 
					
						
							|  |  |  | 	; 6.25% 12.1% 24.6% 33.2% 49.6% 49.6% 49.6% | 
					
						
							|  |  |  | 	db $11,  $20,  $40,  $55,  $80,  $80,  $80 | 
					
						
							|  |  |  | 	;   0     1     2     3     4     5     6 | 
					
						
							|  |  |  | ; 346b2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_TripleKick: ; 346b2 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; triplekick | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wKickCounter] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	inc b | 
					
						
							|  |  |  | 	ld hl, CurDamage + 1 | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .next_kick | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec b | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	add e | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	adc d | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; No overflow. | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .next_kick | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 346cd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_KickCounter: ; 346cd | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; kickcounter | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, wKickCounter | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 346d2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Stab: ; 346d2 | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | ; STAB = Same Type Attack Bonus | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp STRUGGLE | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonType1 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							|  |  |  | 	ld hl, EnemyMonType1 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ld e, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 	jr z, .go ; Who Attacks and who Defends | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemyMonType1 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							|  |  |  | 	ld hl, BattleMonType1 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ld e, [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | .go | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	callba DoWeatherModifiers | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	callba DoBadgeTypeBoosts | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wTypeMatchup] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jr z, .stab | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jr z, .stab | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr .SkipStab | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | .stab | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage + 1 | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	ld h, [hl] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, h | 
					
						
							|  |  |  | 	ld c, l | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	rr c | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, h | 
					
						
							|  |  |  | 	ld [CurDamage], a | 
					
						
							|  |  |  | 	ld a, l | 
					
						
							|  |  |  | 	ld [CurDamage + 1], a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, TypeModifier | 
					
						
							|  |  |  | 	set 7, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .SkipStab | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld hl, TypeMatchup | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .TypesLoop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $ff | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jr z, .end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; foresight | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $fe | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr nz, .SkipForesightCheck | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_IDENTIFIED, a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jr nz, .end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr .TypesLoop | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .SkipForesightCheck | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr nz, .SkipType | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp d | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr z, .GotMatchup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp e | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr z, .GotMatchup | 
					
						
							|  |  |  | 	jr .SkipType | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .GotMatchup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and %10000000 | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | ; If the target is immune to the move, treat it as a miss and calculate the damage as 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr nz, .NotImmune | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .NotImmune | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add b | 
					
						
							|  |  |  | 	ld [TypeModifier], a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hProduct + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hProduct + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hProduct + 3] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr z, .ok ; This is a very convoluted way to get back that we've essentially dealt no damage. | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | ; Take the product and divide it by 10. | 
					
						
							|  |  |  | 	ld a, 10 | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDivisor], a | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	ld b, 4 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Divide | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr nz, .ok | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .ok | 
					
						
							|  |  |  | 	ld a, [hMultiplicand + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	ld a, [hMultiplicand + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .SkipType | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr .TypesLoop | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .end | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCheckTypeMatchup | 
					
						
							|  |  |  | 	ld a, [wTypeMatchup] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [TypeModifier] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	and %10000000 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							|  |  |  | 	ld [TypeModifier], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 347c8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | BattleCheckTypeMatchup: ; 347c8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonType1 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, CheckTypeMatchup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonType1 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 347d3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | CheckTypeMatchup: ; 347d3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-18 00:55:44 -07:00
										 |  |  | 	ld a, 10 ; 1.0 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, TypeMatchup | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .TypesLoop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp $ff | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr z, .End | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $fe | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr nz, .Next | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_IDENTIFIED, a | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr nz, .End | 
					
						
							|  |  |  | 	jr .TypesLoop | 
					
						
							|  |  |  | .Next | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp d | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr nz, .Nope | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr z, .Yup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr z, .Yup | 
					
						
							|  |  |  | 	jr .Nope2 | 
					
						
							|  |  |  | .Nope | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .Nope2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr .TypesLoop | 
					
						
							|  |  |  | .Yup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDividend + 0], a | 
					
						
							|  |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							|  |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wTypeMatchup] | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	ld a, 10 | 
					
						
							|  |  |  | 	ld [hDivisor], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	ld b, 4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call Divide | 
					
						
							|  |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | 	jr .TypesLoop | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 13:19:41 -04:00
										 |  |  | .End | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 34833 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | BattleCommand_ResetTypeMatchup: ; 34833 | 
					
						
							|  |  |  | ; Reset the type matchup multiplier to 1.0, if the type matchup is not 0. | 
					
						
							|  |  |  | ; If there is immunity in play, the move automatically misses. | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCheckTypeMatchup | 
					
						
							|  |  |  | 	ld a, [wTypeMatchup] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	ld a, 10 ; 1.0 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	jr nz, .reset | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [TypeModifier], a | 
					
						
							|  |  |  | 	inc a | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | .reset | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 3484e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | INCLUDE "battle/ai/switch.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | TypeMatchup: ; 34bb1 | 
					
						
							|  |  |  | INCLUDE "battle/type_matchup.asm" | 
					
						
							|  |  |  | ; 34cfd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DamageVariation: ; 34cfd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; damagevariation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Modify the damage spread between 85% and 100%. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Because of the method of division the probability distribution | 
					
						
							|  |  |  | ; is not consistent. This makes the highest damage multipliers | 
					
						
							|  |  |  | ; rarer than normal. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; No point in reducing 1 or 0 damage. | 
					
						
							|  |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr nz, .go | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp 2 | 
					
						
							|  |  |  | 	ret c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .go | 
					
						
							|  |  |  | ; Start with the maximum damage. | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Multiply by 85-100%... | 
					
						
							|  |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	rrca | 
					
						
							|  |  |  | 	cp $d9 ; 85% | 
					
						
							|  |  |  | 	jr c, .loop | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; ...divide by 100%... | 
					
						
							|  |  |  | 	ld a, $ff ; 100% | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDivisor], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $4 | 
					
						
							|  |  |  | 	call Divide | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; ...to get .85-1.00x damage. | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 34d32 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckHit: ; 34d32 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; checkhit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .DreamEater | 
					
						
							|  |  |  | 	jp z, .Miss | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .Protect | 
					
						
							|  |  |  | 	jp nz, .Miss | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .DrainSub | 
					
						
							|  |  |  | 	jp z, .Miss | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .LockOn | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .FlyDigMoves | 
					
						
							|  |  |  | 	jp nz, .Miss | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .ThunderRain | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	call .XAccuracy | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	; Perfect-accuracy moves | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_ALWAYS_HIT | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .StatModifiers | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wPlayerMoveStruct + MOVE_ACC] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .BrightPowder | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wEnemyMoveStruct + MOVE_ACC] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .BrightPowder | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp HELD_BRIGHTPOWDER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c ; % miss | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	jr nz, .asm_34d81 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	sub c | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	jr nc, .asm_34d81 | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_34d81 | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	cp $ff | 
					
						
							|  |  |  | 	jr z, .Hit | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							|  |  |  | 	jr nc, .Miss | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Hit | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Miss | 
					
						
							|  |  |  | ; Keep the damage value intact if we're using (Hi) Jump Kick. | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_JUMP_KICK | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .Missed | 
					
						
							|  |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Missed | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .DreamEater | 
					
						
							|  |  |  | ; Return z if we're trying to eat the dream of | 
					
						
							|  |  |  | ; a monster that isn't sleeping. | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_DREAM_EATER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Protect | 
					
						
							|  |  |  | ; Return nz if the opponent is protected. | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_PROTECT, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld c, 40 | 
					
						
							|  |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; 'protecting itself!' | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, ProtectingItselfText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld c, 40 | 
					
						
							|  |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .LockOn | 
					
						
							|  |  |  | ; Return nz if we are locked-on and aren't trying to use Earthquake, | 
					
						
							|  |  |  | ; Fissure or Magnitude on a monster that is flying. | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_LOCK_ON, [hl] | 
					
						
							|  |  |  | 	res SUBSTATUS_LOCK_ON, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_FLYING, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .LockedOn | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp EARTHQUAKE | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	cp FISSURE | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	cp MAGNITUDE | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .LockedOn | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .DrainSub | 
					
						
							|  |  |  | ; Return z if using an HP drain move on a substitute. | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .asm_34e00 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_LEECH_HIT | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_DREAM_EATER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_34e00 | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .FlyDigMoves | 
					
						
							|  |  |  | ; Check for moves that can hit underground/flying opponents. | 
					
						
							|  |  |  | ; Return z if the current move can hit the opponent. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_FLYING, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .DigMoves | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp GUST | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	cp WHIRLWIND | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	cp THUNDER | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	cp TWISTER | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .DigMoves | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp EARTHQUAKE | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	cp FISSURE | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	cp MAGNITUDE | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .ThunderRain | 
					
						
							|  |  |  | ; Return z if the current move always hits in rain, and it is raining. | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_THUNDER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [Weather] | 
					
						
							|  |  |  | 	cp WEATHER_RAIN | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | .XAccuracy | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	bit SUBSTATUS_X_ACCURACY, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .StatModifiers | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wPlayerMoveStruct + MOVE_ACC | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PlayerAccLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [EnemyEvaLevel] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	jr z, .asm_34e60 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wEnemyMoveStruct + MOVE_ACC | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [EnemyAccLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [PlayerEvaLevel] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_34e60 | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr c, .asm_34e6b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_IDENTIFIED, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_34e6b | 
					
						
							|  |  |  | 	ld a, $e | 
					
						
							|  |  |  | 	sub c | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							|  |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	ld d, $2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_34e7a | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	ld hl, .AccProb | 
					
						
							|  |  |  | 	dec b | 
					
						
							|  |  |  | 	sla b | 
					
						
							|  |  |  | 	ld c, b | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDivisor], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $4 | 
					
						
							|  |  |  | 	call Divide | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							|  |  |  | 	jr nz, .asm_34ea2 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hQuotient + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hQuotient + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_34ea2 | 
					
						
							|  |  |  | 	ld b, c | 
					
						
							|  |  |  | 	dec d | 
					
						
							|  |  |  | 	jr nz, .asm_34e7a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hQuotient + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .asm_34eaf | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_34eaf | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .AccProb | 
					
						
							|  |  |  | 	db  33, 100 ;  33% -6 | 
					
						
							|  |  |  | 	db  36, 100 ;  36% -5 | 
					
						
							|  |  |  | 	db  43, 100 ;  43% -4 | 
					
						
							|  |  |  | 	db  50, 100 ;  50% -3 | 
					
						
							|  |  |  | 	db  60, 100 ;  60% -2 | 
					
						
							|  |  |  | 	db  75, 100 ;  75% -1 | 
					
						
							|  |  |  | 	db   1,   1 ; 100%  0 | 
					
						
							|  |  |  | 	db 133, 100 ; 133% +1 | 
					
						
							|  |  |  | 	db 166, 100 ; 166% +2 | 
					
						
							|  |  |  | 	db   2,   1 ; 200% +3 | 
					
						
							|  |  |  | 	db 233, 100 ; 233% +4 | 
					
						
							|  |  |  | 	db 133,  50 ; 266% +5 | 
					
						
							|  |  |  | 	db   3,   1 ; 300% +6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; 34ecc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_EffectChance: ; 34ecc | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; effectchance | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [EffectFailed], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr nz, .failed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wPlayerMoveStruct + MOVE_CHANCE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .asm_34ee1 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wEnemyMoveStruct + MOVE_CHANCE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_34ee1 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp [hl] | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .failed | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [EffectFailed], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 34eee | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | BattleCommand_LowerSub: ; 34eee | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ; lowersub | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_CHARGED, a | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr nz, .already_charged | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_RAZOR_WIND | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .charge_turn | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SKY_ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .charge_turn | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SKULL_BASH | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .charge_turn | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SOLARBEAM | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .charge_turn | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_FLY | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .charge_turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | .already_charged | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call .Rampage | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .charge_turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckUserIsCharging | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | .charge_turn | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call _CheckBattleScene | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr c, .mimic_anims | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	ld a, SUBSTITUTE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp LoadAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic_anims | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call BattleCommand_LowerSubNoAnim | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jp BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Rampage | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_ROLLOUT | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .rollout_rampage | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_RAMPAGE | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .rollout_rampage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | .rollout_rampage | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [wc73e] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, 0 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wc73e], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 34f57 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HitTarget: ; 34f57 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; hittarget | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCommand_HitTargetNoSub | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jp BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 34f60 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | BattleCommand_HitTargetNoSub: ; 34f60 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jp nz, BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, PlayerRolloutCount | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, BATTLEANIM_ENEMY_DAMAGE | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	jr z, .got_rollout_count | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, EnemyRolloutCount | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, BATTLEANIM_PLAYER_DAMAGE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | .got_rollout_count | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_MULTI_HIT | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	jr z, .multihit | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_CONVERSION | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	jr z, .conversion | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_DOUBLE_HIT | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	jr z, .doublehit | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_TWINEEDLE | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	jr z, .twineedle | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_TRIPLE_KICK | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .triplekick | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | .triplekick | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld d, 0 | 
					
						
							|  |  |  | 	call PlayFXAnimID | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp FLY | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .fly_dig | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp DIG | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | .fly_dig | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; clear sprite | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp AppearUserLowerSub | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | .multihit | 
					
						
							|  |  |  | .conversion | 
					
						
							|  |  |  | .doublehit | 
					
						
							|  |  |  | .twineedle | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wKickCounter] | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	and 1 | 
					
						
							|  |  |  | 	xor 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	cp $1 | 
					
						
							|  |  |  | 	push af | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld e, a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	ld d, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							|  |  |  | 	jp z, PlayFXAnimID | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PlayFXAnimID | 
					
						
							|  |  |  | ; 34fd1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | BattleCommand_StatUpAnim: ; 34fd1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jp nz, BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr BattleCommand_StatUpDownAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 34fdb | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | BattleCommand_StatDownAnim: ; 34fdb | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jp nz, BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, BATTLEANIM_ENEMY_STAT_DOWN | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, BattleCommand_StatUpDownAnim | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, BATTLEANIM_WOBBLE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 34feb | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | BattleCommand_StatUpDownAnim: ; 34feb | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld d, 0 | 
					
						
							|  |  |  | 	jp PlayFXAnimID | 
					
						
							|  |  |  | ; 34ffd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | BattleCommand_SwitchTurn: ; 34ffd | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; switchturn | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	xor 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hBattleTurn], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35004 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | BattleCommand_RaiseSub: ; 35004 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ; raisesub | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call _CheckBattleScene | 
					
						
							|  |  |  | 	jp c, BattleCommand_RaiseSubNoAnim | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 	ld a, $2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	ld a, SUBSTITUTE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp LoadAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35023 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | BattleCommand_FailureText: ; 35023 | 
					
						
							|  |  |  | ; failuretext | 
					
						
							|  |  |  | ; If the move missed or failed, load the appropriate | 
					
						
							|  |  |  | ; text, and end the effects of multi-turn or multi- | 
					
						
							|  |  |  | ; hit moves. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call GetFailureResultText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp FLY | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fly_dig | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	cp DIG | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fly_dig | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:33:29 -04:00
										 |  |  | ; Move effect: | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_MULTI_HIT | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .multihit | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_DOUBLE_HIT | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .multihit | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_TWINEEDLE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .multihit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .multihit | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .fly_dig | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	res SUBSTATUS_UNDERGROUND, [hl] | 
					
						
							|  |  |  | 	res SUBSTATUS_FLYING, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call AppearUserRaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 3505e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckFaint: ; 3505e | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | ; checkfaint | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_ENDURE, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .not_enduring | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_FalseSwipe | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $0 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nc, .okay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr .okay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .not_enduring | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp HELD_FOCUS_BAND | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $0 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .okay | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nc, .okay | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_FalseSwipe | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $0 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nc, .okay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $2 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .okay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call .check_sub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, $0 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .damage_player | 
					
						
							|  |  |  | 	call EnemyHurtItself | 
					
						
							|  |  |  | 	jr .done_damage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .damage_player | 
					
						
							|  |  |  | 	call PlayerHurtItself | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .done_damage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .not_enduring2 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, EnduredText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .not_enduring2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	call GetItemName | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, HungOnText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .check_sub | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld de, PlayerDamageTaken + 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .damage_taken | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld de, EnemyDamageTaken + 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .damage_taken | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurDamage + 1] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	add b | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	dec de | 
					
						
							|  |  |  | 	ld a, [CurDamage] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	adc b | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 350e4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | GetFailureResultText: ; 350e4 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, DoesntAffectText | 
					
						
							|  |  |  | 	ld de, DoesntAffectText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .got_text | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_FUTURE_SIGHT | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, ButItFailedText | 
					
						
							|  |  |  | 	ld de, ItFailedText | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .got_text | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, AttackMissedText | 
					
						
							|  |  |  | 	ld de, AttackMissed2Text | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CriticalHit] | 
					
						
							|  |  |  | 	cp $ff | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .got_text | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, UnaffectedText | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .got_text | 
					
						
							|  |  |  | 	call FailText_CheckOpponentProtect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_JUMP_KICK | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	rept 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl a | 
					
						
							|  |  |  | 	rr b | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 	dec hl | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .do_at_least_1_damage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .do_at_least_1_damage | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, CrashedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadMoveAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, $1 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp nz, EnemyHurtItself | 
					
						
							|  |  |  | 	jp PlayerHurtItself | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | FailText_CheckOpponentProtect: ; 35157 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_PROTECT, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .not_protected | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld h, d | 
					
						
							|  |  |  | 	ld l, e | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .not_protected | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35165 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BattleCommanda5: ; 35165 | 
					
						
							|  |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							|  |  |  | 	jp z, PrintDoesntAffect | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35175 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CriticalText: ; 35175 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; criticaltext | 
					
						
							|  |  |  | ; Prints the message for critical hits or one-hit KOs. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; If there is no message to be printed, wait 20 frames. | 
					
						
							|  |  |  | 	ld a, [CriticalHit] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .wait | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	add a | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	ld hl, .texts | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld h, [hl] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .wait | 
					
						
							|  |  |  | 	ld c, 20 | 
					
						
							|  |  |  | 	jp DelayFrames | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | .texts | 
					
						
							|  |  |  | 	dw CriticalHitText | 
					
						
							|  |  |  | 	dw OneHitKOText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35197 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_StartLoop: ; 35197 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; startloop | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld hl, PlayerRolloutCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld hl, EnemyRolloutCount | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 351a5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_SuperEffectiveLoopText: ; 351a5 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; supereffectivelooptext | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	bit SUBSTATUS_IN_LOOP, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 351ad | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_SuperEffectiveText: ; 351ad | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; supereffectivetext | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							|  |  |  | 	cp 10 ; 1.0 | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	ld hl, SuperEffectiveText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr nc, .print | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	ld hl, NotVeryEffectiveText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .print | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 351c0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckDestinyBond: ; 351c0 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; checkdestinybond | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Faint the user if it fainted an opponent using Destiny Bond. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .asm_351cb | 
					
						
							|  |  |  | 	ld hl, BattleMonHP | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | .asm_351cb | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_DESTINY_BOND, a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .asm_35231 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, TookDownWithItText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	ld hl, EnemyMonMaxHP + 1 | 
					
						
							|  |  |  | 	bccoord 2, 2 ; hp bar | 
					
						
							|  |  |  | 	ld a, 0 | 
					
						
							|  |  |  | 	jr nz, .asm_351f2 | 
					
						
							|  |  |  | 	ld hl, BattleMonMaxHP + 1 | 
					
						
							|  |  |  | 	bccoord 10, 9 ; hp bar | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_351f2 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd10a], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer3], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer4], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer5], a | 
					
						
							|  |  |  | 	ld [Buffer6], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld h, b | 
					
						
							|  |  |  | 	ld l, c | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	predef AnimateHPBar | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							|  |  |  | 	ld a, DESTINY_BOND | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadAnim | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr .asm_3524d ; 3522f $1c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35231 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_MULTI_HIT | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .asm_3524a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_DOUBLE_HIT | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .asm_3524a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_TWINEEDLE | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .asm_3524a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_TRIPLE_KICK | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .asm_3524a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_BEAT_UP | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr nz, .asm_3524d | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3524a | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3524d | 
					
						
							|  |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 35250 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_BuildOpponentRage: ; 35250 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; buildopponentrage | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp .start | 
					
						
							|  |  |  | .start | 
					
						
							|  |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_RAGE, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-05 19:13:09 -05:00
										 |  |  | 	ld de, wEnemyRageCounter | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-05 19:13:09 -05:00
										 |  |  | 	jr z, .player | 
					
						
							|  |  |  | 	ld de, wPlayerRageCounter | 
					
						
							|  |  |  | .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	inc a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, RageBuildingText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	jp BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3527b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_RageDamage: ; 3527b | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; ragedamage | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurDamage] | 
					
						
							|  |  |  | 	ld h, a | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [CurDamage + 1] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-05 19:13:09 -05:00
										 |  |  | 	ld a, [wPlayerRageCounter] | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	jr z, .asm_35290 | 
					
						
							| 
									
										
										
										
											2015-11-05 19:13:09 -05:00
										 |  |  | 	ld a, [wEnemyRageCounter] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35290 | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	jr z, .asm_3529a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	jr nc, .asm_35290 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld hl, -1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3529a | 
					
						
							|  |  |  | 	ld a, h | 
					
						
							|  |  |  | 	ld [CurDamage], a | 
					
						
							|  |  |  | 	ld a, l | 
					
						
							|  |  |  | 	ld [CurDamage + 1], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 352a3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EndMoveEffect: ; 352a3 | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc + 1] | 
					
						
							|  |  |  | 	ld h, a | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 352b1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DittoMetalPowder: ; 352b1 | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld a, MON_SPECIES | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call BattlePartyAttr | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	jr nz, .Ditto | 
					
						
							|  |  |  | 	ld a, [TempEnemyMonSpecies] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Ditto | 
					
						
							|  |  |  | 	cp DITTO | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp METAL_POWDER | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							|  |  |  | 	srl a | 
					
						
							|  |  |  | 	add c | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr nz, .asm_352d8 | 
					
						
							|  |  |  | 	inc b | 
					
						
							|  |  |  | .asm_352d8 | 
					
						
							|  |  |  | 	scf | 
					
						
							|  |  |  | 	rr c | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 352dc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DamageStats: ; 352dc | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | ; damagestats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jp nz, EnemyAttackDamage | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 352e2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PlayerAttackDamage: ; 352e2 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | ; Return move power d, player level e, enemy defense c and player attack b. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call ResetDamage | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wPlayerMoveStruct + MOVE_POWER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp SPECIAL | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr nc, .special | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .physical | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonDefense | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld a, [EnemyScreens] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SCREENS_REFLECT, a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr z, .physicalcrit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sla c | 
					
						
							|  |  |  | 	rl b | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .physicalcrit | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, BattleMonAttack | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetDamageStatsCritical | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr c, .thickclub | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, EnemyStats + 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld hl, PlayerStats | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr .thickclub | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .special | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonSpclDef | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld a, [EnemyScreens] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SCREENS_LIGHT_SCREEN, a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr z, .specialcrit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sla c | 
					
						
							|  |  |  | 	rl b | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .specialcrit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonSpclAtk | 
					
						
							|  |  |  | 	call GetDamageStatsCritical | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr c, .lightball | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	ld hl, EnemyStats + SP_DEFENSE * 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	ld hl, PlayerStats + SP_ATTACK * 2 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .lightball | 
					
						
							|  |  |  | ; Note: Returns player special attack at hl in hl. | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call LightBallBoost | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr .done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .thickclub | 
					
						
							|  |  |  | ; Note: Returns player attack at hl in hl. | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call ThickClubBoost | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .done | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call TruncateHL_BC | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [BattleMonLevel] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	call DittoMetalPowder | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; 3534d | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | TruncateHL_BC: ; 3534d | 
					
						
							|  |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | ; Truncate 16-bit values hl and bc to 8-bit values b and c respectively. | 
					
						
							|  |  |  | ; b = hl, c = bc | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, h | 
					
						
							|  |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .finish | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl b | 
					
						
							|  |  |  | 	rr c | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	rr c | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							|  |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .done_bc | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .done_bc | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl h | 
					
						
							|  |  |  | 	rr l | 
					
						
							|  |  |  | 	srl h | 
					
						
							|  |  |  | 	rr l | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, l | 
					
						
							|  |  |  | 	or h | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .finish | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc l | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .finish | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	cp 3 | 
					
						
							|  |  |  | 	jr z, .done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, h | 
					
						
							|  |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .loop | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, l | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35378 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GetDamageStatsCritical: ; 35378 | 
					
						
							|  |  |  | ; Return carry if non-critical. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [CriticalHit] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	scf | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 3537e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GetDamageStats: ; 3537e | 
					
						
							|  |  |  | ; Return the attacker's offensive stat and the defender's defensive | 
					
						
							|  |  |  | ; stat based on whether the attacking type is physical or special. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr nz, .enemy | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wPlayerMoveStruct + MOVE_TYPE] | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp SPECIAL | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; special | 
					
						
							|  |  |  | 	ld a, [PlayerSAtkLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [EnemySDefLevel] | 
					
						
							|  |  |  | 	jr nc, .end | 
					
						
							|  |  |  | ; physical | 
					
						
							|  |  |  | 	ld a, [PlayerAtkLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [EnemyDefLevel] | 
					
						
							|  |  |  | 	jr .end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .enemy | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wEnemyMoveStruct + MOVE_TYPE] | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp SPECIAL | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; special | 
					
						
							|  |  |  | 	ld a, [EnemySAtkLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [PlayerSDefLevel] | 
					
						
							|  |  |  | 	jr nc, .end | 
					
						
							|  |  |  | ; physical | 
					
						
							|  |  |  | 	ld a, [EnemyAtkLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [PlayerDefLevel] | 
					
						
							|  |  |  | .end | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 353b5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ThickClubBoost: ; 353b5 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:29:39 -04:00
										 |  |  | ; Return in hl the stat value at hl. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; If the attacking monster is Cubone or Marowak and | 
					
						
							| 
									
										
										
										
											2013-04-20 02:29:39 -04:00
										 |  |  | ; it's holding a Thick Club, double it. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	ld b, CUBONE | 
					
						
							|  |  |  | 	ld c, MAROWAK | 
					
						
							|  |  |  | 	ld d, THICK_CLUB | 
					
						
							|  |  |  | 	call SpeciesItemBoost | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 353c3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | LightBallBoost: ; 353c3 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:29:39 -04:00
										 |  |  | ; Return in hl the stat value at hl. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; If the attacking monster is Pikachu and it's | 
					
						
							| 
									
										
										
										
											2013-04-20 02:29:39 -04:00
										 |  |  | ; holding a Light Ball, double it. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	ld b, PIKACHU | 
					
						
							|  |  |  | 	ld c, PIKACHU | 
					
						
							|  |  |  | 	ld d, LIGHT_BALL | 
					
						
							|  |  |  | 	call SpeciesItemBoost | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 353d1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SpeciesItemBoost: ; 353d1 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:29:39 -04:00
										 |  |  | ; Return in hl the stat value at hl. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; If the attacking monster is species b or c and | 
					
						
							| 
									
										
										
										
											2013-04-20 02:29:39 -04:00
										 |  |  | ; it's holding item d, double it. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld l, [hl] | 
					
						
							|  |  |  | 	ld h, a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld a, MON_SPECIES | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call BattlePartyAttr | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	jr z, .CompareSpecies | 
					
						
							|  |  |  | 	ld a, [TempEnemyMonSpecies] | 
					
						
							|  |  |  | .CompareSpecies | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-10 11:05:26 -05:00
										 |  |  | 	jr z, .GetItemHeldEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 11:05:26 -05:00
										 |  |  | .GetItemHeldEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	call GetUserItem | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	cp d | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Double the stat | 
					
						
							|  |  |  | 	sla l | 
					
						
							|  |  |  | 	rl h | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 353f6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EnemyAttackDamage: ; 353f6 | 
					
						
							|  |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; No damage dealt with 0 power. | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wEnemyMoveStruct + MOVE_POWER | 
					
						
							|  |  |  | 	ld a, [hli] ; hl = wEnemyMoveStruct + MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp SPECIAL | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr nc, .Special | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .physical | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, BattleMonDefense | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [PlayerScreens] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SCREENS_REFLECT, a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr z, .physicalcrit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sla c | 
					
						
							|  |  |  | 	rl b | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | .physicalcrit | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonAttack | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetDamageStatsCritical | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr c, .thickclub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, PlayerStats + 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld hl, EnemyStats | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr .thickclub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Special | 
					
						
							|  |  |  | 	ld hl, BattleMonSpclDef | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [PlayerScreens] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SCREENS_LIGHT_SCREEN, a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr z, .specialcrit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sla c | 
					
						
							|  |  |  | 	rl b | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | .specialcrit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonSpclAtk | 
					
						
							|  |  |  | 	call GetDamageStatsCritical | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr c, .lightball | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, PlayerStats + 8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, EnemyStats + 6 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | .lightball | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call LightBallBoost | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | .thickclub | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call ThickClubBoost | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | .done | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call TruncateHL_BC | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [EnemyMonLevel] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call DittoMetalPowder | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35461 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_BeatUp: ; 35461 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; beatup | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp nz, .enemy_beats_up | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PlayerSubStatus3] | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	bit SUBSTATUS_IN_LOOP, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .next_mon | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld c, 20 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld [PlayerRolloutCount], a | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld [wd002], a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wc72d], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .got_mon | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .next_mon | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld a, [PlayerRolloutCount] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [PartyCount] | 
					
						
							|  |  |  | 	sub b | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld [wd002], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .got_mon | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld a, [wd002] | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, PartyMonNicknames | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call GetNick | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, MON_HP | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp z, .beatup_fail ; fainted | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld a, [wd002] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld a, [CurBattleMon] | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							|  |  |  | 	ld hl, BattleMonStatus | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .active_mon | 
					
						
							|  |  |  | 	ld a, MON_STATUS | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							|  |  |  | .active_mon | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp nz, .beatup_fail | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wc72d], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BeatUpAttackText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [EnemyMonSpecies] | 
					
						
							|  |  |  | 	ld [CurSpecies], a | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call GetBaseData | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [BaseDefense] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, MON_SPECIES | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld [CurSpecies], a | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call GetBaseData | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [BaseAttack] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, MON_LEVEL | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wPlayerMoveStruct + MOVE_POWER] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .enemy_beats_up | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [EnemySubStatus3] | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	bit SUBSTATUS_IN_LOOP, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .not_first_enemy_beatup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld [EnemyRolloutCount], a | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld [wd002], a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wc72d], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .enemy_continue | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .not_first_enemy_beatup | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld a, [EnemyRolloutCount] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [OTPartyCount] | 
					
						
							|  |  |  | 	sub b | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld [wd002], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .enemy_continue | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .wild | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .link_or_tower | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 	ld a, [InBattleTowerBattle] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .link_or_tower | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld a, [wd002] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, OTPartySpecies | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call GetPokemonName | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .got_enemy_nick | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .link_or_tower | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld a, [wd002] | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, OTPartyMonNicknames | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld bc, NAME_LENGTH | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call AddNTimes | 
					
						
							|  |  |  | 	ld de, StringBuffer1 | 
					
						
							|  |  |  | 	call CopyBytes | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .got_enemy_nick | 
					
						
							|  |  |  | 	ld a, MON_HP | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp z, .beatup_fail | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld a, [wd002] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [CurOTMon] | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	ld hl, EnemyMonStatus | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .active_enemy | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, MON_STATUS | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							|  |  |  | .active_enemy | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .beatup_fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wc72d], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .finish_beatup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .wild | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [EnemyMonSpecies] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call GetPokemonName | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BeatUpAttackText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp EnemyAttackDamage | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .finish_beatup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BeatUpAttackText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [BattleMonSpecies] | 
					
						
							|  |  |  | 	ld [CurSpecies], a | 
					
						
							| 
									
										
										
										
											2013-04-29 15:08:13 -04:00
										 |  |  | 	call GetBaseData | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [BaseDefense] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, MON_SPECIES | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld [CurSpecies], a | 
					
						
							| 
									
										
										
										
											2013-04-29 15:08:13 -04:00
										 |  |  | 	call GetBaseData | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [BaseAttack] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, MON_LEVEL | 
					
						
							|  |  |  | 	call GetBeatupMonLocation | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wEnemyMoveStruct + MOVE_POWER] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; 355b0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .beatup_fail: ; 355b0 | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | 	ld b, buildopponentrage_command | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp SkipToBattleCommand | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 355b5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BattleCommanda8: ; 355b5 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [wc72d] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 355bd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | GetBeatupMonLocation: ; 355bd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld hl, PartyMon1Species | 
					
						
							|  |  |  | 	jr z, .asm_355cc | 
					
						
							| 
									
										
										
										
											2013-04-08 02:15:08 -04:00
										 |  |  | 	ld hl, OTPartyMon1Species | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_355cc | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	ld a, [wd002] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	call GetPartyLocation | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ClearMissDamage: ; 355d5 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; clearmissdamage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp ResetDamage | 
					
						
							|  |  |  | ; 355dd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | HitSelfInConfusion: ; 355dd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, BattleMonDefense | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, PlayerScreens | 
					
						
							|  |  |  | 	ld a, [BattleMonLevel] | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .got_it | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonDefense | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld de, EnemyScreens | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [EnemyMonLevel] | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .got_it | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, [hl] | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SCREENS_REFLECT, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .mimic_screen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	sla c | 
					
						
							|  |  |  | 	rl b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic_screen | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld l, [hl] | 
					
						
							|  |  |  | 	ld h, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call TruncateHL_BC | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, $28 | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35612 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DamageCalc: ; 35612 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | ; damagecalc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Return a damage value for move power d, player level e, enemy defense c and player attack b. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Return 1 if successful, else 0. | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Selfdestruct and Explosion halve defense. | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_EXPLOSION | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nz, .dont_explode | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl c | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nz, .dont_explode | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .dont_explode | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Variable-hit moves and Conversion can have a power of 0. | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_MULTI_HIT | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .skip_zero_damage_check | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-25 04:26:37 -04:00
										 |  |  | 	cp EFFECT_CONVERSION | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .skip_zero_damage_check | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; No damage if move power is 0. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, d | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .skip_zero_damage_check | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | ; Minimum defense value is 1. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nz, .not_dividing_by_zero | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	ld c, 1 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .not_dividing_by_zero | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	ld hl, hDividend | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Level * 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, e | 
					
						
							|  |  |  | 	add a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nc, .level_not_overflowing | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .level_not_overflowing | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; / 5 | 
					
						
							|  |  |  | 	ld a, 5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hld], a | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	ld b, $4 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	call Divide | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; + 2 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; * bp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld [hl], d | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	call Multiply | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; * Attack | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	call Multiply | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; / Defense | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], c | 
					
						
							|  |  |  | 	ld b, $4 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	call Divide | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; / 50 | 
					
						
							|  |  |  | 	ld [hl], 50 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $4 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	call Divide | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Item boosts | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetUserItem | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr z, .DoneItem | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, TypeBoostItems | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .NextItem | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp $ff | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr z, .DoneItem | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Item effect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr nz, .NextItem | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Type | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr nz, .DoneItem | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; * 100 + item effect amount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	add 100 | 
					
						
							|  |  |  | 	ld [hMultiplier], a | 
					
						
							|  |  |  | 	call Multiply | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; / 100 | 
					
						
							|  |  |  | 	ld a, 100 | 
					
						
							|  |  |  | 	ld [hDivisor], a | 
					
						
							|  |  |  | 	ld b, 4 | 
					
						
							|  |  |  | 	call Divide | 
					
						
							|  |  |  | .DoneItem | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Critical hits | 
					
						
							|  |  |  | 	call .CriticalMultiplier | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Update CurDamage (capped at 997). | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 3] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add b | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hProduct + 3], a | 
					
						
							|  |  |  | 	jr nc, .dont_cap_1 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hProduct + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr z, .Cap | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .dont_cap_1 | 
					
						
							|  |  |  | 	ld a, [hProduct] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr nz, .Cap | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 2] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	cp 998 / $100 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr c, .dont_cap_2 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp 998 / $100 + 1 | 
					
						
							|  |  |  | 	jr nc, .Cap | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 3] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	cp 998 % $100 | 
					
						
							|  |  |  | 	jr nc, .Cap | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .dont_cap_2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 3] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	add b | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	adc b | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	jr c, .Cap | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	cp 998 / $100 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr c, .dont_cap_3 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp 998 / $100 + 1 | 
					
						
							|  |  |  | 	jr nc, .Cap | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	cp 998 % $100 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr c, .dont_cap_3 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Cap | 
					
						
							|  |  |  | 	ld a, 997 / $100 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	ld a, 997 % $100 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .dont_cap_3 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | ; Minimum neutral damage is 2 (bringing the cap to 999). | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 	add 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nc, .dont_floor | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .dont_floor | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | .CriticalMultiplier | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CriticalHit] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | ; x2 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hProduct + 3], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hQuotient + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	rl a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hProduct + 2], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Cap at $ffff. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hProduct + 2], a | 
					
						
							|  |  |  | 	ld [hProduct + 3], a | 
					
						
							| 
									
										
										
										
											2013-04-20 02:53:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 35703 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TypeBoostItems: ; 35703 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	db HELD_NORMAL_BOOST,   NORMAL   ; Pink/Polkadot Bow | 
					
						
							|  |  |  | 	db HELD_FIGHTING_BOOST, FIGHTING ; Blackbelt | 
					
						
							|  |  |  | 	db HELD_FLYING_BOOST,   FLYING   ; Sharp Beak | 
					
						
							|  |  |  | 	db HELD_POISON_BOOST,   POISON   ; Poison Barb | 
					
						
							|  |  |  | 	db HELD_GROUND_BOOST,   GROUND   ; Soft Sand | 
					
						
							|  |  |  | 	db HELD_ROCK_BOOST,     ROCK     ; Hard Stone | 
					
						
							|  |  |  | 	db HELD_BUG_BOOST,      BUG      ; Silverpowder | 
					
						
							|  |  |  | 	db HELD_GHOST_BOOST,    GHOST    ; Spell Tag | 
					
						
							|  |  |  | 	db HELD_FIRE_BOOST,     FIRE     ; Charcoal | 
					
						
							|  |  |  | 	db HELD_WATER_BOOST,    WATER    ; Mystic Water | 
					
						
							|  |  |  | 	db HELD_GRASS_BOOST,    GRASS    ; Miracle Seed | 
					
						
							|  |  |  | 	db HELD_ELECTRIC_BOOST, ELECTRIC ; Magnet | 
					
						
							|  |  |  | 	db HELD_PSYCHIC_BOOST,  PSYCHIC  ; Twistedspoon | 
					
						
							|  |  |  | 	db HELD_ICE_BOOST,      ICE      ; Nevermeltice | 
					
						
							|  |  |  | 	db HELD_DRAGON_BOOST,   DRAGON   ; Dragon Scale | 
					
						
							|  |  |  | 	db HELD_DARK_BOOST,     DARK     ; Blackglasses | 
					
						
							|  |  |  | 	db HELD_STEEL_BOOST,    STEEL    ; Metal Coat | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db $ff | 
					
						
							|  |  |  | ; 35726 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ConstantDamage: ; 35726 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; constantdamage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonLevel | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .got_turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonLevel | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .got_turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_LEVEL_DAMAGE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	ld a, 0 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .got_power | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_PSYWAVE | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .psywave | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_SUPER_FANG | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .super_fang | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp EFFECT_REVERSAL | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .reversal | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_POWER | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, $0 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr .got_power | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .psywave | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	srl a | 
					
						
							|  |  |  | 	add b | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .psywave_loop | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .psywave_loop ; 35761 $fa | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nc, .psywave_loop ; 35764 $f7 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, $0 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr .got_power ; 35769 $21 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .super_fang | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .got_hp ; 35771 $3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonHP | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .got_hp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	srl a | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	rr a | 
					
						
							|  |  |  | 	push af | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nz, .got_power ; 35781 $9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							|  |  |  | 	ld a, $0 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nz, .got_power ; 35786 $4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr .got_power ; 3578a $0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .got_power | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .reversal | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonHP | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .reversal_got_hp ; 35798 $3 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .reversal_got_hp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hDividend], a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $30 | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDivisor], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr z, .skip_to_divide | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hProduct + 4] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl b | 
					
						
							|  |  |  | 	rr a | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	rr a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDivisor], a | 
					
						
							|  |  |  | 	ld a, [hProduct + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	srl b | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hProduct + 3] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	rr a | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	rr a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDividend + 3], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDividend + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .skip_to_divide | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $4 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Divide | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	ld hl, .FlailPower | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .reversal_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr nc, .break_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	jr .reversal_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | .break_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 	jr nz, .notPlayersTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wPlayerMoveStruct + MOVE_POWER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	call PlayerAttackDamage | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 	jr .notEnemysTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | .notPlayersTurn | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, wEnemyMoveStruct + MOVE_POWER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	call EnemyAttackDamage | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | .notEnemysTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_DamageCalc | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	ld [hl], 1 | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | .FlailPower | 
					
						
							|  |  |  | 	;  px,  bp | 
					
						
							|  |  |  | 	db  1, 200 | 
					
						
							|  |  |  | 	db  4, 150 | 
					
						
							|  |  |  | 	db  9, 100 | 
					
						
							|  |  |  | 	db 16,  80 | 
					
						
							|  |  |  | 	db 32,  40 | 
					
						
							|  |  |  | 	db 48,  20 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35813 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Counter: ; 35813 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; counter | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-12-30 23:32:37 -05:00
										 |  |  | 	callab GetMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp EFFECT_COUNTER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	call BattleCommand_ResetTypeMatchup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wTypeMatchup] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckOpponentWentFirst | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							|  |  |  | 	ld de, StringBuffer1 | 
					
						
							|  |  |  | 	call GetMoveData | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [StringBuffer1 + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [StringBuffer1 + 3] | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp SPECIAL | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nc | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	add a | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	adc a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	jr nc, .capped | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | .capped | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35864 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Encore: ; 35864 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; encore | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld de, EnemyEncoreCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | 	ld de, PlayerEncoreCount | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp z, .failed | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	cp STRUGGLE | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp z, .failed | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	cp ENCORE | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp z, .failed | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	cp MIRROR_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp z, .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3588e | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr nz, .asm_3588e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld bc, $0005 | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and $3f | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp z, .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jp nz, .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	bit SUBSTATUS_ENCORED, [hl] | 
					
						
							|  |  |  | 	jp nz, .failed | 
					
						
							|  |  |  | 	set SUBSTATUS_ENCORED, [hl] | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $3 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckOpponentWentFirst | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr nz, .asm_3591a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr z, .asm_358ef | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	ld a, [LastPlayerMove] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld c, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | .asm_358cc | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr z, .asm_358dd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc c | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp NUM_MOVES | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr c, .asm_358cc | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	res SUBSTATUS_ENCORED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jr .failed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_358dd | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							|  |  |  | 	ld [CurMoveNum], a | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	ld [CurPlayerMove], a | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld de, wPlayerMoveStruct | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetMoveData | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr .asm_3591a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_358ef | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	ld a, [LastEnemyMove] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld c, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							|  |  |  | .asm_358f9 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr z, .asm_3590a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc c | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp NUM_MOVES | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr c, .asm_358f9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	res SUBSTATUS_ENCORED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jr .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3590a | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							|  |  |  | 	ld [CurEnemyMoveNum], a | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	ld [CurEnemyMove], a | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld de, wEnemyMoveStruct | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetMoveData | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3591a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, GotAnEncoreText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PrintDidntAffect2 | 
					
						
							|  |  |  | ; 35926 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_PainSplit: ; 35926 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; painsplit | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp nz, PainSplit_PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp nz, PainSplit_PrintButItFailed | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, BattleMonMaxHP + 1 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld de, EnemyMonMaxHP + 1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call .PlayerShareHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd10a], a | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 10, 9 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	predef AnimateHPBar | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer4], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer3], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer1], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call .EnemyShareHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd10a], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetDamage | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 2, 2 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	predef AnimateHPBar | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	callba _UpdateBattleHUDs | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, SharedPainText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .PlayerShareHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer3], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer4], a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec de | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec de | 
					
						
							|  |  |  | 	add b | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [CurDamage + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	adc b | 
					
						
							|  |  |  | 	srl a | 
					
						
							|  |  |  | 	ld [CurDamage], a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [CurDamage + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	rr a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [CurDamage + 1], a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							|  |  |  | rept 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .EnemyShareHP: ; 359ac | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, [hl] | 
					
						
							|  |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [CurDamage + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sub c | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	dec hl | 
					
						
							|  |  |  | 	ld a, [CurDamage] | 
					
						
							|  |  |  | 	sbc b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nc, .skip | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [CurDamage] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [CurDamage + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .skip | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer5], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer6], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; 359cd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | PainSplit_PrintButItFailed: ; 359cd | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintDidntAffect2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 359d0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Snore: ; 359d0 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; snore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 	ld a, $1 | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call FailSnore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 359e6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Conversion2: ; 359e6 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; conversion2 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_35a50 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonType1 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_359f7 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonType1 | 
					
						
							|  |  |  | .asm_359f7 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35a50 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:23:55 -07:00
										 |  |  | 	ld hl, Moves + MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	call GetMoveAttr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp CURSE_T | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35a50 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35a13 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $1f | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp UNUSED_TYPES | 
					
						
							|  |  |  | 	jr c, .asm_35a24 | 
					
						
							|  |  |  | 	cp UNUSED_TYPES_END | 
					
						
							|  |  |  | 	jr c, .asm_35a13 | 
					
						
							|  |  |  | 	cp TYPES_END | 
					
						
							|  |  |  | 	jr nc, .asm_35a13 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35a24 | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	ld a, d | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCheckTypeMatchup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wTypeMatchup] | 
					
						
							|  |  |  | 	cp 10 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nc, .asm_35a13 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2014-06-16 11:20:01 -07:00
										 |  |  | 	predef GetTypeName | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	ld hl, TransformedTypeText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35a50 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp FailConversion2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35a53 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_LockOn: ; 35a53 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; lockon | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	set SUBSTATUS_LOCK_ON, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, TookAimText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .fail | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PrintDidntAffect | 
					
						
							|  |  |  | ; 35a74 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Sketch: ; 35a74 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; sketch | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call ClearLastMove | 
					
						
							|  |  |  | ; Don't sketch during a link battle | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .not_linked | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PrintNothingHappened | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .not_linked | 
					
						
							|  |  |  | ; If the opponent has a substitute up, fail. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp nz, .fail | 
					
						
							|  |  |  | ; If the opponent is transformed, fail. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_TRANSFORMED, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp nz, .fail | 
					
						
							|  |  |  | ; Get the user's moveset in its party struct. | 
					
						
							|  |  |  | ; This move replacement shall be permanent. | 
					
						
							|  |  |  | ; Pointer will be in de. | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld a, MON_MOVES | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call UserPartyAttr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, h | 
					
						
							|  |  |  | 	ld e, l | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ; Get the battle move structs. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .get_last_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .get_last_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ; Fail if move is invalid or is Struggle. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp STRUGGLE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							|  |  |  | ; Fail if user already knows that move | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld c, NUM_MOVES | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .does_user_already_know_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec c | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .does_user_already_know_move | 
					
						
							|  |  |  | ; Find Sketch in the user's moveset. | 
					
						
							|  |  |  | ; Pointer in hl, and index in c. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld c, NUM_MOVES | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .find_sketch | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec c | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp SKETCH | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .find_sketch | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ; The Sketched move is loaded to that slot. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ; Copy the base PP from that move. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:23:55 -07:00
										 |  |  | 	ld hl, Moves + MOVE_PP | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	call GetMoveAttr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2014-06-10 23:23:55 -07:00
										 |  |  | 	ld bc, BattleMonPP - BattleMonMoves | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .user_trainer | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .user_trainer | 
					
						
							|  |  |  | ; wildmon | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld hl, wWildMonPP | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld hl, wWildMonMoves | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ld [hl], b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr .done_copy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .user_trainer | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	push af | 
					
						
							|  |  |  | 	ld l, c | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld h, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, de | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	pop af | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld de, MON_PP - MON_MOVES | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, de | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .done_copy | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call GetMoveName | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, SketchedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .fail | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PrintDidntAffect | 
					
						
							|  |  |  | ; 35b16 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DefrostOpponent: ; 35b16 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; defrostopponent | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | ; Thaw the opponent if frozen, and | 
					
						
							|  |  |  | ; raise the user's Attack one stage. | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	call Defrost | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld a, EFFECT_ATTACK_UP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_StatUp | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35b33 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_SleepTalk: ; 35b33 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; sleeptalk | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call ClearLastMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld hl, BattleMonMoves + 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [DisabledMove] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35b4f | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld hl, EnemyMonMoves + 1 | 
					
						
							| 
									
										
										
										
											2013-05-03 21:04:34 -04:00
										 |  |  | 	ld a, [EnemyDisabledMove] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | .asm_35b4f | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call .asm_35ba9 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr c, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							|  |  |  | .asm_35b62 | 
					
						
							|  |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	and 3 ; TODO factor in NUM_MOVES | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35b62 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp e | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35b62 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, e | 
					
						
							|  |  |  | 	cp d | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35b62 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call .asm_35bdf | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35b62 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, e | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckUserIsCharging | 
					
						
							|  |  |  | 	jr nz, .charging | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wKickCounter] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .charging | 
					
						
							|  |  |  | 	call LoadMoveAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call UpdateMoveData | 
					
						
							|  |  |  | 	jp ResetTurn | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .fail | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp TryPrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_35ba9 | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	call .asm_35bb3 | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_35bb3 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [DisabledMove] | 
					
						
							|  |  |  | 	jr z, .asm_35bbe | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 21:04:34 -04:00
										 |  |  | 	ld a, [EnemyDisabledMove] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35bbe | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							|  |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld d, NUM_MOVES | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35bc8 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .asm_35bdb | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cp c | 
					
						
							|  |  |  | 	jr z, .asm_35bd7 | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr z, .asm_35bd7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call .asm_35bdf | 
					
						
							|  |  |  | 	jr nz, .asm_35bdd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_35bd7 | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	dec d | 
					
						
							|  |  |  | 	jr nz, .asm_35bc8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_35bdb | 
					
						
							|  |  |  | 	scf | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_35bdd | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_35bdf | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-12-30 23:32:37 -05:00
										 |  |  | 	callab GetMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp EFFECT_SKULL_BASH | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp EFFECT_RAZOR_WIND | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp EFFECT_SKY_ATTACK | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp EFFECT_SOLARBEAM | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp EFFECT_FLY | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp EFFECT_BIDE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 35bff | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DestinyBond: ; 35bff | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; destinybond | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	set SUBSTATUS_DESTINY_BOND, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, DestinyBondEffectText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35c0f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Spite: ; 35c0f | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; spite | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	jp nz, .asm_35c91 | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld bc, PARTYMON_STRUCT_LENGTH ; ???? | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35c24 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | .asm_35c24 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35c91 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp STRUGGLE | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35c91 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-23 12:45:30 -07:00
										 |  |  | 	ld c, -1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35c33 | 
					
						
							|  |  |  | 	inc c | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_35c33 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2014-06-23 12:45:30 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2014-06-23 12:45:30 -07:00
										 |  |  | 	ld c, BattleMonPP - BattleMonMoves | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and $3f | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35c91 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call GetMoveName | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	and 3 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and $3f | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nc, .asm_35c5b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | .asm_35c5b | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	sub b | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld a, MON_PP | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call OpponentPartyAttr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, b | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_TRANSFORMED, a | 
					
						
							|  |  |  | 	jr nz, .asm_35c82 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_35c81 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_35c81 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, wc739 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | .asm_35c81 | 
					
						
							|  |  |  | 	ld [hl], e | 
					
						
							|  |  |  | .asm_35c82 | 
					
						
							|  |  |  | 	push de | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop de | 
					
						
							|  |  |  | 	ld a, d | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, SpiteEffectText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35c91 | 
					
						
							|  |  |  | 	jp PrintDidntAffect2 | 
					
						
							|  |  |  | ; 35c94 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FalseSwipe: ; 35c94 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; falseswipe | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35c9f | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonHP | 
					
						
							|  |  |  | .asm_35c9f | 
					
						
							|  |  |  | 	ld de, CurDamage | 
					
						
							|  |  |  | 	ld c, $2 | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	call StringCmp | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr c, .asm_35cc7 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_35cba | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | .asm_35cba | 
					
						
							|  |  |  | 	ld a, [CriticalHit] | 
					
						
							|  |  |  | 	cp $2 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_35cc5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							|  |  |  | .asm_35cc5 | 
					
						
							|  |  |  | 	scf | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | .asm_35cc7 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35cc9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HealBell: ; 35cc9 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; healbell | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SUBSTATUS_NIGHTMARE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, PartyMon1Status | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_35cdb | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, OTPartyMon1Status | 
					
						
							|  |  |  | .asm_35cdb | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ld h, d | 
					
						
							|  |  |  | 	ld l, e | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld bc, PARTYMON_STRUCT_LENGTH | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld d, PartyEnd - PartySpecies | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_35ce9 | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	dec d | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	jr nz, .asm_35ce9 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BellChimedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp z, CalcPlayerStats | 
					
						
							|  |  |  | 	jp CalcEnemyStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35d00 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FarPlayBattleAnimation: ; 35d00 | 
					
						
							|  |  |  | ; play animation de | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 35d08 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PlayFXAnimID: ; 35d08 | 
					
						
							|  |  |  | 	ld a, e | 
					
						
							|  |  |  | 	ld [FXAnimIDLo], a | 
					
						
							|  |  |  | 	ld a, d | 
					
						
							|  |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld c, 3 | 
					
						
							|  |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-04 00:44:45 -05:00
										 |  |  | 	callab PlayBattleAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35d1c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | EnemyHurtItself: ; 35d1c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .did_no_damage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .mimic_sub_check | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [EnemySubStatus4] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp nz, SelfInflictDamageToSubstitute | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .mimic_sub_check | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, [EnemyMonHP + 1] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer3], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sub b | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [EnemyMonHP + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, [EnemyMonHP] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer4], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sbc b | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld [EnemyMonHP], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nc, .mimic_faint | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld a, [Buffer4] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld a, [Buffer3] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic_faint | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld hl, EnemyMonMaxHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer1], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer6], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer5], a | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 2, 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd10a], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	predef AnimateHPBar | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .did_no_damage | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	jp RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35d7e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | PlayerHurtItself: ; 35d7e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .did_no_damage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .mimic_sub_check | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [PlayerSubStatus4] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp nz, SelfInflictDamageToSubstitute | 
					
						
							|  |  |  | .mimic_sub_check | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, [BattleMonHP + 1] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer3], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sub b | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [BattleMonHP + 1], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer5], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	ld a, [BattleMonHP] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer4], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sbc b | 
					
						
							|  |  |  | 	ld [BattleMonHP], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer6], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nc, .mimic_faint | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld a, [Buffer4] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld a, [Buffer3] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonHP | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld hl, Buffer5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic_faint | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMaxHP | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer1], a | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 10, 9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd10a], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	predef AnimateHPBar | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .did_no_damage | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	jp RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35de0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | SelfInflictDamageToSubstitute: ; 35de0 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, SubTookDamageText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld de, EnemySubstituteHP | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .got_hp | 
					
						
							|  |  |  | 	ld de, PlayerSubstituteHP | 
					
						
							|  |  |  | .got_hp | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nz, .broke | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	sub [hl] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .broke | 
					
						
							|  |  |  | 	jr nc, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .broke | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SUBSTATUS_SUBSTITUTE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, SubFadedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call BattleCommand_LowerSubNoAnim | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call z, AppearUserLowerSub | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_MULTI_HIT | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_DOUBLE_HIT | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_TWINEEDLE | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_TRIPLE_KICK | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_BEAT_UP | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp ResetDamage | 
					
						
							|  |  |  | ; 35e40 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | UpdateMoveData: ; 35e40 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, h | 
					
						
							|  |  |  | 	ld e, l | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [CurMove], a | 
					
						
							|  |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	call GetMoveData | 
					
						
							|  |  |  | 	call GetMoveName | 
					
						
							|  |  |  | 	jp CopyName1 | 
					
						
							|  |  |  | ; 35e5c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_SleepTarget: ; 35e5c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; sleeptarget | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_SLEEP | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .not_protected_by_item | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	call GetItemName | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, ProtectedByText | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr .fail | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .not_protected_by_item | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, h | 
					
						
							|  |  |  | 	ld e, l | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, AlreadyAsleepText | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jp nz, PrintDidntAffect2 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, DidntAffect1Text | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call .CheckAIRandomFail | 
					
						
							|  |  |  | 	jr c, .fail | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $7 | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 	ld a, [InBattleTowerBattle] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .random_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, $3 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .random_loop | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and b | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .random_loop | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	cp 7 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .random_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateOpponentInParty | 
					
						
							|  |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FellAsleepText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	callba UseHeldStatusHealingItem | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jp z, OpponentCantMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35ece | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .CheckAIRandomFail: ; 35ece | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Enemy turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .dont_fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Not in link battle | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .dont_fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 	ld a, [InBattleTowerBattle] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .dont_fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; Not locked-on by the enemy | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PlayerSubStatus5] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_LOCK_ON, a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .dont_fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	cp $40 ; 25% | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret c | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .dont_fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 35eee | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_PoisonTarget: ; 35eee | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; poisontarget | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call CheckIfTargetIsPoisonType | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_POISON | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SafeCheckSafeguard | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call PoisonOpponent | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld de, ANIM_PSN | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call PlayOpponentBattleAnim | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, WasPoisonedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	callba UseHeldStatusHealingItem | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 35f2c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Poison: ; 35f2c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; poison | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, DoesntAffectText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jp z, .failed | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call CheckIfTargetIsPoisonType | 
					
						
							|  |  |  | 	jp z, .failed | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, AlreadyPoisonedText | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << PSN | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jp nz, .failed | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_POISON | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .do_poison | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	call GetItemName | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, ProtectedByText | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr .failed | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .do_poison | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, DidntAffect1Text | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .failed | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .mimic_random | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .mimic_random | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [InBattleTowerBattle] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .mimic_random | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PlayerSubStatus5] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_LOCK_ON, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .mimic_random | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	cp $40 ; 25% chance AI fails | 
					
						
							|  |  |  | 	jr c, .failed | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic_random | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .failed | 
					
						
							|  |  |  | 	call .check_toxic | 
					
						
							|  |  |  | 	jr z, .toxic | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call .apply_poison | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, WasPoisonedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr .finished | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .toxic | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_TOXIC, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call .apply_poison | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BadlyPoisonedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .finished | 
					
						
							|  |  |  | 	callba UseHeldStatusHealingItem | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35fc0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .apply_poison: ; 35fc0 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call PoisonOpponent | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	jp RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35fc9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .check_toxic: ; 35fc9 | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	ld de, EnemyToxicCount | 
					
						
							|  |  |  | 	jr z, .ok | 
					
						
							|  |  |  | 	ld de, PlayerToxicCount | 
					
						
							|  |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_TOXIC | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 35fe1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | CheckIfTargetIsPoisonType: ; 35fe1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, EnemyMonType1 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, BattleMonType1 | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	inc de | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp POISON | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp POISON | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 35ff5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | PoisonOpponent: ; 35ff5 | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	set PSN, [hl] | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	jp UpdateOpponentInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 35fff | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DrainTarget: ; 35fff | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | ; draintarget | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SapHealth | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, SuckedHealthText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36008 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_EatDream: ; 36008 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | ; eatdream | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SapHealth | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, DreamEatenText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36011 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | SapHealth: ; 36011 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	srl a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld [hDividend], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	rr a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld [hDividend + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .ok1 ; 0x36020 $4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld [hDividend + 1], a | 
					
						
							|  |  |  | .ok1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonHP | 
					
						
							|  |  |  | 	ld de, BattleMonMaxHP | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .battlemonhp ; 0x3602f $6 | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonHP | 
					
						
							|  |  |  | 	ld de, EnemyMonMaxHP | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .battlemonhp | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld bc, Buffer4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	dec bc | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec bc | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec bc | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld a, [hDividend + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	add b | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer5], a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld a, [hDividend] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	adc b | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer6], a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr c, .okay2 ; 0x36056 $c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec de | 
					
						
							|  |  |  | 	sub b | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	sbc b | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nc, .okay3 ; 0x36062 $c | 
					
						
							|  |  |  | .okay2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer5], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer6], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .okay3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 10, 9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .hp_bar ; 0x36078 $4 | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 2, 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .hp_bar | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd10a], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	predef AnimateHPBar | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							|  |  |  | 	jp UpdateBattleMonInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3608c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_BurnTarget: ; 3608c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; burntarget | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp nz, Defrost | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckMoveTypeMatchesTarget ; Don't burn a Fire-type | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_BURN | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SafeCheckSafeguard | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set BRN, [hl] | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateOpponentInParty | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, ApplyBrnEffectOnAttack | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld de, ANIM_BRN | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call PlayOpponentBattleAnim | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, WasBurnedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	callba UseHeldStatusHealingItem | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 360dd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | Defrost: ; 360dd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << FRZ | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [CurOTMon] | 
					
						
							|  |  |  | 	ld hl, OTPartyMon1Status | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PartyMon1Status | 
					
						
							|  |  |  | 	ld a, [CurBattleMon] | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | .ok | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetPartyLocation | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateOpponentInParty | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, DefrostedOpponentText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36102 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FreezeTarget: ; 36102 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; freezetarget | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	ld a, [Weather] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp WEATHER_SUN | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckMoveTypeMatchesTarget ; Don't freeze an Ice-type | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_FREEZE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SafeCheckSafeguard | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set FRZ, [hl] | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateOpponentInParty | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld de, ANIM_FRZ | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call PlayOpponentBattleAnim | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, WasFrozenText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	callba UseHeldStatusHealingItem | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call OpponentCantMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call EndRechargeOpp | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld hl, wEnemyJustGotFrozen | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .finish | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld hl, wPlayerJustGotFrozen | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .finish | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], $1 | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36165 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ParalyzeTarget: ; 36165 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; paralyzetarget | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_PARALYZE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SafeCheckSafeguard | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set PAR, [hl] | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateOpponentInParty | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, ApplyPrzEffectOnSpeed | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld de, ANIM_PAR | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call PlayOpponentBattleAnim | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call PrintParalyze | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld hl, UseHeldStatusHealingItem | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	jp CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 361ac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_AttackUp: ; 361ac | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; attackup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_DefenseUp: ; 361b0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; defenseup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_SpeedUp: ; 361b4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; speedup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, SPEED | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_SpecialAttackUp: ; 361b8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialattackup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, SP_ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_SpecialDefenseUp: ; 361bc | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialdefenseup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, SP_DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_AccuracyUp: ; 361c0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; accuracyup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, ACCURACY | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_EvasionUp: ; 361c4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; evasionup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, EVASION | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_AttackUp2: ; 361c8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; attackup2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, $10 | ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_DefenseUp2: ; 361cc | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; defenseup2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, $10 | DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_SpeedUp2: ; 361d0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; speedup2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, $10 | SPEED | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_SpecialAttackUp2: ; 361d4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialattackup2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, $10 | SP_ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_SpecialDefenseUp2: ; 361d8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialdefenseup2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, $10 | SP_DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_AccuracyUp2: ; 361dc | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; accuracyup2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, $10 | ACCURACY | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_EvasionUp2: ; 361e0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; evasionup2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld b, $10 | EVASION | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatUp | 
					
						
							|  |  |  | BattleCommand_StatUp: ; 361e4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; statup | 
					
						
							| 
									
										
										
										
											2015-10-07 21:27:32 -04:00
										 |  |  | 	call CheckIfStatCanBeRaised | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [FailedMessage] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp StatUpAnimation | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 361ef | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 21:27:32 -04:00
										 |  |  | CheckIfStatCanBeRaised: ; 361ef | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [LoweredStat], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerStatLevels | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .got_stat_levels ; 0x361f9 $3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyStatLevels | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .got_stat_levels | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp nz, .stat_raise_failed | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp nz, .stat_raise_failed | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	inc b | 
					
						
							|  |  |  | 	ld a, $d | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp c, .cant_raise_stat | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f0 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .got_num_stages ; 0x36222 $7 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc b | 
					
						
							|  |  |  | 	ld a, $d | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .got_num_stages ; 0x36228 $1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .got_num_stages | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							|  |  |  | 	cp $5 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .done_calcing_stats ; 0x36230 $36 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, BattleMonStats + 1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, PlayerStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .got_stats_pointer ; 0x3623b $6 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, EnemyMonStats + 1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, EnemyStats | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .got_stats_pointer | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	sla c | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							|  |  |  | 	add e | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .no_carry ; 0x3624c $1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc d | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .no_carry | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	sub 999 % $100 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .not_already_max ; 0x36253 $6 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	sbc 999 / $100 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp z, .stats_already_max | 
					
						
							|  |  |  | .not_already_max | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .calc_player_stats ; 0x3625e $5 | 
					
						
							|  |  |  | 	call CalcEnemyStats | 
					
						
							|  |  |  | 	jr .done_calcing_stats ; 0x36263 $3 | 
					
						
							|  |  |  | .calc_player_stats | 
					
						
							|  |  |  | 	call CalcPlayerStats | 
					
						
							|  |  |  | .done_calcing_stats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [FailedMessage], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 3626e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .stats_already_max: ; 3626e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	dec [hl] | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 36270 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .cant_raise_stat: ; 36270 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [FailedMessage], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 3627b | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .stat_raise_failed: ; 3627b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [FailedMessage], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 36281 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | StatUpAnimation: ; 36281 | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld bc, wPlayerMinimized | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	ld hl, Function3f447 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .do_player ; 0x3628a $6 | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld bc, wEnemyMinimized | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	ld hl, Function3f486 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .do_player | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	cp MINIMIZE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call _CheckBattleScene | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [hBGMapMode], a | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call WaitBGMap | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jp BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 362ad | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_AttackDown: ; 362ad | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; attackdown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_DefenseDown: ; 362b1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; defensedown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_SpeedDown: ; 362b5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; speeddown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, SPEED | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_SpecialAttackDown: ; 362b9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialattackdown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, SP_ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_SpecialDefenseDown: ; 362bd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialdefensedown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, SP_DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_AccuracyDown: ; 362c1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; accuracydown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, ACCURACY | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_EvasionDown: ; 362c5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; evasiondown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, EVASION | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_AttackDown2: ; 362c9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; attackdown2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, $10 | ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_DefenseDown2: ; 362cd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; defensedown2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, $10 | DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_SpeedDown2: ; 362d1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; speeddown2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, $10 | SPEED | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_SpecialAttackDown2: ; 362d5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialattackdown2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, $10 | SP_ATTACK | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_SpecialDefenseDown2: ; 362d9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; specialdefensedown2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, $10 | SP_DEFENSE | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_AccuracyDown2: ; 362dd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; accuracydown2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, $10 | ACCURACY | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_StatDown | 
					
						
							|  |  |  | BattleCommand_EvasionDown2: ; 362e1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; evasiondown2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:31:50 -04:00
										 |  |  | 	ld a, $10 | EVASION | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_StatDown: ; 362e3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; statdown | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld [LoweredStat], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CheckMist | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jp nz, .Mist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyStatLevels | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr z, .GetStatLevel | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerStatLevels | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .GetStatLevel | 
					
						
							|  |  |  | ; Attempt to lower the stat. | 
					
						
							|  |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jp z, .CantLower | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Sharply lower the stat if applicable. | 
					
						
							|  |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f0 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr z, .ComputerMiss | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr nz, .ComputerMiss | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc b | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .ComputerMiss | 
					
						
							|  |  |  | ; Computer opponents have a 1/4 chance of failing. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr z, .DidntMiss | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr nz, .DidntMiss | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 	ld a, [InBattleTowerBattle] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr nz, .DidntMiss | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Lock-On still always works. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PlayerSubStatus5] | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	bit SUBSTATUS_LOCK_ON, a | 
					
						
							|  |  |  | 	jr nz, .DidntMiss | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Attacking moves that also lower accuracy are unaffected. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	cp EFFECT_ACCURACY_DOWN_HIT | 
					
						
							|  |  |  | 	jr z, .DidntMiss | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $40 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr c, .Failed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .DidntMiss | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr nz, .Failed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr nz, .Failed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr nz, .Failed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckHiddenOpponent | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr nz, .Failed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Accuracy/Evasion reduction don't involve stats. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	cp ACCURACY | 
					
						
							|  |  |  | 	jr nc, .Hit | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonAttack + 1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, EnemyStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .do_enemy | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, BattleMonAttack + 1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, PlayerStats | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .do_enemy | 
					
						
							|  |  |  | 	call TryLowerStat | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr z, .CouldntLower | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Hit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [FailedMessage], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .CouldntLower | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | .CantLower | 
					
						
							|  |  |  | 	ld a, 3 | 
					
						
							|  |  |  | 	ld [FailedMessage], a | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Failed | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	ld [FailedMessage], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | .Mist | 
					
						
							|  |  |  | 	ld a, 2 | 
					
						
							|  |  |  | 	ld [FailedMessage], a | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36391 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | CheckMist: ; 36391 | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_ATTACK_DOWN | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .dont_check_mist | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_EVASION_DOWN + 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .check_mist | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_ATTACK_DOWN_2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .dont_check_mist | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_EVASION_DOWN_2 + 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .check_mist | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_ATTACK_DOWN_HIT | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .dont_check_mist | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	cp EFFECT_EVASION_DOWN_HIT + 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .check_mist | 
					
						
							|  |  |  | .dont_check_mist | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .check_mist | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	bit SUBSTATUS_MIST, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 363b8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | BattleCommand_StatUpMessage: ; 363b8 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [FailedMessage] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	inc b | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call GetStatName | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, .stat | 
					
						
							|  |  |  | 	jp BattleTextBox | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .stat | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0cc6 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	start_asm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, .up | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f0 | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	ld hl, .wayup | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .wayup | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0cd0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .up | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0ce0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; 363e9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | BattleCommand_StatDownMessage: ; 363e9 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [FailedMessage] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	inc b | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call GetStatName | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, .stat | 
					
						
							|  |  |  | 	jp BattleTextBox | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .stat | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0ceb | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	start_asm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, .fell | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f0 | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	ld hl, .sharplyfell | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .sharplyfell | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0cf5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | .fell | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d06 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; 3641a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | TryLowerStat: ; 3641a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | ; Lower stat c from stat struct hl (buffer de). | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	sla c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	; add de, c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							|  |  |  | 	add e | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .no_carry | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc d | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .no_carry | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; The lowest possible stat is 1. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	sub 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .not_min | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .not_min | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr z, .Player | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcPlayerStats | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	jr .end | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | .Player | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcEnemyStats | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | .end | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 3644c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_StatUpFailText: ; 3644c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; statupfailtext | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [FailedMessage] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp z, TryPrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	inc b | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call GetStatName | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, WontRiseAnymoreText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3646a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_StatDownFailText: ; 3646a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; statdownfailtext | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [FailedMessage] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp z, TryPrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld hl, ProtectedByMistText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp z, StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	inc b | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call GetStatName | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, WontDropAnymoreText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3648f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GetStatName: ; 3648f | 
					
						
							|  |  |  | 	ld hl, .names | 
					
						
							|  |  |  | 	ld c, "@" | 
					
						
							|  |  |  | .CheckName | 
					
						
							|  |  |  | 	dec b | 
					
						
							|  |  |  | 	jr z, .Copy | 
					
						
							|  |  |  | .GetName | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp c | 
					
						
							|  |  |  | 	jr z, .CheckName | 
					
						
							|  |  |  | 	jr .GetName | 
					
						
							|  |  |  | .Copy | 
					
						
							|  |  |  | 	ld de, StringBuffer2 | 
					
						
							|  |  |  | 	ld bc, StringBuffer3 - StringBuffer2 | 
					
						
							|  |  |  | 	jp CopyBytes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .names | 
					
						
							|  |  |  | 	db "ATTACK@" | 
					
						
							|  |  |  | 	db "DEFENSE@" | 
					
						
							|  |  |  | 	db "SPEED@" | 
					
						
							|  |  |  | 	db "SPCL.ATK@" | 
					
						
							|  |  |  | 	db "SPCL.DEF@" | 
					
						
							|  |  |  | 	db "ACCURACY@" | 
					
						
							|  |  |  | 	db "EVASION@" | 
					
						
							|  |  |  | 	db "ABILITY@" | 
					
						
							|  |  |  | ; 364e6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | StatLevelMultipliers: ; 364e6 | 
					
						
							|  |  |  | 	db 25, 100 ; 0.25x | 
					
						
							|  |  |  | 	db 28, 100 ; 0.28x | 
					
						
							|  |  |  | 	db 33, 100 ; 0.33x | 
					
						
							|  |  |  | 	db 40, 100 ; 0.40x | 
					
						
							|  |  |  | 	db 50, 100 ; 0.50x | 
					
						
							|  |  |  | 	db 66, 100 ; 0.66x | 
					
						
							|  |  |  | 	db  1,   1 ; 1.00x | 
					
						
							|  |  |  | 	db 15,  10 ; 1.50x | 
					
						
							|  |  |  | 	db  2,   1 ; 2.00x | 
					
						
							|  |  |  | 	db 25,  10 ; 2.50x | 
					
						
							|  |  |  | 	db  3,   1 ; 3.00x | 
					
						
							|  |  |  | 	db 35,  10 ; 3.50x | 
					
						
							|  |  |  | 	db  4,   1 ; 4.00x | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36500 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_AllStatsUp: ; 36500 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; allstatsup | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Attack | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetMiss | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_AttackUp | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCommand_StatUpMessage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; Defense | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetMiss | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_DefenseUp | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCommand_StatUpMessage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; Speed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetMiss | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_SpeedUp | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCommand_StatUpMessage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; Special Attack | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetMiss | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_SpecialAttackUp | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call BattleCommand_StatUpMessage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; Special Defense | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetMiss | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_SpecialDefenseUp | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp   BattleCommand_StatUpMessage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3652d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ResetMiss: ; 3652d | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36532 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | LowerStat: ; 36532 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [LoweredStat], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, PlayerStatLevels | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .got_target | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyStatLevels | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .got_target | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .cant_lower_anymore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [LoweredStat] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $f0 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .got_num_stages | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .got_num_stages | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc b | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .got_num_stages | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							|  |  |  | 	cp 5 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .accuracy_evasion | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, BattleMonStats + 1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, PlayerStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .got_target_2 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld hl, EnemyMonStats + 1 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, EnemyStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .got_target_2 | 
					
						
							|  |  |  | 	call TryLowerStat | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .accuracy_evasion | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcEnemyStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .finish | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							|  |  |  | 	call CalcPlayerStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .finish | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [FailedMessage], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .cant_lower_anymore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 2 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld [FailedMessage], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 3658f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_TriStatusChance: ; 3658f | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; tristatuschance | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_EffectChance | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; 1/3 chance of each status | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	swap a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	and 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .loop | 
					
						
							|  |  |  | ; jump | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	ld hl, .ptrs | 
					
						
							| 
									
										
										
										
											2013-07-04 15:42:01 -04:00
										 |  |  | 	rst JumpTable | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | .ptrs | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	dw BattleCommand_ParalyzeTarget ; paralyze | 
					
						
							|  |  |  | 	dw BattleCommand_FreezeTarget ; freeze | 
					
						
							|  |  |  | 	dw BattleCommand_BurnTarget ; burn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 365a7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Curl: ; 365a7 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; curl | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS2 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	set SUBSTATUS_CURLED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 365af | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | BattleCommand_RaiseSubNoAnim: ; 365af | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	ld hl, GetMonBackpic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .PlayerTurn ; 365b5 $3 | 
					
						
							|  |  |  | 	ld hl, GetMonFrontpic | 
					
						
							|  |  |  | .PlayerTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [hBGMapMode], a | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	jp WaitBGMap | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 365c3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | BattleCommand_LowerSubNoAnim: ; 365c3 | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	ld hl, Function3f447 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jr z, .PlayerTurn ; 365c9 $3 | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	ld hl, Function3f486 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | .PlayerTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [hBGMapMode], a | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	jp WaitBGMap | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 365d7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | CalcPlayerStats: ; 365d7 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerAtkLevel | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, PlayerStats | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld bc, BattleMonAttack | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, 5 | 
					
						
							|  |  |  | 	call CalcStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-29 13:58:20 -04:00
										 |  |  | 	ld hl, BadgeStatBoosts | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, ApplyPrzEffectOnSpeed | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, ApplyBrnEffectOnAttack | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	jp BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 365fd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | CalcEnemyStats: ; 365fd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyAtkLevel | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld de, EnemyStats | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld bc, EnemyMonAttack | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, 5 | 
					
						
							|  |  |  | 	call CalcStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, ApplyPrzEffectOnSpeed | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, ApplyBrnEffectOnAttack | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	jp BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3661d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | CalcStats: ; 3661d | 
					
						
							|  |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							|  |  |  | 	dec c | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, StatLevelMultipliers | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld [hDivisor], a | 
					
						
							|  |  |  | 	ld b, 4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call Divide | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld a, [hQuotient + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .check_maxed_out | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	ld [hQuotient + 2], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .not_maxed_out | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .check_maxed_out | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							|  |  |  | 	cp 999 % $100 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	sbc 999 / $100 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .not_maxed_out | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld a, 999 % $100 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hQuotient + 2], a | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	ld a, 999 / $100 | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld [hQuotient + 1], a | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .not_maxed_out | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hQuotient + 1] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [bc], a | 
					
						
							|  |  |  | 	inc bc | 
					
						
							| 
									
										
										
										
											2015-11-09 23:01:45 -05:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [bc], a | 
					
						
							|  |  |  | 	inc bc | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36671 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_StoreEnergy: ; 36671 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; storeenergy | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	bit SUBSTATUS_BIDE, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld hl, PlayerRolloutCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .check_still_storing_energy | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld hl, EnemyRolloutCount | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .check_still_storing_energy | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .still_storing | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	res SUBSTATUS_BIDE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, UnleashedEnergyText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_POWER | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld hl, PlayerDamageTaken + 1 | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld de, wPlayerCharging ; player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld hl, EnemyDamageTaken + 1 | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld de, wEnemyCharging ; enemy | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	add a | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld [CurDamage + 1], a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	rl a | 
					
						
							|  |  |  | 	ld [CurDamage], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .not_maxed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [CurDamage], a | 
					
						
							|  |  |  | 	ld [CurDamage + 1], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .not_maxed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	or b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .built_up_something | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AttackMissed], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .built_up_something | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld a, BIDE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | 	ld b, unleashenergy_command | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp SkipToBattleCommand | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .still_storing | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, StoringEnergyText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 366e5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_UnleashEnergy: ; 366e5 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; unleashenergy | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld de, PlayerDamageTaken | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld bc, PlayerRolloutCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	jr z, .asm_366f6 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld de, EnemyDamageTaken | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld bc, EnemyRolloutCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_366f6 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	set SUBSTATUS_BIDE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld [wPlayerMoveStruct + MOVE_EFFECT], a | 
					
						
							|  |  |  | 	ld [wEnemyMoveStruct + MOVE_EFFECT], a | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	and 1 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2014-08-13 19:44:56 -07:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 3671a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckRampage: ; 3671a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; checkrampage | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, PlayerRolloutCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player ; 36720 $3 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, EnemyRolloutCount | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	bit SUBSTATUS_RAMPAGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .continue_rampage ; 36730 $1a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	res SUBSTATUS_RAMPAGE, [hl] | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SafeCheckSafeguard | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .continue_rampage ; 3673f $b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	set SUBSTATUS_CONFUSED, [hl] | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	and %00000001 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	inc de ; ConfuseCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .continue_rampage | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | 	ld b, rampage_command | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp SkipToBattleCommand | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36751 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Rampage: ; 36751 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; rampage | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; No rampage during Sleep Talk. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, PlayerRolloutCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, EnemyRolloutCount | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	set SUBSTATUS_RAMPAGE, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | ; Rampage for 1 or 2 more turns | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	and %00000001 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wc73e], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 36778 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Teleport: ; 36778 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; teleport | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [BattleType] | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp BATTLETYPE_SHINY | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	jr z, .failed | 
					
						
							|  |  |  | 	cp BATTLETYPE_TRAP | 
					
						
							|  |  |  | 	jr z, .failed | 
					
						
							| 
									
										
										
										
											2014-06-13 22:53:20 -07:00
										 |  |  | 	cp BATTLETYPE_CELEBI | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	jr z, .failed | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp BATTLETYPE_SUICUNE | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	jr z, .failed | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	bit SUBSTATUS_CANT_RUN, a | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	jr nz, .failed | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | ; Only need to check these next things if it's your turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .enemy_turn | 
					
						
							|  |  |  | ; Can't teleport from a trainer battle | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	jr nz, .failed | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | ; If your level is greater than the opponent's, you run without fail. | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [CurPartyLevel] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [BattleMonLevel] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .run_away | 
					
						
							|  |  |  | ; Generate a number between 0 and (YourLevel + TheirLevel). | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add b | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .loop_player | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .loop_player ; 367b0 $fa | 
					
						
							|  |  |  | ; If that number is greater than 4 times your level, run away. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl b | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .run_away ; 367b7 $26 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | .failed | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .enemy_turn | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-17 11:58:11 -07:00
										 |  |  | 	jr nz, .failed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [BattleMonLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [CurPartyLevel] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .run_away ; 367cd $10 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add b | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .loop_enemy | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .loop_enemy ; 367d6 $fa | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl b | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nc, .run_away ; 367dd $0 | 
					
						
							|  |  |  | .run_away | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateBattleMonInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	ld [wForcedSwitch], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							|  |  |  | 	call SetBattleDraw | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadMoveAnim | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	ld c, 20 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call SetBattleDraw | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FledFromBattleText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36804 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | SetBattleDraw: ; 36804 | 
					
						
							| 
									
										
										
										
											2015-10-24 10:34:19 -04:00
										 |  |  | 	ld a, [wBattleResult] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $c0 | 
					
						
							|  |  |  | 	or $2 | 
					
						
							| 
									
										
										
										
											2015-10-24 10:34:19 -04:00
										 |  |  | 	ld [wBattleResult], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 3680f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ForceSwitch: ; 3680f | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; forceswitch | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [BattleType] | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp BATTLETYPE_SHINY | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jp z, .fail | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 	cp BATTLETYPE_TRAP | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jp z, .fail | 
					
						
							| 
									
										
										
										
											2014-06-13 22:53:20 -07:00
										 |  |  | 	cp BATTLETYPE_CELEBI | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jp z, .fail | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	cp BATTLETYPE_SUICUNE | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jp z, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jp nz, .force_player_switch | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nz, .missed ; 36830 $20 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nz, .trainer ; 36836 $31 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [CurPartyLevel] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [BattleMonLevel] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .wild_force_flee ; 36840 $13 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add b | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .random_loop_wild | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .random_loop_wild ; 36849 $fa | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	srl b | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .wild_force_flee ; 36850 $3 | 
					
						
							|  |  |  | .missed | 
					
						
							|  |  |  | 	jp .fail | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .wild_force_flee | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateBattleMonInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	ld [wForcedSwitch], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call SetBattleDraw | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wPlayerMoveStruct + MOVE_ANIM] | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jp .succeed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .trainer | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	call FindAliveEnemyMons | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr c, .switch_fail ; 3686c $5c | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	ld a, [wEnemyGoesFirst] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr z, .switch_fail ; 36872 $56 | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateEnemyMonInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, $14 | 
					
						
							|  |  |  | 	call DelayFrames | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 1, 0 | 
					
						
							| 
									
										
										
										
											2015-11-01 09:38:48 -05:00
										 |  |  | 	lb bc, 4, 10 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ClearBox | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	ld c, 20 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 	ld a, [OTPartyCount] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [CurOTMon] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | ; select a random enemy mon to switch to | 
					
						
							|  |  |  | .random_loop_trainer | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $7 | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .random_loop_trainer ; 368a0 $f8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr z, .random_loop_trainer ; 368a3 $f5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2014-02-23 00:37:09 -05:00
										 |  |  | 	ld hl, OTPartyMon1HP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetPartyLocation | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr z, .random_loop_trainer ; 368b1 $e7 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, d | 
					
						
							|  |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	ld [wEnemySwitchMonIndex], a | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	callab ForceEnemySwitch | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, DraggedOutText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	ld hl, SpikesDamage | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	jp CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .switch_fail | 
					
						
							|  |  |  | 	jp .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .force_player_switch | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nz, .player_miss | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nz, .vs_trainer | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [BattleMonLevel] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [CurPartyLevel] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .wild_succeed_playeristarget | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	add b | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .wild_random_loop_playeristarget | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .wild_random_loop_playeristarget | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .wild_succeed_playeristarget | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .player_miss | 
					
						
							|  |  |  | 	jr .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .wild_succeed_playeristarget | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateBattleMonInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	ld [wForcedSwitch], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call SetBattleDraw | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld a, [wEnemyMoveStruct + MOVE_ANIM] | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr .succeed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .vs_trainer | 
					
						
							|  |  |  | 	call CheckPlayerHasMonToSwitchTo | 
					
						
							|  |  |  | 	jr c, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	ld a, [wEnemyGoesFirst] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $1 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr z, .switch_fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateBattleMonInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	ld c, 20 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 9, 7 | 
					
						
							| 
									
										
										
										
											2015-11-01 09:38:48 -05:00
										 |  |  | 	lb bc, 5, 11 | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call ClearBox | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	ld c, 20 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 	ld a, [PartyCount] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [CurBattleMon] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .random_loop_trainer_playeristarget | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $7 | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nc, .random_loop_trainer_playeristarget | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp c | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr z, .random_loop_trainer_playeristarget | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	push af | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2014-02-23 00:37:09 -05:00
										 |  |  | 	ld hl, PartyMon1HP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetPartyLocation | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr z, .random_loop_trainer_playeristarget | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, d | 
					
						
							|  |  |  | 	ld [CurPartyMon], a | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	ld hl, SwitchPlayerMon | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, DraggedOutText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	ld hl, SpikesDamage | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	jp CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .fail | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .succeed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call SetBattleDraw | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	ld c, 20 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 	pop af | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, FledInFearText | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	cp ROAR | 
					
						
							|  |  |  | 	jr z, .do_text | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, BlownAwayText | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .do_text | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36994 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | CheckPlayerHasMonToSwitchTo: ; 36994 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PartyCount] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ld e, 0 | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld bc, PARTYMON_STRUCT_LENGTH | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurBattleMon] | 
					
						
							|  |  |  | 	cp e | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr z, .next | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, e | 
					
						
							| 
									
										
										
										
											2014-02-23 00:37:09 -05:00
										 |  |  | 	ld hl, PartyMon1HP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call AddNTimes | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nz, .not_fainted | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .next | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc e | 
					
						
							|  |  |  | 	dec d | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | 	jr nz, .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	scf | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 09:48:32 -05:00
										 |  |  | .not_fainted | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 369b6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_EndLoop: ; 369b6 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; endloop | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Loop back to the command before 'critical'. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, PlayerRolloutCount | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld bc, PlayerDamageTaken | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .asm_369c7 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld de, EnemyRolloutCount | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld bc, EnemyDamageTaken | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_369c7 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	bit SUBSTATUS_IN_LOOP, [hl] | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	jp nz, .asm_36a43 | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	set SUBSTATUS_IN_LOOP, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_TWINEEDLE | 
					
						
							|  |  |  | 	jr z, .asm_36a3f | 
					
						
							|  |  |  | 	cp EFFECT_DOUBLE_HIT | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	jr z, .asm_36a3a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_BEAT_UP | 
					
						
							|  |  |  | 	jr z, .asm_369fb | 
					
						
							|  |  |  | 	cp EFFECT_TRIPLE_KICK | 
					
						
							|  |  |  | 	jr nz, .asm_36a2b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_369ec | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $3 | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	jr z, .asm_369ec | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	jr nz, .asm_36a3a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	jr .asm_36a48 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_369fb | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	jr nz, .asm_36a0b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PartyCount] | 
					
						
							|  |  |  | 	cp $1 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp z, .asm_36a1e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	jr .asm_36a3a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36a0b | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $1 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp z, .asm_36a1e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [OTPartyCount] | 
					
						
							|  |  |  | 	cp $1 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp z, .asm_36a1e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jr .asm_36a3a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_36a1e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	res SUBSTATUS_IN_LOOP, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call BattleCommanda8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | .asm_36a2b | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $3 | 
					
						
							|  |  |  | 	cp $2 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr c, .asm_36a39 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and $3 | 
					
						
							|  |  |  | .asm_36a39 | 
					
						
							|  |  |  | 	inc a | 
					
						
							|  |  |  | .asm_36a3a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc a | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .asm_36a6b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36a3f | 
					
						
							|  |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .asm_36a3a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_36a43 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36a6b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36a48 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-23 12:47:07 -07:00
										 |  |  | 	res SUBSTATUS_IN_LOOP, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, PlayerHitTimesText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	jr z, .asm_36a5a | 
					
						
							|  |  |  | 	ld hl, EnemyHitTimesText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36a5a | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_BEAT_UP | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	jr z, .asm_36a67 | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36a67 | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							|  |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Loop back to the command before 'critical'. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36a6b | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc + 1] | 
					
						
							|  |  |  | 	ld h, a | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							|  |  |  | .asm_36a73 | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	cp $5 ; critical | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36a73 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, h | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc + 1], a | 
					
						
							|  |  |  | 	ld a, l | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36a82 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FakeOut: ; 36a82 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << FRZ | SLP | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckOpponentWentFirst | 
					
						
							|  |  |  | 	jr z, FlinchTarget | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36aa0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FlinchTarget: ; 36aa0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and 1 << FRZ | SLP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckOpponentWentFirst | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 36ab5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | FlinchTarget: ; 36ab5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_FLINCHED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndRechargeOpp | 
					
						
							|  |  |  | ; 36abf | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | CheckOpponentWentFirst: ; 36abf | 
					
						
							|  |  |  | ; Returns a=0, z if user went first | 
					
						
							|  |  |  | ; Returns a=1, nz if opponent went first | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, [wEnemyGoesFirst] ; 0 if player went first | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, [hBattleTurn] ; 0 if it's the player's turn | 
					
						
							|  |  |  | 	xor b ; 1 if opponent went first | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36ac9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_KingsRock: ; 36ac9 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; kingsrock | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetUserItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_TRADE_EVOLVE ; Only King's Rock has this effect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, h | 
					
						
							|  |  |  | 	ld e, l | 
					
						
							|  |  |  | 	call GetUserItem | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp c | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 	call EndRechargeOpp | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_FLINCHED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 36af3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_OHKO: ; 36af3 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; ohko | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_36b2f | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonLevel | 
					
						
							|  |  |  | 	ld de, BattleMonLevel | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld bc, wPlayerMoveStruct + MOVE_ACC | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_36b12 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	ld h, d | 
					
						
							|  |  |  | 	ld l, e | 
					
						
							|  |  |  | 	pop de | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld bc, wEnemyMoveStruct + MOVE_ACC | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36b12 | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	sub [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr c, .asm_36b2f | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add a | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld a, [bc] | 
					
						
							|  |  |  | 	add e | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nc, .asm_36b1e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $ff | 
					
						
							|  |  |  | .asm_36b1e | 
					
						
							|  |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_CheckHit | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ld a, $2 | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | .asm_36b2f | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [CriticalHit], a | 
					
						
							|  |  |  | 	ld a, $1 | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36b3a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckCharge: ; 36b3a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; checkcharge | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_CHARGED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_CHARGED, [hl] | 
					
						
							|  |  |  | 	res SUBSTATUS_UNDERGROUND, [hl] | 
					
						
							|  |  |  | 	res SUBSTATUS_FLYING, [hl] | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | 	ld b, charge_command | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp SkipToBattleCommand | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36b4d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Charge: ; 36b4d | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; charge | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_ClearText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	and SLP | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .awake | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .awake | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_CHARGED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, IgnoredOrders2Text | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AlreadyDisobeyed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call nz, StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadMoveAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp FLY | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .flying | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp DIG | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .flying | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr .not_flying | 
					
						
							|  |  |  | .flying | 
					
						
							|  |  |  | 	call DisappearUser | 
					
						
							|  |  |  | .not_flying | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp FLY | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .set_flying | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp DIG | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .dont_set_digging | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_UNDERGROUND, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr .dont_set_digging | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .set_flying | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_FLYING, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .dont_set_digging | 
					
						
							|  |  |  | 	call CheckUserIsCharging | 
					
						
							|  |  |  | 	jr nz, .mimic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ResetDamage | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld hl, .UsedText | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call BattleTextBox | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SKULL_BASH | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | 	ld b, endturn_command | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp z, SkipToBattleCommand | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .UsedText | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d0e ; "[USER]" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	start_asm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp RAZOR_WIND | 
					
						
							|  |  |  | 	ld hl, .RazorWind | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp SOLARBEAM | 
					
						
							|  |  |  | 	ld hl, .Solarbeam | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp SKULL_BASH | 
					
						
							|  |  |  | 	ld hl, .SkullBash | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp SKY_ATTACK | 
					
						
							|  |  |  | 	ld hl, .SkyAttack | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp FLY | 
					
						
							|  |  |  | 	ld hl, .Fly | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	cp DIG | 
					
						
							|  |  |  | 	ld hl, .Dig | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .RazorWind | 
					
						
							|  |  |  | ; 'made a whirlwind!' | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d12 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Solarbeam | 
					
						
							|  |  |  | ; 'took in sunlight!' | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d26 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .SkullBash | 
					
						
							|  |  |  | ; 'lowered its head!' | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d3a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .SkyAttack | 
					
						
							|  |  |  | ; 'is glowing!' | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d4e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Fly | 
					
						
							|  |  |  | ; 'flew up high!' | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d5c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Dig | 
					
						
							|  |  |  | ; 'dug a hole!' | 
					
						
							| 
									
										
										
										
											2015-07-22 15:57:02 -04:00
										 |  |  | 	text_jump UnknownText_0x1c0d6c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	db "@" | 
					
						
							|  |  |  | ; 36c2c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BattleCommand3c: ; 36c2c | 
					
						
							|  |  |  | ; unused | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36c2d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_TrapTarget: ; 36c2d | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; traptarget | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wEnemyWrapCount | 
					
						
							|  |  |  | 	ld de, wEnemyTrappingMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .asm_36c43 | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wPlayerWrapCount | 
					
						
							|  |  |  | 	ld de, wPlayerTrappingMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_36c43 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and 3 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld hl, .Traps | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_36c61 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr z, .asm_36c69 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr .asm_36c61 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .asm_36c69 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld h, [hl] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Traps | 
					
						
							|  |  |  | 	dbw BIND,      UsedBindText      ; 'used BIND on' | 
					
						
							|  |  |  | 	dbw WRAP,      WrappedByText     ; 'was WRAPPED by' | 
					
						
							|  |  |  | 	dbw FIRE_SPIN, FireSpinTrapText  ; 'was trapped!' | 
					
						
							|  |  |  | 	dbw CLAMP,     ClampedByText     ; 'was CLAMPED by' | 
					
						
							|  |  |  | 	dbw WHIRLPOOL, WhirlpoolTrapText ; 'was trapped!' | 
					
						
							|  |  |  | ; 36c7e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Mist: ; 36c7e | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; mist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_MIST, [hl] | 
					
						
							|  |  |  | 	jr nz, .asm_36c92 | 
					
						
							|  |  |  | 	set SUBSTATUS_MIST, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, MistText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36c92 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36c98 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FocusEnergy: ; 36c98 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; focusenergy | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_FOCUS_ENERGY, [hl] | 
					
						
							|  |  |  | 	jr nz, .asm_36cac | 
					
						
							|  |  |  | 	set SUBSTATUS_FOCUS_ENERGY, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, GettingPumpedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36cac | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36cb2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Recoil: ; 36cb2 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; recoil | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMaxHP | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_36cbd | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	ld hl, EnemyMonMaxHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36cbd | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ld a, [CurDamage] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [CurDamage + 1] | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	rr c | 
					
						
							|  |  |  | 	srl b | 
					
						
							|  |  |  | 	rr c | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	or c | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36cd8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc c | 
					
						
							|  |  |  | .asm_36cd8 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [Buffer1], a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer3], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sub c | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer5], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer4], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	sbc b | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld [Buffer6], a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nc, .asm_36cfe | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	ld hl, Buffer5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | .asm_36cfe | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 10, 9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_36d0c | 
					
						
							| 
									
										
										
										
											2014-06-04 01:10:56 -07:00
										 |  |  | 	hlcoord 2, 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | .asm_36d0c | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd10a], a | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	predef AnimateHPBar | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, RecoilText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36d1d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ConfuseTarget: ; 36d1d | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; confusetarget | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_CONFUSE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld a, [EffectFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call SafeCheckSafeguard | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							|  |  |  | 	call CheckSubstituteOpp | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_CONFUSED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | 	jr Function36d70 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Confuse: ; 36d3b | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; confuse | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_CONFUSE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr nz, .asm_36d53 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	call GetItemName | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, ProtectedByText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_36d53 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_CONFUSED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .asm_36d65 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, AlreadyConfusedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_36d65 | 
					
						
							|  |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | 	jr nz, Function36db6 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | 	jr nz, Function36db6 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 36d70 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | Function36d70: ; 36d70 | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	ld bc, EnemyConfuseCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	jr z, .asm_36d7b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld bc, PlayerConfuseCount | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36d7b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_CONFUSED, [hl] | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	and 3 | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_CONFUSE_HIT | 
					
						
							| 
									
										
										
										
											2015-11-28 15:13:40 -05:00
										 |  |  | 	jr z, .got_effect | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SNORE | 
					
						
							| 
									
										
										
										
											2015-11-28 15:13:40 -05:00
										 |  |  | 	jr z, .got_effect | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SWAGGER | 
					
						
							| 
									
										
										
										
											2015-11-28 15:13:40 -05:00
										 |  |  | 	jr z, .got_effect | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-28 15:13:40 -05:00
										 |  |  | .got_effect | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld de, ANIM_CONFUSED | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call PlayOpponentBattleAnim | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BecameConfusedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_HEAL_STATUS | 
					
						
							| 
									
										
										
										
											2015-11-28 15:13:40 -05:00
										 |  |  | 	jr z, .heal_confusion | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_HEAL_CONFUSION | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-11-28 15:13:40 -05:00
										 |  |  | .heal_confusion | 
					
						
							|  |  |  | 	ld hl, UseConfusionHealingItem | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	jp CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36db6 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | Function36db6: ; 36db6 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_CONFUSE_HIT | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SNORE | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_SWAGGER | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 	jp PrintDidntAffect2 | 
					
						
							|  |  |  | ; 36dc7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Paralyze: ; 36dc7 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; paralyze | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit PAR, a | 
					
						
							|  |  |  | 	jr nz, .asm_36e49 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [TypeModifier] | 
					
						
							|  |  |  | 	and $7f | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_36e55 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetOpponentItem | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	cp HELD_PREVENT_PARALYZE | 
					
						
							|  |  |  | 	jr nz, .asm_36def | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	call GetItemName | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, ProtectedByText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36def | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_36e0e | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36e0e | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [InBattleTowerBattle] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36e0e | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PlayerSubStatus5] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_LOCK_ON, a | 
					
						
							|  |  |  | 	jr nz, .asm_36e0e | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp $40 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr c, .asm_36e52 | 
					
						
							| 
									
										
										
										
											2015-09-04 22:30:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36e0e | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36e52 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36e52 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_36e52 | 
					
						
							|  |  |  | 	ld c, 30 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld [hBGMapMode], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set PAR, [hl] | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateOpponentInParty | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld hl, ApplyPrzEffectOnSpeed | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call PrintParalyze | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld hl, UseHeldStatusHealingItem | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	jp CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36e49 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, AlreadyParalyzedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_36e52 | 
					
						
							|  |  |  | 	jp PrintDidntAffect2 | 
					
						
							|  |  |  | .asm_36e55 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PrintDoesntAffect | 
					
						
							|  |  |  | ; 36e5b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | CheckMoveTypeMatchesTarget: ; 36e5b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | ; Compare move type to opponent type. | 
					
						
							|  |  |  | ; Return z if matching the opponent type, | 
					
						
							|  |  |  | ; unless the move is Normal (Tri Attack). | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemyMonType1 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .ok | 
					
						
							|  |  |  | 	ld hl, BattleMonType1 | 
					
						
							|  |  |  | .ok | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp NORMAL | 
					
						
							|  |  |  | 	jr z, .normal | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							|  |  |  | 	jr z, .return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .return | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .normal | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36e7c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Substitute: ; 36e7c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; substitute | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMaxHP | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld de, PlayerSubstituteHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .got_hp | 
					
						
							|  |  |  | 	ld hl, EnemyMonMaxHP | 
					
						
							|  |  |  | 	ld de, EnemySubstituteHP | 
					
						
							|  |  |  | .got_hp | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr nz, .already_has_sub | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							|  |  |  | 	srl a | 
					
						
							|  |  |  | 	rr b | 
					
						
							|  |  |  | 	srl a | 
					
						
							|  |  |  | 	rr b | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	sub b | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	sbc 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .too_weak_to_sub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, d | 
					
						
							|  |  |  | 	or e | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .too_weak_to_sub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], d | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld [hl], e | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	set SUBSTATUS_SUBSTITUTE, [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wPlayerWrapCount | 
					
						
							|  |  |  | 	ld de, wPlayerTrappingMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wEnemyWrapCount | 
					
						
							|  |  |  | 	ld de, wEnemyTrappingMove | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call _CheckBattleScene | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr c, .mobile | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [FXAnimIDHi], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld a, SUBSTITUTE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadAnim | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .finish | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .mobile | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call BattleCommand_RaiseSubNoAnim | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .finish | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, MadeSubstituteText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	jp RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .already_has_sub | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckUserIsCharging | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call nz, BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, HasSubstituteText | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr .jp_stdbattletextbox | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .too_weak_to_sub | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckUserIsCharging | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call nz, BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, TooWeakSubText | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .jp_stdbattletextbox | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36f0b | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_RechargeNextTurn: ; 36f0b | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; rechargenextturn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	set SUBSTATUS_RECHARGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 36f13 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EndRechargeOpp: ; 36f13 | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SUBSTATUS_RECHARGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36f1d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Rage: ; 36f1d | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; rage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	set SUBSTATUS_RAGE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 36f25 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DoubleFlyingDamage: ; 36f25 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; doubleflyingdamage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-07-29 13:58:20 -04:00
										 |  |  | 	bit SUBSTATUS_FLYING, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr DoubleDamage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36f2f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DoubleUndergroundDamage: ; 36f2f | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; doubleundergrounddamage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-07-29 13:58:20 -04:00
										 |  |  | 	bit SUBSTATUS_UNDERGROUND, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 36f37 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | DoubleDamage: ; 36f37 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage + 1 | 
					
						
							|  |  |  | 	sla [hl] | 
					
						
							|  |  |  | 	dec hl | 
					
						
							|  |  |  | 	rl [hl] | 
					
						
							|  |  |  | 	jr nc, .quit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | .quit | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 36f46 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Mimic: ; 36f46 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; mimic | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call ClearLastMove | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .player_turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .player_turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckHiddenOpponent | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp STRUGGLE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld c, NUM_MOVES | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .check_already_knows_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .fail | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec c | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .check_already_knows_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .find_mimic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hld] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp MIMIC | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .find_mimic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld bc, BattleMonPP - BattleMonMoves | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [hl], 5 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call GetMoveName | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, LearnedMoveText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .fail | 
					
						
							|  |  |  | 	jp FailMimic | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36f9d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_LeechSeed: ; 36f9d | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; leechseed | 
					
						
							|  |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nz, .evaded | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckSubstituteOpp | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nz, .evaded | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, EnemyMonType1 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, BattleMonType1 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .ok | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp GRASS | 
					
						
							|  |  |  | 	jr z, .grass | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp GRASS | 
					
						
							|  |  |  | 	jr z, .grass | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SUBSTATUS_LEECH_SEED, [hl] | 
					
						
							|  |  |  | 	jr nz, .evaded | 
					
						
							|  |  |  | 	set SUBSTATUS_LEECH_SEED, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, WasSeededText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | .grass | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PrintDoesntAffect | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | .evaded | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EvadedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 36fe1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Splash: ; 36fe1 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-10-24 10:34:19 -04:00
										 |  |  | 	callba MobileFn_1060e5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp PrintNothingHappened | 
					
						
							|  |  |  | ; 36fed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Disable: ; 36fed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; disable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_37059 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld de, EnemyDisableCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_37004 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, PlayerDisableCount | 
					
						
							|  |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | .asm_37004 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_37059 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_37059 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp STRUGGLE | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_37059 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, $ff | 
					
						
							|  |  |  | .asm_37017 | 
					
						
							|  |  |  | 	inc c | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_37017 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld hl, EnemyMonPP | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_37027 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonPP | 
					
						
							|  |  |  | .asm_37027 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_37059 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3702e | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	and 7 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_3702e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc a | 
					
						
							|  |  |  | 	inc c | 
					
						
							|  |  |  | 	swap c | 
					
						
							|  |  |  | 	add c | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, DisabledMove | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_37047 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | .asm_37047 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call GetMoveName | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, WasDisabledText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37059 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp FailDisable | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3705c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_PayDay: ; 3705c | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; payday | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld hl, StringBuffer1 | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ld a, [BattleMonLevel] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [EnemyMonLevel] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .ok | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld hl, wPayDayMoney + 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add [hl] | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nc, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							|  |  |  | 	dec hl | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nz, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CoinsScatteredText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3707f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Conversion: ; 3707f | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; conversion | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonMoves | 
					
						
							|  |  |  | 	ld de, BattleMonType1 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .asm_37090 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonMoves | 
					
						
							|  |  |  | 	ld de, EnemyMonType1 | 
					
						
							|  |  |  | .asm_37090 | 
					
						
							|  |  |  | 	push de | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld c, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, StringBuffer1 | 
					
						
							|  |  |  | .asm_37096 | 
					
						
							|  |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .asm_370b2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:23:55 -07:00
										 |  |  | 	ld hl, Moves + MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	call GetMoveAttr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	inc c | 
					
						
							|  |  |  | 	ld a, c | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp NUM_MOVES | 
					
						
							|  |  |  | 	jr c, .asm_37096 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_370b2 | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	ld hl, StringBuffer1 | 
					
						
							|  |  |  | .asm_370bd | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp $ff | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .asm_370d3 | 
					
						
							|  |  |  | 	cp CURSE_T | 
					
						
							|  |  |  | 	jr z, .asm_370d0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .asm_370d0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec de | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nz, .asm_370d9_a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_370d0 | 
					
						
							|  |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr .asm_370bd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_370d3 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .asm_370d9_a | 
					
						
							|  |  |  | .asm_370d9_b | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	and 3 ; TODO factor in NUM_MOVES | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, StringBuffer1 | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	cp $ff | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_370d9_b | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp CURSE_T | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_370d9_b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_370d9_b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	dec de | 
					
						
							|  |  |  | 	cp [hl] | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_370d9_b | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-10-02 02:47:54 +02:00
										 |  |  | 	callba GetTypeName | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, TransformedTypeText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3710e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ResetStats: ; 3710e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; resetstats | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 7 ; neutral | 
					
						
							|  |  |  | 	ld hl, PlayerStatLevels | 
					
						
							|  |  |  | 	call .Fill | 
					
						
							|  |  |  | 	ld hl, EnemyStatLevels | 
					
						
							|  |  |  | 	call .Fill | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	push af | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	call SetPlayerTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcPlayerStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call SetEnemyTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcEnemyStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 	ld [hBattleTurn], a | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EliminatedStatsText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Fill | 
					
						
							|  |  |  | 	ld b, PlayerStatLevelsEnd - PlayerStatLevels | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .next | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nz, .next | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 3713e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Heal: ; 3713e | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; heal | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld de, BattleMonHP | 
					
						
							|  |  |  | 	ld hl, BattleMonMaxHP | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_3714f | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld de, EnemyMonHP | 
					
						
							|  |  |  | 	ld hl, EnemyMonMaxHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3714f | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld c, 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call StringCmp | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	jp z, .asm_371c4 | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	cp REST | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_37199 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SUBSTATUS_TOXIC, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld [hl], REST_TURNS + 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, WentToSleepText | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_37186 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, RestedText | 
					
						
							|  |  |  | .asm_37186 | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr nz, .asm_37193 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcPlayerStats | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .asm_37196 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37193 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcEnemyStats | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37196 | 
					
						
							|  |  |  | 	pop af | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | .asm_37199 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr z, .asm_371a3 | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	ld hl, GetHalfMaxHP | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	jr .asm_371a9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_371a3 | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	ld hl, GetMaxHP | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_371a9 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld hl, RestoreHP | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateUserInParty | 
					
						
							|  |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, RegainedHealthText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .asm_371c4 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, HPIsFullText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 371cd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Transform: ; 371cd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; transform | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call ClearLastMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	bit SUBSTATUS_TRANSFORMED, [hl] | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | 	jp nz, Function372d2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckHiddenOpponent | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | 	jp nz, Function372d2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .mimic_substitute | 
					
						
							|  |  |  | 	call CheckUserIsCharging | 
					
						
							|  |  |  | 	jr nz, .mimic_substitute | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, SUBSTITUTE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadAnim | 
					
						
							|  |  |  | .mimic_substitute | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	set SUBSTATUS_TRANSFORMED, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call ResetActorDisable | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BattleMonSpecies | 
					
						
							|  |  |  | 	ld de, EnemyMonSpecies | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .got_mon_species | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonSpecies | 
					
						
							|  |  |  | 	ld de, BattleMonSpecies | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [CurMoveNum], a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .got_mon_species | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld bc, NUM_MOVES | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call CopyBytes | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .mimic_enemy_backup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld [wEnemyBackupDVs], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld [wEnemyBackupDVs + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec de | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic_enemy_backup | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | ; copy DVs | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | ; move pointer to stats | 
					
						
							|  |  |  | 	ld bc, BattleMonStats - BattleMonPP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	ld h, d | 
					
						
							|  |  |  | 	ld l, e | 
					
						
							|  |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	ld d, h | 
					
						
							|  |  |  | 	ld e, l | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld bc, BattleMonStructEnd - BattleMonStats | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call CopyBytes | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | ; init the power points | 
					
						
							|  |  |  | 	ld bc, BattleMonMoves - BattleMonStructEnd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	ld d, h | 
					
						
							|  |  |  | 	ld e, l | 
					
						
							|  |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	ld bc, BattleMonPP - BattleMonStructEnd | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld b, NUM_MOVES | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .pp_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .done_move | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	cp SKETCH | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .done_move | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	ld a, 5 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .done_move | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr nz, .pp_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wNamedObjectIndexBuffer], a | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	call GetPokemonName | 
					
						
							| 
									
										
										
										
											2013-06-13 16:10:39 -04:00
										 |  |  | 	ld hl, EnemyStats | 
					
						
							|  |  |  | 	ld de, PlayerStats | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld bc, 2 * 5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call BattleSideCopy | 
					
						
							|  |  |  | 	ld hl, EnemyStatLevels | 
					
						
							|  |  |  | 	ld de, PlayerStatLevels | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld bc, 8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call BattleSideCopy | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call _CheckBattleScene | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr c, .mimic_anims | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld a, [wPlayerMinimized] | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .got_byte | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld a, [wEnemyMinimized] | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .got_byte | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .mimic_anims | 
					
						
							|  |  |  | 	call LoadMoveAnim | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr .after_anim | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .mimic_anims | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call BattleCommand_RaiseSubNoAnim | 
					
						
							|  |  |  | .after_anim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 	ld a, $2 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, SUBSTITUTE | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call nz, LoadAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, TransformedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 372c6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BattleSideCopy: ; 372c6 | 
					
						
							|  |  |  | ; Copy bc bytes from hl to de if it's the player's turn. | 
					
						
							|  |  |  | ; Copy bc bytes from de to hl if it's the enemy's turn. | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .copy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Swap hl and de | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	ld h, d | 
					
						
							|  |  |  | 	ld l, e | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | .copy | 
					
						
							|  |  |  | 	jp CopyBytes | 
					
						
							|  |  |  | ; 372d2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-31 04:10:49 -05:00
										 |  |  | Function372d2: ; 372d2 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 372d8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ClearLastMove: ; 372d8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 372e7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ResetActorDisable: ; 372e7 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .player | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2013-05-03 01:29:57 -04:00
										 |  |  | 	ld [EnemyDisableCount], a | 
					
						
							| 
									
										
										
										
											2013-05-03 21:04:34 -04:00
										 |  |  | 	ld [EnemyDisabledMove], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .player | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [PlayerDisableCount], a | 
					
						
							|  |  |  | 	ld [DisabledMove], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 372fc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Screen: ; 372fc | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; screen | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerScreens | 
					
						
							|  |  |  | 	ld bc, PlayerLightScreenCount | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	jr z, .asm_3730d | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld hl, EnemyScreens | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	ld bc, EnemyLightScreenCount | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_3730d | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_EFFECT | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 	cp EFFECT_LIGHT_SCREEN | 
					
						
							|  |  |  | 	jr nz, .Reflect | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SCREENS_LIGHT_SCREEN, [hl] | 
					
						
							|  |  |  | 	jr nz, .failed | 
					
						
							|  |  |  | 	set SCREENS_LIGHT_SCREEN, [hl] | 
					
						
							|  |  |  | 	ld a, 5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, LightScreenEffectText | 
					
						
							|  |  |  | 	jr .asm_37331 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | .Reflect | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SCREENS_REFLECT, [hl] | 
					
						
							|  |  |  | 	jr nz, .failed | 
					
						
							|  |  |  | 	set SCREENS_REFLECT, [hl] | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	; LightScreenCount -> ReflectCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc bc | 
					
						
							| 
									
										
										
										
											2013-04-27 17:12:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, 5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [bc], a | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 	ld hl, ReflectEffectText | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37331 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-27 17:07:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .failed | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 3733d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PrintDoesntAffect: ; 3733d | 
					
						
							|  |  |  | ; 'it doesn't affect' | 
					
						
							|  |  |  | 	ld hl, DoesntAffectText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37343 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PrintNothingHappened: ; 37343 | 
					
						
							|  |  |  | ; 'but nothing happened!' | 
					
						
							|  |  |  | 	ld hl, NothingHappenedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37349 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | TryPrintButItFailed: ; 37349 | 
					
						
							|  |  |  | 	ld a, [AlreadyFailed] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 3734e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PrintButItFailed: ; 3734e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 'but it failed!' | 
					
						
							|  |  |  | 	ld hl, ButItFailedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37354 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | FailSnore: | 
					
						
							|  |  |  | FailDisable: | 
					
						
							|  |  |  | FailConversion2: | 
					
						
							|  |  |  | FailAttract: | 
					
						
							|  |  |  | FailForesight: | 
					
						
							|  |  |  | FailSpikes: | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 37357 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | FailMimic: ; 37357 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, ButItFailedText ; 'but it failed!' | 
					
						
							|  |  |  | 	ld de, ItFailedText    ; 'it failed!' | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp FailText_CheckOpponentProtect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37360 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | PrintDidntAffect: ; 37360 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 'it didn't affect' | 
					
						
							|  |  |  | 	ld hl, DidntAffect1Text | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37366 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PrintDidntAffect2: ; 37366 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, DidntAffect1Text ; 'it didn't affect' | 
					
						
							|  |  |  | 	ld de, DidntAffect2Text ; 'it didn't affect' | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jp FailText_CheckOpponentProtect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37372 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PrintParalyze: ; 37372 | 
					
						
							|  |  |  | ; 'paralyzed! maybe it can't attack!' | 
					
						
							|  |  |  | 	ld hl, ParalyzedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37378 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CheckSubstituteOpp: ; 37378 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SUBSTATUS_SUBSTITUTE, a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37380 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_SelfDestruct: ; 37380 | 
					
						
							| 
									
										
										
										
											2015-10-24 10:34:19 -04:00
										 |  |  | 	callba MobileFn_10610d | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, BATTLEANIM_PLAYER_DAMAGE | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld c, 3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ld a, $1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadMoveAnim | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SUBSTATUS_LEECH_SEED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5_OPP | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SUBSTATUS_DESTINY_BOND, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	call _CheckBattleScene | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nc | 
					
						
							| 
									
										
										
										
											2013-10-02 02:47:54 +02:00
										 |  |  | 	callba DrawPlayerHUD | 
					
						
							| 
									
										
										
										
											2014-06-16 22:52:59 -07:00
										 |  |  | 	callba DrawEnemyHUD | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | 	call WaitBGMap | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	jp RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 373c9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/mirror_move.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/metronome.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CheckUserMove: ; 37462 | 
					
						
							|  |  |  | ; Return z if the user has move a. | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld de, BattleMonMoves | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .ok | 
					
						
							|  |  |  | 	ld de, EnemyMonMoves | 
					
						
							|  |  |  | .ok | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld c, NUM_MOVES | 
					
						
							|  |  |  | .loop | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	dec c | 
					
						
							|  |  |  | 	jr nz, .loop | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 3747b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ResetTurn: ; 3747b | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld hl, wPlayerCharging | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld hl, wEnemyCharging | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], 1 | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [AlreadyDisobeyed], a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call DoMove | 
					
						
							|  |  |  | 	jp EndMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37492 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/thief.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ArenaTrap: ; 37517 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; arenatrap | 
					
						
							| 
									
										
										
										
											2013-09-08 22:44:20 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Doesn't work on an absent opponent. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call CheckHiddenOpponent | 
					
						
							| 
									
										
										
										
											2013-09-08 22:44:20 -04:00
										 |  |  | 	jr nz, .failed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Don't trap if the opponent is already trapped. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-09-08 22:44:20 -04:00
										 |  |  | 	bit SUBSTATUS_CANT_RUN, [hl] | 
					
						
							|  |  |  | 	jr nz, .failed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Otherwise trap the opponent. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	set SUBSTATUS_CANT_RUN, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CantEscapeNowText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-09-08 22:44:20 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .failed | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37536 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/nightmare.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Defrost: ; 37563 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; defrost | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-08 22:30:10 -04:00
										 |  |  | ; Thaw the user. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-09-08 22:30:10 -04:00
										 |  |  | 	bit FRZ, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-09-08 22:30:10 -04:00
										 |  |  | 	res FRZ, [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Don't update the enemy's party struct in a wild battle. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-09-08 22:30:10 -04:00
										 |  |  | 	jr z, .party | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2013-09-08 22:30:10 -04:00
										 |  |  | 	jr z, .done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .party | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld a, MON_STATUS | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call UserPartyAttr | 
					
						
							| 
									
										
										
										
											2013-09-08 22:30:10 -04:00
										 |  |  | 	res FRZ, [hl] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .done | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call RefreshBattleHuds | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, WasDefrostedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37588 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-09 18:43:22 -04:00
										 |  |  | INCLUDE "battle/effects/curse.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-09 21:51:41 -04:00
										 |  |  | INCLUDE "battle/effects/protect.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-09 21:51:41 -04:00
										 |  |  | INCLUDE "battle/effects/endure.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-09 22:02:26 -04:00
										 |  |  | INCLUDE "battle/effects/spikes.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/foresight.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/perish_song.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/sandstorm.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-01 14:19:57 -05:00
										 |  |  | INCLUDE "battle/effects/rollout.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BattleCommand5d: ; 37791 | 
					
						
							|  |  |  | ; unused | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37792 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FuryCutter: ; 37792 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; furycutter | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld hl, PlayerFuryCutterCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jr z, .go | 
					
						
							|  |  |  | 	ld hl, EnemyFuryCutterCount | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .go | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jp nz, ResetFuryCutterCount | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc [hl] | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Damage capped at 5 turns' worth (16x). | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	cp 6 | 
					
						
							|  |  |  | 	jr c, .checkdouble | 
					
						
							|  |  |  | 	ld b, 5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .checkdouble | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec b | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Double the damage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage + 1 | 
					
						
							|  |  |  | 	sla [hl] | 
					
						
							|  |  |  | 	dec hl | 
					
						
							|  |  |  | 	rl [hl] | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jr nc, .checkdouble | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; No overflow | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 377be | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | ResetFuryCutterCount: ; 377be | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	ld hl, PlayerFuryCutterCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | 	jr z, .reset | 
					
						
							|  |  |  | 	ld hl, EnemyFuryCutterCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-19 03:50:45 -04:00
										 |  |  | .reset | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 377ce | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | INCLUDE "battle/effects/attract.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HappinessPower: ; 3784b | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; happinesspower | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							|  |  |  | 	ld hl, BattleMonHappiness | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemyMonHappiness | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							|  |  |  | 	ld a, 10 | 
					
						
							|  |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, 25 | 
					
						
							|  |  |  | 	ld [hDivisor], a | 
					
						
							|  |  |  | 	ld b, 4 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Divide | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37874 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | INCLUDE "battle/effects/present.asm" | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FrustrationPower: ; 3790e | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; frustrationpower | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	ld hl, BattleMonHappiness | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .asm_3791a ; 37915 $3 | 
					
						
							|  |  |  | 	ld hl, EnemyMonHappiness | 
					
						
							|  |  |  | .asm_3791a | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	sub [hl] | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 2], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplicand + 0], a | 
					
						
							|  |  |  | 	ld [hMultiplicand + 1], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, 10 | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hMultiplier], a | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Multiply | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, 25 | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld [hDivisor], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld b, 4 | 
					
						
							| 
									
										
										
										
											2013-05-03 02:43:44 -04:00
										 |  |  | 	call Divide | 
					
						
							| 
									
										
										
										
											2015-09-06 23:38:01 +02:00
										 |  |  | 	ld a, [hQuotient + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, a | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37939 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Safeguard: ; 37939 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; safeguard | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, PlayerScreens | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld de, PlayerSafeguardCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld hl, EnemyScreens | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld de, EnemySafeguardCount | 
					
						
							|  |  |  | .ok | 
					
						
							|  |  |  | 	bit SCREENS_SAFEGUARD, [hl] | 
					
						
							|  |  |  | 	jr nz, .failed | 
					
						
							|  |  |  | 	set SCREENS_SAFEGUARD, [hl] | 
					
						
							|  |  |  | 	ld a, 5 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CoveredByVeilText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .failed | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37962 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | SafeCheckSafeguard: ; 37962 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld hl, EnemyScreens | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .got_turn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerScreens | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .got_turn | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SCREENS_SAFEGUARD, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37972 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckSafeguard: ; 37972 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; checksafeguard | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld hl, EnemyScreens | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	jr z, .got_turn ; 37978 $3 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerScreens | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | .got_turn | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SCREENS_SAFEGUARD, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AttackMissed], a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, SafeguardProtectText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 37991 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_GetMagnitude: ; 37991 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; getmagnitude | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-08-30 22:59:40 -04:00
										 |  |  | 	call BattleRandom | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld hl, .Magnitudes | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr nc, .ok | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr .loop | 
					
						
							|  |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld d, [hl] | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, MagnitudeText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop de | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Magnitudes | 
					
						
							|  |  |  | 	;  /255, BP, magnitude | 
					
						
							|  |  |  | 	db  13,  10,  4 | 
					
						
							|  |  |  | 	db  38,  30,  5 | 
					
						
							|  |  |  | 	db  89,  50,  6 | 
					
						
							|  |  |  | 	db 166,  70,  7 | 
					
						
							|  |  |  | 	db 217,  90,  8 | 
					
						
							|  |  |  | 	db 242, 110,  9 | 
					
						
							|  |  |  | 	db 255, 150, 10 | 
					
						
							|  |  |  | ; 379c9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_BatonPass: ; 379c9 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; batonpass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jp nz, .Enemy | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Need something to switch to | 
					
						
							|  |  |  | 	call CheckAnyOtherAlivePartyMons | 
					
						
							|  |  |  | 	jp z, FailedBatonPass | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateBattleMonInParty | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld c, 50 | 
					
						
							|  |  |  | 	call DelayFrames | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ; Transition into switchmon menu | 
					
						
							| 
									
										
										
										
											2015-11-11 16:11:08 -05:00
										 |  |  | 	call LoadStandardMenuDataHeader | 
					
						
							| 
									
										
										
										
											2013-10-02 02:47:54 +02:00
										 |  |  | 	callba Function3d2f7 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	callba ForcePickSwitchMonInBattle | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Return to battle scene | 
					
						
							| 
									
										
										
										
											2013-12-02 14:18:03 -05:00
										 |  |  | 	call ClearPalettes | 
					
						
							| 
									
										
										
										
											2015-11-10 19:51:13 -05:00
										 |  |  | 	callba _LoadBattleFontsHPBar | 
					
						
							| 
									
										
										
										
											2015-07-15 15:48:44 -04:00
										 |  |  | 	call WriteBackup | 
					
						
							| 
									
										
										
										
											2013-12-02 14:18:03 -05:00
										 |  |  | 	call ClearSprites | 
					
						
							| 
									
										
										
										
											2013-12-31 04:09:00 -05:00
										 |  |  | 	hlcoord 1, 0 | 
					
						
							|  |  |  | 	lb bc, 4, 10 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call ClearBox | 
					
						
							| 
									
										
										
										
											2015-11-16 16:01:45 -05:00
										 |  |  | 	ld b, SCGB_01 | 
					
						
							| 
									
										
										
										
											2013-12-02 14:18:03 -05:00
										 |  |  | 	call GetSGBLayout | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 	call SetPalettes | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	call BatonPass_LinkPlayerSwitch | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ; Mobile link battles handle entrances differently | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	callba CheckMobileBattleError | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp c, EndMoveEffect | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	ld hl, PassedBattleMonEntrance | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	call ResetBatonPassStatus | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .Enemy | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; Wildmons don't have anything to switch to | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wBattleMode] | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	dec a ; WILDMON | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	jp z, FailedBatonPass | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call CheckAnyOtherAliveEnemyMons | 
					
						
							|  |  |  | 	jp z, FailedBatonPass | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateEnemyMonInParty | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | 	call BatonPass_LinkEnemySwitch | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ; Mobile link battles handle entrances differently | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	callba CheckMobileBattleError | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp c, EndMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ; Passed enemy PartyMon entrance | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-08 19:09:36 -05:00
										 |  |  | 	ld [wEnemySwitchMonIndex], a | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld hl, EnemySwitch_SetMode | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2015-11-07 21:04:54 -05:00
										 |  |  | 	ld hl, ResetBattleParticipants | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wTypeMatchup], a | 
					
						
							| 
									
										
										
										
											2015-09-10 01:27:07 +02:00
										 |  |  | 	ld hl, ApplyStatLevelMultiplierOnAllStats | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	ld hl, SpikesDamage | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	jr ResetBatonPassStatus | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; 37a67 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | BatonPass_LinkPlayerSwitch: ; 37a67 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd0ec], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-11 16:11:08 -05:00
										 |  |  | 	call LoadStandardMenuDataHeader | 
					
						
							| 
									
										
										
										
											2015-11-23 16:04:53 -05:00
										 |  |  | 	ld hl, LinkBattleSendReceiveAction | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2015-07-15 15:48:44 -04:00
										 |  |  | 	call WriteBackup | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wd0ec], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37a82 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-05 07:28:55 -05:00
										 |  |  | BatonPass_LinkEnemySwitch: ; 37a82 | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-11 16:11:08 -05:00
										 |  |  | 	call LoadStandardMenuDataHeader | 
					
						
							| 
									
										
										
										
											2015-11-23 16:04:53 -05:00
										 |  |  | 	ld hl, LinkBattleSendReceiveAction | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | 	call CallBattleCore | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [OTPartyCount] | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	add BATTLEACTION_SWITCH1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld a, [wBattleAction] | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	cp BATTLEACTION_SWITCH1 | 
					
						
							|  |  |  | 	jr c, .baton_pass | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr c, .switch | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | .baton_pass | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [CurOTMon] | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	add BATTLEACTION_SWITCH1 | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	ld [wBattleAction], a | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | .switch | 
					
						
							| 
									
										
										
										
											2015-07-15 15:48:44 -04:00
										 |  |  | 	jp WriteBackup | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; 37aab | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | FailedBatonPass: ; 37aab | 
					
						
							|  |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							|  |  |  | ; 37ab1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | ResetBatonPassStatus: ; 37ab1 | 
					
						
							|  |  |  | ; Reset status changes that aren't passed by Baton Pass. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	; Nightmare isn't passed. | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld a, BATTLE_VARS_STATUS | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	and SLP | 
					
						
							|  |  |  | 	jr nz, .ok | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS1 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	res SUBSTATUS_NIGHTMARE, [hl] | 
					
						
							|  |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	; Disable isn't passed. | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call ResetActorDisable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	; Attraction isn't passed. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerSubStatus1 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	res SUBSTATUS_IN_LOVE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, EnemySubStatus1 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	res SUBSTATUS_IN_LOVE, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerSubStatus5 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld a, BATTLE_VARS_SUBSTATUS5 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-13 21:18:14 -07:00
										 |  |  | 	res SUBSTATUS_TRANSFORMED, [hl] | 
					
						
							| 
									
										
										
										
											2014-06-17 12:52:32 -07:00
										 |  |  | 	res SUBSTATUS_ENCORED, [hl] | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	; New mon hasn't used a move yet. | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld [hl], 0 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld [wPlayerWrapCount], a | 
					
						
							|  |  |  | 	ld [wEnemyWrapCount], a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37ae9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | CheckAnyOtherAlivePartyMons: ; 37ae9 | 
					
						
							| 
									
										
										
										
											2014-02-23 00:37:09 -05:00
										 |  |  | 	ld hl, PartyMon1HP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [PartyCount] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ld a, [CurBattleMon] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	jr CheckAnyOtherAliveMons | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | ; 37af6 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | CheckAnyOtherAliveEnemyMons: ; 37af6 | 
					
						
							| 
									
										
										
										
											2014-02-23 00:37:09 -05:00
										 |  |  | 	ld hl, OTPartyMon1HP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [OTPartyCount] | 
					
						
							|  |  |  | 	ld d, a | 
					
						
							|  |  |  | 	ld a, [CurOTMon] | 
					
						
							|  |  |  | 	ld e, a | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 37b01 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | CheckAnyOtherAliveMons: ; 37b01 | 
					
						
							|  |  |  | ; Check for nonzero HP starting from partymon | 
					
						
							|  |  |  | ; HP at hl for d partymons, besides current mon e. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Return nz if any are alive. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, c | 
					
						
							|  |  |  | 	cp d | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	jr z, .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp e | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	jr z, .next | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or b | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, [hld] | 
					
						
							|  |  |  | 	or b | 
					
						
							|  |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .next | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-04 11:19:58 -05:00
										 |  |  | 	ld bc, PARTYMON_STRUCT_LENGTH | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	inc c | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	jr .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | .done | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37b1d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_Pursuit: ; 37b1d | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | ; pursuit | 
					
						
							|  |  |  | ; Double damage if the opponent is switching. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, wEnemyIsSwitching | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							|  |  |  | 	ld hl, wPlayerIsSwitching | 
					
						
							|  |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage + 1 | 
					
						
							|  |  |  | 	sla [hl] | 
					
						
							|  |  |  | 	dec hl | 
					
						
							|  |  |  | 	rl [hl] | 
					
						
							|  |  |  | 	ret nc | 
					
						
							| 
									
										
										
										
											2014-06-12 18:32:42 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37b39 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ClearHazards: ; 37b39 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; clearhazards | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS4 | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SUBSTATUS_LEECH_SEED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .asm_37b4a ; 37b40 $8 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SUBSTATUS_LEECH_SEED, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, ShedLeechSeedText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37b4a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, PlayerScreens | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld de, wPlayerWrapCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .asm_37b5b ; 37b53 $6 | 
					
						
							| 
									
										
										
										
											2013-04-20 02:57:11 -04:00
										 |  |  | 	ld hl, EnemyScreens | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld de, wEnemyWrapCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37b5b | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	bit SCREENS_SPIKES, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr z, .asm_37b69 ; 37b5d $a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	res SCREENS_SPIKES, [hl] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BlewSpikesText | 
					
						
							|  |  |  | 	push de | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop de | 
					
						
							|  |  |  | .asm_37b69 | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	ld hl, ReleasedByText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37b74 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HealMorn: ; 37b74 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; healmorn | 
					
						
							|  |  |  | 	ld b, MORN | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_HealMorn6c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37b78 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HealDay: ; 37b78 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; healday | 
					
						
							|  |  |  | 	ld b, DAY | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	jr BattleCommand_HealMorn6c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37b7c | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HealNite: ; 37b7c | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; healnite | 
					
						
							|  |  |  | 	ld b, NITE | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 37b7e | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HealMorn6c: ; 37b7e | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; Time- and weather-sensitive heal. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, BattleMonMaxHP | 
					
						
							|  |  |  | 	ld de, BattleMonHP | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .start | 
					
						
							|  |  |  | 	ld hl, EnemyMonMaxHP | 
					
						
							|  |  |  | 	ld de, EnemyMonHP | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .start | 
					
						
							|  |  |  | ; Index for .Multipliers | 
					
						
							|  |  |  | ; Default restores half max HP. | 
					
						
							|  |  |  | 	ld c, 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Don't bother healing if HP is already full. | 
					
						
							|  |  |  | 	push bc | 
					
						
							|  |  |  | 	call StringCmp | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	jr z, .Full | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Don't factor in time of day in link battles. | 
					
						
							| 
									
										
										
										
											2015-10-19 10:23:58 -04:00
										 |  |  | 	ld a, [wLinkMode] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	jr nz, .Weather | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [TimeOfDay] | 
					
						
							|  |  |  | 	cp b | 
					
						
							|  |  |  | 	jr z, .Weather | 
					
						
							|  |  |  | 	dec c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .Weather | 
					
						
							|  |  |  | 	ld a, [Weather] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .Heal | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; x2 in sun | 
					
						
							|  |  |  | ; /2 in rain/sandstorm | 
					
						
							|  |  |  | 	inc c | 
					
						
							|  |  |  | 	cp WEATHER_SUN | 
					
						
							|  |  |  | 	jr z, .Heal | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec c | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Heal | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							|  |  |  | 	ld hl, .Multipliers | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | rept 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	add hl, bc | 
					
						
							| 
									
										
										
										
											2015-07-20 22:18:18 -04:00
										 |  |  | endr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld h, [hl] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							|  |  |  | 	ld a, BANK(GetMaxHP) | 
					
						
							|  |  |  | 	rst FarCall | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | 	callab RestoreHP | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateUserInParty | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; 'regained health!' | 
					
						
							|  |  |  | 	ld hl, RegainedHealthText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Full | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ; 'hp is full!' | 
					
						
							|  |  |  | 	ld hl, HPIsFullText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | .Multipliers | 
					
						
							|  |  |  | 	dw GetEighthMaxHP | 
					
						
							|  |  |  | 	dw GetQuarterMaxHP | 
					
						
							|  |  |  | 	dw GetHalfMaxHP | 
					
						
							|  |  |  | 	dw GetMaxHP | 
					
						
							|  |  |  | ; 37be8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_HiddenPower: ; 37be8 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; hiddenpower | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2014-01-05 07:49:35 -05:00
										 |  |  | 	callba HiddenPowerDamage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37bf4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_StartRain: ; 37bf4 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; startrain | 
					
						
							|  |  |  | 	ld a, WEATHER_RAIN | 
					
						
							|  |  |  | 	ld [Weather], a | 
					
						
							|  |  |  | 	ld a, 5 | 
					
						
							|  |  |  | 	ld [WeatherCount], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, DownpourText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37c07 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_StartSun: ; 37c07 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; startsun | 
					
						
							|  |  |  | 	ld a, WEATHER_SUN | 
					
						
							|  |  |  | 	ld [Weather], a | 
					
						
							|  |  |  | 	ld a, 5 | 
					
						
							|  |  |  | 	ld [WeatherCount], a | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, SunGotBrightText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37c1a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_BellyDrum: ; 37c1a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; bellydrum | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ; This command is buggy because it raises the user's attack | 
					
						
							|  |  |  | ; before checking that it has enough HP to use the move. | 
					
						
							|  |  |  | ; Swap the order of these two blocks to fix. | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_AttackUp2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [AttackMissed] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .failed | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-02 02:47:54 +02:00
										 |  |  | 	callab GetHalfMaxHP | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	callab CheckUserHasEnoughHP | 
					
						
							|  |  |  | 	jr nc, .failed | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop bc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	callab SubtractHPFromUser | 
					
						
							| 
									
										
										
										
											2013-05-03 00:22:28 -04:00
										 |  |  | 	call UpdateUserInParty | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld a, 5 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .max_attack_loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_AttackUp2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop af | 
					
						
							|  |  |  | 	dec a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .max_attack_loop | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, BellyDrumText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .failed | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37c55 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_PsychUp: ; 37c55 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; psychup | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld hl, EnemyStatLevels | 
					
						
							|  |  |  | 	ld de, PlayerStatLevels | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr z, .pointers_correct ; 37c5e $4 | 
					
						
							|  |  |  | ; It's the enemy's turn, so swap the pointers. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	ld h, d | 
					
						
							|  |  |  | 	ld l, e | 
					
						
							|  |  |  | 	pop de | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .pointers_correct | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld b, NUM_LEVEL_STATS | 
					
						
							|  |  |  | ; If any of the enemy's stats is modified from its base level, | 
					
						
							|  |  |  | ; the move succeeds.  Otherwise, it fails. | 
					
						
							|  |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	cp BASE_STAT_LEVEL | 
					
						
							|  |  |  | 	jr nz, .break ; 37c6a $a | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .loop ; 37c6d $f8 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	jp PrintButItFailed | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | .break | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	pop hl | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld b, NUM_LEVEL_STATS | 
					
						
							|  |  |  | .loop2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	dec b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .loop2 ; 37c7d $fa | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .calc_enemy_stats ; 37c82 $5 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcPlayerStats | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr .merge ; 37c87 $3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .calc_enemy_stats | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	call CalcEnemyStats | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .merge | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateCurrentMove | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CopiedStatsText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	jp StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37c95 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_MirrorCoat: ; 37c95 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; mirrorcoat | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	ld a, 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [AttackMissed], a | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							| 
									
										
										
										
											2013-12-30 23:32:37 -05:00
										 |  |  | 	callab GetMoveEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, b | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp EFFECT_MIRROR_COAT | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-07 08:05:57 -05:00
										 |  |  | 	call BattleCommand_ResetTypeMatchup | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wTypeMatchup] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckOpponentWentFirst | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							|  |  |  | 	ld de, StringBuffer1 | 
					
						
							|  |  |  | 	call GetMoveData | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [StringBuffer1 + 2] | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld a, [StringBuffer1 + 3] | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	cp SPECIAL | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret c | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	or [hl] | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	add a | 
					
						
							|  |  |  | 	ld [hld], a | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	adc a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | 	jr nc, .capped | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2014-01-05 08:24:27 -05:00
										 |  |  | .capped | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [AttackMissed], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37ce6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_DoubleMinimizeDamage: ; 37ce6 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; doubleminimizedamage | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld hl, wEnemyMinimized | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2015-11-10 16:53:37 -05:00
										 |  |  | 	ld hl, wPlayerMinimized | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .ok | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 	ld hl, CurDamage + 1 | 
					
						
							|  |  |  | 	sla [hl] | 
					
						
							|  |  |  | 	dec hl | 
					
						
							|  |  |  | 	rl [hl] | 
					
						
							|  |  |  | 	ret nc | 
					
						
							|  |  |  | 	ld a, $ff | 
					
						
							|  |  |  | 	ld [hli], a | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37d02 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_SkipSunCharge: ; 37d02 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | ; mimicsuncharge | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [Weather] | 
					
						
							|  |  |  | 	cp WEATHER_SUN | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | 	ld b, charge_command | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp SkipToBattleCommand | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37d0d | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_CheckFutureSight: ; 37d0d | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; checkfuturesight | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wPlayerFutureSightCount | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld de, wc727 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jr z, .ok | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wEnemyFutureSightCount | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld de, wc729 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | .ok | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	cp 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld [hl], 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld [CurDamage], a | 
					
						
							|  |  |  | 	ld a, [de] | 
					
						
							|  |  |  | 	ld [CurDamage + 1], a | 
					
						
							| 
									
										
										
										
											2015-04-13 21:39:54 -07:00
										 |  |  | 	ld b, futuresight_command | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	jp SkipToBattleCommand | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37d34 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_FutureSight: ; 37d34 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; futuresight | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call CheckUserIsCharging | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jr nz, .asm_37d4b ; 37d37 $12 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld b, a | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_LAST_MOVE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld [hl], b | 
					
						
							|  |  |  | .asm_37d4b | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wPlayerFutureSightCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .asm_37d56 ; 37d51 $3 | 
					
						
							| 
									
										
										
										
											2015-11-08 13:27:26 -05:00
										 |  |  | 	ld hl, wEnemyFutureSightCount | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37d56 | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr nz, .asm_37d87 ; 37d58 $2d | 
					
						
							|  |  |  | 	ld a, $4 | 
					
						
							|  |  |  | 	ld [hl], a | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, ForesawAttackText | 
					
						
							| 
									
										
										
										
											2013-08-31 03:54:02 -04:00
										 |  |  | 	call StdBattleTextBox | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld de, wc727 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .asm_37d77 ; 37d72 $3 | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld de, wc729 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | .asm_37d77 | 
					
						
							|  |  |  | 	ld hl, CurDamage | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [hl], 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	inc de | 
					
						
							|  |  |  | 	ld a, [hl] | 
					
						
							|  |  |  | 	ld [de], a | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [hl], 0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | .asm_37d87 | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	call ResetDamage | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | 	call AnimateFailedMove | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	call PrintButItFailed | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	jp EndMoveEffect | 
					
						
							|  |  |  | ; 37d94 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ThunderAccuracy: ; 37d94 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; thunderaccuracy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_TYPE | 
					
						
							| 
									
										
										
										
											2014-06-14 00:34:57 -07:00
										 |  |  | 	call GetBattleVarAddr | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	inc hl | 
					
						
							|  |  |  | 	ld a, [Weather] | 
					
						
							|  |  |  | 	cp WEATHER_RAIN | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	jr z, .rain | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	cp WEATHER_SUN | 
					
						
							|  |  |  | 	ret nz | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	ld [hl], 50 percent + 1 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | .rain | 
					
						
							|  |  |  | 	ld [hl], 100 percent | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37daa | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CheckHiddenOpponent: ; 37daa | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_SUBSTATUS3_OPP | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2014-06-10 23:08:07 -07:00
										 |  |  | 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37db2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GetUserItem: ; 37db2 | 
					
						
							|  |  |  | ; Return the effect of the user's item in bc, and its id at hl. | 
					
						
							|  |  |  | 	ld hl, BattleMonItem | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .go | 
					
						
							|  |  |  | 	ld hl, EnemyMonItem | 
					
						
							|  |  |  | .go | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-10 11:05:26 -05:00
										 |  |  | 	jp GetItemHeldEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37dc1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GetOpponentItem: ; 37dc1 | 
					
						
							|  |  |  | ; Return the effect of the opponent's item in bc, and its id at hl. | 
					
						
							|  |  |  | 	ld hl, EnemyMonItem | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	jr z, .go | 
					
						
							|  |  |  | 	ld hl, BattleMonItem | 
					
						
							|  |  |  | .go | 
					
						
							|  |  |  | 	ld b, [hl] | 
					
						
							| 
									
										
										
										
											2015-11-10 11:05:26 -05:00
										 |  |  | 	jp GetItemHeldEffect | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; 37dd0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-10 11:05:26 -05:00
										 |  |  | GetItemHeldEffect: ; 37dd0 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; Return the effect of item b in bc. | 
					
						
							|  |  |  | 	ld a, b | 
					
						
							|  |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	push hl | 
					
						
							| 
									
										
										
										
											2013-04-30 02:01:54 -04:00
										 |  |  | 	ld hl, ItemAttributes + 2 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	dec a | 
					
						
							|  |  |  | 	ld c, a | 
					
						
							|  |  |  | 	ld b, 0 | 
					
						
							| 
									
										
										
										
											2013-04-30 02:01:54 -04:00
										 |  |  | 	ld a, Item2Attributes - Item1Attributes | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call AddNTimes | 
					
						
							| 
									
										
										
										
											2013-04-30 02:01:54 -04:00
										 |  |  | 	ld a, BANK(ItemAttributes) | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call GetFarHalfword | 
					
						
							|  |  |  | 	ld b, l | 
					
						
							|  |  |  | 	ld c, h | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37de9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | AnimateCurrentMoveEitherSide: ; 37de9 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wKickCounter] | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	pop af | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call PlayDamageAnim | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37e01 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | AnimateCurrentMove: ; 37e01 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld a, [wKickCounter] | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	push af | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	pop af | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	ld [wKickCounter], a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	call LoadMoveAnim | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37e19 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | PlayDamageAnim: ; 37e19 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	xor a | 
					
						
							|  |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld [FXAnimIDLo], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, [hBattleTurn] | 
					
						
							|  |  |  | 	and a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, BATTLEANIM_ENEMY_DAMAGE | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jr z, .player | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	ld a, BATTLEANIM_PLAYER_DAMAGE | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | .player | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | 	jp PlayUserBattleAnim | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | ; 37e36 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | LoadMoveAnim: ; 37e36 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	ld a, BATTLE_VARS_MOVE_ANIM | 
					
						
							| 
									
										
										
										
											2013-10-11 03:04:21 -04:00
										 |  |  | 	call GetBattleVar | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	and a | 
					
						
							|  |  |  | 	ret z | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 37e44 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | LoadAnim: ; 37e44 | 
					
						
							| 
									
										
										
										
											2013-03-27 18:50:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	ld [FXAnimIDLo], a | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	; fallthrough | 
					
						
							|  |  |  | ; 37e47 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | PlayUserBattleAnim: ; 37e47 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-12-04 00:44:45 -05:00
										 |  |  | 	callab PlayBattleAnim | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37e54 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 20:55:16 -05:00
										 |  |  | PlayOpponentBattleAnim: ; 37e54 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	ld a, e | 
					
						
							|  |  |  | 	ld [FXAnimIDLo], a | 
					
						
							|  |  |  | 	ld a, d | 
					
						
							|  |  |  | 	ld [FXAnimIDHi], a | 
					
						
							|  |  |  | 	xor a | 
					
						
							| 
									
										
										
										
											2015-02-08 00:03:32 -08:00
										 |  |  | 	ld [wcfca], a | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-04 00:44:45 -05:00
										 |  |  | 	callab PlayBattleAnim | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-10 13:45:39 +02:00
										 |  |  | 	call BattleCommand_SwitchTurn | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37e73 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-31 03:25:38 -05:00
										 |  |  | CallBattleCore: ; 37e73 | 
					
						
							|  |  |  | 	ld a, BANK(BattleCore) | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	rst FarCall | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37e77 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 08:09:15 -05:00
										 |  |  | AnimateFailedMove: ; 37e77 | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	call BattleCommand_LowerSub | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | 	call BattleCommand_MoveDelay | 
					
						
							| 
									
										
										
										
											2015-11-06 16:42:38 -05:00
										 |  |  | 	jp BattleCommand_RaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | ; 37e80 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_MoveDelay: ; 37e80 | 
					
						
							| 
									
										
										
										
											2013-10-01 01:02:33 -04:00
										 |  |  | ; movedelay | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; Wait 40 frames. | 
					
						
							|  |  |  | 	ld c, 40 | 
					
						
							|  |  |  | 	jp DelayFrames | 
					
						
							|  |  |  | ; 37e85 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 14:45:10 -05:00
										 |  |  | BattleCommand_ClearText: ; 37e85 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | ; cleartext | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | ; Used in multi-hit moves. | 
					
						
							|  |  |  | 	ld hl, .text | 
					
						
							|  |  |  | 	jp BattleTextBox | 
					
						
							|  |  |  | .text | 
					
						
							|  |  |  | 	db "@" | 
					
						
							|  |  |  | ; 37e8c | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | SkipToBattleCommand: ; 37e8c | 
					
						
							|  |  |  | ; Skip over commands until reaching command b. | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc + 1] | 
					
						
							|  |  |  | 	ld h, a | 
					
						
							|  |  |  | 	ld a, [BattleScriptBufferLoc] | 
					
						
							|  |  |  | 	ld l, a | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | .loop | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 	ld a, [hli] | 
					
						
							|  |  |  | 	cp b | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | 	jr nz, .loop | 
					
						
							| 
									
										
										
										
											2013-03-27 01:52:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	ld a, h | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc + 1], a | 
					
						
							|  |  |  | 	ld a, l | 
					
						
							|  |  |  | 	ld [BattleScriptBufferLoc], a | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37ea1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | GetMoveAttr: ; 37ea1 | 
					
						
							|  |  |  | ; Assuming hl = Moves + x, return attribute x of move a. | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2014-06-10 23:23:55 -07:00
										 |  |  | 	ld bc, MOVE_LENGTH | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	call AddNTimes | 
					
						
							|  |  |  | 	call GetMoveByte | 
					
						
							|  |  |  | 	pop bc | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37ead | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GetMoveData: ; 37ead | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | ; Copy move struct a to de. | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	ld hl, Moves | 
					
						
							| 
									
										
										
										
											2014-06-10 23:23:55 -07:00
										 |  |  | 	ld bc, MOVE_LENGTH | 
					
						
							| 
									
										
										
										
											2013-03-26 20:39:44 -04:00
										 |  |  | 	call AddNTimes | 
					
						
							|  |  |  | 	ld a, Bank(Moves) | 
					
						
							|  |  |  | 	jp FarCopyBytes | 
					
						
							|  |  |  | ; 37ebb | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | GetMoveByte: ; 37ebb | 
					
						
							|  |  |  | 	ld a, BANK(Moves) | 
					
						
							|  |  |  | 	jp GetFarByte | 
					
						
							|  |  |  | ; 37ec0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | DisappearUser: ; 37ec0 | 
					
						
							|  |  |  | 	callba _DisappearUser | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37ec7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | AppearUserLowerSub: ; 37ec7 | 
					
						
							|  |  |  | 	callba _AppearUserLowerSub | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37ece | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-09 16:41:09 -05:00
										 |  |  | AppearUserRaiseSub: ; 37ece | 
					
						
							|  |  |  | 	callba _AppearUserRaiseSub | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	ret | 
					
						
							|  |  |  | ; 37ed5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-06 22:36:06 -05:00
										 |  |  | _CheckBattleScene: ; 37ed5 | 
					
						
							|  |  |  | ; Checks the options.  Returns carry if battle animations are disabled. | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	push hl | 
					
						
							|  |  |  | 	push de | 
					
						
							|  |  |  | 	push bc | 
					
						
							| 
									
										
										
										
											2013-12-09 16:20:19 -05:00
										 |  |  | 	callba CheckBattleScene | 
					
						
							| 
									
										
										
										
											2013-03-27 16:19:51 -04:00
										 |  |  | 	pop bc | 
					
						
							|  |  |  | 	pop de | 
					
						
							|  |  |  | 	pop hl | 
					
						
							|  |  |  | 	ret | 
					
						
							|  |  |  | ; 37ee2 |