Files
pokeemerald/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc
2025-06-11 09:45:39 -04:00

291 lines
11 KiB
C++

MossdeepCity_SpaceCenter_1F_MapScripts::
map_script MAP_SCRIPT_ON_LOAD, MossdeepCity_SpaceCenter_1F_OnLoad
map_script MAP_SCRIPT_ON_TRANSITION, MossdeepCity_SpaceCenter_1F_OnTransition
.byte 0
MossdeepCity_SpaceCenter_1F_OnTransition:
goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma
end
MossdeepCity_SpaceCenter_1F_EventScript_MoveObjectsForTeamMagma::
setobjectxyperm LOCALID_SPACE_CENTER_1F_SAILOR, 1, 9
setobjectmovementtype LOCALID_SPACE_CENTER_1F_SAILOR, MOVEMENT_TYPE_FACE_RIGHT
setobjectxyperm LOCALID_SPACE_CENTER_1F_WOMAN, 0, 8
setobjectmovementtype LOCALID_SPACE_CENTER_1F_WOMAN, MOVEMENT_TYPE_FACE_RIGHT
setobjectxyperm LOCALID_SPACE_CENTER_1F_OLD_MAN, 1, 6
setobjectmovementtype LOCALID_SPACE_CENTER_1F_OLD_MAN, MOVEMENT_TYPE_FACE_RIGHT
setobjectxyperm LOCALID_SPACE_CENTER_1F_SCIENTIST_1, 3, 4
setobjectmovementtype LOCALID_SPACE_CENTER_1F_SCIENTIST_1, MOVEMENT_TYPE_FACE_RIGHT
setobjectmovementtype LOCALID_SPACE_CENTER_1F_SCIENTIST_2, MOVEMENT_TYPE_FACE_RIGHT
goto_if_eq VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 1, MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardLeft
goto_if_eq VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardDown
goto_if_eq VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 3, MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight
end
MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardLeft::
setobjectxyperm LOCALID_SPACE_CENTER_1F_STAIR_GRUNT, 12, 2
end
MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardDown::
setobjectxyperm LOCALID_SPACE_CENTER_1F_STAIR_GRUNT, 13, 3
end
@ Functionally unused. See comment on MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast
MossdeepCity_SpaceCenter_1F_EventScript_MoveStairGuardRight::
setobjectxyperm LOCALID_SPACE_CENTER_1F_STAIR_GRUNT, 14, 2
end
MossdeepCity_SpaceCenter_1F_OnLoad:
goto_if_le VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote
end
MossdeepCity_SpaceCenter_1F_EventScript_SetMagmaNote::
setmetatile 2, 5, METATILE_Facility_DataPad, TRUE
return
MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounter::
lock
faceplayer
goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma
dotimebasedevents
specialvar VAR_RESULT, GetWeekCount
buffernumberstring STR_VAR_1, VAR_RESULT
call_if_eq VAR_RESULT, 0, MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYet
call_if_ge VAR_RESULT, 1, MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumber
closemessage
applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYet::
msgbox MossdeepCity_SpaceCenter_1F_Text_RocketLaunchImminent, MSGBOX_DEFAULT
return
MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumber::
msgbox MossdeepCity_SpaceCenter_1F_Text_SuccessfulLaunchNumber, MSGBOX_DEFAULT
return
MossdeepCity_SpaceCenter_1F_EventScript_RocketLaunchCounterMagma::
dotimebasedevents
specialvar VAR_RESULT, GetWeekCount
buffernumberstring STR_VAR_1, VAR_RESULT
call_if_eq VAR_RESULT, 0, MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYetMagma
call_if_ge VAR_RESULT, 1, MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumberMagma
closemessage
applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterRight
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_NoLaunchesYetMagma::
msgbox MossdeepCity_SpaceCenter_1F_Text_HaywireButRocketLaunchImminent, MSGBOX_DEFAULT
return
MossdeepCity_SpaceCenter_1F_EventScript_ShowLaunchNumberMagma::
msgbox MossdeepCity_SpaceCenter_1F_Text_HaywireButSuccessfulLaunchNumber, MSGBOX_DEFAULT
return
MossdeepCity_SpaceCenter_1F_EventScript_Scientist::
lock
faceplayer
goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_ScientistMagma
msgbox MossdeepCity_SpaceCenter_1F_Text_RocketLaunchDemandsPerfection, MSGBOX_DEFAULT
release
end
MossdeepCity_SpaceCenter_1F_EventScript_ScientistMagma::
msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaHaveSightsOnSpaceCenter, MSGBOX_DEFAULT
applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterRight
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_SunStoneMan::
lock
faceplayer
goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma
goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStone
msgbox MossdeepCity_SpaceCenter_1F_Text_FoundThisYouCanHaveIt, MSGBOX_DEFAULT
giveitem ITEM_SUN_STONE
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
setflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP
msgbox MossdeepCity_SpaceCenter_1F_Text_HoennFamousForMeteorShowers, MSGBOX_DEFAULT
release
end
MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStone::
msgbox MossdeepCity_SpaceCenter_1F_Text_HoennFamousForMeteorShowers, MSGBOX_DEFAULT
release
end
MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma::
goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStoneMagma
msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaCantStealFuelTakeThis, MSGBOX_DEFAULT
giveitem ITEM_SUN_STONE
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
setflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP
msgbox MossdeepCity_SpaceCenter_1F_Text_CantStrollOnBeachWithMagma, MSGBOX_DEFAULT
applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterRight
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStoneMagma::
msgbox MossdeepCity_SpaceCenter_1F_Text_CantStrollOnBeachWithMagma, MSGBOX_DEFAULT
applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterRight
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_Woman::
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal
goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma
goto_if_lt VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal
goto MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma
end
MossdeepCity_SpaceCenter_1F_EventScript_WomanNormal::
msgbox MossdeepCity_SpaceCenter_1F_Text_DidPokemonComeFromSpace, MSGBOX_DEFAULT
release
end
MossdeepCity_SpaceCenter_1F_EventScript_WomanMagma::
msgbox MossdeepCity_SpaceCenter_1F_Text_AquaShouldBeatMagma, MSGBOX_DEFAULT
release
end
MossdeepCity_SpaceCenter_1F_EventScript_OldMan::
lock
faceplayer
goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal
goto_if_eq VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma
goto_if_lt VAR_MOSSDEEP_CITY_STATE, 2, MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal
goto MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma
end
MossdeepCity_SpaceCenter_1F_EventScript_OldManNormal::
msgbox MossdeepCity_SpaceCenter_1F_Text_RocketsBoggleMyMind, MSGBOX_DEFAULT
closemessage
applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_OldManMagma::
msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaWantsToSpoilMyDream, MSGBOX_DEFAULT
closemessage
applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_Steven::
lock
faceplayer
msgbox MossdeepCity_SpaceCenter_1F_Text_StevenMagmaCantBeAllowedToTakeFuel, MSGBOX_DEFAULT
applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection
waitmovement 0
release
end
MossdeepCity_SpaceCenter_1F_EventScript_MagmaNote::
lockall
msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaIntentToStealNotice, MSGBOX_DEFAULT
releaseall
end
MossdeepCity_SpaceCenter_1F_EventScript_Grunt3::
trainerbattle_single TRAINER_GRUNT_SPACE_CENTER_3, MossdeepCity_SpaceCenter_1F_Text_Grunt3Intro, MossdeepCity_SpaceCenter_1F_Text_Grunt3Defeat
msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt3PostBattle, MSGBOX_AUTOCLOSE
end
MossdeepCity_SpaceCenter_1F_EventScript_Grunt1::
trainerbattle_single TRAINER_GRUNT_SPACE_CENTER_1, MossdeepCity_SpaceCenter_1F_Text_Grunt1Intro, MossdeepCity_SpaceCenter_1F_Text_Grunt1Defeat
msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE
end
MossdeepCity_SpaceCenter_1F_EventScript_Grunt4::
trainerbattle_single TRAINER_GRUNT_SPACE_CENTER_4, MossdeepCity_SpaceCenter_1F_Text_Grunt4Intro, MossdeepCity_SpaceCenter_1F_Text_Grunt4Defeat
msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt4PostBattle, MSGBOX_AUTOCLOSE
end
MossdeepCity_SpaceCenter_1F_EventScript_Grunt2::
lock
faceplayer
goto_if_set FLAG_DEFEATED_GRUNT_SPACE_CENTER_1F, MossdeepCity_SpaceCenter_1F_EventScript_Grunt2Defeated
msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt2Intro, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_GRUNT_SPACE_CENTER_2, MossdeepCity_SpaceCenter_1F_Text_Grunt2Defeat
setflag FLAG_DEFEATED_GRUNT_SPACE_CENTER_1F
copyobjectxytoperm LOCALID_SPACE_CENTER_1F_STAIR_GRUNT
switch VAR_FACING
case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest
#ifdef BUGFIX
case DIR_EAST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast
#else
case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast
#endif
applymovement LOCALID_SPACE_CENTER_1F_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairs
waitmovement 0
setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 2
release
end
MossdeepCity_SpaceCenter_1F_EventScript_Grunt2Defeated::
msgbox MossdeepCity_SpaceCenter_1F_Text_Grunt2PostBattle, MSGBOX_DEFAULT
release
end
MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest::
applymovement LOCALID_SPACE_CENTER_1F_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsWest
waitmovement 0
setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 1
release
end
@ Functionally unused by mistake. The movement is handled anyway after the switch (see above)
@ This also means VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE can never be 3
MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast::
applymovement LOCALID_SPACE_CENTER_1F_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsEast
waitmovement 0
setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 3
release
end
MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsWest:
lock_facing_direction
walk_left
unlock_facing_direction
step_end
@ Functionally unused. See above
MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairsEast:
lock_facing_direction
walk_right
unlock_facing_direction
step_end
@ This was meant to only handle the player facing North, but by mistake(?) it also handles the player facing East
MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairs:
face_left
lock_facing_direction
walk_right
unlock_facing_direction
step_end
.ifdef FRENCH
.include "data/maps/MossdeepCity_SpaceCenter_1F/text_fr.inc"
.else
.ifdef ITALIAN
.include "data/maps/MossdeepCity_SpaceCenter_1F/text_it.inc"
.else
.ifdef SPANISH
.include "data/maps/MossdeepCity_SpaceCenter_1F/text_es.inc"
.else
.include "data/maps/MossdeepCity_SpaceCenter_1F/text.inc"
.endif
.endif
.endif