mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 20:24:18 +01:00
250 lines
8.0 KiB
PHP
250 lines
8.0 KiB
PHP
.set LOCALID_APPRENTICE, 6
|
|
|
|
BattleFrontier_BattleTowerLobby_EventScript_Apprentice::
|
|
lock
|
|
faceplayer
|
|
apprentice_gavelvlmode
|
|
goto_if_eq VAR_RESULT, FALSE, Apprentice_EventScript_FirstMeeting
|
|
apprentice_shouldcheckgone
|
|
goto_if_eq VAR_0x8004, FALSE, Apprentice_EventScript_AskQuestion @ VAR_0x8004 always TRUE here
|
|
goto_if_set FLAG_DAILY_APPRENTICE_LEAVES, Apprentice_EventScript_Gone
|
|
Apprentice_EventScript_AskQuestion:
|
|
apprentice_getquestion
|
|
goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHICH_MON, Apprentice_EventScript_UseWhichMon
|
|
goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHAT_ITEM, Apprentice_EventScript_UseWhatHeldItem
|
|
goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHICH_MOVE, Apprentice_EventScript_UseWhichMove
|
|
goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WHICH_FIRST, Apprentice_EventScript_PutWhichMonFirst
|
|
goto_if_eq VAR_RESULT, APPRENTICE_QUESTION_WIN_SPEECH, Apprentice_EventScript_PickWinSpeech
|
|
release
|
|
releaseall
|
|
end
|
|
|
|
Apprentice_EventScript_FirstMeeting:
|
|
apprentice_buff STR_VAR_1, APPRENTICE_BUFF_NAME
|
|
apprentice_msg FALSE, APPRENTICE_MSG_PLEASE_TEACH
|
|
Apprentice_EventScript_WhichLvlMode:
|
|
apprentice_menu APPRENTICE_ASK_YES_NO
|
|
goto_if_eq VAR_RESULT, 1, 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 STR_VAR_1, 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 STR_VAR_1, APPRENTICE_BUFF_SPECIES1
|
|
apprentice_buff STR_VAR_2, APPRENTICE_BUFF_SPECIES2
|
|
apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MON
|
|
apprentice_menu APPRENTICE_ASK_2SPECIES
|
|
copyvar VAR_0x8005, VAR_RESULT
|
|
call_if_eq VAR_0x8005, 0, Apprentice_EventScript_ChoseFirstMon
|
|
call_if_eq VAR_0x8005, 1, Apprentice_EventScript_ChoseSecondMon
|
|
apprentice_getnumpartymons
|
|
apprentice_setpartymon VAR_RESULT
|
|
apprentice_answeredquestion
|
|
apprentice_getnumpartymons
|
|
call_if_eq VAR_RESULT, MULTI_PARTY_SIZE, Apprentice_EventScript_LastMonSelected
|
|
apprentice_buff STR_VAR_1, 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 STR_VAR_1, 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
|
|
goto_if_eq VAR_RESULT, FALSE, Apprentice_EventScript_ConfirmHoldNothing
|
|
apprentice_trysetitem
|
|
goto_if_eq VAR_RESULT, FALSE, Apprentice_EventScript_AlreadySuggestedItem
|
|
apprentice_buff STR_VAR_1, 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 STR_VAR_1, APPRENTICE_BUFF_SPECIES3
|
|
apprentice_msg FALSE, APPRENTICE_MSG_HOLD_NOTHING
|
|
apprentice_menu APPRENTICE_ASK_GIVE
|
|
apprentice_freequestion
|
|
goto_if_eq VAR_RESULT, 0, 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 STR_VAR_1, APPRENTICE_BUFF_ITEM
|
|
apprentice_buff STR_VAR_2, APPRENTICE_BUFF_SPECIES3
|
|
apprentice_msg FALSE, APPRENTICE_MSG_ITEM_ALREADY_SUGGESTED
|
|
apprentice_menu APPRENTICE_ASK_GIVE
|
|
apprentice_freequestion
|
|
goto_if_eq VAR_RESULT, 0, Apprentice_EventScript_ChooseHoldItem
|
|
goto Apprentice_EventScript_HoldNothing
|
|
end
|
|
|
|
Apprentice_EventScript_UseWhichMove:
|
|
apprentice_initquestion APPRENTICE_QUESTION_WHICH_MOVE
|
|
apprentice_buff STR_VAR_1, APPRENTICE_BUFF_SPECIES3
|
|
apprentice_buff STR_VAR_2, APPRENTICE_BUFF_MOVE1
|
|
apprentice_buff STR_VAR_3, APPRENTICE_BUFF_MOVE2
|
|
apprentice_msg FALSE, APPRENTICE_MSG_WHICH_MOVE
|
|
apprentice_menu APPRENTICE_ASK_MOVES
|
|
copyvar VAR_0x8005, VAR_RESULT
|
|
call_if_eq VAR_0x8005, 0, Apprentice_EventScript_ChoseMove1
|
|
call_if_eq VAR_0x8005, 1, Apprentice_EventScript_ChoseMove2
|
|
apprentice_setmove
|
|
apprentice_answeredquestion
|
|
apprentice_buff STR_VAR_1, 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 STR_VAR_1, 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 STR_VAR_1, 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
|
|
goto_if_eq VAR_0x8004, FALSE, Apprentice_EventScript_DontMove @ VAR_0x8004 always TRUE here
|
|
applymovement LOCALID_APPRENTICE, Apprentice_Movement_LeaveNorth
|
|
waitmovement 0
|
|
end
|
|
|
|
Apprentice_EventScript_Leave:
|
|
apprentice_shouldleave
|
|
goto_if_eq VAR_0x8004, FALSE, Apprentice_EventScript_DontMove @ VAR_0x8004 always TRUE here
|
|
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
|