diff options
Diffstat (limited to 'maps/TeamRocketBaseB3F.asm')
-rw-r--r-- | maps/TeamRocketBaseB3F.asm | 602 |
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 |