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
|
#include "constants/mauville_man.h"
MauvilleCity_PokemonCenter_1F_EventScript_1AE744:: @ 81AE744
special ScrSpecial_GetCurrentMauvilleMan
switch VAR_RESULT
case MAUVILLE_MAN_BARD, SpeakToBard
case MAUVILLE_MAN_HIPSTER, SpeakToHipster
case MAUVILLE_MAN_TRADER, SpeakToTrader
case MAUVILLE_MAN_STORYTELLER, SpeakToStoryteller
case MAUVILLE_MAN_GIDDY, SpeakToGiddy
end
@-------------------------------------------------------------------------------
@ Bard
@-------------------------------------------------------------------------------
SpeakToBard:
lock
faceplayer
msgbox gTextBard_HiImTheBard, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq yes_hear_song
compare VAR_RESULT, NO
goto_if_eq dont_hear_song
end
yes_hear_song:
setvar VAR_0x8004, 0
@ Give the player ear rape
special ScrSpecial_PlayBardSong
delay 60
special ScrSpecial_HasBardSongBeenChanged
compare VAR_RESULT, FALSE
@ Prompt new lyrics only if song hasn't been changed
goto_if_eq prompt_write_lyrics
msgbox gTextBard_OhWhatAMovingSong, MSGBOX_DEFAULT
release
end
dont_hear_song:
msgbox gTextBard_OhYouveLeftMe, MSGBOX_DEFAULT
release
end
prompt_write_lyrics:
msgbox gTextBard_SoHowDoYouLikeMySong, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq write_lyrics
compare VAR_RESULT, NO
goto_if_eq dont_write_lyrics
end
write_lyrics:
setvar VAR_0x8004, 6
call Common_EventScript_ShowEasyChatScreen
lock
faceplayer
compare VAR_RESULT, NO
goto_if_eq dont_write_lyrics
msgbox gTextBard_ThankYouKindly, MSGBOX_DEFAULT
setvar VAR_0x8004, 1
@ Give the player ear rape again
special ScrSpecial_PlayBardSong
delay 60
msgbox gTextBard_WasThatHowYouWanted, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq write_lyrics @ Keep looping until player responds YES
special ScrSpecial_SaveBardSongLyrics
msgbox gTextBard_OkayThatsIt, MSGBOX_DEFAULT
release
end
dont_write_lyrics:
msgbox gTextBard_OhYouveLeftMe2, MSGBOX_DEFAULT
release
end
@-------------------------------------------------------------------------------
@ Hipster
@-------------------------------------------------------------------------------
SpeakToHipster:
lock
faceplayer
setflag FLAG_SYS_HIPSTER_MEET
msgbox gTextHipster_TheyCallMeTheHipster, MSGBOX_DEFAULT
special ScrSpecial_GetHipsterSpokenFlag
compare VAR_RESULT, FALSE
goto_if_eq hipster_first_time
msgbox gTextHipster_TaughtYouAlready, MSGBOX_DEFAULT
release
end
hipster_first_time:
special ScrSpecial_HipsterTeachWord
compare VAR_RESULT, TRUE @ TRUE if player learned a new word
goto_if_eq teach_new_word
msgbox gTextHipster_YouAlreadyKnowALot, MSGBOX_DEFAULT
release
end
teach_new_word:
msgbox gTextHipster_HaveYouHeardAbout, MSGBOX_DEFAULT
special ScrSpecial_SetHipsterSpokenFlag
release
end
@-------------------------------------------------------------------------------
@ Trader
@-------------------------------------------------------------------------------
.include "data/text/trader.inc"
SpeakToTrader:
lock
faceplayer
msgbox gTextTrader_Introduction, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq dont_want_to_trade
special ScrSpecial_GetTraderTradedFlag
compare VAR_RESULT, TRUE
goto_if_eq already_traded
message gTextTrader_MenuPrompt
waitmessage
goto do_trader_menu_get
end
dont_want_to_trade:
msgbox gTextTrader_FeelUnwanted1, MSGBOX_NPC
end
already_traded:
msgbox gTextTrader_TradedAlready, MSGBOX_NPC
end
do_trader_menu_get:
special ScrSpecial_TraderMenuGetDecoration
waitstate
compare VAR_0x8004, 0
goto_if_eq cancelled_get_menu
compare VAR_0x8004, -1
goto_if_eq rare_item_cant_trade_away
msgbox gTextTrader_ItemOnceBelongedTo, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq dont_want_item
special ScrSpecial_DoesPlayerHaveNoDecorations
compare VAR_RESULT, TRUE
goto_if_eq player_has_no_decorations
goto do_trader_menu_give
end
cancelled_get_menu:
msgbox gTextTrader_DontWantAnything, MSGBOX_NPC
end
rare_item_cant_trade_away:
message gTextTrader_ICantTradeThatOneAway
waitmessage
goto do_trader_menu_get
end
dont_want_item:
message gTextTrader_MenuPrompt
waitmessage
goto do_trader_menu_get
end
player_has_no_decorations:
msgbox gTextTrader_YouDontHaveDecorations, MSGBOX_NPC
end
do_trader_menu_give:
msgbox gTextTrader_PickDecorationYoullTrade, MSGBOX_DEFAULT
special ScrSpecial_TraderMenuGiveDecoration
waitstate
compare VAR_0x8006, 0
goto_if_eq cancelled_give_menu
compare VAR_0x8006, -1
goto_if_eq decoration_is_in_use
special ScrSpecial_IsDecorationFull
compare VAR_RESULT, 1
goto_if_eq decorations_full
msgbox gTextTrader_SoWellTrade, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq do_trader_menu_give
special ScrSpecial_TraderDoDecorationTrade
msgbox gTextTrader_ThenWellTrade, MSGBOX_NPC
end
cancelled_give_menu:
msgbox gTextTrader_FeelUnwanted2, MSGBOX_NPC
end
decoration_is_in_use:
msgbox gTextTrader_InUseYouCantTradeIt, MSGBOX_DEFAULT
goto do_trader_menu_give
end
decorations_full:
msgbox gTextTrader_NoRoomForThis, MSGBOX_NPC
end
@-------------------------------------------------------------------------------
@ Storyteller
@-------------------------------------------------------------------------------
.include "data/text/storyteller.inc"
SpeakToStoryteller:
setvar VAR_0x8008, 0
setvar VAR_0x8009, 0
setvar VAR_0x800A, 0
setvar VAR_0x800B, 0
lock
faceplayer
msgbox gTextStoryteller_Introduction, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq dont_hear_story
specialvar VAR_RESULT, ScrSpecial_StorytellerGetFreeStorySlot
compare VAR_RESULT, 0 @ If slot is 0, then the list is empty
goto_if_eq no_stories_recorded
choose_story:
message gTextStoryteller_WhichTale
waitmessage
special ScrSpecial_StorytellerStoryListMenu
waitstate
compare VAR_RESULT, FALSE
goto_if_eq cancel_story_menu
setvar VAR_0x8008, 1
special ScrSpecial_StorytellerDisplayStory
waitmessage
waitbuttonpress
specialvar VAR_RESULT, ScrSpecial_StorytellerUpdateStat
compare VAR_RESULT, FALSE
goto_if_eq no_stat_update
goto stat_update
cancel_story_menu:
compare VAR_0x8008, 0
goto_if_eq dont_hear_story
goto yes_hear_story
no_stat_update:
msgbox gTextStoryteller_CouldThereBeOtherTrainers, MSGBOX_DEFAULT
msgbox gTextStoryteller_HearAnotherLegendaryTale, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq choose_story
yes_hear_story:
specialvar VAR_RESULT, ScrSpecial_HasStorytellerAlreadyRecorded
compare VAR_RESULT, TRUE
goto_if_eq cant_record_story @ already recorded story
specialvar VAR_RESULT, ScrSpecial_StorytellerGetFreeStorySlot
compare VAR_RESULT, 4
goto_if_eq cant_record_story @ story list is full
goto prompt_record_story
no_stories_recorded:
msgbox gTextStoryteller_ButIKnowOfNoLegendaryTrainers, MSGBOX_DEFAULT
prompt_record_story:
msgbox gTextStoryteller_HaveYouAnyTales, MSGBOX_YESNO
compare VAR_RESULT, NO
goto_if_eq dont_hear_story
specialvar VAR_RESULT, ScrSpecial_StorytellerInitializeRandomStat
compare VAR_RESULT, TRUE
goto_if_eq stat_update
msgbox gTextStoryteller_ImNotSatisfied, MSGBOX_DEFAULT
closemessage
release
end
stat_update:
msgbox gTextStoryteller_BirthOfANewLegend, MSGBOX_DEFAULT
closemessage
release
end
dont_hear_story:
msgbox gTextStoryteller_OhIFeelStifled, MSGBOX_DEFAULT
closemessage
release
end
cant_record_story:
msgbox gTextStoryteller_WishMorePeopleWould, MSGBOX_DEFAULT
closemessage
release
end
@-------------------------------------------------------------------------------
@ Giddy
@-------------------------------------------------------------------------------
.include "data/text/giddy.inc"
SpeakToGiddy:
lock
faceplayer
msgbox gTextGiddy_Introduction, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq yes_hear_giddy
compare VAR_RESULT, NO
goto_if_eq dont_hear_giddy
end
yes_hear_giddy:
special ScrSpecial_GiddyShouldTellAnotherTale
compare VAR_RESULT, TRUE
goto_if_eq tell_giddy_tale
compare VAR_RESULT, FALSE
goto_if_eq bye_bye
end
tell_another_giddy_tale:
special ScrSpecial_GiddyShouldTellAnotherTale
compare VAR_RESULT, TRUE
goto_if_eq also_i_was_thinking
compare VAR_RESULT, FALSE
goto_if_eq bye_bye
end
also_i_was_thinking:
msgbox gTextGiddy_AlsoIWasThinking, MSGBOX_DEFAULT
goto tell_giddy_tale
end
tell_giddy_tale:
special ScrSpecial_GenerateGiddyLine
special ShowFieldMessageStringVar4
waitmessage
yesnobox 20, 8
compare VAR_RESULT, 1
goto_if_eq tell_another_giddy_tale
compare VAR_RESULT, 0
goto_if_eq tell_another_giddy_tale
end
dont_hear_giddy:
msgbox gTextGiddy_YouveDeflatedMe, MSGBOX_DEFAULT
release
end
bye_bye:
msgbox gTextGiddy_ByeBye, MSGBOX_DEFAULT
release
end
.include "data/text/bard.inc"
.include "data/text/hipster.inc"
|