pokefirered/data/maps/PalletTown_ProfessorOaksLab/scripts.inc
2022-10-05 15:32:51 -04:00

1310 lines
46 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::
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::
setflag FLAG_VISITED_OAKS_LAB
call_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_ProfessorOaksLab_EventScript_ReadyOakForStarterScene
call_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 7, PalletTown_ProfessorOaksLab_EventScript_ReadyOakForNationalDexScene
call_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8, PalletTown_ProfessorOaksLab_EventScript_SetNationalDexSceneFinished
call_if_set FLAG_GOT_POKEBALLS_FROM_OAK_AFTER_22_RIVAL, PalletTown_ProfessorOaksLab_EventScript_SetSkipPokeBallCheck
end
PalletTown_ProfessorOaksLab_EventScript_SetSkipPokeBallCheck::
setflag FLAG_OAK_SKIP_22_RIVAL_CHECK
return
PalletTown_ProfessorOaksLab_EventScript_SetNationalDexSceneFinished::
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9
return
PalletTown_ProfessorOaksLab_EventScript_ReadyOakForStarterScene::
setobjectxyperm LOCALID_PROF_OAK, 6, 11
setobjectmovementtype LOCALID_PROF_OAK, MOVEMENT_TYPE_FACE_UP
savebgm MUS_OAK
return
PalletTown_ProfessorOaksLab_EventScript_ReadyOakForNationalDexScene::
setobjectxyperm LOCALID_PROF_OAK, 6, 11
setobjectmovementtype LOCALID_PROF_OAK, MOVEMENT_TYPE_FACE_UP
return
PalletTown_ProfessorOaksLab_OnWarp::
map_script_2 VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_ProfessorOaksLab_EventScript_ReadyPlayerForStarterScene
.2byte 0
PalletTown_ProfessorOaksLab_EventScript_ReadyPlayerForStarterScene::
turnobject OBJ_EVENT_ID_PLAYER, DIR_NORTH
end
PalletTown_ProfessorOaksLab_OnFrame::
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 NPC_TEXT_COLOR_MALE
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::
msgbox PalletTown_ProfessorOaksLab_Text_OakSightingsOfRareMons
closemessage
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest
msgbox PalletTown_ProfessorOaksLab_Text_RivalJustLetMeHandleEverything
fadedefaultbgm
msgbox PalletTown_ProfessorOaksLab_Text_OakNeedYourHelpTooNeedToSeePokedexes
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest
textcolor NPC_TEXT_COLOR_NEUTRAL
msgbox PalletTown_ProfessorOaksLab_Text_OakTookBothPokedexUnits
closemessage
call EventScript_RestorePrevTextColor
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskEast
call_if_eq VAR_FACING, DIR_WEST, 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
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest
textcolor NPC_TEXT_COLOR_NEUTRAL
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
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_RivalExit
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_RivalExit
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_RivalExit
removeobject LOCALID_RIVAL
fadedefaultbgm
setvar VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8
releaseall
end
PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterNorth::
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::
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
playbgm MUS_ENCOUNTER_RIVAL, 0
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth::
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
playbgm MUS_ENCOUNTER_RIVAL, 0
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth::
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest::
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskNorth::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskSouth::
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::
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::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk::
walk_up
walk_left
walk_in_place_faster_up
delay_16
delay_4
step_end
PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDeskSouth::
walk_left
walk_left
walk_up
delay_16
delay_4
step_end
PalletTown_ProfessorOaksLab_ChooseStarterScene::
lockall
textcolor NPC_TEXT_COLOR_MALE
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, Common_Movement_WalkInPlaceFasterUp
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::
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_PlayerEnter::
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalReact::
walk_in_place_up
walk_in_place_up
step_end
PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger::
lockall
textcolor NPC_TEXT_COLOR_MALE
applymovement LOCALID_PROF_OAK, Common_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::
walk_up
step_end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerLeft::
lockall
setvar VAR_TEMP_2, 1
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerMid::
lockall
setvar VAR_TEMP_2, 2
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerRight::
lockall
setvar VAR_TEMP_2, 3
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattle::
textcolor NPC_TEXT_COLOR_MALE
playbgm MUS_ENCOUNTER_RIVAL, 0
applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown
waitmovement 0
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp
waitmovement 0
msgbox PalletTown_ProfessorOaksLab_Text_RivalLetsCheckOutMons
closemessage
applymovement LOCALID_PROF_OAK, Common_Movement_FaceDown
waitmovement 0
goto_if_eq VAR_STARTER_MON, 0, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander
goto_if_eq VAR_STARTER_MON, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur
goto_if_eq VAR_STARTER_MON, 2, 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::
goto_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleLeft
goto_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleMid
goto_if_eq VAR_TEMP_2, 3, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleRight
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleLeft::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleLeft
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleMid::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleMid
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleSquirtleRight::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleRight
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleSquirtle::
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::
walk_left
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleMid::
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleSquirtleRight::
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander::
goto_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderLeft
goto_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderMid
goto_if_eq VAR_TEMP_2, 3, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderRight
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderLeft::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderLeft
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderMid::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderMid
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmanderRight::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderRight
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleCharmander::
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::
walk_left
walk_left
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderMid::
walk_left
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_ApproachForBattleCharmanderRight::
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur::
goto_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurLeft
goto_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurMid
goto_if_eq VAR_TEMP_2, 3, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurRight
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurLeft::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurLeft
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurMid::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurMid
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur
end
PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaurRight::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurRight
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur
end
PalletTown_ProfessorOaksLab_EventScript_RivalBattleBulbasaur::
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::
walk_left
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurMid::
walk_left
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_RivalApproachForBattleBulbasaurRight::
walk_left
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_EndRivalBattle::
special HealPlayerParty
msgbox PalletTown_ProfessorOaksLab_Text_RivalGoToughenMyMon
closemessage
playbgm MUS_RIVAL_EXIT, 0
call_if_eq VAR_TEMP_2, 1, PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleLeft
call_if_eq VAR_TEMP_2, 2, PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleMid
call_if_eq VAR_TEMP_2, 3, 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::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleLeft
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle
waitmovement LOCALID_RIVAL
return
PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleMid::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleMid
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle
waitmovement LOCALID_RIVAL
return
PalletTown_ProfessorOaksLab_EventScript_RivalExitAfterBattleRight::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleRight
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattleRight
waitmovement LOCALID_RIVAL
return
PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleLeft::
walk_right
walk_down
walk_down
walk_down
walk_down
walk_down
delay_8
step_end
PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleRight::
walk_left
walk_down
walk_down
walk_down
walk_down
walk_down
delay_8
step_end
PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleMid::
walk_right
walk_down
walk_down
walk_down
walk_left
walk_down
walk_down
delay_8
step_end
PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle::
delay_16
delay_8
walk_in_place_faster_right
delay_16
walk_in_place_faster_down
step_end
PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattleRight::
delay_16
delay_8
walk_in_place_faster_left
delay_16
walk_in_place_faster_down
step_end
PalletTown_ProfessorOaksLab_EventScript_Rival::
lock
faceplayer
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_RivalChoseStarter
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_RivalWaitingForStarter
msgbox PalletTown_ProfessorOaksLab_Text_RivalGrampsIsntAround
release
end
PalletTown_ProfessorOaksLab_EventScript_RivalWaitingForStarter::
msgbox PalletTown_ProfessorOaksLab_Text_RivalGoChoosePlayer
release
end
PalletTown_ProfessorOaksLab_EventScript_RivalChoseStarter::
msgbox PalletTown_ProfessorOaksLab_Text_RivalMyMonLooksTougher
release
end
PalletTown_ProfessorOaksLab_EventScript_ProfOak::
lock
faceplayer
goto_if_set SHOWED_OAK_COMPLETE_DEX, PalletTown_ProfessorOaksLab_EventScript_OakJustShownCompleteDex
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 9, PalletTown_ProfessorOaksLab_EventScript_RatePokedex
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 8, PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_TryStartNationalDexScene
goto_if_eq VAR_MAP_SCENE_CERULEAN_CITY_RIVAL, 1, PalletTown_ProfessorOaksLab_EventScript_RatePokedex
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6, PalletTown_ProfessorOaksLab_EventScript_RatePokedexOrTryGiveBalls
goto_if_ge VAR_MAP_SCENE_VIRIDIAN_CITY_MART, 1, PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 4, PalletTown_ProfessorOaksLab_EventScript_OakBattleMonForItToGrow
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_OakCanReachNextTownWithMon
msgbox PalletTown_ProfessorOaksLab_Text_OakWhichOneWillYouChoose
release
end
PalletTown_ProfessorOaksLab_EventScript_OakJustShownCompleteDex::
msgbox PokedexRating_Text_ThankYouMadeDreamReality
release
end
PalletTown_ProfessorOaksLab_EventScript_OakCanReachNextTownWithMon::
msgbox PalletTown_ProfessorOaksLab_Text_OakCanReachNextTownWithMon
release
end
PalletTown_ProfessorOaksLab_EventScript_OakBattleMonForItToGrow::
msgbox PalletTown_ProfessorOaksLab_Text_OakBattleMonForItToGrow
release
end
PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene::
msgbox PalletTown_ProfessorOaksLab_Text_OakHaveSomethingForMe
textcolor NPC_TEXT_COLOR_NEUTRAL
playfanfare MUS_OBTAIN_TMHM
message PalletTown_ProfessorOaksLab_Text_DeliveredOaksParcel
waitmessage
waitfanfare
call EventScript_RestorePrevTextColor
removeitem ITEM_OAKS_PARCEL
msgbox PalletTown_ProfessorOaksLab_Text_OakCustomBallIOrdered
playbgm MUS_ENCOUNTER_RIVAL, 0
msgbox PalletTown_ProfessorOaksLab_Text_RivalGramps
closemessage
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest
fadedefaultbgm
msgbox PalletTown_ProfessorOaksLab_Text_RivalWhatDidYouCallMeFor
closemessage
delay 30
playse SE_PIN
applymovement LOCALID_PROF_OAK, Common_Movement_ExclamationMark
waitmovement 0
applymovement LOCALID_PROF_OAK, Common_Movement_Delay48
waitmovement 0
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth
msgbox PalletTown_ProfessorOaksLab_Text_OakHaveRequestForYouTwo
closemessage
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskEast
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskWest
msgbox PalletTown_ProfessorOaksLab_Text_OakPokedexOnDesk
closemessage
delay 40
msgbox PalletTown_ProfessorOaksLab_Text_OakTakeTheseWithYou
closemessage
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterUp
waitmovement 0
removeobject LOCALID_POKEDEX_1
delay 10
removeobject LOCALID_POKEDEX_2
delay 25
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest
delay 10
textcolor NPC_TEXT_COLOR_NEUTRAL
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
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest
msgbox PalletTown_ProfessorOaksLab_Text_RivalTellSisNotToGiveYouMap
closemessage
playbgm MUS_RIVAL_EXIT, 0
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_RivalExit
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_RivalExit
call_if_eq VAR_FACING, DIR_WEST, 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::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverSouth::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOverSouth
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverEast::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerFaceOakForDexEast
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_PlayerFaceOakForDexEast::
delay_16
delay_8
walk_in_place_faster_right
step_end
PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver::
walk_right
walk_down
step_end
PalletTown_ProfessorOaksLab_Movement_OakBringDexesOverSouth::
walk_down
walk_right
step_end
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskNorth::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskSouth::
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::
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::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast::
delay_16
delay_8
walk_in_place_faster_up
step_end
PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk::
delay_16
delay_8
walk_in_place_faster_left
step_end
PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk::
walk_up
walk_left
delay_16
walk_in_place_faster_down
step_end
PalletTown_ProfessorOaksLab_Movement_OakWalkToDeskSouth::
walk_left
walk_left
walk_up
delay_16
walk_in_place_faster_right
step_end
PalletTown_ProfessorOaksLab_EventScript_RatePokedexOrTryGiveBalls::
setvar VAR_0x8004, 0
specialvar VAR_RESULT, GetPokedexCount
copyvar VAR_0x8008, VAR_0x8005
copyvar VAR_0x8009, VAR_0x8006
buffernumberstring STR_VAR_1, VAR_0x8008
buffernumberstring STR_VAR_2, VAR_0x8009
goto_if_eq VAR_0x8009, 1, PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls @ Player only has starter
goto PalletTown_ProfessorOaksLab_EventScript_RatePokedex
end
PalletTown_ProfessorOaksLab_EventScript_RatePokedex::
call PokedexRating_EventScript_RateInPerson
goto_if_set FLAG_OAK_SAW_DEX_COMPLETION, PalletTown_ProfessorOaksLab_EventScript_DexCompleted
release
end
PalletTown_ProfessorOaksLab_EventScript_DexCompleted::
closemessage
delay 40
message PokedexRating_Text_Wroooaaarrr
waitmessage
call_if_eq VAR_FACING, DIR_NORTH, PalletTown_ProfessorOaksLab_EventScript_OakExcitedNorth
call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth
call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast
call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest
applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer
waitmovement 0
closemessage
delay 70
msgbox PokedexRating_Text_ThankYouMadeDreamReality
setflag SHOWED_OAK_COMPLETE_DEX
release
end
PalletTown_ProfessorOaksLab_EventScript_OakExcitedNorth::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedNorth
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedSouth
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedEast
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest::
applymovement LOCALID_PROF_OAK, PalletTown_ProfessorOaksLab_Movement_OakExcitedWest
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_OakExcitedNorth::
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::
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::
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::
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
PalletTown_ProfessorOaksLab_Movement_Search:
walk_left
walk_in_place_faster_down
delay_8
walk_in_place_faster_right
delay_8
walk_in_place_faster_up
delay_8
walk_in_place_faster_left
delay_8
walk_in_place_faster_down
delay_8
walk_right
walk_right
walk_in_place_faster_up
delay_8
walk_in_place_faster_left
delay_8
walk_in_place_faster_down
delay_8
walk_in_place_faster_right
delay_8
walk_in_place_faster_up
delay_8
walk_left
step_end
@ Unused
PalletTown_ProfessorOaksLab_Movement_VerticalPacing:
walk_up
walk_down
walk_down
walk_in_place_down
walk_up
delay_16
delay_16
delay_16
step_end
PalletTown_ProfessorOaksLab_EventScript_TryStartNationalDexScene::
call PokedexRating_EventScript_RateInPerson
closemessage
goto_if_lt VAR_0x8009, 60, 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::
release
end
PalletTown_ProfessorOaksLab_EventScript_CheckIfPlayerNeedsBalls::
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
goto_if_eq VAR_RESULT, FALSE, PalletTown_ProfessorOaksLab_EventScript_PlayerOutOfBalls
goto PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
end
PalletTown_ProfessorOaksLab_EventScript_PlayerOutOfBalls::
goto_if_ge VAR_MAP_SCENE_ROUTE22, 2, PalletTown_ProfessorOaksLab_EventScript_GivePlayerMoreBalls
goto PalletTown_ProfessorOaksLab_EventScript_MonsAroundWorldWait
end
PalletTown_ProfessorOaksLab_EventScript_GivePlayerMoreBalls::
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::
msgbox PalletTown_ProfessorOaksLab_Text_OakMonsAroundWorldWait
release
end
PalletTown_ProfessorOaksLab_EventScript_PlayerAlreadyGotBalls::
msgbox PalletTown_ProfessorOaksLab_Text_OakComeSeeMeSometime
release
end
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth::
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::
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth::
setobjectxyperm LOCALID_RIVAL, 6, 10
addobject LOCALID_RIVAL
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth::
applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer
waitmovement 0
delay 15
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest::
applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer
waitmovement 0
delay 15
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast::
applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer
waitmovement 0
delay 15
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight
applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth::
applymovement LOCALID_RIVAL, Common_Movement_FacePlayer
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth::
applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterUp
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest::
applymovement LOCALID_RIVAL, Common_Movement_FacePlayer
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_RivalExitNorth::
applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExit
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_RivalExit::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalExit
waitmovement 0
return
PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth::
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp
waitmovement 0
return
PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest::
delay_4
walk_in_place_faster_down
step_end
PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth::
walk_in_place_faster_down
delay_16
delay_16
delay_16
delay_16
delay_16
delay_8
walk_in_place_faster_left
step_end
PalletTown_ProfessorOaksLab_Movement_RivalEnter::
walk_up
walk_up
walk_up
walk_up
walk_up
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalExit::
walk_down
walk_down
walk_down
walk_down
walk_down
walk_down
step_end
PalletTown_ProfessorOaksLab_EventScript_BulbasaurBall::
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
goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_LastPokeBall
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice
msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls
release
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice::
applymovement LOCALID_PROF_OAK, Common_Movement_FaceRight
waitmovement 0
showmonpic PLAYER_STARTER_SPECIES, 10, 3
textcolor NPC_TEXT_COLOR_MALE
goto_if_eq PLAYER_STARTER_NUM, 0, PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur
goto_if_eq PLAYER_STARTER_NUM, 1, PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle
goto_if_eq PLAYER_STARTER_NUM, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur::
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingBulbasaur, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle::
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingSquirtle, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander::
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingCharmander, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter::
hidemonpic
release
end
PalletTown_ProfessorOaksLab_EventScript_ChoseStarter::
hidemonpic
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
copyvar VAR_STARTER_MON, PLAYER_STARTER_NUM
bufferspeciesname STR_VAR_1, PLAYER_STARTER_SPECIES
message PalletTown_ProfessorOaksLab_Text_ReceivedMonFromOak
waitmessage
playfanfare MUS_OBTAIN_KEY_ITEM
waitfanfare
msgbox Text_GiveNicknameToThisMon, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, EventScript_GiveNicknameToStarter
goto_if_eq VAR_RESULT, NO, PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter
end
EventScript_GiveNicknameToStarter::
setvar VAR_0x8004, 0
call EventScript_ChangePokemonNickname
goto PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter::
closemessage
goto_if_eq PLAYER_STARTER_NUM, 0, PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander
goto_if_eq PLAYER_STARTER_NUM, 1, PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur
goto_if_eq PLAYER_STARTER_NUM, 2, PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToCharmander
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur::
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter::
textcolor NPC_TEXT_COLOR_MALE
msgbox PalletTown_ProfessorOaksLab_Text_RivalIllTakeThisOneThen
removeobject RIVAL_STARTER_ID
textcolor NPC_TEXT_COLOR_NEUTRAL
bufferspeciesname STR_VAR_1, 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::
setvar VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY, 1
return
PalletTown_ProfessorOaksLab_Movement_RivalWalksToCharmander::
walk_down
walk_down
walk_right
walk_right
walk_right
walk_right
walk_right
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle::
walk_down
walk_right
walk_right
walk_right
walk_right
walk_in_place_faster_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur::
walk_down
walk_right
walk_right
walk_right
walk_in_place_faster_up
step_end
PalletTown_ProfessorOaksLab_EventScript_SquirtleBall::
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
goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_LastPokeBall
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice
msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls
release
end
PalletTown_ProfessorOaksLab_EventScript_CharmanderBall::
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
goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 3, PalletTown_ProfessorOaksLab_EventScript_LastPokeBall
goto_if_eq VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 2, PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice
msgbox PalletTown_ProfessorOaksLab_Text_ThoseArePokeBalls
release
end
PalletTown_ProfessorOaksLab_EventScript_LastPokeBall::
msgbox PalletTown_ProfessorOaksLab_Text_OaksLastMon
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide1::
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_Aide1GameClear
msgbox PalletTown_ProfessorOaksLab_Text_StudyAsOaksAide
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide1GameClear::
famechecker FAMECHECKER_OAK, 5
msgbox PalletTown_ProfessorOaksLab_Text_OakIsGoingToHaveRadioShow
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide2::
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, PalletTown_ProfessorOaksLab_EventScript_Aide2GameClear
msgbox PalletTown_ProfessorOaksLab_Text_StudyAsOaksAide
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide2GameClear::
famechecker FAMECHECKER_DAISY, 0
msgbox PalletTown_ProfessorOaksLab_Text_DaisyWillGroomMons
release
end
PalletTown_ProfessorOaksLab_EventScript_Aide3::
lock
faceplayer
famechecker FAMECHECKER_OAK, 2
msgbox PalletTown_ProfessorOaksLab_Text_OakIsAuthorityOnMons
release
end
PalletTown_ProfessorOaksLab_EventScript_Pokedex::
msgbox PalletTown_ProfessorOaksLab_Text_BlankEncyclopedia, MSGBOX_NPC
end
PalletTown_ProfessorOaksLab_EventScript_Computer::
msgbox PalletTown_ProfessorOaksLab_Text_EmailMessage, MSGBOX_SIGN
end
PalletTown_ProfessorOaksLab_EventScript_LeftSign::
msgbox PalletTown_ProfessorOaksLab_Text_PressStartToOpenMenu, MSGBOX_SIGN
end
PalletTown_ProfessorOaksLab_EventScript_RightSign::
lockall
goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 6, PalletTown_ProfessorOaksLab_EventScript_RightSignAlt
msgbox PalletTown_ProfessorOaksLab_Text_SaveOptionInMenu
releaseall
end
PalletTown_ProfessorOaksLab_EventScript_RightSignAlt::
msgbox PalletTown_ProfessorOaksLab_Text_AllMonTypesHaveStrongAndWeakPoints
releaseall
end