pokered/scripts/CeladonGym.asm

289 lines
6 KiB
NASM
Raw Normal View History

CeladonGym_Script:
2016-01-03 19:17:10 +00:00
ld hl, wCurrentMapScriptFlags
2014-05-18 18:19:10 +00:00
bit 6, [hl]
res 6, [hl]
2020-07-18 18:01:13 +00:00
call nz, .LoadNames
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, CeladonGymTrainerHeaders
ld de, CeladonGym_ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wCeladonGymCurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
2015-08-31 02:38:41 +00:00
ld [wCeladonGymCurScript], a
2014-05-18 18:19:10 +00:00
ret
2020-07-18 18:01:13 +00:00
.LoadNames:
ld hl, .CityName
ld de, .LeaderName
2014-05-18 18:19:10 +00:00
jp LoadGymLeaderAndCityName
2020-07-18 18:01:13 +00:00
.CityName:
2014-05-18 18:19:10 +00:00
db "CELADON CITY@"
2020-07-18 18:01:13 +00:00
.LeaderName:
2014-05-18 18:19:10 +00:00
db "ERIKA@"
CeladonGymResetScripts:
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-08-31 02:38:41 +00:00
ld [wCeladonGymCurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
CeladonGym_ScriptPointers:
2014-05-18 18:19:10 +00:00
dw CheckFightingMapTrainers
2014-09-14 18:29:18 +00:00
dw DisplayEnemyTrainerTextAndStartBattle
2014-05-18 18:19:10 +00:00
dw EndTrainerBattle
dw CeladonGymErikaPostBattle
2014-05-18 18:19:10 +00:00
CeladonGymErikaPostBattle:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, CeladonGymResetScripts
2014-05-18 18:19:10 +00:00
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
CeladonGymReceiveTM21:
2014-05-18 18:19:10 +00:00
ld a, $9
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_BEAT_ERIKA
2020-07-06 02:52:27 +00:00
lb bc, TM_MEGA_DRAIN, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jr nc, .BagFull
ld a, $a
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 02:41:23 +00:00
SetEvent EVENT_GOT_TM21
2019-10-07 05:23:57 +00:00
jr .gymVictory
2014-05-18 18:19:10 +00:00
.BagFull
ld a, $b
ldh [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2019-10-07 05:23:57 +00:00
.gymVictory
2015-08-31 02:38:41 +00:00
ld hl, wObtainedBadges
set BIT_RAINBOWBADGE, [hl]
2015-07-26 02:26:54 +00:00
ld hl, wBeatGymFlags
set BIT_RAINBOWBADGE, [hl]
2014-05-18 18:19:10 +00:00
; deactivate gym trainers
SetEventRange EVENT_BEAT_CELADON_GYM_TRAINER_0, EVENT_BEAT_CELADON_GYM_TRAINER_6
2014-05-18 18:19:10 +00:00
jp CeladonGymResetScripts
2014-05-18 18:19:10 +00:00
CeladonGym_TextPointers:
dw ErikaText
dw CeladonGymTrainerText1
dw CeladonGymTrainerText2
dw CeladonGymTrainerText3
dw CeladonGymTrainerText4
dw CeladonGymTrainerText5
dw CeladonGymTrainerText6
dw CeladonGymTrainerText7
dw ErikaRainbowBadgeInfoText
dw ReceivedTM21Text
2014-05-18 18:19:10 +00:00
dw TM21NoRoomText
CeladonGymTrainerHeaders:
def_trainers 2
2016-06-12 00:24:04 +00:00
CeladonGymTrainerHeader0:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_0, 2, CeladonGymBattleText2, CeladonGymEndBattleText2, CeladonGymAfterBattleText2
CeladonGymTrainerHeader1:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_1, 2, CeladonGymBattleText3, CeladonGymEndBattleText3, CeladonGymAfterBattleText3
CeladonGymTrainerHeader2:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_2, 4, CeladonGymBattleText4, CeladonGymEndBattleText4, CeladonGymAfterBattleText4
CeladonGymTrainerHeader3:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_3, 4, CeladonGymBattleText5, CeladonGymEndBattleText5, CeladonGymAfterBattleText5
CeladonGymTrainerHeader4:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_4, 2, CeladonGymBattleText6, CeladonGymEndBattleText6, CeladonGymAfterBattleText6
CeladonGymTrainerHeader5:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_5, 2, CeladonGymBattleText7, CeladonGymEndBattleText7, CeladonGymAfterBattleText7
CeladonGymTrainerHeader6:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_6, 3, CeladonGymBattleText8, CeladonGymEndBattleText8, CeladonGymAfterBattleText8
db -1 ; end
2014-05-18 18:19:10 +00:00
ErikaText:
text_asm
2015-07-21 02:41:23 +00:00
CheckEvent EVENT_BEAT_ERIKA
jr z, .beforeBeat
2015-07-21 02:41:23 +00:00
CheckEventReuseA EVENT_GOT_TM21
jr nz, .afterBeat
call z, CeladonGymReceiveTM21
2014-05-18 18:19:10 +00:00
call DisableWaitingAfterTextDisplay
2019-10-07 05:23:57 +00:00
jr .done
.afterBeat
ld hl, ErikaPostBattleAdviceText
2014-05-18 18:19:10 +00:00
call PrintText
2019-10-07 05:23:57 +00:00
jr .done
.beforeBeat
ld hl, ErikaPreBattleText
2014-05-18 18:19:10 +00:00
call PrintText
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, ReceivedRainbowBadgeText
ld de, ReceivedRainbowBadgeText
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
ldh a, [hSpriteIndex]
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
2014-05-18 18:19:10 +00:00
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $4
2015-08-31 02:38:41 +00:00
ld [wGymLeaderNo], a
2014-05-18 18:19:10 +00:00
ld a, $3
2015-08-31 02:38:41 +00:00
ld [wCeladonGymCurScript], a
ld [wCurMapScript], a
2019-10-07 05:23:57 +00:00
.done
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
ErikaPreBattleText:
text_far _ErikaPreBattleText
text_end
2014-05-18 18:19:10 +00:00
ReceivedRainbowBadgeText:
text_far _ReceivedRainbowBadgeText
text_end
2014-05-18 18:19:10 +00:00
ErikaPostBattleAdviceText:
text_far _ErikaPostBattleAdviceText
text_end
2014-05-18 18:19:10 +00:00
ErikaRainbowBadgeInfoText:
text_far _ErikaRainbowBadgeInfoText
text_end
2014-05-18 18:19:10 +00:00
ReceivedTM21Text:
text_far _ReceivedTM21Text
sound_get_item_1
text_far _TM21ExplanationText
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
TM21NoRoomText:
text_far _TM21NoRoomText
text_end
2014-05-18 18:19:10 +00:00
CeladonGymTrainerText1:
text_asm
2014-05-18 18:19:10 +00:00
ld hl, CeladonGymTrainerHeader0
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeladonGymBattleText2:
text_far _CeladonGymBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymEndBattleText2:
text_far _CeladonGymEndBattleText2
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymAfterBattleText2:
text_far _CeladonGymAfterBattleText2
text_end
2014-05-18 18:19:10 +00:00
CeladonGymTrainerText2:
text_asm
ld hl, CeladonGymTrainerHeader1
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeladonGymBattleText3:
text_far _CeladonGymBattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymEndBattleText3:
text_far _CeladonGymEndBattleText3
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymAfterBattleText3:
text_far _CeladonGymAfterBattleText3
text_end
2014-05-18 18:19:10 +00:00
CeladonGymTrainerText3:
text_asm
ld hl, CeladonGymTrainerHeader2
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeladonGymBattleText4:
text_far _CeladonGymBattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymEndBattleText4:
text_far _CeladonGymEndBattleText4
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymAfterBattleText4:
text_far _CeladonGymAfterBattleText4
text_end
2014-05-18 18:19:10 +00:00
CeladonGymTrainerText4:
text_asm
ld hl, CeladonGymTrainerHeader3
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeladonGymBattleText5:
text_far _CeladonGymBattleText5
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymEndBattleText5:
text_far _CeladonGymEndBattleText5
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymAfterBattleText5:
text_far _CeladonGymAfterBattleText5
text_end
2014-05-18 18:19:10 +00:00
CeladonGymTrainerText5:
text_asm
ld hl, CeladonGymTrainerHeader4
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeladonGymBattleText6:
text_far _CeladonGymBattleText6
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymEndBattleText6:
text_far _CeladonGymEndBattleText6
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymAfterBattleText6:
text_far _CeladonGymAfterBattleText6
text_end
2014-05-18 18:19:10 +00:00
CeladonGymTrainerText6:
text_asm
ld hl, CeladonGymTrainerHeader5
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeladonGymBattleText7:
text_far _CeladonGymBattleText7
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymEndBattleText7:
text_far _CeladonGymEndBattleText7
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymAfterBattleText7:
text_far _CeladonGymAfterBattleText7
text_end
2014-05-18 18:19:10 +00:00
CeladonGymTrainerText7:
text_asm
ld hl, CeladonGymTrainerHeader6
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
CeladonGymBattleText8:
text_far _CeladonGymBattleText8
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymEndBattleText8:
text_far _CeladonGymEndBattleText8
text_end
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
CeladonGymAfterBattleText8:
text_far _CeladonGymAfterBattleText8
text_end