summaryrefslogtreecommitdiff
path: root/maps/TeamRocketBaseB3F.asm
diff options
context:
space:
mode:
Diffstat (limited to 'maps/TeamRocketBaseB3F.asm')
-rw-r--r--maps/TeamRocketBaseB3F.asm602
1 files changed, 602 insertions, 0 deletions
diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm
new file mode 100644
index 00000000..62b51485
--- /dev/null
+++ b/maps/TeamRocketBaseB3F.asm
@@ -0,0 +1,602 @@
+ const_def 2 ; object constants
+ const TEAMROCKETBASEB3F_LANCE
+ const TEAMROCKETBASEB3F_ROCKET1
+ const TEAMROCKETBASEB3F_MOLTRES
+ const TEAMROCKETBASEB3F_ROCKET_GIRL
+ const TEAMROCKETBASEB3F_ROCKET2
+ const TEAMROCKETBASEB3F_SCIENTIST1
+ const TEAMROCKETBASEB3F_SCIENTIST2
+ const TEAMROCKETBASEB3F_ROCKET3
+ const TEAMROCKETBASEB3F_SILVER
+ const TEAMROCKETBASEB3F_POKE_BALL1
+ const TEAMROCKETBASEB3F_POKE_BALL2
+ const TEAMROCKETBASEB3F_POKE_BALL3
+ const TEAMROCKETBASEB3F_POKE_BALL4
+ const TEAMROCKETBASEB3F_POKE_BALL5
+
+TeamRocketBaseB3F_MapScripts:
+ db 4 ; scene scripts
+ scene_script .LanceGetsPassword ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_TEAMROCKETBASEB3F_RIVAL_ENCOUNTER
+ scene_script .DummyScene2 ; SCENE_TEAMROCKETBASEB3F_ROCKET_BOSS
+ scene_script .DummyScene3 ; SCENE_TEAMROCKETBASEB3F_NOTHING
+
+ db 1 ; callbacks
+ callback MAPCALLBACK_TILES, .CheckGiovanniDoor
+
+.LanceGetsPassword:
+ priorityjump LanceGetPasswordScript
+ end
+
+.DummyScene1:
+ end
+
+.DummyScene2:
+ end
+
+.DummyScene3:
+ end
+
+.CheckGiovanniDoor:
+ checkevent EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE
+ iftrue .OpenSesame
+ return
+
+.OpenSesame:
+ changeblock 10, 8, $07 ; floor
+ return
+
+LanceGetPasswordScript:
+ turnobject PLAYER, LEFT
+ pause 5
+ turnobject TEAMROCKETBASEB3F_MOLTRES, RIGHT
+ pause 20
+ applymovement TEAMROCKETBASEB3F_LANCE, MovementData_0x6e12a
+ opentext
+ writetext LanceGetPasswordText
+ waitbutton
+ closetext
+ applymovement TEAMROCKETBASEB3F_LANCE, MovementData_0x6e12c
+ disappear TEAMROCKETBASEB3F_LANCE
+ setscene SCENE_TEAMROCKETBASEB3F_RIVAL_ENCOUNTER
+ end
+
+RocketBaseRival:
+ turnobject PLAYER, LEFT
+ showemote EMOTE_SHOCK, PLAYER, 15
+ special FadeOutMusic
+ appear TEAMROCKETBASEB3F_SILVER
+ applymovement TEAMROCKETBASEB3F_SILVER, RocketBaseRivalEnterMovement
+ turnobject PLAYER, LEFT
+ playmusic MUSIC_RIVAL_ENCOUNTER
+ opentext
+ writetext RocketBaseRivalText
+ waitbutton
+ closetext
+ playsound SFX_TACKLE
+ applymovement PLAYER, RocketBaseRivalShovesPlayerMovement
+ applymovement TEAMROCKETBASEB3F_SILVER, RocketBaseRivalLeaveMovement
+ disappear TEAMROCKETBASEB3F_SILVER
+ setscene SCENE_TEAMROCKETBASEB3F_ROCKET_BOSS
+ special RestartMapMusic
+ end
+
+TeamRocketBaseB3FRocketScript:
+ jumptextfaceplayer TeamRocketBaseB3FRocketText
+
+RocketBaseBossLeft:
+ applymovement PLAYER, MovementData_0x6e133
+ jump RocketBaseBoss
+
+RocketBaseBossRight:
+ applymovement PLAYER, MovementData_0x6e13a
+RocketBaseBoss:
+ pause 30
+ showemote EMOTE_SHOCK, TEAMROCKETBASEB3F_ROCKET1, 15
+ playmusic MUSIC_ROCKET_ENCOUNTER
+ turnobject TEAMROCKETBASEB3F_ROCKET1, DOWN
+ opentext
+ writetext ExecutiveM4BeforeText
+ waitbutton
+ closetext
+ applymovement TEAMROCKETBASEB3F_ROCKET1, MovementData_0x6e142
+ winlosstext ExecutiveM4BeatenText, 0
+ setlasttalked TEAMROCKETBASEB3F_ROCKET1
+ loadtrainer EXECUTIVEM, EXECUTIVEM_4
+ startbattle
+ reloadmapafterbattle
+ setevent EVENT_BEAT_ROCKET_EXECUTIVEM_4
+ opentext
+ writetext ExecutiveM4AfterText
+ waitbutton
+ closetext
+ applymovement TEAMROCKETBASEB3F_ROCKET1, MovementData_0x6e144
+ playsound SFX_TACKLE
+ applymovement TEAMROCKETBASEB3F_ROCKET1, MovementData_0x6e147
+ disappear TEAMROCKETBASEB3F_ROCKET1
+ setscene SCENE_TEAMROCKETBASEB3F_NOTHING
+ end
+
+RocketBaseMurkrow:
+ opentext
+ writetext RocketBaseMurkrowText
+ waitbutton
+ closetext
+ setevent EVENT_LEARNED_HAIL_GIOVANNI
+ end
+
+SlowpokeTailGrunt:
+ trainer GRUNTF, GRUNTF_5, EVENT_BEAT_ROCKET_GRUNTF_5, GruntF5SeenText, GruntF5BeatenText, 0, GruntF5Script
+
+GruntF5Script:
+ endifjustbattled
+ opentext
+ writetext GruntF5AfterBattleText
+ waitbutton
+ closetext
+ setevent EVENT_LEARNED_SLOWPOKETAIL
+ end
+
+RaticateTailGrunt:
+ trainer GRUNTM, GRUNTM_28, EVENT_BEAT_ROCKET_GRUNTM_28, GruntM28SeenText, GruntM28BeatenText, 0, GruntM28Script
+
+GruntM28Script:
+ endifjustbattled
+ opentext
+ writetext GruntM28AfterBattleText
+ waitbutton
+ closetext
+ setevent EVENT_LEARNED_RATICATE_TAIL
+ end
+
+TrainerScientistRoss:
+ trainer SCIENTIST, ROSS, EVENT_BEAT_SCIENTIST_ROSS, ScientistRossSeenText, ScientistRossBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext ScientistRossAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerScientistMitch:
+ trainer SCIENTIST, MITCH, EVENT_BEAT_SCIENTIST_MITCH, ScientistMitchSeenText, ScientistMitchBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext ScientistMitchAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TeamRocketBaseB3FLockedDoor:
+ conditional_event EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE, .Script
+
+.Script:
+ opentext
+ checkevent EVENT_LEARNED_SLOWPOKETAIL
+ iffalse .NeedsPassword
+ checkevent EVENT_LEARNED_RATICATE_TAIL
+ iffalse .NeedsPassword
+ jump .OpenSesame
+
+.NeedsPassword:
+ writetext TeamRocketBaseB3FLockedDoorNeedsPasswordText
+ waitbutton
+ closetext
+ end
+
+.OpenSesame:
+ writetext TeamRocketBaseB3FLockedDoorOpenSesameText
+ waitbutton
+ playsound SFX_ENTER_DOOR
+ changeblock 10, 8, $07 ; floor
+ reloadmappart
+ closetext
+ setevent EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE
+ waitsfx
+ end
+
+TeamRocketBaseB3FOathScript:
+ jumpstd teamrocketoath
+
+TeamRocketBaseB3FFullHeal:
+ itemball FULL_HEAL
+
+TeamRocketBaseB3FDireHit:
+ itemball DIRE_HIT
+
+TeamRocketBaseB3FProtein:
+ itemball PROTEIN
+
+TeamRocketBaseB3FIceHeal:
+ itemball ICE_HEAL
+
+MovementData_0x6e12a:
+ step RIGHT
+ step_end
+
+MovementData_0x6e12c:
+ step DOWN
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step_end
+
+MovementData_0x6e133:
+ step UP
+ step UP
+ step UP
+ step LEFT
+ step LEFT
+ turn_head UP
+ step_end
+
+MovementData_0x6e13a:
+ step UP
+ step UP
+ step LEFT
+ step UP
+ step LEFT
+ step LEFT
+ turn_head UP
+ step_end
+
+MovementData_0x6e142:
+ step DOWN
+ step_end
+
+MovementData_0x6e144:
+ big_step RIGHT
+ big_step RIGHT
+ step_end
+
+MovementData_0x6e147:
+ fix_facing
+ fast_jump_step LEFT
+ remove_fixed_facing
+ step_sleep 8
+ step_sleep 8
+ slow_step RIGHT
+ big_step DOWN
+ big_step DOWN
+ big_step DOWN
+ big_step RIGHT
+ big_step DOWN
+ big_step DOWN
+ big_step DOWN
+ big_step LEFT
+ big_step LEFT
+ big_step LEFT
+ big_step LEFT
+ big_step LEFT
+ big_step UP
+ big_step UP
+ big_step UP
+ big_step UP
+ big_step UP
+ big_step UP
+ big_step UP
+ big_step UP
+ big_step LEFT
+ big_step LEFT
+ step_end
+
+RocketBaseRivalEnterMovement:
+ step DOWN
+ step DOWN
+ step DOWN
+ step DOWN
+ step DOWN
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step_end
+
+RocketBaseRivalLeaveMovement:
+ step LEFT
+ step LEFT
+ step UP
+ step UP
+ step UP
+ step UP
+ step UP
+ step_end
+
+RocketBaseRivalShovesPlayerMovement:
+ fix_facing
+ big_step RIGHT
+ remove_fixed_facing
+ step_end
+
+LanceGetPasswordText:
+ text "LANCE: It takes"
+ line "two passwords to"
+
+ para "get into the"
+ line "boss's quarters."
+
+ para "Those passwords"
+ line "are known only to"
+ cont "a few ROCKETS."
+
+ para "That ROCKET there"
+ line "very graciously"
+ cont "told me so."
+
+ para "<PLAYER>, let's go"
+ line "get the passwords."
+ done
+
+TeamRocketBaseB3FRocketText:
+ text "Urrggh… The guy"
+ line "in the cape is"
+ cont "incredibly tough…"
+ done
+
+RocketBaseRivalText:
+ text "…"
+
+ para "Didn't I tell you"
+ line "that I was going"
+
+ para "to destroy TEAM"
+ line "ROCKET?"
+
+ para "…Tell me, who was"
+ line "the guy in the"
+
+ para "cape who used"
+ line "dragon #MON?"
+
+ para "My #MON were no"
+ line "match at all."
+
+ para "I don't care that"
+ line "I lost. I can beat"
+
+ para "him by getting"
+ line "stronger #MON."
+
+ para "It's what he said"
+ line "that bothers me…"
+
+ para "He told me that"
+ line "I don't love and"
+
+ para "trust my #MON"
+ line "enough."
+
+ para "I'm furious that I"
+ line "lost to a bleeding"
+ cont "heart like him."
+
+ para "…Humph! I don't"
+ line "have the time for"
+ cont "the likes of you!"
+ done
+
+ExecutiveM4BeforeText:
+ text "What? Who are you?"
+ line "This is the office"
+
+ para "of our leader,"
+ line "GIOVANNI."
+
+ para "Since disbanding"
+ line "TEAM ROCKET three"
+
+ para "years ago, he has"
+ line "been in training."
+
+ para "But we're certain"
+ line "he will be back"
+
+ para "some day to assume"
+ line "command again."
+
+ para "That's why we're"
+ line "standing guard."
+
+ para "I won't let any-"
+ line "one disturb this"
+ cont "place!"
+ done
+
+ExecutiveM4BeatenText:
+ text "I… I couldn't do a"
+ line "thing…"
+
+ para "GIOVANNI, please"
+ line "forgive me…"
+ done
+
+ExecutiveM4AfterText:
+ text "No, I can't let"
+ line "this affect me."
+
+ para "I have to inform"
+ line "the others…"
+ done
+
+RocketBaseMurkrowText:
+ text "MURKROW: The"
+ line "password is…"
+
+ para "HAIL GIOVANNI."
+ done
+
+GruntF5SeenText:
+ text "Do I know the"
+ line "password?"
+
+ para "Maybe."
+
+ para "But no weakling's"
+ line "going to get it!"
+ done
+
+GruntF5BeatenText:
+ text "All right. Stop."
+ line "I'll tell you."
+ done
+
+GruntF5AfterBattleText:
+ text "The password to"
+ line "the boss's room is"
+
+ para "SLOWPOKETAIL."
+
+ para "But it's useless"
+ line "unless you have"
+ cont "two passwords."
+ done
+
+GruntM28SeenText:
+ text "Hyuck-hyuck-hyuck!"
+
+ para "You're challenging"
+ line "me to a battle?"
+
+ para "Hah! You're nuts,"
+ line "but you have guts!"
+
+ para "I like that!"
+
+ para "If you can beat"
+ line "me, I'll tell you"
+
+ para "a password to the"
+ line "boss's room!"
+ done
+
+GruntM28BeatenText:
+ text "Hyuck-hyuck-hyuck!"
+ line "You're good!"
+ done
+
+GruntM28AfterBattleText:
+ text "Hyuck-hyuck-hyuck!"
+
+ para "The password to"
+ line "the boss's room…"
+
+ para "Uh…, I think it is"
+ line "RATICATE TAIL."
+ done
+
+ScientistRossSeenText:
+ text "I used to work for"
+ line "SILPH, but now I"
+
+ para "run research for"
+ line "TEAM ROCKET."
+
+ para "A meddlesome child"
+ line "like you needs to"
+ cont "be punished."
+ done
+
+ScientistRossBeatenText:
+ text "A mere tactical"
+ line "error cost me…"
+ done
+
+ScientistRossAfterBattleText:
+ text "A radio signal"
+ line "that drives #-"
+ cont "MON mad…"
+
+ para "My experiment is a"
+ line "complete success."
+
+ para "My promotion is"
+ line "assured. This loss"
+
+ para "means absolutely"
+ line "nothing."
+ done
+
+ScientistMitchSeenText:
+ text "I don't care that"
+ line "#MON are hurt"
+ cont "by our experiment."
+ done
+
+ScientistMitchBeatenText:
+ text "Thinking is my"
+ line "strong suit, not"
+ cont "battling."
+ done
+
+ScientistMitchAfterBattleText:
+ text "If we turn up the"
+ line "power of our radio"
+
+ para "signal for broad-"
+ line "cast nationwide…"
+
+ para "The very thought"
+ line "excites me!"
+ done
+
+TeamRocketBaseB3FLockedDoorNeedsPasswordText:
+ text "The door's closed…"
+
+ para "It needs two"
+ line "passwords to open."
+ done
+
+TeamRocketBaseB3FLockedDoorOpenSesameText:
+ text "The door's closed…"
+
+ para "<PLAYER> entered"
+ line "the two passwords."
+
+ para "The door opened!"
+ done
+
+TeamRocketBaseB3F_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 3, 2, TEAM_ROCKET_BASE_B2F, 2
+ warp_event 27, 2, TEAM_ROCKET_BASE_B2F, 3
+ warp_event 3, 6, TEAM_ROCKET_BASE_B2F, 4
+ warp_event 27, 14, TEAM_ROCKET_BASE_B2F, 5
+
+ db 3 ; coord events
+ coord_event 10, 8, SCENE_TEAMROCKETBASEB3F_ROCKET_BOSS, RocketBaseBossLeft
+ coord_event 11, 8, SCENE_TEAMROCKETBASEB3F_ROCKET_BOSS, RocketBaseBossRight
+ coord_event 8, 10, SCENE_TEAMROCKETBASEB3F_RIVAL_ENCOUNTER, RocketBaseRival
+
+ db 10 ; bg events
+ bg_event 10, 9, BGEVENT_IFNOTSET, TeamRocketBaseB3FLockedDoor
+ bg_event 11, 9, BGEVENT_IFNOTSET, TeamRocketBaseB3FLockedDoor
+ bg_event 10, 1, BGEVENT_READ, TeamRocketBaseB3FOathScript
+ bg_event 11, 1, BGEVENT_READ, TeamRocketBaseB3FOathScript
+ bg_event 12, 1, BGEVENT_READ, TeamRocketBaseB3FOathScript
+ bg_event 13, 1, BGEVENT_READ, TeamRocketBaseB3FOathScript
+ bg_event 4, 13, BGEVENT_READ, TeamRocketBaseB3FOathScript
+ bg_event 5, 13, BGEVENT_READ, TeamRocketBaseB3FOathScript
+ bg_event 6, 13, BGEVENT_READ, TeamRocketBaseB3FOathScript
+ bg_event 7, 13, BGEVENT_READ, TeamRocketBaseB3FOathScript
+
+ db 13 ; object events
+ object_event 25, 14, SPRITE_LANCE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LanceGetPasswordScript, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS
+ object_event 8, 3, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE
+ object_event 7, 2, SPRITE_MOLTRES, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, RocketBaseMurkrow, EVENT_TEAM_ROCKET_BASE_POPULATION
+ object_event 21, 7, SPRITE_ROCKET_GIRL, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 0, SlowpokeTailGrunt, EVENT_TEAM_ROCKET_BASE_POPULATION
+ object_event 5, 15, SPRITE_ROCKET, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, RaticateTailGrunt, EVENT_TEAM_ROCKET_BASE_POPULATION
+ object_event 25, 12, SPRITE_SCIENTIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 4, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
+ object_event 14, 15, SPRITE_SCIENTIST, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
+ object_event 24, 14, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, TeamRocketBaseB3FRocketScript, EVENT_TEAM_ROCKET_BASE_POPULATION
+ object_event 4, 5, SPRITE_SILVER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
+ object_event 1, 12, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TeamRocketBaseB3FFullHeal, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
+ object_event 3, 12, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TeamRocketBaseB3FDireHit, EVENT_TEAM_ROCKET_BASE_B3F_DIRE_HIT
+ object_event 28, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TeamRocketBaseB3FProtein, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
+ object_event 17, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TeamRocketBaseB3FIceHeal, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL