mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-13 15:59:12 -05:00
469 lines
14 KiB
C++
469 lines
14 KiB
C++
.set LOCALID_GRUNT, 11
|
|
|
|
CeladonCity_GameCorner_MapScripts::
|
|
map_script MAP_SCRIPT_ON_LOAD, CeladonCity_GameCorner_OnLoad
|
|
.byte 0
|
|
|
|
CeladonCity_GameCorner_OnLoad::
|
|
call_if_unset FLAG_OPENED_ROCKET_HIDEOUT, CeladonCity_GameCorner_EventScript_HideRocketHideout
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_HideRocketHideout::
|
|
setmetatile 15, 2, METATILE_GameCorner_Floor_ShadeFull, 0
|
|
setmetatile 16, 2, METATILE_GameCorner_Floor_ShadeFull, 0
|
|
setmetatile 17, 2, METATILE_GameCorner_Floor_ShadeFull, 0
|
|
setmetatile 16, 3, METATILE_GameCorner_PurpleWall_Floor, 1
|
|
setmetatile 17, 3, METATILE_GameCorner_PurpleWall_Floor, 1
|
|
return
|
|
|
|
CeladonCity_GameCorner_EventScript_InfoClerk::
|
|
msgbox CeladonCity_GameCorner_Text_CanExchangeCoinsNextDoor, MSGBOX_NPC
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_CoinsClerk::
|
|
goto_if_questlog EventScript_ReleaseEnd
|
|
lock
|
|
faceplayer
|
|
showmoneybox 0, 0
|
|
showcoinsbox 0, 5
|
|
message CeladonCity_GameCorner_Text_WelcomeBuySomeCoins
|
|
waitmessage
|
|
multichoice 13, 0, MULTICHOICE_GAME_CORNER_COIN_PURCHASE_COUNTER, FALSE
|
|
copyvar VAR_0x8009, VAR_RESULT
|
|
switch VAR_RESULT
|
|
case 0, CeladonCity_GameCorner_EventScript_BuyCoins
|
|
case 1, CeladonCity_GameCorner_EventScript_BuyCoins
|
|
case 2, CeladonCity_GameCorner_EventScript_ClerkDeclineBuy
|
|
case 127, CeladonCity_GameCorner_EventScript_ClerkDeclineBuy
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_BuyCoins::
|
|
goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_ClerkNoCoinCase
|
|
goto_if_eq VAR_0x8009, 0, CeladonCity_GameCorner_EventScript_Buy50Coins
|
|
goto_if_eq VAR_0x8009, 1, CeladonCity_GameCorner_EventScript_Buy500Coins
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Buy500Coins::
|
|
checkcoins VAR_TEMP_1
|
|
goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 500, CeladonCity_GameCorner_EventScript_ClerkNoRoomForCoins
|
|
checkmoney 10000
|
|
goto_if_eq VAR_RESULT, FALSE, CeladonCity_GameCorner_EventScript_ClerkNotEnoughMoney
|
|
addcoins 500
|
|
removemoney 10000
|
|
goto CeladonCity_GameCorner_EventScript_BoughtCoins
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Buy50Coins::
|
|
checkcoins VAR_TEMP_1
|
|
goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 50, CeladonCity_GameCorner_EventScript_ClerkNoRoomForCoins
|
|
checkmoney 1000
|
|
goto_if_eq VAR_RESULT, FALSE, CeladonCity_GameCorner_EventScript_ClerkNotEnoughMoney
|
|
addcoins 50
|
|
removemoney 1000
|
|
goto CeladonCity_GameCorner_EventScript_BoughtCoins
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_BoughtCoins::
|
|
updatemoneybox
|
|
updatecoinsbox 0, 5
|
|
playse SE_SHOP
|
|
msgbox CeladonCity_GameCorner_Text_HereAreYourCoins
|
|
goto CeladonCity_GameCorner_EventScript_ClerkEnd
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_ClerkEnd::
|
|
hidemoneybox
|
|
hidecoinsbox 0, 5
|
|
release
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_ClerkDeclineBuy::
|
|
msgbox CeladonCity_GameCorner_Text_ComePlaySometime
|
|
goto CeladonCity_GameCorner_EventScript_ClerkEnd
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_ClerkNoCoinCase::
|
|
msgbox CeladonCity_GameCorner_Text_SorryDontHaveCoinCase
|
|
goto CeladonCity_GameCorner_EventScript_ClerkEnd
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_ClerkNoRoomForCoins::
|
|
msgbox CeladonCity_GameCorner_Text_CoinCaseIsFull
|
|
goto CeladonCity_GameCorner_EventScript_ClerkEnd
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_ClerkNotEnoughMoney::
|
|
msgbox CeladonCity_GameCorner_Text_CantAffordCoins
|
|
goto CeladonCity_GameCorner_EventScript_ClerkEnd
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_BaldingMan::
|
|
lock
|
|
faceplayer
|
|
msgbox CeladonCity_GameCorner_Text_RumoredTeamRocketRunsThisPlace
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_FaceSlotMachine::
|
|
closemessage
|
|
applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection
|
|
waitmovement 0
|
|
release
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Woman1::
|
|
lock
|
|
faceplayer
|
|
msgbox CeladonCity_GameCorner_Text_ThinkMachinesHaveDifferentOdds
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Fisher::
|
|
lock
|
|
faceplayer
|
|
goto_if_set FLAG_GOT_10_COINS_FROM_GAMBLER, CeladonCity_GameCorner_EventScript_FisherAlreadyGotCoins
|
|
msgbox CeladonCity_GameCorner_Text_DoYouWantToPlay
|
|
goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_GamblerNoCoinCase
|
|
checkcoins VAR_TEMP_1
|
|
goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 10, CeladonCity_GameCorner_EventScript_FisherNoRoomForCoins
|
|
addcoins 10
|
|
textcolor NPC_TEXT_COLOR_NEUTRAL
|
|
msgbox CeladonCity_GameCorner_Text_Received10CoinsFromMan
|
|
playse SE_SHOP
|
|
waitse
|
|
setflag FLAG_GOT_10_COINS_FROM_GAMBLER
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_FisherNoRoomForCoins::
|
|
msgbox CeladonCity_GameCorner_Text_DontNeedMyCoins
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_GamblerNoCoinCase::
|
|
textcolor NPC_TEXT_COLOR_NEUTRAL
|
|
msgbox CeladonCity_GameCorner_Text_DontHaveCoinCase
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_FisherAlreadyGotCoins::
|
|
msgbox CeladonCity_GameCorner_Text_WinsComeAndGo
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_GymGuy::
|
|
lock
|
|
faceplayer
|
|
goto_if_set FLAG_DEFEATED_ERIKA, CeladonCity_GameCorner_EventScript_GymGuyPostVictory
|
|
msgbox CeladonCity_GameCorner_Text_GymGuyAdvice
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_GymGuyPostVictory::
|
|
msgbox CeladonCity_GameCorner_Text_RareMonsForCoins
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Woman2::
|
|
lock
|
|
faceplayer
|
|
msgbox CeladonCity_GameCorner_Text_WinOrLoseItsOnlyLuck
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_OldMan::
|
|
lock
|
|
faceplayer
|
|
msgbox CeladonCity_GameCorner_Text_SoEasyToGetHooked
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Scientist::
|
|
lock
|
|
faceplayer
|
|
goto_if_set FLAG_GOT_20_COINS_FROM_GAMBLER, CeladonCity_GameCorner_EventScript_ScientistAlreadyGotCoins
|
|
msgbox CeladonCity_GameCorner_Text_WantSomeCoins
|
|
goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_GamblerNoCoinCase
|
|
checkcoins VAR_TEMP_1
|
|
goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 20, CeladonCity_GameCorner_EventScript_ScientistNoRoomForCoins
|
|
addcoins 20
|
|
textcolor NPC_TEXT_COLOR_NEUTRAL
|
|
msgbox CeladonCity_GameCorner_Text_Received20CoinsFromNiceGuy
|
|
playse SE_SHOP
|
|
waitse
|
|
setflag FLAG_GOT_20_COINS_FROM_GAMBLER
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_ScientistNoRoomForCoins::
|
|
msgbox CeladonCity_GameCorner_Text_YouHaveLotsOfCoins
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_ScientistAlreadyGotCoins::
|
|
msgbox CeladonCity_GameCorner_Text_NeedMoreCoinsForMonIWant
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Gentleman::
|
|
lock
|
|
faceplayer
|
|
goto_if_set FLAG_GOT_20_COINS_FROM_GAMBLER_2, CeladonCity_GameCorner_EventScript_GentlemanAlreadyGotCoins
|
|
msgbox CeladonCity_GameCorner_Text_HereAreSomeCoinsShoo
|
|
goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_GamblerNoCoinCase
|
|
checkcoins VAR_TEMP_1
|
|
goto_if_ge VAR_TEMP_1, (MAX_COINS + 1) - 20, CeladonCity_GameCorner_EventScript_GentlemanNoRoomForCoins
|
|
addcoins 20
|
|
textcolor NPC_TEXT_COLOR_NEUTRAL
|
|
msgbox CeladonCity_GameCorner_Text_Received20CoinsFromMan
|
|
playse SE_SHOP
|
|
waitse
|
|
setflag FLAG_GOT_20_COINS_FROM_GAMBLER_2
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_GentlemanNoRoomForCoins::
|
|
msgbox CeladonCity_GameCorner_Text_YouveGotPlentyCoins
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_GentlemanAlreadyGotCoins::
|
|
msgbox CeladonCity_GameCorner_Text_WatchReelsClosely
|
|
goto CeladonCity_GameCorner_EventScript_FaceSlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine0::
|
|
lockall
|
|
setvar VAR_0x8004, 0
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_DontPlaySlotMachine::
|
|
releaseall
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine::
|
|
goto_if_unset FLAG_GOT_COIN_CASE, CeladonCity_GameCorner_EventScript_SlotMachineNoCoinCase
|
|
msgbox CeladonCity_GameCorner_Text_SlotMachineWantToPlay, MSGBOX_YESNO
|
|
goto_if_eq VAR_RESULT, NO, CeladonCity_GameCorner_EventScript_DontPlaySlotMachine
|
|
setfieldeffectargument 0, OBJ_EVENT_ID_PLAYER
|
|
.ifdef BUGFIX
|
|
setfieldeffectargument 1, MAP_NUM(CELADON_CITY_GAME_CORNER)
|
|
setfieldeffectargument 2, MAP_GROUP(CELADON_CITY_GAME_CORNER)
|
|
.else
|
|
@ Map num/group were provided in the wrong order
|
|
setfieldeffectargument 1, MAP_GROUP(CELADON_CITY_GAME_CORNER)
|
|
setfieldeffectargument 2, MAP_NUM(CELADON_CITY_GAME_CORNER)
|
|
.endif
|
|
dofieldeffect FLDEFF_SMILEY_FACE_ICON
|
|
waitfieldeffect FLDEFF_SMILEY_FACE_ICON
|
|
specialvar VAR_RESULT, GetRandomSlotMachineId
|
|
playslotmachine VAR_RESULT
|
|
releaseall
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine1::
|
|
lockall
|
|
setvar VAR_0x8004, 1
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine2::
|
|
lockall
|
|
setvar VAR_0x8004, 2
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine3::
|
|
lockall
|
|
setvar VAR_0x8004, 3
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine4::
|
|
lockall
|
|
setvar VAR_0x8004, 4
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine5::
|
|
lockall
|
|
setvar VAR_0x8004, 5
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine6::
|
|
lockall
|
|
setvar VAR_0x8004, 6
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine7::
|
|
lockall
|
|
setvar VAR_0x8004, 7
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine8::
|
|
lockall
|
|
setvar VAR_0x8004, 8
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine9::
|
|
lockall
|
|
setvar VAR_0x8004, 9
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine10::
|
|
lockall
|
|
setvar VAR_0x8004, 10
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine11::
|
|
lockall
|
|
setvar VAR_0x8004, 11
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine12::
|
|
lockall
|
|
setvar VAR_0x8004, 12
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine13::
|
|
lockall
|
|
setvar VAR_0x8004, 13
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine14::
|
|
lockall
|
|
setvar VAR_0x8004, 14
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine15::
|
|
lockall
|
|
setvar VAR_0x8004, 15
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine16::
|
|
lockall
|
|
setvar VAR_0x8004, 16
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine17::
|
|
lockall
|
|
setvar VAR_0x8004, 17
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine18::
|
|
lockall
|
|
setvar VAR_0x8004, 18
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine19::
|
|
lockall
|
|
setvar VAR_0x8004, 19
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine20::
|
|
lockall
|
|
setvar VAR_0x8004, 20
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachine21::
|
|
lockall
|
|
setvar VAR_0x8004, 21
|
|
goto CeladonCity_GameCorner_EventScript_SlotMachine
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_SlotMachineNoCoinCase::
|
|
msgbox CeladonCity_GameCorner_Text_CoinCaseIsRequired
|
|
releaseall
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_Poster::
|
|
lockall
|
|
msgbox CeladonCity_GameCorner_Text_SwitchBehindPosterPushIt
|
|
call_if_unset FLAG_OPENED_ROCKET_HIDEOUT, CeladonCity_GameCorner_EventScript_OpenRocketHideout
|
|
releaseall
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_OpenRocketHideout::
|
|
playse SE_UNLOCK
|
|
setmetatile 15, 2, METATILE_GameCorner_Floor_StairsTop, 0
|
|
setmetatile 16, 2, METATILE_GameCorner_StairsTop, 1
|
|
setmetatile 17, 2, METATILE_GameCorner_StairsBottom, 1
|
|
setmetatile 16, 3, METATILE_GameCorner_PurpleWall_StairsTop, 1
|
|
setmetatile 17, 3, METATILE_GameCorner_PurpleWall_stairsBottom, 1
|
|
special DrawWholeMapView
|
|
setflag FLAG_OPENED_ROCKET_HIDEOUT
|
|
return
|
|
|
|
CeladonCity_GameCorner_EventScript_RocketGrunt::
|
|
trainerbattle_single TRAINER_TEAM_ROCKET_GRUNT_7, CeladonCity_GameCorner_Text_GruntIntro, CeladonCity_GameCorner_Text_GruntDefeat, CeladonCity_GameCorner_Text_DefeatedGrunt
|
|
msgbox CeladonCity_GameCorner_Text_GruntPostBattle, MSGBOX_AUTOCLOSE
|
|
end
|
|
|
|
CeladonCity_GameCorner_Text_DefeatedGrunt::
|
|
msgbox CeladonCity_GameCorner_Text_GruntPostBattle
|
|
closemessage
|
|
call_if_eq VAR_FACING, DIR_WEST, CeladonCity_GameCorner_Text_GruntExitWest
|
|
call_if_ne VAR_FACING, DIR_WEST, CeladonCity_GameCorner_Text_GruntExit
|
|
removeobject LOCALID_GRUNT
|
|
release
|
|
end
|
|
|
|
CeladonCity_GameCorner_Text_GruntExitWest::
|
|
applymovement LOCALID_GRUNT, CeladonCity_GameCorner_Movement_GruntExitWest
|
|
waitmovement 0
|
|
return
|
|
|
|
CeladonCity_GameCorner_Text_GruntExit::
|
|
applymovement LOCALID_GRUNT, CeladonCity_GameCorner_Movement_GruntExit
|
|
waitmovement 0
|
|
return
|
|
|
|
CeladonCity_GameCorner_Movement_GruntExitWest::
|
|
walk_down
|
|
walk_right
|
|
walk_right
|
|
walk_up
|
|
walk_right
|
|
walk_right
|
|
walk_right
|
|
walk_right
|
|
step_end
|
|
|
|
CeladonCity_GameCorner_Movement_GruntExit::
|
|
walk_right
|
|
walk_right
|
|
walk_right
|
|
walk_right
|
|
walk_right
|
|
walk_right
|
|
step_end
|
|
|
|
CeladonCity_GameCorner_EventScript_UnusableSlotMachine1::
|
|
msgbox CeladonCity_GameCorner_Text_OutOfOrder, MSGBOX_SIGN
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_UnusableSlotMachine2::
|
|
msgbox CeladonCity_GameCorner_Text_OutToLunch, MSGBOX_SIGN
|
|
end
|
|
|
|
CeladonCity_GameCorner_EventScript_UnusableSlotMachine3::
|
|
msgbox CeladonCity_GameCorner_Text_SomeonesKeys, MSGBOX_SIGN
|
|
end
|