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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
FireClubLobbyAfterDuel:
ld hl, .after_duel_table
call FindEndOfDuelScript
ret
.after_duel_table
db NPC_JESSICA
db NPC_JESSICA
dw Script_BeatJessicaInFireClubLobby
dw Script_LostToJessicaInFireClubLobby
db $00
FireClubPressedA:
ld hl, SlowpokePaintingObjectTable
call FindExtraInteractableObjects
ret
SlowpokePaintingObjectTable:
db 16, 2, NORTH
dw Script_ee76
db $00
; Given a table with data of the form:
; X, Y, Dir, Script
; Searches to try to find a match, and starts a Script if possible
FindExtraInteractableObjects:
ld de, 5
.loop
ld a, [hl]
or a
ret z
push hl
ld a, [wPlayerXCoord]
cp [hl]
jr nz, .not_match
inc hl
ld a, [wPlayerYCoord]
cp [hl]
jr nz, .not_match
inc hl
ld a, [wPlayerDirection]
cp [hl]
jr z, .match
.not_match
pop hl
add hl, de
jr .loop
.match
inc hl
ld c, [hl]
inc hl
ld b, [hl]
pop hl
call SetNextScript
scf
ret
Preload_JessicaInFireClubLobby:
get_event_value EVENT_PUPIL_JESSICA_STATE
or a ; cp PUPIL_INACTIVE
ret z
cp PUPIL_DEFEATED
ret
Script_Jessica:
start_script
jump_if_event_greater_or_equal EVENT_PUPIL_JESSICA_STATE, PUPIL_DEFEATED, Script_dead
test_if_event_equal EVENT_PUPIL_JESSICA_STATE, PUPIL_ACTIVE
print_variable_npc_text Text068d, Text068e
set_event EVENT_PUPIL_JESSICA_STATE, PUPIL_TALKED
ask_question_jump Text068f, .ows_edb2
print_npc_text Text0690
quit_script_fully
.ows_edb2
print_npc_text Text0691
start_duel PRIZES_4, LOVE_TO_BATTLE_DECK_ID, MUSIC_DUEL_THEME_1
quit_script_fully
Script_BeatJessicaInFireClubLobby:
start_script
set_event EVENT_PUPIL_JESSICA_STATE, PUPIL_DEFEATED
print_npc_text Text0692
give_booster_packs BOOSTER_COLOSSEUM_FIGHTING, BOOSTER_COLOSSEUM_FIGHTING, NO_BOOSTER
print_npc_text Text0693
close_text_box
move_active_npc_by_direction NPCMovementTable_edd2
unload_active_npc
quit_script_fully
Script_LostToJessicaInFireClubLobby:
start_script
print_text_quit_fully Text0694
NPCMovementTable_edd2:
dw NPCMovement_edda
dw NPCMovement_ede4
dw NPCMovement_edda
dw NPCMovement_edda
NPCMovement_edda:
db EAST
db NORTH
db EAST
db EAST
db EAST
db EAST
db EAST
db EAST
db EAST
db $ff
NPCMovement_ede4:
db NORTH
db EAST
db $fe, -11
Script_Chap3:
start_script
jump_if_event_greater_or_equal EVENT_ISHIHARA_TRADE_STATE, ISHIHARA_TRADES_COMPLETE, .ows_ee1f
jump_if_event_true EVENT_ISHIHARA_MET, .ows_edfb
max_out_event_value EVENT_ISHIHARA_MENTIONED
max_out_event_value EVENT_ISHIHARAS_HOUSE_MENTIONED
max_out_event_value EVENT_ISHIHARA_WANTS_TO_TRADE
print_text_quit_fully Text0695
.ows_edfb
jump_if_event_true EVENT_TEMP_TRADED_WITH_ISHIHARA, .ows_ee1c
jump_if_event_greater_or_equal EVENT_ISHIHARA_TRADE_STATE, ISHIHARA_TRADE_3_RUMORED, .ows_ee13
jump_if_event_greater_or_equal EVENT_ISHIHARA_TRADE_STATE, ISHIHARA_TRADE_2_RUMORED, .ows_ee0e
max_out_event_value EVENT_ISHIHARA_WANTS_TO_TRADE
print_text_quit_fully Text0696
.ows_ee0e
max_out_event_value EVENT_ISHIHARA_WANTS_TO_TRADE
print_text_quit_fully Text0697
.ows_ee13
jump_if_event_false EVENT_RECEIVED_LEGENDARY_CARDS, .ows_ee1c
max_out_event_value EVENT_ISHIHARA_WANTS_TO_TRADE
print_text_quit_fully Text0698
.ows_ee1c
print_text_quit_fully Text0699
.ows_ee1f
set_event EVENT_ISHIHARA_TRADE_STATE, ISHIHARA_LEFT
print_text_quit_fully Text069a
Preload_Lad2:
get_event_value EVENT_LAD2_STATE
cp LAD2_SLOWPOKE_AVAILABLE
ret
Script_Lad2:
start_script
try_give_medal_pc_packs
jump_if_event_greater_or_equal EVENT_MEDAL_COUNT, 3, .ows_ee36
print_text_quit_fully Text069b
.ows_ee36
print_npc_text Text069c
ask_question_jump Text069d, .ows_ee4a
print_npc_text Text069e
set_event EVENT_LAD2_STATE, LAD2_SLOWPOKE_GONE
close_text_box
move_active_npc_by_direction NPCMovementTable_ee61
unload_active_npc
quit_script_fully
.ows_ee4a
jump_if_any_energy_cards_in_collection .ows_ee51
print_npc_text Text069f
quit_script_fully
.ows_ee51
remove_all_energy_cards_from_collection
print_text Text06a0
print_npc_text Text06a1
set_event EVENT_LAD2_STATE, LAD2_SLOWPOKE_AVAILABLE
close_text_box
move_active_npc_by_direction NPCMovementTable_ee61
unload_active_npc
quit_script_fully
NPCMovementTable_ee61:
dw NPCMovement_ee69
dw NPCMovement_ee72
dw NPCMovement_ee69
dw NPCMovement_ee69
NPCMovement_ee69:
db EAST
db SOUTH
db SOUTH
db SOUTH
db EAST
db EAST
db EAST
db EAST
db $ff
NPCMovement_ee72:
db SOUTH
db EAST
db $fe, -10
Script_ee76:
start_script
jump_if_event_equal EVENT_LAD2_STATE, LAD2_SLOWPOKE_AVAILABLE, .ows_ee7d
quit_script_fully
.ows_ee7d
set_event EVENT_LAD2_STATE, LAD2_SLOWPOKE_GONE
print_text FoundLv9SlowpokeText
give_card SLOWPOKE1
show_card_received_screen SLOWPOKE1
quit_script_fully
Script_Mania:
start_script
test_if_event_false EVENT_RECEIVED_LEGENDARY_CARDS
print_variable_npc_text Text06a3, Text06a4
quit_script_fully
|