.set LOCALID_APPRENTICE, 6 BattleFrontier_BattleTowerLobby_EventScript_Apprentice:: lock faceplayer apprentice_gavelvlmode compare VAR_RESULT, FALSE goto_if_eq Apprentice_EventScript_FirstMeeting apprentice_shouldcheckgone compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq Apprentice_EventScript_AskQuestion goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Apprentice_EventScript_Gone Apprentice_EventScript_AskQuestion: apprentice_getquestion compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MON goto_if_eq Apprentice_EventScript_UseWhichMon compare VAR_RESULT, APPRENTICE_QUESTION_WHAT_ITEM goto_if_eq Apprentice_EventScript_UseWhatHeldItem compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_MOVE goto_if_eq Apprentice_EventScript_UseWhichMove compare VAR_RESULT, APPRENTICE_QUESTION_WHICH_FIRST goto_if_eq Apprentice_EventScript_PutWhichMonFirst compare VAR_RESULT, APPRENTICE_QUESTION_WIN_SPEECH goto_if_eq Apprentice_EventScript_PickWinSpeech release releaseall end Apprentice_EventScript_FirstMeeting: apprentice_buff 0, APPRENTICE_BUFF_NAME apprentice_msg FALSE, APPRENTICE_MSG_PLEASE_TEACH Apprentice_EventScript_WhichLvlMode: apprentice_menu APPRENTICE_ASK_YES_NO compare VAR_RESULT, 1 goto_if_eq Apprentice_EventScript_RejectTeach apprentice_msg FALSE, APPRENTICE_MSG_WHICH_LVL_MODE apprentice_menu APPRENTICE_ASK_WHICH_LEVEL apprentice_setlvlmode VAR_RESULT apprentice_shufflespecies apprentice_buff 0, APPRENTICE_BUFF_LEVEL apprentice_msg TRUE, APPRENTICE_MSG_THANKS_LVL_MODE call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING case DIR_NORTH, Apprentice_EventScript_LeaveNorth goto Apprentice_EventScript_Leave end @ Its impossible to fully reject an Apprentice, they just keep asking for you to teach them Apprentice_EventScript_RejectTeach: apprentice_msg FALSE, APPRENTICE_MSG_REJECT goto Apprentice_EventScript_WhichLvlMode Apprentice_EventScript_UseWhichMon: apprentice_initquestion APPRENTICE_QUESTION_WHICH_MON apprentice_buff 0, APPRENTICE_BUFF_SPECIES1 apprentice_buff 1, APPRENTICE_BUFF_SPECIES2 apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON apprentice_menu APPRENTICE_ASK_2SPECIES copyvar VAR_0x8005, VAR_RESULT compare VAR_0x8005, 0 call_if_eq Apprentice_EventScript_ChoseFirstMon compare VAR_0x8005, 1 call_if_eq Apprentice_EventScript_ChoseSecondMon apprentice_getnumpartymons apprentice_setpartymon VAR_RESULT apprentice_answeredquestion apprentice_getnumpartymons compare VAR_RESULT, MULTI_PARTY_SIZE call_if_eq Apprentice_EventScript_LastMonSelected apprentice_buff 0, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING case DIR_NORTH, Apprentice_EventScript_LeaveNorth goto Apprentice_EventScript_Leave end Apprentice_EventScript_ChoseFirstMon: setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES1 return Apprentice_EventScript_ChoseSecondMon: setvar VAR_0x8007, APPRENTICE_BUFF_SPECIES2 return Apprentice_EventScript_LastMonSelected: apprentice_randomizequestions return Apprentice_EventScript_UseWhatHeldItem: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_msg TRUE, APPRENTICE_MSG_WHAT_HELD_ITEM apprentice_freequestion Apprentice_EventScript_ChooseHoldItem: fadescreen FADE_TO_BLACK setvar VAR_RESULT, 0 apprentice_openbag compare VAR_RESULT, FALSE goto_if_eq Apprentice_EventScript_ConfirmHoldNothing apprentice_trysetitem compare VAR_RESULT, FALSE goto_if_eq Apprentice_EventScript_AlreadySuggestedItem apprentice_buff 0, APPRENTICE_BUFF_ITEM apprentice_msg TRUE, APPRENTICE_MSG_THANKS_HELD_ITEM apprentice_answeredquestion call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING case DIR_NORTH, Apprentice_EventScript_LeaveNorth goto Apprentice_EventScript_Leave end Apprentice_EventScript_ConfirmHoldNothing: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_msg FALSE, APPRENTICE_MSG_HOLD_NOTHING apprentice_menu APPRENTICE_ASK_GIVE apprentice_freequestion compare VAR_RESULT, 0 goto_if_eq Apprentice_EventScript_ChooseHoldItem Apprentice_EventScript_HoldNothing: apprentice_msg TRUE, APPRENTICE_MSG_THANKS_NO_HELD_ITEM apprentice_answeredquestion call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING case DIR_NORTH, Apprentice_EventScript_LeaveNorth goto Apprentice_EventScript_Leave end @ Because Battle Tower mons may not hold the same item, the player must suggest a @ different item if theyve already told the Apprentice to use it for another mon Apprentice_EventScript_AlreadySuggestedItem: apprentice_initquestion APPRENTICE_QUESTION_WHAT_ITEM apprentice_buff 0, APPRENTICE_BUFF_ITEM apprentice_buff 1, APPRENTICE_BUFF_SPECIES3 apprentice_msg FALSE, APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED apprentice_menu APPRENTICE_ASK_GIVE apprentice_freequestion compare VAR_RESULT, 0 goto_if_eq Apprentice_EventScript_ChooseHoldItem goto Apprentice_EventScript_HoldNothing end Apprentice_EventScript_UseWhichMove: apprentice_initquestion APPRENTICE_QUESTION_WHICH_MOVE apprentice_buff 0, APPRENTICE_BUFF_SPECIES3 apprentice_buff 1, APPRENTICE_BUFF_MOVE1 apprentice_buff 2, APPRENTICE_BUFF_MOVE2 apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MOVE apprentice_menu APPRENTICE_ASK_MOVES copyvar VAR_0x8005, VAR_RESULT compare VAR_0x8005, 0 call_if_eq Apprentice_EventScript_ChoseMove1 compare VAR_0x8005, 1 call_if_eq Apprentice_EventScript_ChoseMove2 apprentice_setmove apprentice_answeredquestion apprentice_buff 0, VAR_0x8007 apprentice_freequestion apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MOVE call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING case DIR_NORTH, Apprentice_EventScript_LeaveNorth goto Apprentice_EventScript_Leave end Apprentice_EventScript_ChoseMove1: setvar VAR_0x8007, APPRENTICE_BUFF_MOVE1 return Apprentice_EventScript_ChoseMove2: setvar VAR_0x8007, APPRENTICE_BUFF_MOVE2 return Apprentice_EventScript_PutWhichMonFirst: apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON_FIRST apprentice_menu APPRENTICE_ASK_3SPECIES apprentice_setleadmon VAR_RESULT apprentice_answeredquestion apprentice_buff 0, APPRENTICE_BUFF_LEAD_MON_SPECIES apprentice_msg TRUE, APPRENTICE_MSG_THANKS_MON_FIRST call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING case DIR_NORTH, Apprentice_EventScript_LeaveNorth goto Apprentice_EventScript_Leave end @ Last question, after which the Apprentice leaves (and is saved) to be replaced by another Apprentice_EventScript_PickWinSpeech: apprentice_msg TRUE, APPRENTICE_MSG_PICK_WIN_SPEECH apprentice_shiftsaved setvar VAR_0x8004, EASY_CHAT_TYPE_APPRENTICE call Common_ShowEasyChatScreen lock faceplayer apprentice_save apprentice_buff 0, APPRENTICE_BUFF_WIN_SPEECH apprentice_msg TRUE, APPRENTICE_MSG_THANKS_WIN_SPEECH apprentice_reset call Apprentice_EventScript_SetHideFlags release releaseall switch VAR_FACING case DIR_NORTH, Apprentice_EventScript_LeaveNorth goto Apprentice_EventScript_Leave end Apprentice_EventScript_SetHideFlags: setflag FLAG_HIDE_APPRENTICE setflag FLAG_DAILY_APPRENTICE_LEAVES return Apprentice_EventScript_LeaveNorth: apprentice_shouldleave compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq Apprentice_EventScript_DontMove applymovement LOCALID_APPRENTICE, Apprentice_Movement_LeaveNorth waitmovement 0 end Apprentice_EventScript_Leave: apprentice_shouldleave compare VAR_0x8004, FALSE @ Always TRUE here goto_if_eq Apprentice_EventScript_DontMove applymovement LOCALID_APPRENTICE, Apprentice_Movement_Leave waitmovement 0 end Apprentice_EventScript_Gone: release releaseall end Apprentice_EventScript_DontMove: end Apprentice_Movement_LeaveNorth: walk_fast_right Apprentice_Movement_Leave: walk_fast_down walk_fast_down walk_fast_right walk_fast_right walk_fast_right walk_fast_right walk_fast_right walk_fast_right walk_fast_right walk_fast_right walk_fast_right set_invisible slide_down slide_down slide_down step_end