summaryrefslogtreecommitdiff
path: root/src/scripts/grass_club_entrance.asm
blob: b101ec70afa06395af03de26d83d2d70004ab960 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
GrassClubEntranceAfterDuel:
	ld hl, GrassClubEntranceAfterDuelTable
	call FindEndOfDuelScript
	ret

FindEndOfDuelScript:
	ld c, 0
	ld a, [wDuelResult]
	or a ; cp DUEL_WIN
	jr z, .player_won
	ld c, 2

.player_won
	ld a, [wNPCDuelist]
	ld b, a
	ld de, 5
.check_enemy_byte_loop
	ld a, [hli]
	or a
	ret z
	cp b
	jr z, .found_enemy
	add hl, de
	jr .check_enemy_byte_loop

.found_enemy
	ld a, [hli]
	ld [wTempNPC], a
	ld b, 0
	add hl, bc
	ld c, [hl]
	inc hl
	ld b, [hl]
	jp SetNextNPCAndScript

GrassClubEntranceAfterDuelTable:
	db NPC_MICHAEL
	db NPC_MICHAEL
	dw Script_BeatMichaelInGrassClubEntrance
	dw Script_LostToMichaelInGrassClubEntrance

	db NPC_RONALD2
	db NPC_RONALD2
	dw Script_BeatFirstRonaldDuel
	dw Script_LostToFirstRonaldDuel

	db NPC_RONALD3
	db NPC_RONALD3
	dw Script_BeatSecondRonaldDuel
	dw Script_LostToSecondRonaldDuel
	db $00

Script_Clerk5:
	start_script
	print_text_quit_fully Text06d7

Preload_MichaelInGrassClubEntrance:
	get_event_value EVENT_PUPIL_MICHAEL_STATE
	or a ; cp PUPIL_INACTIVE
	ret z
	cp PUPIL_DEFEATED
	ret

Script_Michael:
	start_script
	jump_if_event_greater_or_equal EVENT_PUPIL_MICHAEL_STATE, PUPIL_DEFEATED,  Script_MichaelRematch
	test_if_event_equal EVENT_PUPIL_MICHAEL_STATE, PUPIL_ACTIVE
	print_variable_npc_text Text06d8, Text06d9
	set_event EVENT_PUPIL_MICHAEL_STATE, PUPIL_TALKED
	ask_question_jump Text06da, .ows_e58f
	print_npc_text Text06db
	quit_script_fully

.ows_e58f
	print_npc_text Text06dc
	start_duel PRIZES_4, HEATED_BATTLE_DECK_ID, MUSIC_DUEL_THEME_1
	quit_script_fully

Script_BeatMichaelInGrassClubEntrance:
	start_script
	set_event EVENT_PUPIL_MICHAEL_STATE, PUPIL_DEFEATED
	print_npc_text Text06dd
	give_booster_packs BOOSTER_COLOSSEUM_FIGHTING, BOOSTER_COLOSSEUM_FIGHTING, NO_BOOSTER
	print_npc_text Text06de
	close_text_box
	move_active_npc_by_direction NPCMovementTable_e5af
	unload_active_npc
	quit_script_fully

Script_LostToMichaelInGrassClubEntrance:
	start_script
	print_text_quit_fully Text06df

NPCMovementTable_e5af:
	dw NPCMovement_e5b7
	dw NPCMovement_e5b7
	dw NPCMovement_e5b7
	dw NPCMovement_e5bf

NPCMovement_e5b7:
	db WEST
	db WEST
	db SOUTH
	db SOUTH
	db SOUTH
	db SOUTH
	db SOUTH
	db $ff

NPCMovement_e5bf:
	db SOUTH
	db WEST
	db WEST
	db $fe, -9