summaryrefslogtreecommitdiff
path: root/engine/battle/moveEffects/reflect_light_screen_effect.asm
blob: 1c2db0a01c215e751ecccd4637ef60759f1441ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
ReflectLightScreenEffect_: ; f645d (3d:645d)
	ld hl, wPlayerBattleStatus3
	ld de, wPlayerMoveEffect
	ld a, [H_WHOSETURN]
	and a
	jr z, .reflectLightScreenEffect
	ld hl, wEnemyBattleStatus3
	ld de, wEnemyMoveEffect
.reflectLightScreenEffect
	ld a, [de]
	cp LIGHT_SCREEN_EFFECT
	jr nz, .reflect
	bit HasLightScreenUp, [hl] ; is mon already protected by light screen?
	jr nz, .moveFailed
	set HasLightScreenUp, [hl] ; mon is now protected by light screen
	ld hl, LightScreenProtectedText
	jr .playAnim
.reflect
	bit HasReflectUp, [hl] ; is mon already protected by reflect?
	jr nz, .moveFailed
	set HasReflectUp, [hl] ; mon is now protected by reflect
	ld hl, ReflectGainedArmorText
.playAnim
	push hl
	ld hl, PlayCurrentMoveAnimation
	call Bankswitch3DtoF
	pop hl
	jp PrintText
.moveFailed
	ld c, 50
	call DelayFrames
	ld hl, PrintButItFailedText_
	jp Bankswitch3DtoF

LightScreenProtectedText: ; f649d (3d:649d)
	TX_FAR _LightScreenProtectedText
	db "@"

ReflectGainedArmorText: ; f64a2 (3d:64a2)
	TX_FAR _ReflectGainedArmorText
	db "@"

Bankswitch3DtoF: ; f64a7 (3d:64a7)
	ld b, BANK(BattleCore)
	jp Bankswitch