aboutsummaryrefslogtreecommitdiff
path: root/entity/fox.gbasm
blob: 9f1e9da2f9d90bb0fdafa16283f28747450098f6 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Fox_Drop:
	PUSH DE
	LD E, $04
	CALL =Check_attack_already_learnt
	CP $01
	JR Z, =.drops.ep_regen_item

	.drops.attack_item:
	LD D, $6C
	LD E, $06
	CALL =RNG_Step
	AND $03
	CP $00
	CALL Z, =Spawn_object
	JR =.drops.end

	.drops.ep_regen_item:
	LD D, $68
	LD E, $03
	CALL =RNG_Step
	AND $03
	CP $00
	CALL Z, =Spawn_object

	.drops.end:
	POP DE
	RET

Fox_Turn:
	LD A, $mem_map_loading_flags
	BIT 3, A
	RET Z

	PUSH HL
	PUSH BC
	PUSH DE
	INC HL
	LD A, (HL+)
	LD B, A
	LD A, (HL+)
	LD C, A
	LD A, (HL+)
	LD D, A

	.RESET_BLINKING_MODE

	.ENTITY_HEALTH_CHECK =.Skip_turn =Fox_Drop
	.ENTITY_FREEZE_SHIVER =.Skip_turn
	.ENTITY_STATUS_SKIP_TURN =.Skip_turn

	.ENTITY_TRY_ATTACK =Laser_sight_check =Laser_Prepare_Attack =.attack_end
	.ENTITY_TRY_ATTACK =Check_player_next_to =Basic_Enemy_Attack =.attack_end
	CALL =Walking
	.attack_end:

	CALL =Entity_End_movement

	CALL =Apply_Prepared_Laser_Enemy_Attack

	.Skip_Turn:
	LD A, L
	AND $f0
	LD L, A
	INC HL
	LD A, B
	LD (HL+), A
	LD A, C
	LD (HL+), A
	LD A, D
	LD (HL+), A
	POP DE
	POP BC
	POP HL
	RET