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
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
|
object_const_def
const ROUTE35NATIONALPARKGATE_OFFICER1
const ROUTE35NATIONALPARKGATE_YOUNGSTER
const ROUTE35NATIONALPARKGATE_OFFICER2
Route35NationalParkGate_MapScripts:
def_scene_scripts
scene_script .DummyScene0 ; SCENE_ROUTE35NATIONALPARKGATE_NOTHING
scene_script .DummyScene1 ; SCENE_ROUTE35NATIONALPARKGATE_UNUSED
scene_script .LeaveContestEarly ; SCENE_ROUTE35NATIONALPARKGATE_LEAVE_CONTEST_EARLY
def_callbacks
callback MAPCALLBACK_NEWMAP, .CheckIfContestRunning
callback MAPCALLBACK_OBJECTS, .CheckIfContestAvailable
.DummyScene0:
end
.DummyScene1:
end
.LeaveContestEarly:
sdefer .LeavingContestEarly
end
.CheckIfContestRunning:
checkflag ENGINE_BUG_CONTEST_TIMER
iftrue .BugContestIsRunning
setscene SCENE_ROUTE35NATIONALPARKGATE_NOTHING
endcallback
.BugContestIsRunning:
setscene SCENE_ROUTE35NATIONALPARKGATE_LEAVE_CONTEST_EARLY
endcallback
.CheckIfContestAvailable:
readvar VAR_WEEKDAY
ifequal TUESDAY, .SetContestOfficer
ifequal THURSDAY, .SetContestOfficer
ifequal SATURDAY, .SetContestOfficer
checkflag ENGINE_BUG_CONTEST_TIMER
iftrue .BugContestIsRunning
disappear ROUTE35NATIONALPARKGATE_OFFICER1
appear ROUTE35NATIONALPARKGATE_YOUNGSTER
appear ROUTE35NATIONALPARKGATE_OFFICER2
endcallback
.SetContestOfficer:
appear ROUTE35NATIONALPARKGATE_OFFICER1
disappear ROUTE35NATIONALPARKGATE_YOUNGSTER
disappear ROUTE35NATIONALPARKGATE_OFFICER2
endcallback
.LeavingContestEarly:
applymovement PLAYER, Route35NationalParkGatePlayerApproachOfficer1Movement
turnobject ROUTE35NATIONALPARKGATE_OFFICER1, RIGHT
opentext
readvar VAR_CONTESTMINUTES
addval 1
getnum STRING_BUFFER_3
writetext Route35NationalParkGateOfficer1WantToFinishText
yesorno
iffalse .GoBackToContest
writetext Route35NationalParkGateOfficer1WaitAtNorthGateText
waitbutton
closetext
jumpstd BugContestResultsWarpScript
.GoBackToContest:
writetext Route35NationalParkGateOfficer1OkGoFinishText
waitbutton
closetext
scall Route35NationalParkGate_EnterContest
playsound SFX_ENTER_DOOR
special FadeOutPalettes
waitsfx
warpfacing UP, NATIONAL_PARK_BUG_CONTEST, 10, 47
end
Route35OfficerScriptContest:
readvar VAR_WEEKDAY
ifequal SUNDAY, Route35NationalParkGate_NoContestToday
ifequal MONDAY, Route35NationalParkGate_NoContestToday
ifequal WEDNESDAY, Route35NationalParkGate_NoContestToday
ifequal FRIDAY, Route35NationalParkGate_NoContestToday
faceplayer
opentext
checkflag ENGINE_DAILY_BUG_CONTEST
iftrue Route35NationalParkGate_ContestIsOver
scall Route35NationalParkGate_GetDayOfWeek
writetext Route35NationalParkGateOfficer1AskToParticipateText
yesorno
iffalse Route35NationalParkGate_DeclinedToParticipate
readvar VAR_PARTYCOUNT
ifgreater 1, Route35NationalParkGate_LeaveTheRestBehind
special ContestDropOffMons
clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
Route35NationalParkGate_OkayToProceed:
setflag ENGINE_BUG_CONTEST_TIMER
special PlayMapMusic
writetext Route35NationalParkGateOfficer1GiveParkBallsText
promptbutton
writetext Route35NationalParkGatePlayerReceivedParkBallsText
playsound SFX_ITEM
waitsfx
writetext Route35NationalParkGateOfficer1ExplainsRulesText
waitbutton
closetext
special GiveParkBalls
scall Route35NationalParkGate_EnterContest
playsound SFX_ENTER_DOOR
special FadeOutPalettes
waitsfx
special SelectRandomBugContestContestants
warpfacing UP, NATIONAL_PARK_BUG_CONTEST, 10, 47
end
Route35NationalParkGate_EnterContest:
readvar VAR_FACING
ifequal LEFT, Route35NationalParkGate_FacingLeft
applymovement PLAYER, Route35NationalParkGatePlayerGoAroundOfficerAndEnterParkMovement
end
Route35NationalParkGate_FacingLeft:
applymovement PLAYER, Route35NationalParkGatePlayerEnterParkMovement
end
Route35NationalParkGate_LeaveTheRestBehind:
readvar VAR_PARTYCOUNT
ifless PARTY_LENGTH, Route35NationalParkGate_LessThanFullParty
readvar VAR_BOXSPACE
ifequal 0, Route35NationalParkGate_NoRoomInBox
Route35NationalParkGate_LessThanFullParty:
special CheckFirstMonIsEgg
ifequal TRUE, Route35NationalParkGate_FirstMonIsEgg
writetext Route35NationalParkGateOfficer1AskToUseFirstMonText
yesorno
iffalse Route35NationalParkGate_DeclinedToLeaveMonsBehind
special ContestDropOffMons
iftrue Route35NationalParkGate_FirstMonIsFainted
setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
writetext Route35NationalParkGateOfficer1WellHoldYourMonText
promptbutton
writetext Route35NationalParkGatePlayersMonLeftWithHelperText
playsound SFX_GOT_SAFARI_BALLS
waitsfx
promptbutton
sjump Route35NationalParkGate_OkayToProceed
Route35NationalParkGate_DeclinedToParticipate:
writetext Route35NationalParkGateOfficer1TakePartInFutureText
waitbutton
closetext
end
Route35NationalParkGate_DeclinedToLeaveMonsBehind:
writetext Route35NationalParkGateOfficer1ChooseMonAndComeBackText
waitbutton
closetext
end
Route35NationalParkGate_FirstMonIsFainted:
writetext Route35NationalParkGateOfficer1FirstMonCantBattleText
waitbutton
closetext
end
Route35NationalParkGate_NoRoomInBox:
writetext Route35NationalParkGateOfficer1MakeRoomText
waitbutton
closetext
end
Route35NationalParkGate_FirstMonIsEgg:
writetext Route35NationalParkGateOfficer1EggAsFirstMonText
waitbutton
closetext
end
Route35NationalParkGate_ContestIsOver:
writetext Route35NationalParkGateOfficer1ContestIsOverText
waitbutton
closetext
end
Route35NationalParkGate_NoContestToday:
jumptextfaceplayer Route35NationalParkGateOfficer1WeHoldContestsText
Route35NationalParkGateOfficerScript:
faceplayer
opentext
checkflag ENGINE_DAILY_BUG_CONTEST
iftrue Route35NationalParkGate_ContestIsOver
writetext Route35NationalParkGateOfficer1WeHoldContestsText
waitbutton
closetext
end
Route35NationalParkGateYoungsterScript:
jumptextfaceplayer Route35NationalParkGateYoungsterText
BugCatchingContestExplanationSign:
jumptext BugCatchingContestExplanationText
Route35NationalParkGate_GetDayOfWeek:
jumpstd DayToTextScript
end
Route35NationalParkGatePlayerApproachOfficer1Movement:
step DOWN
turn_head LEFT
step_end
Route35NationalParkGatePlayerGoAroundOfficerAndEnterParkMovement:
step RIGHT
step UP
step UP
step_end
Route35NationalParkGatePlayerEnterParkMovement:
step UP
step_end
Route35NationalParkGateOfficer1AskToParticipateText:
text "Today's @"
text_ram wStringBuffer3
text "."
line "That means the"
para "Bug-Catching Con-"
line "test is on today."
para "The rules are sim-"
line "ple."
para "Using one of your"
line "#MON, catch a"
para "bug #MON to be"
line "judged."
para "Would you like to"
line "give it a try?"
done
Route35NationalParkGateOfficer1GiveParkBallsText:
text "Here are the PARK"
line "BALLS for the"
cont "Contest."
done
Route35NationalParkGatePlayerReceivedParkBallsText:
text "<PLAYER> received"
line "{d:BUG_CONTEST_BALLS} PARK BALLS."
done
Route35NationalParkGateOfficer1ExplainsRulesText:
text "The person who"
line "gets the strong-"
cont "est bug #MON"
cont "is the winner."
para "You have {d:BUG_CONTEST_MINUTES}"
line "minutes."
para "If you run out of"
line "PARK BALLS, you're"
cont "done."
para "You can keep the"
line "last #MON you"
cont "catch as your own."
para "Go out and catch"
line "the strongest bug"
para "#MON you can"
line "find!"
done
Route35NationalParkGateOfficer1AskToUseFirstMonText:
text "Uh-oh…"
para "You have more than"
line "one #MON."
para "You'll have to use"
line "@"
text_ram wStringBuffer3
text ", the"
para "first #MON in"
line "your party."
para "Is that OK with"
line "you?"
done
Route35NationalParkGateOfficer1WellHoldYourMonText:
text "Fine, we'll hold"
line "your other #MON"
cont "while you compete."
done
Route35NationalParkGatePlayersMonLeftWithHelperText:
text "<PLAYER>'s #MON"
line "were left with the"
cont "CONTEST HELPER."
done
Route35NationalParkGateOfficer1ChooseMonAndComeBackText:
text "Please choose the"
line "#MON to be used"
para "in the Contest,"
line "then come see me."
done
Route35NationalParkGateOfficer1TakePartInFutureText:
text "OK. We hope you'll"
line "take part in the"
cont "future."
done
Route35NationalParkGateOfficer1FirstMonCantBattleText:
text "Uh-oh…"
line "The first #MON"
para "in your party"
line "can't battle."
para "Please switch it"
line "with the #MON"
para "you want to use,"
line "then come see me."
done
Route35NationalParkGateOfficer1MakeRoomText:
text "Uh-oh…"
line "Both your party"
para "and your PC BOX"
line "are full."
para "You have no room"
line "to put the bug"
cont "#MON you catch."
para "Please make room"
line "in your party or"
para "your PC BOX, then"
line "come see me."
done
Route35NationalParkGateOfficer1EggAsFirstMonText:
text "Uh-oh…"
line "You have an EGG as"
para "the first #MON"
line "in your party."
para "Please switch it"
line "with the #MON"
para "you want to use,"
line "then come see me."
done
Route35NationalParkGateOfficer1WantToFinishText:
text "You still have @"
text_ram wStringBuffer3
text_start
line "minute(s) left."
para "Do you want to"
line "finish now?"
done
Route35NationalParkGateOfficer1WaitAtNorthGateText:
text "OK. Please wait at"
line "the North Gate for"
para "the announcement"
line "of the winners."
done
Route35NationalParkGateOfficer1OkGoFinishText:
text "OK. Please get"
line "back outside and"
cont "finish up."
done
Route35NationalParkGateOfficer1ContestIsOverText:
text "Today's Contest is"
line "over. We hope you"
para "will participate"
line "in the future."
done
Route35NationalParkGateOfficer1WeHoldContestsText:
text "We hold Contests"
line "regularly in the"
para "PARK. You should"
line "give it a shot."
done
Route35NationalParkGateYoungsterText:
text "When is the next"
line "Bug-Catching Con-"
cont "test going to be?"
done
BugCatchingContestExplanationText:
text "The Bug-Catching"
line "Contest is held on"
para "Tuesday, Thursday"
line "and Saturday."
para "Not only do you"
line "earn a prize just"
para "for participating,"
line "you also get to"
para "keep the bug"
line "#MON you may"
para "have at the end of"
line "the contest."
done
Route35NationalParkGate_MapEvents:
db 0, 0 ; filler
def_warp_events
warp_event 3, 0, NATIONAL_PARK, 3
warp_event 4, 0, NATIONAL_PARK, 4
warp_event 3, 7, ROUTE_35, 3
warp_event 4, 7, ROUTE_35, 3
def_coord_events
def_bg_events
bg_event 5, 0, BGEVENT_READ, BugCatchingContestExplanationSign
def_object_events
object_event 2, 1, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route35OfficerScriptContest, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
object_event 6, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route35NationalParkGateYoungsterScript, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
object_event 0, 3, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route35NationalParkGateOfficerScript, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
|