pokefirered/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
2021-04-17 16:32:55 +01:00

1408 lines
48 KiB
C++

.equ LOCALID_PROF_OAK, 4
.equ LOCALID_BULBASAUR_BALL, 5
.equ LOCALID_SQUIRTLE_BALL, 6
.equ LOCALID_CHARMANDER_BALL, 7
.equ LOCALID_RIVAL, 8
.equ LOCALID_POKEDEX_1, 9
.equ LOCALID_POKEDEX_2, 10
.equ PLAYER_STARTER_NUM, VAR_TEMP_1
.equ PLAYER_STARTER_SPECIES, VAR_TEMP_2
.equ RIVAL_STARTER_SPECIES, VAR_TEMP_3
.equ RIVAL_STARTER_ID, VAR_TEMP_4
.equ SHOWED_OAK_COMPLETE_DEX, FLAG_TEMP_2
PalletTown_ProfessorOaksLab_MapScripts:: @ 8168F7E
map_script MAP_SCRIPT_ON_TRANSITION, PalletTown_ProfessorOaksLab_OnTransition
map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, PalletTown_ProfessorOaksLab_OnWarp
map_script MAP_SCRIPT_ON_FRAME_TABLE, PalletTown_ProfessorOaksLab_OnFrame
.byte 0
PalletTown_ProfessorOaksLab_OnTransition:: @ 8168F8E
setflag FLAG_VISITED_OAKS_LAB
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1
call_if_eq PalletTown_ProfessorOaksLab_EventScript_ReadyOakForStarterScene
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7
call_if_eq PalletTown_ProfessorOaksLab_EventScript_ReadyOakForNationalDexScene
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8
call_if_eq PalletTown_ProfessorOaksLab_EventScript_SetNationalDexSceneFinished
call_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, PalletTown_ProfessorOaksLab_EventScript_SetSkipPokeBallCheck
end
PalletTown_ProfessorOaksLab_EventScript_SetSkipPokeBallCheck:: @ 8168FBC
setflag FLAG_OAK_SKIP_22_RIVAL_CHECK
return
PalletTown_ProfessorOaksLab_EventScript_SetNationalDexSceneFinished:: @ 8168FC0
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9
return
PalletTown_ProfessorOaksLab_EventScript_ReadyOakForStarterScene:: @ 8168FC6
setobjectxyperm LOCALID_PROF_OAK, 6, 11
setobjectmovementtype LOCALID_PROF_OAK, MOVEMENT_TYPE_FACE_UP
savebgm MUS_OAK
return
PalletTown_ProfessorOaksLab_EventScript_ReadyOakForNationalDexScene:: @ 8168FD5
setobjectxyperm LOCALID_PROF_OAK, 6, 11
setobjectmovementtype LOCALID_PROF_OAK, MOVEMENT_TYPE_FACE_UP
return
PalletTown_ProfessorOaksLab_OnWarp:: @ 8168FE1
map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_ProfessorOaksLab_EventScript_ReadyPlayerForStarterScene
.2byte 0
PalletTown_ProfessorOaksLab_EventScript_ReadyPlayerForStarterScene:: @ 8168FEB
turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH
end
PalletTown_ProfessorOaksLab_OnFrame:: @ 8168FF0
map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_ProfessorOaksLab_ChooseStarterScene
map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7, PalletTown_ProfessorOaksLab_EventScript_EnterForNationalDexScene
.2byte 0
PalletTown_ProfessorOaksLab_EventScript_EnterForNationalDexScene:: @ 8169002
lockall
setvar VAR_FACING, DIR_NORTH
textcolor 0
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakEnter
waitmovement 0
removeobject LOCALID_PROF_OAK
setobjectxyperm LOCALID_PROF_OAK, 6, 3
setobjectmovementtype LOCALID_PROF_OAK, MOVEMENT_TYPE_FACE_DOWN
clearflag FLAG_HIDE_OAK_IN_HIS_LAB
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerEnter
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_NationalDexScene
end
PalletTown_ProfessorOaksLab_EventScript_NationalDexScene:: @ 8169035
msgbox PalletTown_ProfessorOaksLab_Text_OakSightingsOfRareMons
closemessage
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest
msgbox PalletTown_ProfessorOaksLab_Text_RivalJustLetMeHandleEverything
fadedefaultbgm
msgbox PalletTown_ProfessorOaksLab_Text_OakNeedYourHelpTooNeedToSeePokedexes
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest
textcolor 3
msgbox PalletTown_ProfessorOaksLab_Text_OakTookBothPokedexUnits
closemessage
call EventScript_RestorePrevTextColor
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskEast
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskWest
addobject LOCALID_POKEDEX_1
addobject LOCALID_POKEDEX_2
delay 30
msgbox PalletTown_ProfessorOaksLab_Text_OakNowTheseUnitsCanRecordMoreData
closemessage
removeobject LOCALID_POKEDEX_1
removeobject LOCALID_POKEDEX_2
delay 30
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest
textcolor 3
playfanfare MUS_OBTAIN_KEY_ITEM
message PalletTown_ProfessorOaksLab_Text_PlayersPokedexWasUpgraded
waitmessage
waitfanfare
call EventScript_RestorePrevTextColor
special EnableNationalPokedex
msgbox PalletTown_ProfessorOaksLab_Text_OakMustReallyWorkToFillPokedex
msgbox PalletTown_ProfessorOaksLab_Text_RivalIllCompleteThePokedex
closemessage
playbgm MUS_RIVAL_EXIT, 0
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExit
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExit
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExit
removeobject LOCALID_RIVAL
fadedefaultbgm
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8
releaseall
end
PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterNorth:: @ 8169174
setobjectxyperm LOCALID_RIVAL, 5, 10
addobject LOCALID_RIVAL
playbgm MUS_ENCOUNTER_RIVAL, 0
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest:: @ 8169194
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
playbgm MUS_ENCOUNTER_RIVAL, 0
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth:: @ 81691BB
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
playbgm MUS_ENCOUNTER_RIVAL, 0
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth:: @ 81691DB
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest:: @ 81691E6
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskNorth:: @ 81691F1
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskSouth:: @ 81691FC
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDeskSouth
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk
waitmovement LOCALID_PROF_OAK
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskEast:: @ 8169215
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast
waitmovement LOCALID_PROF_OAK
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskWest:: @ 8169227
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk:: @ 8169232
walk_up
walk_left
walk_in_place_fastest_up
delay_16
delay_4
step_end
PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDeskSouth:: @ 8169238
walk_left
walk_left
walk_up
delay_16
delay_4
step_end
PalletTown_ProfessorOaksLab_ChooseStarterScene:: @ 816923E
lockall
textcolor 0
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakEnter
waitmovement 0
removeobject LOCALID_PROF_OAK
setobjectxyperm LOCALID_PROF_OAK, 6, 3
setobjectmovementtype LOCALID_PROF_OAK, MOVEMENT_TYPE_FACE_DOWN
clearflag FLAG_HIDE_OAK_IN_HIS_LAB
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerEnter
waitmovement 0
applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestUp
waitmovement 0
clearflag FLAG_DONT_TRANSITION_MUSIC
savebgm MUS_DUMMY
fadedefaultbgm
msgbox PalletTown_ProfessorOaksLab_Text_RivalFedUpWithWaiting
closemessage
delay 60
msgbox PalletTown_ProfessorOaksLab_Text_OakThreeMonsChooseOne
closemessage
delay 30
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalReact
waitmovement 0
msgbox PalletTown_ProfessorOaksLab_Text_RivalNoFairWhatAboutMe
msgbox PalletTown_ProfessorOaksLab_Text_OakBePatientRival
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2
releaseall
end
PalletTown_ProfessorOaksLab_Movement_OakEnter:: @ 81692B0
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_PlayerEnter:: @ 81692B7
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalReact:: @ 81692C0
walk_in_place_up
walk_in_place_up
step_end
PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger:: @ 81692C3
lockall
textcolor 0
applymovement LOCALID_PROF_OAK, Movement_FaceDown
waitmovement 0
msgbox PalletTown_ProfessorOaksLab_Text_OakHeyDontGoAwayYet
closemessage
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWalkUp
waitmovement 0
releaseall
end
PalletTown_ProfessorOaksLab_Movement_PlayerWalkUp:: @ 81692E5
walk_up
step_end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerLeft:: @ 81692E7
lockall
setvar VAR_TEMP_2, 1
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerMid:: @ 81692F3
lockall
setvar VAR_TEMP_2, 2
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerRight:: @ 81692FF
lockall
setvar VAR_TEMP_2, 3
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattle:: @ 816930B
textcolor 0
playbgm MUS_ENCOUNTER_RIVAL, 0
applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestDown
waitmovement 0
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp
waitmovement 0
msgbox PalletTown_ProfessorOaksLab_Text_RivalLetsCheckOutMons
closemessage
applymovement LOCALID_PROF_OAK, Movement_FaceDown
waitmovement 0
compare VAR_STARTER_MON, 0
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander
compare VAR_STARTER_MON, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur
compare VAR_STARTER_MON, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtle
end
@ The scripts for the rival approaching the player for battle are a bit bloated because
@ both the player and rival can be in 3 different positions, so theres 9 different approaches
@ NOTE: Names below refer to the Rival's mon (e.g. for RivalBattleSquirtle, player has Charmander)
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtle:: @ 816935A
compare VAR_TEMP_2, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleLeft
compare VAR_TEMP_2, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleMid
compare VAR_TEMP_2, 3
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleRight
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleLeft:: @ 816937C
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleLeft
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleMid:: @ 816938C
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleMid
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleRight:: @ 816939C
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleRight
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle:: @ 81693AC
trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_SQUIRTLE, RIVAL_BATTLE_TUTORIAL, PalletTown_ProfessorOaksLab_Text_RivalDefeat, Text_RivalVictory
goto PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle
end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleLeft:: @ 81693C0
walk_left
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleMid:: @ 81693C7
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleRight:: @ 81693CD
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander:: @ 81693D2
compare VAR_TEMP_2, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderLeft
compare VAR_TEMP_2, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderMid
compare VAR_TEMP_2, 3
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderRight
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderLeft:: @ 81693F4
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderLeft
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderMid:: @ 8169404
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderMid
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderRight:: @ 8169414
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderRight
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander:: @ 8169424
trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_CHARMANDER, RIVAL_BATTLE_TUTORIAL, PalletTown_ProfessorOaksLab_Text_RivalDefeat, Text_RivalVictory
goto PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle
end
PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderLeft:: @ 8169438
walk_left
walk_left
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderMid:: @ 8169440
walk_left
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderRight:: @ 8169447
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur:: @ 816944D
compare VAR_TEMP_2, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurLeft
compare VAR_TEMP_2, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurMid
compare VAR_TEMP_2, 3
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurRight
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurLeft:: @ 816946F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurLeft
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurMid:: @ 816947F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurMid
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurRight:: @ 816948F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurRight
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur:: @ 816949F
trainerbattle_earlyrival TRAINER_RIVAL_OAKS_LAB_BULBASAUR, RIVAL_BATTLE_TUTORIAL, PalletTown_ProfessorOaksLab_Text_RivalDefeat, Text_RivalVictory
goto PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle
end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurLeft:: @ 81694B3
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurMid:: @ 81694B9
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurRight:: @ 81694BE
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle:: @ 81694C2
special HealPlayerParty
msgbox PalletTown_ProfessorOaksLab_Text_RivalGoToughenMyMon
closemessage
playbgm MUS_RIVAL_EXIT, 0
compare VAR_TEMP_2, 1
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleLeft
compare VAR_TEMP_2, 2
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleMid
compare VAR_TEMP_2, 3
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleRight
removeobject LOCALID_RIVAL
playse SE_EXIT
fadedefaultbgm
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 4
setflag FLAG_BEAT_RIVAL_IN_OAKS_LAB
releaseall
end
PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleLeft:: @ 8169504
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleLeft
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle
waitmovement LOCALID_RIVAL
return
PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleMid:: @ 8169516
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleMid
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle
waitmovement LOCALID_RIVAL
return
PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleRight:: @ 8169528
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleRight
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattleRight
waitmovement LOCALID_RIVAL
return
PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleLeft:: @ 816953A
walk_right
walk_down
walk_down
walk_down
walk_down
walk_down
delay_8
step_end
PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleRight:: @ 8169542
walk_left
walk_down
walk_down
walk_down
walk_down
walk_down
delay_8
step_end
PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleMid:: @ 816954A
walk_right
walk_down
walk_down
walk_down
walk_left
walk_down
walk_down
delay_8
step_end
PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle:: @ 8169553
delay_16
delay_8
walk_in_place_fastest_right
delay_16
walk_in_place_fastest_down
step_end
PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattleRight:: @ 8169559
delay_16
delay_8
walk_in_place_fastest_left
delay_16
walk_in_place_fastest_down
step_end
PalletTown_ProfessorOaksLab_EventScript_Rival:: @ 816955F
lock
faceplayer
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalChoseStarter
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWaitingForStarter
msgbox PalletTown_ProfessorOaksLab_Text_RivalGrampsIsntAround
release
end
PalletTown_ProfessorOaksLab_EventScript_RivalWaitingForStarter:: @ 8169581
msgbox PalletTown_ProfessorOaksLab_Text_RivalGoChoosePlayer
release
end
PalletTown_ProfessorOaksLab_EventScript_RivalChoseStarter:: @ 816958B
msgbox PalletTown_ProfessorOaksLab_Text_RivalMyMonLooksTougher
release
end
PalletTown_ProfessorOaksLab_EventScript_ProfOak:: @ 8169595
lock
faceplayer
goto_if_set SHOWED_OAK_COMPLETE_DEX, PalletTown_ProfessorOaksLab_EventScript_OakJustShownCompleteDex
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RatePokedex
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_TryStartNationalDexScene
compare VAR_MAP_SCENE_CERULEAN_CITY_RIVAL, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RatePokedex
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RatePokedexOrTryGiveBalls
compare VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1
goto_if_ge PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 4
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBattleMonForItToGrow
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_OakCanReachNextTownWithMon
msgbox PalletTown_ProfessorOaksLab_Text_OakWhichOneWillYouChoose
release
end
PalletTown_ProfessorOaksLab_EventScript_OakJustShownCompleteDex:: @ 8169600
msgbox PokedexRating_Text_ThankYouMadeDreamReality
release
end
PalletTown_ProfessorOaksLab_EventScript_OakCanReachNextTownWithMon:: @ 816960A
msgbox PalletTown_ProfessorOaksLab_Text_OakCanReachNextTownWithMon
release
end
PalletTown_ProfessorOaksLab_EventScript_OakBattleMonForItToGrow:: @ 8169614
msgbox PalletTown_ProfessorOaksLab_Text_OakBattleMonForItToGrow
release
end
PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene:: @ 816961E
msgbox PalletTown_ProfessorOaksLab_Text_OakHaveSomethingForMe
textcolor 3
playfanfare MUS_OBTAIN_TMHM
message PalletTown_ProfessorOaksLab_Text_DeliveredOaksParcel
waitmessage
waitfanfare
call EventScript_RestorePrevTextColor
removeitem ITEM_OAKS_PARCEL, 1
msgbox PalletTown_ProfessorOaksLab_Text_OakCustomBallIOrdered
playbgm MUS_ENCOUNTER_RIVAL, 0
msgbox PalletTown_ProfessorOaksLab_Text_RivalGramps
closemessage
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest
fadedefaultbgm
msgbox PalletTown_ProfessorOaksLab_Text_RivalWhatDidYouCallMeFor
closemessage
delay 30
playse SE_PIN
applymovement LOCALID_PROF_OAK, Movement_ExclamationMark
waitmovement 0
applymovement LOCALID_PROF_OAK, Movement_Delay48
waitmovement 0
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth
msgbox PalletTown_ProfessorOaksLab_Text_OakHaveRequestForYouTwo
closemessage
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskEast
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskWest
msgbox PalletTown_ProfessorOaksLab_Text_OakPokedexOnDesk
closemessage
delay 40
msgbox PalletTown_ProfessorOaksLab_Text_OakTakeTheseWithYou
closemessage
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestUp
waitmovement 0
removeobject LOCALID_POKEDEX_1
delay 10
removeobject LOCALID_POKEDEX_2
delay 25
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest
delay 10
textcolor 3
playfanfare MUS_OBTAIN_KEY_ITEM
message PalletTown_ProfessorOaksLab_Text_ReceivedPokedexFromOak
waitmessage
waitfanfare
call EventScript_RestorePrevTextColor
setflag FLAG_SYS_POKEDEX_GET
special SetUnlockedPokedexFlags
setvar VAR_MAP_SCENE_POKEMON_CENTER_TEALA, 1
msgbox PalletTown_ProfessorOaksLab_Text_OakCatchMonsForDataTakeThese
giveitem_msg PalletTown_ProfessorOaksLab_Text_ReceivedFivePokeBalls, ITEM_POKE_BALL, 5
msgbox PalletTown_ProfessorOaksLab_Text_OakExplainCatching
famechecker FAMECHECKER_OAK, 1
msgbox PalletTown_ProfessorOaksLab_Text_OakCompleteMonGuideWasMyDream
msgbox PalletTown_ProfessorOaksLab_Text_RivalLeaveItToMeGramps
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest
msgbox PalletTown_ProfessorOaksLab_Text_RivalTellSisNotToGiveYouMap
closemessage
playbgm MUS_RIVAL_EXIT, 0
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExit
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExit
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalExit
removeobject LOCALID_RIVAL
fadedefaultbgm
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6
setvar VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 2
setvar VAR_MAP_SCENE_VIRIDIAN_CITY_OLD_MAN, 1
setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 1
setvar VAR_MAP_SCENE_ROUTE22, 1
release
end
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth:: @ 8169845
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth:: @ 8169850
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOverSouth
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast:: @ 816985B
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerFaceOakForDexEast
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest:: @ 816986D
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_PlayerFaceOakForDexEast:: @ 8169878
delay_16
delay_8
walk_in_place_fastest_right
step_end
PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver:: @ 816987C
walk_right
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_OakBringDexesOverSouth:: @ 816987F
walk_down
walk_right
step_end
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskNorth:: @ 8169882
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskSouth:: @ 816988D
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDeskSouth
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk
waitmovement LOCALID_PROF_OAK
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskEast:: @ 81698A6
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast
waitmovement LOCALID_PROF_OAK
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskWest:: @ 81698B8
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast:: @ 81698C3
delay_16
delay_8
walk_in_place_fastest_up
step_end
PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk:: @ 81698C7
delay_16
delay_8
walk_in_place_fastest_left
step_end
PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk:: @ 81698CB
walk_up
walk_left
delay_16
walk_in_place_fastest_down
step_end
PalletTown_ProfessorOaksLab_Movement_OakWalkToDeskSouth:: @ 81698D0
walk_left
walk_left
walk_up
delay_16
walk_in_place_fastest_right
step_end
PalletTown_ProfessorOaksLab_EventScript_RatePokedexOrTryGiveBalls:: @ 81698D6
setvar VAR_0x8004, 0
specialvar VAR_RESULT, GetPokedexCount
copyvar VAR_0x8008, VAR_0x8005
copyvar VAR_0x8009, VAR_0x8006
getnumberstring 0, VAR_0x8008
getnumberstring 1, VAR_0x8009
compare VAR_0x8009, 1 @ Player only has starter
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls
goto PalletTown_ProfessorOaksLab_EventScript_RatePokedex
end
PalletTown_ProfessorOaksLab_EventScript_RatePokedex:: @ 8169903
call PokedexRating_EventScript_RateInPerson
goto_if_set FLAG_OAK_SAW_DEX_COMPLETION, PalletTown_ProfessorOaksLab_EventScript_DexCompleted
release
end
PalletTown_ProfessorOaksLab_EventScript_DexCompleted:: @ 8169913
closemessage
delay 40
message PokedexRating_Text_Wroooaaarrr
waitmessage
compare VAR_FACING, DIR_NORTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakExcitedNorth
compare VAR_FACING, DIR_SOUTH
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth
compare VAR_FACING, DIR_EAST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast
compare VAR_FACING, DIR_WEST
call_if_eq PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest
applymovement LOCALID_PROF_OAK, Movement_FacePlayer
waitmovement 0
closemessage
delay 70
msgbox PokedexRating_Text_ThankYouMadeDreamReality
setflag SHOWED_OAK_COMPLETE_DEX
release
end
PalletTown_ProfessorOaksLab_EventScript_OakExcitedNorth:: @ 8169964
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedNorth
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth:: @ 816996F
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedSouth
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast:: @ 816997A
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedEast
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest:: @ 8169985
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedWest
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_OakExcitedNorth:: @ 8169990
walk_in_place_down
walk_in_place_fast_down
walk_in_place_down
walk_in_place_down
walk_in_place_fast_down
walk_in_place_down
step_end
PalletTown_ProfessorOaksLab_Movement_OakExcitedSouth:: @ 8169997
walk_in_place_up
walk_in_place_fast_up
walk_in_place_up
walk_in_place_up
walk_in_place_fast_up
walk_in_place_up
step_end
PalletTown_ProfessorOaksLab_Movement_OakExcitedEast:: @ 816999E
walk_in_place_left
walk_in_place_fast_left
walk_in_place_left
walk_in_place_left
walk_in_place_fast_left
walk_in_place_left
step_end
PalletTown_ProfessorOaksLab_Movement_OakExcitedWest:: @ 81699A5
walk_in_place_right
walk_in_place_fast_right
walk_in_place_right
walk_in_place_right
walk_in_place_fast_right
walk_in_place_right
step_end
@ Unused
Movement_1699AC:: @ 81699AC
walk_left
walk_in_place_fastest_down
delay_8
walk_in_place_fastest_right
delay_8
walk_in_place_fastest_up
delay_8
walk_in_place_fastest_left
delay_8
walk_in_place_fastest_down
delay_8
walk_right
walk_right
walk_in_place_fastest_up
delay_8
walk_in_place_fastest_left
delay_8
walk_in_place_fastest_down
delay_8
walk_in_place_fastest_right
delay_8
walk_in_place_fastest_up
delay_8
walk_left
step_end
@ Unused
Movement_1699C5:
walk_up
walk_down
walk_down
walk_in_place_down
walk_up
delay_16
delay_16
delay_16
step_end
PalletTown_ProfessorOaksLab_EventScript_TryStartNationalDexScene:: @ 81699CE
call PokedexRating_EventScript_RateInPerson
closemessage
compare VAR_0x8009, 60
goto_if_lt PalletTown_ProfessorOaksLab_EventScript_DontStartNationalDexScene
goto_if_unset FLAG_WORLD_MAP_ONE_ISLAND, PalletTown_ProfessorOaksLab_EventScript_DontStartNationalDexScene
delay 30
msgbox PalletTown_ProfessorOaksLab_Text_OakFavorToAskYouPlayer
goto PalletTown_ProfessorOaksLab_EventScript_NationalDexScene
end
PalletTown_ProfessorOaksLab_EventScript_DontStartNationalDexScene:: @ 81699F9
release
end
PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls:: @ 81699FB
goto_if_questlog EventScript_ReleaseEnd
special QuestLog_CutRecording
goto_if_set FLAG_OAK_SKIP_22_RIVAL_CHECK, PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
goto_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, PalletTown_ProfessorOaksLab_EventScript_PlayerAlreadyGotBalls
checkitem ITEM_POKE_BALL, 1
compare VAR_RESULT, FALSE
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_PlayerOutOfBalls
goto PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
end
PalletTown_ProfessorOaksLab_EventScript_PlayerOutOfBalls:: @ 8169A34
compare VAR_MAP_SCENE_ROUTE22, 2
goto_if_ge PalletTown_ProfessorOaksLab_EventScript_GivePlayerMoreBalls
goto PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
end
PalletTown_ProfessorOaksLab_EventScript_GivePlayerMoreBalls:: @ 8169A45
msgbox PalletTown_ProfessorOaksLab_Text_OakAddedNothingToPokedex
giveitem_msg PalletTown_ProfessorOaksLab_Text_ReceivedFivePokeBalls, ITEM_POKE_BALL, 5
setflag FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL
release
end
PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait:: @ 8169A6E
msgbox PalletTown_ProfessorOaksLab_Text_OakMonsAroundWorldWait
release
end
PalletTown_ProfessorOaksLab_EventScript_PlayerAlreadyGotBalls:: @ 8169A78
msgbox PalletTown_ProfessorOaksLab_Text_OakComeSeeMeSometime
release
end
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth:: @ 8169A82
setobjectxyperm LOCALID_RIVAL, 5, 10
addobject LOCALID_RIVAL
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: @ 8169A9E
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth:: @ 8169AC1
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth:: @ 8169ADD
applymovement LOCALID_PROF_OAK, Movement_FacePlayer
waitmovement 0
delay 15
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest:: @ 8169AF5
applymovement LOCALID_PROF_OAK, Movement_FacePlayer
waitmovement 0
delay 15
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast:: @ 8169B14
applymovement LOCALID_PROF_OAK, Movement_FacePlayer
waitmovement 0
delay 15
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight
applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth:: @ 8169B33
applymovement LOCALID_RIVAL, Movement_FacePlayer
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth:: @ 8169B45
applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestUp
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest:: @ 8169B57
applymovement LOCALID_RIVAL, Movement_FacePlayer
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth:: @ 8169B69
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExit
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_RivalExit:: @ 8169B7B
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExit
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth:: @ 8169B86
applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest:: @ 8169B91
delay_4
walk_in_place_fastest_down
step_end
PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth:: @ 8169B94
walk_in_place_fastest_down
delay_16
delay_16
delay_16
delay_16
delay_16
delay_8
walk_in_place_fastest_left
step_end
PalletTown_ProfessorOaksLab_Movement_RivalEnter:: @ 8169B9D
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalExit:: @ 8169BA4
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_BulbasaurBall:: @ 8169BAB
lock
faceplayer
setvar PLAYER_STARTER_NUM, 0
setvar PLAYER_STARTER_SPECIES, SPECIES_BULBASAUR
setvar RIVAL_STARTER_SPECIES, SPECIES_CHARMANDER
setvar RIVAL_STARTER_ID, LOCALID_CHARMANDER_BALL
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3
goto_if_ge PalletTown_ProfessorOaksLab_EventScript_LastPokeBall
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice
msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls
release
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice:: @ 8169BE1
applymovement LOCALID_PROF_OAK, Movement_FaceRight
waitmovement 0
drawmonpic PLAYER_STARTER_SPECIES, 10, 3
textcolor 0
compare PLAYER_STARTER_NUM, 0
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur
compare PLAYER_STARTER_NUM, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle
compare PLAYER_STARTER_NUM, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur:: @ 8169C14
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingBulbasaur, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
compare VAR_RESULT, NO
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle:: @ 8169C33
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingSquirtle, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
compare VAR_RESULT, NO
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander:: @ 8169C52
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingCharmander, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
compare VAR_RESULT, NO
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter:: @ 8169C71
erasemonpic
release
end
PalletTown_ProfessorOaksLab_EventScript_ChoseStarter:: @ 8169C74
erasemonpic
removeobject VAR_LAST_TALKED
msgbox PalletTown_ProfessorOaksLab_Text_OakThisMonIsEnergetic
call EventScript_RestorePrevTextColor
setflag FLAG_SYS_POKEMON_GET
setflag FLAG_PALLET_LADY_NOT_BLOCKING_SIGN
givemon PLAYER_STARTER_SPECIES, 5, ITEM_NONE
copyvar VAR_STARTER_MON, PLAYER_STARTER_NUM
getspeciesname 0, PLAYER_STARTER_SPECIES
message PalletTown_ProfessorOaksLab_Text_ReceivedMonFromOak
waitmessage
playfanfare MUS_OBTAIN_KEY_ITEM
waitfanfare
msgbox Text_GiveNicknameToThisMon, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq EventScript_GiveNicknameToStarter
compare VAR_RESULT, NO
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter
end
EventScript_GiveNicknameToStarter:: @ 8169CCC
setvar VAR_0x8004, 0
call EventScript_ChangePokemonNickname
goto PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter:: @ 8169CDC
closemessage
compare PLAYER_STARTER_NUM, 0
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander
compare PLAYER_STARTER_NUM, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur
compare PLAYER_STARTER_NUM, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander:: @ 8169CFF
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToCharmander
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle:: @ 8169D0F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur:: @ 8169D1F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter:: @ 8169D2F
textcolor 0
msgbox PalletTown_ProfessorOaksLab_Text_RivalIllTakeThisOneThen
removeobject RIVAL_STARTER_ID
textcolor 3
getspeciesname 0, RIVAL_STARTER_SPECIES
message PalletTown_ProfessorOaksLab_Text_RivalReceivedMonFromOak
waitmessage
playfanfare MUS_OBTAIN_KEY_ITEM
waitfanfare
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3
call_if_set FLAG_OPENED_START_MENU, PalletTown_ProfessorOaksLab_EventScript_ReadyEndSignLadyScene
release
end
PalletTown_ProfessorOaksLab_EventScript_ReadyEndSignLadyScene:: @ 8169D5C
setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
return
PalletTown_ProfessorOaksLab_Movement_RivalWalksToCharmander:: @ 8169D62
walk_down
walk_down
walk_right
walk_right
walk_right
walk_right
walk_right
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle:: @ 8169D6B
walk_down
walk_right
walk_right
walk_right
walk_right
walk_in_place_fastest_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur:: @ 8169D72
walk_down
walk_right
walk_right
walk_right
walk_in_place_fastest_up
step_end
PalletTown_ProfessorOaksLab_EventScript_SquirtleBall:: @ 8169D78
lock
faceplayer
setvar PLAYER_STARTER_NUM, 1
setvar PLAYER_STARTER_SPECIES, SPECIES_SQUIRTLE
setvar RIVAL_STARTER_SPECIES, SPECIES_BULBASAUR
setvar RIVAL_STARTER_ID, LOCALID_BULBASAUR_BALL
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3
goto_if_ge PalletTown_ProfessorOaksLab_EventScript_LastPokeBall
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice
msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls
release
end
PalletTown_ProfessorOaksLab_EventScript_CharmanderBall:: @ 8169DAE
lock
faceplayer
setvar PLAYER_STARTER_NUM, 2
setvar PLAYER_STARTER_SPECIES, SPECIES_CHARMANDER
setvar RIVAL_STARTER_SPECIES, SPECIES_SQUIRTLE
setvar RIVAL_STARTER_ID, LOCALID_SQUIRTLE_BALL
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3
goto_if_ge PalletTown_ProfessorOaksLab_EventScript_LastPokeBall
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice
msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls
release
end
PalletTown_ProfessorOaksLab_EventScript_LastPokeBall:: @ 8169DE4
msgbox PalletTown_ProfessorOaksLab_Text_OaksLastMon
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide1:: @ 8169DEE
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_Aide1GameClear
msgbox PalletTown_ProfessorOaksLab_Text_StudyAsOaksAide
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide1GameClear:: @ 8169E03
famechecker FAMECHECKER_OAK, 5
msgbox PalletTown_ProfessorOaksLab_Text_OakIsGoingToHaveRadioShow
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide2:: @ 8169E1A
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_Aide2GameClear
msgbox PalletTown_ProfessorOaksLab_Text_StudyAsOaksAide
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide2GameClear:: @ 8169E2F
famechecker FAMECHECKER_DAISY, 0
msgbox PalletTown_ProfessorOaksLab_Text_DaisyWillGroomMons
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide3:: @ 8169E46
lock
faceplayer
famechecker FAMECHECKER_OAK, 2
msgbox PalletTown_ProfessorOaksLab_Text_OakIsAuthorityOnMons
release
end
PalletTown_ProfessorOaksLab_EventScript_Pokedex:: @ 8169E5F
msgbox PalletTown_ProfessorOaksLab_Text_BlankEncyclopedia, MSGBOX_NPC
end
PalletTown_ProfessorOaksLab_EventScript_Computer:: @ 8169E68
msgbox PalletTown_ProfessorOaksLab_Text_EmailMessage, MSGBOX_SIGN
end
PalletTown_ProfessorOaksLab_EventScript_LeftSign:: @ 8169E71
msgbox PalletTown_ProfessorOaksLab_Text_PressStartToOpenMenu, MSGBOX_SIGN
end
PalletTown_ProfessorOaksLab_EventScript_RightSign:: @ 8169E7A
lockall
compare VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6
goto_if_ge PalletTown_ProfessorOaksLab_EventScript_RightSignAlt
msgbox PalletTown_ProfessorOaksLab_Text_SaveOptionInMenu
releaseall
end
PalletTown_ProfessorOaksLab_EventScript_RightSignAlt:: @ 8169E90
msgbox PalletTown_ProfessorOaksLab_Text_AllMonTypesHaveStrongAndWeakPoints
releaseall
end