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
456
457
|
.set LOCALID_INVISIBLE_BRIDGE_KECLEON, 30
.set LOCALID_STEVEN, 31
.set LOCALID_VISIBLE_BRIDGE_KECLEON, 36
Route120_MapScripts:: @ 81F53EC
map_script MAP_SCRIPT_ON_RESUME, Route120_OnResume
map_script MAP_SCRIPT_ON_TRANSITION, Route120_OnTransition
map_script MAP_SCRIPT_ON_LOAD, Route120_OnLoad
.byte 0
Route120_OnResume: @ 81F53FC
call_if_set FLAG_SYS_CTRL_OBJ_DELETE, Route120_EventScript_RemoveKecleonObject
end
Route120_EventScript_RemoveKecleonObject:: @ 81F5406
compare VAR_0x8009, 0
call_if_eq Route120_EventScript_RemoveBridgeKecleon
compare VAR_0x8009, 1
call_if_eq Route120_EventScript_RemoveKecleon
compare VAR_0x8009, 2
call_if_eq Route120_EventScript_RemoveKecleon
compare VAR_0x8009, 3
call_if_eq Route120_EventScript_RemoveKecleon
compare VAR_0x8009, 4
call_if_eq Route120_EventScript_RemoveKecleon
compare VAR_0x8009, 5
call_if_eq Route120_EventScript_RemoveKecleon
return
Route120_EventScript_RemoveBridgeKecleon:: @ 81F5449
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne Common_EventScript_NopReturn
removeobject LOCALID_INVISIBLE_BRIDGE_KECLEON
removeobject LOCALID_VISIBLE_BRIDGE_KECLEON
return
Route120_EventScript_RemoveKecleon:: @ 81F5460
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne Common_EventScript_NopReturn
removeobject VAR_LAST_TALKED
return
Route120_OnLoad: @ 81F5474
call_if_unset FLAG_REGI_DOORS_OPENED, Route120_EventScript_CloseAncientTomb
call_if_set FLAG_RECEIVED_DEVON_SCOPE, Route120_EventScript_SetBridgeClearMetatiles
call_if_unset FLAG_RECEIVED_DEVON_SCOPE, Route120_EventScript_SetBridgeKecleonMovement
end
Route120_EventScript_CloseAncientTomb:: @ 81F5490
setmetatile 7, 54, METATILE_General_RockWall_RockBase, 1
setmetatile 7, 55, METATILE_General_RockWall_SandBase, 1
return
Route120_EventScript_SetBridgeClearMetatiles:: @ 81F54A3
setmetatile 13, 15, METATILE_Fortree_WoodBridge1_Top, 0
setmetatile 12, 16, METATILE_Fortree_WoodBridge1_Bottom, 0
setmetatile 12, 17, METATILE_General_ReflectiveWater, 0
setmetatile 13, 17, METATILE_General_ReflectiveWater, 0
return
Route120_EventScript_SetBridgeKecleonMovement:: @ 81F54C8
setobjectmovementtype LOCALID_VISIBLE_BRIDGE_KECLEON, MOVEMENT_TYPE_FACE_RIGHT
return
Route120_OnTransition: @ 81F54CD
call GabbyAndTy_EventScript_UpdateLocation
call Route120_EventScript_SetWeather
end
Route120_EventScript_SetWeather:: @ 81F54D8
getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_TEMP_1, 14
goto_if_le Route120_EventScript_SetSunnyWeather
compare VAR_TEMP_1, 60
goto_if_le Route120_EventScript_TrySetRainyWeather
compare VAR_TEMP_1, 61
goto_if_ge Route120_EventScript_SetCloudyWeather
return
Route120_EventScript_SetCloudyWeather:: @ 81F54FF
setweather WEATHER_SUNNY_CLOUDS
return
Route120_EventScript_SetSunnyWeather:: @ 81F5503
setweather WEATHER_SUNNY
return
Route120_EventScript_TrySetRainyWeather:: @ 81F5507
compare VAR_TEMP_0, 7
goto_if_le Route120_EventScript_SetRainyWeather
compare VAR_TEMP_0, 19
goto_if_le Route120_EventScript_SetSunnyWeather
goto Route120_EventScript_SetRainyWeather
end
Route120_EventScript_SetRainyWeather:: @ 81F5523
setweather WEATHER_RAIN
return
Route120_EventScript_BerryBeauty:: @ 81F5527
lock
faceplayer
dotimebasedevents
goto_if_set FLAG_DAILY_ROUTE_120_RECEIVED_BERRY, Route120_EventScript_ReceivedBerry
msgbox Route120_Text_BerriesExpressionOfLoveIsntIt, MSGBOX_YESNO
compare VAR_RESULT, YES
call_if_eq Route120_EventScript_BerryLove
compare VAR_RESULT, NO
call_if_eq Route120_EventScript_BerryNotLove
specialvar VAR_RESULT, GetPlayerTrainerIdOnesDigit
switch VAR_RESULT
case 0, Route120_EventScript_GiveFigyBerry
case 5, Route120_EventScript_GiveFigyBerry
case 1, Route120_EventScript_GiveWikiBerry
case 6, Route120_EventScript_GiveWikiBerry
case 2, Route120_EventScript_GiveMagoBerry
case 7, Route120_EventScript_GiveMagoBerry
case 3, Route120_EventScript_GiveAguavBerry
case 8, Route120_EventScript_GiveAguavBerry
case 4, Route120_EventScript_GiveIapapaBerry
case 9, Route120_EventScript_GiveIapapaBerry
end
Route120_EventScript_GiveFigyBerry:: @ 81F55CA
setvar VAR_0x8004, ITEM_FIGY_BERRY
goto Route120_EventScript_GiveBerry
end
Route120_EventScript_GiveWikiBerry:: @ 81F55D5
setvar VAR_0x8004, ITEM_WIKI_BERRY
goto Route120_EventScript_GiveBerry
end
Route120_EventScript_GiveMagoBerry:: @ 81F55E0
setvar VAR_0x8004, ITEM_MAGO_BERRY
goto Route120_EventScript_GiveBerry
end
Route120_EventScript_GiveAguavBerry:: @ 81F55EB
setvar VAR_0x8004, ITEM_AGUAV_BERRY
goto Route120_EventScript_GiveBerry
end
Route120_EventScript_GiveIapapaBerry:: @ 81F55F6
setvar VAR_0x8004, ITEM_IAPAPA_BERRY
goto Route120_EventScript_GiveBerry
end
Route120_EventScript_GiveBerry:: @ 81F5601
giveitem VAR_0x8004
compare VAR_RESULT, FALSE
goto_if_eq Common_EventScript_ShowBagIsFull
setflag FLAG_DAILY_ROUTE_120_RECEIVED_BERRY
msgbox Route120_Text_BerryIsRareRaiseItWithCare, MSGBOX_DEFAULT
release
end
Route120_EventScript_ReceivedBerry:: @ 81F5625
msgbox Route120_Text_IllGetMoreBerriesFromBerryMaster, MSGBOX_DEFAULT
release
end
Route120_EventScript_BerryLove:: @ 81F562F
msgbox Route120_Text_YesYouUnderstand, MSGBOX_DEFAULT
return
Route120_EventScript_BerryNotLove:: @ 81F5638
msgbox Route120_Text_MakeYourOwnImpressions, MSGBOX_DEFAULT
return
Route120_EventScript_Steven:: @ 81F5641
lock
faceplayer
goto_if_set FLAG_NOT_READY_FOR_BATTLE_ROUTE_120, Route120_EventScript_StevenAskReadyForBattle
msgbox Route120_Text_StevenGreeting, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq Route120_EventScript_StevenNotReady
goto Route120_EventScript_StevenBattleKecleon
end
Route120_EventScript_StevenNotReady:: @ 81F5665
msgbox Route120_Text_StevenIllWaitHere, MSGBOX_DEFAULT
setflag FLAG_NOT_READY_FOR_BATTLE_ROUTE_120
release
end
Route120_EventScript_StevenAskReadyForBattle:: @ 81F5672
msgbox Route120_Text_StevenReadyForBattle, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq Route120_EventScript_StevenNotReady
goto Route120_EventScript_StevenBattleKecleon
end
Route120_EventScript_StevenBattleKecleon:: @ 81F568B
msgbox Route120_Text_StevenShowMeYourPower, MSGBOX_DEFAULT
closemessage
compare VAR_FACING, DIR_NORTH
call_if_eq Route120_EventScript_PlayerApproachKecleonNorth
compare VAR_FACING, DIR_WEST
call_if_eq Route120_EventScript_PlayerApproachKecleonWest
applymovement LOCALID_STEVEN, Common_Movement_WalkInPlaceFastestLeft
waitmovement 0
delay 20
msgbox Route120_Text_StevenUsedDevonScope, MSGBOX_DEFAULT
closemessage
applymovement LOCALID_INVISIBLE_BRIDGE_KECLEON, Common_Movement_WalkInPlaceFastestRight
waitmovement 0
applymovement LOCALID_INVISIBLE_BRIDGE_KECLEON, Movement_KecleonAppears
waitmovement 0
waitse
playmoncry SPECIES_KECLEON, 2
delay 40
waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
setvar VAR_0x8009, 0
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, B_OUTCOME_WON
goto_if_eq Route120_EventScript_RemoveBridgeKecleonPostBattle
compare VAR_RESULT, B_OUTCOME_RAN
goto_if_eq Route120_EventScript_RemoveBridgeKecleonPostBattle
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
goto_if_eq Route120_EventScript_RemoveBridgeKecleonPostBattle
goto Route120_EventScript_StevenGiveDeconScope
end
Route120_EventScript_RemoveBridgeKecleonPostBattle:: @ 81F571C
fadescreenswapbuffers FADE_TO_BLACK
removeobject LOCALID_INVISIBLE_BRIDGE_KECLEON
removeobject LOCALID_VISIBLE_BRIDGE_KECLEON
fadescreenswapbuffers FADE_FROM_BLACK
goto Route120_EventScript_StevenGiveDeconScope
end
Route120_EventScript_StevenGiveDeconScope:: @ 81F572C
applymovement LOCALID_STEVEN, Common_Movement_WalkInPlaceFastestDown
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp
waitmovement 0
msgbox Route120_Text_StevenGiveDevonScope, MSGBOX_DEFAULT
giveitem ITEM_DEVON_SCOPE
setflag FLAG_RECEIVED_DEVON_SCOPE
msgbox Route120_Text_StevenGoodbye, MSGBOX_DEFAULT
closemessage
applymovement LOCALID_STEVEN, Common_Movement_WalkInPlaceFastestDown
waitmovement 0
delay 50
setfieldeffectargument 0, 1
dofieldeffect FLDEFF_NPCFLY_OUT
delay 15
removeobject LOCALID_STEVEN
waitfieldeffect FLDEFF_NPCFLY_OUT
setmetatile 13, 15, METATILE_Fortree_WoodBridge1_Top, 0
setmetatile 12, 16, METATILE_Fortree_WoodBridge1_Bottom, 0
setmetatile 12, 17, METATILE_General_ReflectiveWater, 0
setmetatile 13, 17, METATILE_General_ReflectiveWater, 0
special DrawWholeMapView
release
end
Route120_EventScript_PlayerApproachKecleonNorth:: @ 81F57A3
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFastestLeft
waitmovement 0
return
Route120_EventScript_PlayerApproachKecleonWest:: @ 81F57AE
applymovement OBJ_EVENT_ID_PLAYER, Route120_Movement_ApproachKecleonWest
waitmovement 0
return
Route120_Movement_ApproachKecleonWest: @ 81F57B9
walk_down
walk_left
step_end
Route120_EventScript_InvisibleBridgeKecleon:: @ 81F57BC
msgbox Kecleon_Text_SomethingUnseeable, MSGBOX_NPC
end
Route120_EventScript_RouteSignFortree:: @ 81F57C5
msgbox Route120_Text_RouteSignFortree, MSGBOX_SIGN
end
Route120_EventScript_RouteSign121:: @ 81F57CE
msgbox Route120_Text_RouteSign121, MSGBOX_SIGN
end
Route120_EventScript_Colin:: @ 81F57D7
trainerbattle_single TRAINER_COLIN, Route120_Text_ColinIntro, Route120_Text_ColinDefeat
msgbox Route120_Text_ColinPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Robert:: @ 81F57EE
trainerbattle_single TRAINER_ROBERT_1, Route120_Text_RobertIntro, Route120_Text_RobertDefeat, Route120_EventScript_RegisterRobert
specialvar VAR_RESULT, ShouldTryRematchBattle
compare VAR_RESULT, TRUE
goto_if_eq Route120_EventScript_RematchRobert
msgbox Route120_Text_RobertPostBattle, MSGBOX_DEFAULT
release
end
Route120_EventScript_RegisterRobert:: @ 81F581A
special PlayerFaceTrainerAfterBattle
waitmovement 0
msgbox Route120_Text_RobertRegister, MSGBOX_DEFAULT
register_matchcall TRAINER_ROBERT_1
release
end
Route120_EventScript_RematchRobert:: @ 81F5839
trainerbattle_rematch TRAINER_ROBERT_1, Route120_Text_RobertRematchIntro, Route120_Text_RobertRematchDefeat
msgbox Route120_Text_RobertPostRematch, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Lorenzo:: @ 81F5850
trainerbattle_single TRAINER_LORENZO, Route120_Text_LorenzoIntro, Route120_Text_LorenzoDefeat
msgbox Route120_Text_LorenzoPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Jenna:: @ 81F5867
trainerbattle_single TRAINER_JENNA, Route120_Text_JennaIntro, Route120_Text_JennaDefeat
msgbox Route120_Text_JennaPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Jeffrey:: @ 81F587E
trainerbattle_single TRAINER_JEFFREY_1, Route120_Text_JeffreyIntro, Route120_Text_JeffreyDefeat, Route120_EventScript_RegisterJeffrey
specialvar VAR_RESULT, ShouldTryRematchBattle
compare VAR_RESULT, TRUE
goto_if_eq Route120_EventScript_RematchJeffrey
msgbox Route120_Text_JeffreyPostBattle, MSGBOX_DEFAULT
release
end
Route120_EventScript_RegisterJeffrey:: @ 81F58AA
special PlayerFaceTrainerAfterBattle
waitmovement 0
msgbox Route120_Text_JeffreyRegister, MSGBOX_DEFAULT
register_matchcall TRAINER_JEFFREY_1
release
end
Route120_EventScript_RematchJeffrey:: @ 81F58C9
trainerbattle_rematch TRAINER_JEFFREY_1, Route120_Text_JeffreyRematchIntro, Route120_Text_JeffreyRematchDefeat
msgbox Route120_Text_JeffreyPostRematch, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Jennifer:: @ 81F58E0
trainerbattle_single TRAINER_JENNIFER, Route120_Text_JenniferIntro, Route120_Text_JenniferDefeat
msgbox Route120_Text_JenniferPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Chip:: @ 81F58F7
trainerbattle_single TRAINER_CHIP, Route120_Text_ChipIntro, Route120_Text_ChipDefeat
msgbox Route120_Text_ChipPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Clarissa:: @ 81F590E
trainerbattle_single TRAINER_CLARISSA, Route120_Text_ClarissaIntro, Route120_Text_ClarissaDefeat
msgbox Route120_Text_ClarissaPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Angelica:: @ 81F5925
trainerbattle_single TRAINER_ANGELICA, Route120_Text_AngelicaIntro, Route120_Text_AngelicaDefeat
msgbox Route120_Text_AngelicaPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Keigo:: @ 81F593C
trainerbattle_single TRAINER_KEIGO, Route120_Text_KeigoIntro, Route120_Text_KeigoDefeat
msgbox Route120_Text_KeigoPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Riley:: @ 81F5953
trainerbattle_single TRAINER_RILEY, Route120_Text_RileyIntro, Route120_Text_RileyDefeat
msgbox Route120_Text_RileyPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Leonel:: @ 81F596A
trainerbattle_single TRAINER_LEONEL, Route120_Text_LeonelIntro, Route120_Text_LeonelDefeat
msgbox Route120_Text_LeonelPostBattle, MSGBOX_AUTOCLOSE
end
Route120_EventScript_Callie:: @ 81F5981
trainerbattle_single TRAINER_CALLIE, Route120_Text_CallieIntro, Route120_Text_CallieDefeat
msgbox Route120_Text_CalliePostBattle, MSGBOX_AUTOCLOSE
end
Route120_Text_StevenGreeting: @ 81F5998
.string "STEVEN: Hm? {PLAYER}{KUN}, hi.\n"
.string "It's been a while.\p"
.string "There's something here that you can't\n"
.string "see, right?\p"
.string "Now, if I were to use this device on\n"
.string "the invisible obstacle…\p"
.string "No, no. Rather than describing it,\n"
.string "I should just show you.\l"
.string "That would be more fun.\p"
.string "{PLAYER}{KUN}, are your POKéMON ready for\n"
.string "battle?$"
Route120_Text_StevenIllWaitHere: @ 81F5AAC
.string "STEVEN: No?\p"
.string "I'll wait here, so you can get ready.$"
Route120_Text_StevenReadyForBattle: @ 81F5ADE
.string "STEVEN: {PLAYER}{KUN}, are your POKéMON\n"
.string "ready for battle?$"
Route120_Text_StevenShowMeYourPower: @ 81F5B0F
.string "STEVEN: {PLAYER}{KUN}, show me your true\n"
.string "power as a TRAINER!$"
Route120_Text_StevenUsedDevonScope: @ 81F5B43
.string "STEVEN used the DEVON SCOPE.\p"
.string "An invisible POKéMON became completely\n"
.string "visible!\p"
.string "The startled POKéMON attacked!$"
Route120_Text_StevenGiveDevonScope: @ 81F5BAF
.string "STEVEN: I see…\n"
.string "Your battle style is intriguing.\p"
.string "Your POKéMON have obviously grown\n"
.string "since I first met you in DEWFORD.\p"
.string "I'd like you to have this\n"
.string "DEVON SCOPE.\p"
.string "Who knows, there may be other\n"
.string "concealed POKéMON.$"
Route120_Text_StevenGoodbye: @ 81F5C7B
.string "STEVEN: {PLAYER}{KUN}.\p"
.string "I enjoy seeing POKéMON and TRAINERS\n"
.string "who strive together.\p"
.string "I think you're doing great.\p"
.string "Well, let's meet again somewhere.$"
Kecleon_Text_SomethingUnseeable: @ 81F5D00
.string "Something unseeable is in the way.$"
Kecleon_Text_WantToUseDevonScope: @ 81F5D23
.string "Something unseeable is in the way.\p"
.string "Want to use the DEVON SCOPE?$"
Kecleon_Text_UseDevonScopeMonAttacked: @ 81F5D63
.string "{PLAYER} used the DEVON SCOPE.\p"
.string "An invisible POKéMON became completely\n"
.string "visible!\p"
.string "The startled POKéMON attacked!$"
Route120_Text_RouteSignFortree: @ 81F5DCB
.string "ROUTE 120\n"
.string "{LEFT_ARROW} FORTREE CITY$"
Route120_Text_RouteSign121: @ 81F5DE4
.string "{RIGHT_ARROW} ROUTE 121\n"
.string "{LEFT_ARROW} ROUTE 120$"
|