Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/scripts/CeladonGym.asm
1270 views
1
CeladonGym_Script:
2
ld hl, wCurrentMapScriptFlags
3
bit BIT_CUR_MAP_LOADED_2, [hl]
4
res BIT_CUR_MAP_LOADED_2, [hl]
5
call nz, .LoadNames
6
call EnableAutoTextBoxDrawing
7
ld hl, CeladonGymTrainerHeaders
8
ld de, CeladonGym_ScriptPointers
9
ld a, [wCeladonGymCurScript]
10
call ExecuteCurMapScriptInTable
11
ld [wCeladonGymCurScript], a
12
ret
13
14
.LoadNames:
15
ld hl, .CityName
16
ld de, .LeaderName
17
jp LoadGymLeaderAndCityName
18
19
.CityName:
20
db "CELADON CITY@"
21
22
.LeaderName:
23
db "ERIKA@"
24
25
CeladonGymResetScripts:
26
xor a ; SCRIPT_CELADONGYM_DEFAULT
27
ld [wJoyIgnore], a
28
ld [wCeladonGymCurScript], a
29
ld [wCurMapScript], a
30
ret
31
32
CeladonGym_ScriptPointers:
33
def_script_pointers
34
dw_const CheckFightingMapTrainers, SCRIPT_CELADONGYM_DEFAULT
35
dw_const DisplayEnemyTrainerTextAndStartBattle, SCRIPT_CELADONGYM_START_BATTLE
36
dw_const EndTrainerBattle, SCRIPT_CELADONGYM_END_BATTLE
37
dw_const CeladonGymErikaPostBattleScript, SCRIPT_CELADONGYM_ERIKA_POST_BATTLE
38
39
CeladonGymErikaPostBattleScript:
40
ld a, [wIsInBattle]
41
cp $ff
42
jp z, CeladonGymResetScripts
43
ld a, PAD_CTRL_PAD
44
ld [wJoyIgnore], a
45
46
CeladonGymReceiveTM21:
47
ld a, TEXT_CELADONGYM_RAINBOWBADGE_INFO
48
ldh [hTextID], a
49
call DisplayTextID
50
SetEvent EVENT_BEAT_ERIKA
51
lb bc, TM_MEGA_DRAIN, 1
52
call GiveItem
53
jr nc, .BagFull
54
ld a, TEXT_CELADONGYM_RECEIVED_TM21
55
ldh [hTextID], a
56
call DisplayTextID
57
SetEvent EVENT_GOT_TM21
58
jr .gymVictory
59
.BagFull
60
ld a, TEXT_CELADONGYM_TM21_NO_ROOM
61
ldh [hTextID], a
62
call DisplayTextID
63
.gymVictory
64
ld hl, wObtainedBadges
65
set BIT_RAINBOWBADGE, [hl]
66
ld hl, wBeatGymFlags
67
set BIT_RAINBOWBADGE, [hl]
68
69
; deactivate gym trainers
70
SetEventRange EVENT_BEAT_CELADON_GYM_TRAINER_0, EVENT_BEAT_CELADON_GYM_TRAINER_6
71
72
jp CeladonGymResetScripts
73
74
CeladonGym_TextPointers:
75
def_text_pointers
76
dw_const CeladonGymErikaText, TEXT_CELADONGYM_ERIKA
77
dw_const CeladonGymCooltrainerF1Text, TEXT_CELADONGYM_COOLTRAINER_F1
78
dw_const CeladonGymBeauty1Text, TEXT_CELADONGYM_BEAUTY1
79
dw_const CeladonGymCooltrainerF2Text, TEXT_CELADONGYM_COOLTRAINER_F2
80
dw_const CeladonGymBeauty2Text, TEXT_CELADONGYM_BEAUTY2
81
dw_const CeladonGymCooltrainerF3Text, TEXT_CELADONGYM_COOLTRAINER_F3
82
dw_const CeladonGymBeauty3Text, TEXT_CELADONGYM_BEAUTY3
83
dw_const CeladonGymCooltrainerF4Text, TEXT_CELADONGYM_COOLTRAINER_F4
84
dw_const CeladonGymRainbowBadgeInfoText, TEXT_CELADONGYM_RAINBOWBADGE_INFO
85
dw_const CeladonGymReceivedTM21Text, TEXT_CELADONGYM_RECEIVED_TM21
86
dw_const CeladonGymTM21NoRoomText, TEXT_CELADONGYM_TM21_NO_ROOM
87
88
CeladonGymTrainerHeaders:
89
def_trainers 2
90
CeladonGymTrainerHeader0:
91
trainer EVENT_BEAT_CELADON_GYM_TRAINER_0, 2, CeladonGymBattleText2, CeladonGymEndBattleText2, CeladonGymAfterBattleText2
92
CeladonGymTrainerHeader1:
93
trainer EVENT_BEAT_CELADON_GYM_TRAINER_1, 2, CeladonGymBattleText3, CeladonGymEndBattleText3, CeladonGymAfterBattleText3
94
CeladonGymTrainerHeader2:
95
trainer EVENT_BEAT_CELADON_GYM_TRAINER_2, 4, CeladonGymBattleText4, CeladonGymEndBattleText4, CeladonGymAfterBattleText4
96
CeladonGymTrainerHeader3:
97
trainer EVENT_BEAT_CELADON_GYM_TRAINER_3, 4, CeladonGymBattleText5, CeladonGymEndBattleText5, CeladonGymAfterBattleText5
98
CeladonGymTrainerHeader4:
99
trainer EVENT_BEAT_CELADON_GYM_TRAINER_4, 2, CeladonGymBattleText6, CeladonGymEndBattleText6, CeladonGymAfterBattleText6
100
CeladonGymTrainerHeader5:
101
trainer EVENT_BEAT_CELADON_GYM_TRAINER_5, 2, CeladonGymBattleText7, CeladonGymEndBattleText7, CeladonGymAfterBattleText7
102
CeladonGymTrainerHeader6:
103
trainer EVENT_BEAT_CELADON_GYM_TRAINER_6, 3, CeladonGymBattleText8, CeladonGymEndBattleText8, CeladonGymAfterBattleText8
104
db -1 ; end
105
106
CeladonGymErikaText:
107
text_asm
108
CheckEvent EVENT_BEAT_ERIKA
109
jr z, .beforeBeat
110
CheckEventReuseA EVENT_GOT_TM21
111
jr nz, .afterBeat
112
call z, CeladonGymReceiveTM21
113
call DisableWaitingAfterTextDisplay
114
jr .done
115
.afterBeat
116
ld hl, .PostBattleAdviceText
117
call PrintText
118
jr .done
119
.beforeBeat
120
ld hl, .PreBattleText
121
call PrintText
122
ld hl, wStatusFlags3
123
set BIT_TALKED_TO_TRAINER, [hl]
124
set BIT_PRINT_END_BATTLE_TEXT, [hl]
125
ld hl, .ReceivedRainbowBadgeText
126
ld de, .ReceivedRainbowBadgeText
127
call SaveEndBattleTextPointers
128
ldh a, [hSpriteIndex]
129
ld [wSpriteIndex], a
130
call EngageMapTrainer
131
call InitBattleEnemyParameters
132
ld a, $4
133
ld [wGymLeaderNo], a
134
ld a, SCRIPT_CELADONGYM_ERIKA_POST_BATTLE
135
ld [wCeladonGymCurScript], a
136
ld [wCurMapScript], a
137
.done
138
jp TextScriptEnd
139
140
.PreBattleText:
141
text_far _CeladonGymErikaPreBattleText
142
text_end
143
144
.ReceivedRainbowBadgeText:
145
text_far _CeladonGymErikaReceivedRainbowBadgeText
146
text_end
147
148
.PostBattleAdviceText:
149
text_far _CeladonGymErikaPostBattleAdviceText
150
text_end
151
152
CeladonGymRainbowBadgeInfoText:
153
text_far _CeladonGymRainbowBadgeInfoText
154
text_end
155
156
CeladonGymReceivedTM21Text:
157
text_far _CeladonGymReceivedTM21Text
158
sound_get_item_1
159
text_far _TM21ExplanationText
160
text_end
161
162
CeladonGymTM21NoRoomText:
163
text_far _CeladonGymTM21NoRoomText
164
text_end
165
166
CeladonGymCooltrainerF1Text:
167
text_asm
168
ld hl, CeladonGymTrainerHeader0
169
call TalkToTrainer
170
jp TextScriptEnd
171
172
CeladonGymBattleText2:
173
text_far _CeladonGymBattleText2
174
text_end
175
176
CeladonGymEndBattleText2:
177
text_far _CeladonGymEndBattleText2
178
text_end
179
180
CeladonGymAfterBattleText2:
181
text_far _CeladonGymAfterBattleText2
182
text_end
183
184
CeladonGymBeauty1Text:
185
text_asm
186
ld hl, CeladonGymTrainerHeader1
187
call TalkToTrainer
188
jp TextScriptEnd
189
190
CeladonGymBattleText3:
191
text_far _CeladonGymBattleText3
192
text_end
193
194
CeladonGymEndBattleText3:
195
text_far _CeladonGymEndBattleText3
196
text_end
197
198
CeladonGymAfterBattleText3:
199
text_far _CeladonGymAfterBattleText3
200
text_end
201
202
CeladonGymCooltrainerF2Text:
203
text_asm
204
ld hl, CeladonGymTrainerHeader2
205
call TalkToTrainer
206
jp TextScriptEnd
207
208
CeladonGymBattleText4:
209
text_far _CeladonGymBattleText4
210
text_end
211
212
CeladonGymEndBattleText4:
213
text_far _CeladonGymEndBattleText4
214
text_end
215
216
CeladonGymAfterBattleText4:
217
text_far _CeladonGymAfterBattleText4
218
text_end
219
220
CeladonGymBeauty2Text:
221
text_asm
222
ld hl, CeladonGymTrainerHeader3
223
call TalkToTrainer
224
jp TextScriptEnd
225
226
CeladonGymBattleText5:
227
text_far _CeladonGymBattleText5
228
text_end
229
230
CeladonGymEndBattleText5:
231
text_far _CeladonGymEndBattleText5
232
text_end
233
234
CeladonGymAfterBattleText5:
235
text_far _CeladonGymAfterBattleText5
236
text_end
237
238
CeladonGymCooltrainerF3Text:
239
text_asm
240
ld hl, CeladonGymTrainerHeader4
241
call TalkToTrainer
242
jp TextScriptEnd
243
244
CeladonGymBattleText6:
245
text_far _CeladonGymBattleText6
246
text_end
247
248
CeladonGymEndBattleText6:
249
text_far _CeladonGymEndBattleText6
250
text_end
251
252
CeladonGymAfterBattleText6:
253
text_far _CeladonGymAfterBattleText6
254
text_end
255
256
CeladonGymBeauty3Text:
257
text_asm
258
ld hl, CeladonGymTrainerHeader5
259
call TalkToTrainer
260
jp TextScriptEnd
261
262
CeladonGymBattleText7:
263
text_far _CeladonGymBattleText7
264
text_end
265
266
CeladonGymEndBattleText7:
267
text_far _CeladonGymEndBattleText7
268
text_end
269
270
CeladonGymAfterBattleText7:
271
text_far _CeladonGymAfterBattleText7
272
text_end
273
274
CeladonGymCooltrainerF4Text:
275
text_asm
276
ld hl, CeladonGymTrainerHeader6
277
call TalkToTrainer
278
jp TextScriptEnd
279
280
CeladonGymBattleText8:
281
text_far _CeladonGymBattleText8
282
text_end
283
284
CeladonGymEndBattleText8:
285
text_far _CeladonGymEndBattleText8
286
text_end
287
288
CeladonGymAfterBattleText8:
289
text_far _CeladonGymAfterBattleText8
290
text_end
291
292