diff options
-rw-r--r-- | macros/scripts/events.asm | 2 | ||||
-rw-r--r-- | main.asm | 25 | ||||
-rw-r--r-- | maps/EarlsPokemonAcademy.asm | 433 | ||||
-rw-r--r-- | maps/Route32Pokecenter1F.asm | 110 | ||||
-rw-r--r-- | maps/Route32RuinsOfAlphGate.asm | 63 | ||||
-rw-r--r-- | maps/Route35GoldenrodGate.asm | 194 | ||||
-rw-r--r-- | maps/Route35NationalParkGate.asm | 452 | ||||
-rw-r--r-- | maps/Route36NationalParkGate.asm | 875 | ||||
-rw-r--r-- | maps/Route36RuinsOfAlphGate.asm | 50 | ||||
-rw-r--r-- | maps/VioletGym.asm | 299 | ||||
-rw-r--r-- | maps/VioletKylesHouse.asm | 46 | ||||
-rw-r--r-- | maps/VioletMart.asm | 63 | ||||
-rw-r--r-- | maps/VioletNicknameSpeechHouse.asm | 59 | ||||
-rw-r--r-- | maps/VioletPokecenter1F.asm | 210 |
14 files changed, 2867 insertions, 14 deletions
diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index 6feee09f..6e2856d1 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -998,7 +998,7 @@ credits: MACRO db credits_command ENDM - enum warpfacing_command ; $a3 + enum warpfacing_command ; $a1 warpfacing: MACRO db warpfacing_command db \1 ; facing @@ -1781,19 +1781,18 @@ INCLUDE "maps/KurtsHouse.asm" INCLUDE "maps/AzaleaGym.asm" SECTION "bank56", ROMX, BANK[$56] -;INCLUDE "maps/VioletMart.asm" -;INCLUDE "maps/VioletGym.asm" -;INCLUDE "maps/EarlsPokemonAcademy.asm" -;INCLUDE "maps/VioletNicknameSpeechHouse.asm" -;INCLUDE "maps/VioletPokecenter1F.asm" -;INCLUDE "maps/VioletKylesHouse.asm" -;INCLUDE "maps/Route32RuinsOfAlphGate.asm" -;INCLUDE "maps/Route32Pokecenter1F.asm" -;INCLUDE "maps/Route35GoldenrodGate.asm" -;INCLUDE "maps/Route35NationalParkGate.asm" -;INCLUDE "maps/Route36RuinsOfAlphGate.asm" -;INCLUDE "maps/Route36NationalParkGate.asm" - dr $158000, $15c000 +INCLUDE "maps/VioletMart.asm" +INCLUDE "maps/VioletGym.asm" +INCLUDE "maps/EarlsPokemonAcademy.asm" +INCLUDE "maps/VioletNicknameSpeechHouse.asm" +INCLUDE "maps/VioletPokecenter1F.asm" +INCLUDE "maps/VioletKylesHouse.asm" +INCLUDE "maps/Route32RuinsOfAlphGate.asm" +INCLUDE "maps/Route32Pokecenter1F.asm" +INCLUDE "maps/Route35GoldenrodGate.asm" +INCLUDE "maps/Route35NationalParkGate.asm" +INCLUDE "maps/Route36RuinsOfAlphGate.asm" +INCLUDE "maps/Route36NationalParkGate.asm" SECTION "bank57", ROMX, BANK[$57] diff --git a/maps/EarlsPokemonAcademy.asm b/maps/EarlsPokemonAcademy.asm new file mode 100644 index 00000000..07ea18bf --- /dev/null +++ b/maps/EarlsPokemonAcademy.asm @@ -0,0 +1,433 @@ + const_def 2 ; object constants + const EARLSPOKEMONACADEMY_EARL + const EARLSPOKEMONACADEMY_YOUNGSTER1 + const EARLSPOKEMONACADEMY_GAMEBOY_KID1 + const EARLSPOKEMONACADEMY_GAMEBOY_KID2 + const EARLSPOKEMONACADEMY_YOUNGSTER2 + const EARLSPOKEMONACADEMY_POKEDEX + +EarlsPokemonAcademy_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +AcademyEarl: + applymovement EARLSPOKEMONACADEMY_EARL, AcademyEarlSpinMovement + faceplayer + opentext + writetext AcademyEarlIntroText + yesorno + iffalse .Part1 + writetext AcademyEarlTeachHowToWinText + yesorno + iffalse .Done +.Part1: + writetext AcademyEarlTeachMoreText + yesorno + iffalse .Done + writetext AcademyEarlTeachHowToRaiseWellText + waitbutton + closetext + end + +.Done: + writetext AcademyEarlNoMoreToTeachText + waitbutton + closetext + end + +EarlsPokemonAcademyYoungster1Script: + jumptextfaceplayer EarlsPokemonAcademyYoungster1Text + +EarlsPokemonAcademyGameboyKid1Script: + faceplayer + opentext + writetext EarlsPokemonAcademyGameboyKid1Text + waitbutton + closetext + turnobject EARLSPOKEMONACADEMY_GAMEBOY_KID1, DOWN + end + +EarlsPokemonAcademyGameboyKid2Script: + faceplayer + opentext + writetext EarlsPokemonAcademyGameboyKid2Text + waitbutton + closetext + turnobject EARLSPOKEMONACADEMY_GAMEBOY_KID2, DOWN + end + +EarlsPokemonAcademyYoungster2Script: + jumptextfaceplayer EarlsPokemonAcademyYoungster2Text + +AcademyBlackboard: + opentext + writetext AcademyBlackboardText +.Loop: + loadmenu .BlackboardMenuHeader + _2dmenu + closewindow + ifequal 1, .Poison + ifequal 2, .Paralysis + ifequal 3, .Sleep + ifequal 4, .Burn + ifequal 5, .Freeze + closetext + end + +.Poison: + writetext AcademyPoisonText + waitbutton + jump .Loop + +.Paralysis: + writetext AcademyParalysisText + waitbutton + jump .Loop + +.Sleep: + writetext AcademySleepText + waitbutton + jump .Loop + +.Burn: + writetext AcademyBurnText + waitbutton + jump .Loop + +.Freeze: + writetext AcademyFreezeText + waitbutton + jump .Loop + +.BlackboardMenuHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 0, 0, 11, 8 + dw .MenuData + db 1 ; default option + +.MenuData: + db STATICMENU_CURSOR ; flags + dn 3, 2 ; rows, columns + db 5 ; spacing + dba .Text + dbw BANK(AcademyBlackboard), 0 + +.Text: + db "PSN@" + db "PAR@" + db "SLP@" + db "BRN@" + db "FRZ@" + db "QUIT@" + +AcademyNotebook: + opentext + writetext AcademyNotebookText + yesorno + iffalse .Done + writetext AcademyNotebookText1 + yesorno + iffalse .Done + writetext AcademyNotebookText2 + yesorno + iffalse .Done + writetext AcademyNotebookText3 + waitbutton +.Done: + closetext + end + +AcademyStickerMachine: +; unused + jumptext AcademyStickerMachineText + +AcademyBookshelf: + jumpstd difficultbookshelf + +AcademyEarlSpinMovement: + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + turn_head LEFT + turn_head UP + turn_head RIGHT + turn_head DOWN + step_end + +AcademyEarlIntroText: + text "EARL, I am!" + + para "Wonderful are" + line "#MON, yes!" + + para "Teach you I will" + line "to be a better" + cont "trainer!" + + para "What you want to" + line "know? Want to be" + cont "a winner is you?" + done + +AcademyEarlTeachHowToWinText: + text "Good! Teach you," + line "I will!" + + para "In battle, #MON" + line "top on list jump" + cont "out first!" + + para "Change order in" + line "list, make battle" + cont "easy, maybe!" + + para "More from me you" + line "want to hear?" + done + +AcademyEarlTeachMoreText: + text "So, want to know" + line "how to raise" + cont "#MON well?" + done + +AcademyEarlTeachHowToRaiseWellText: + text "Fine! Teach you," + line "I will!" + + para "If #MON come" + line "out in battle even" + + para "briefly, some EXP." + line "points it gets." + + para "At top of list put" + line "weak #MON." + + para "Switch in battle" + line "quick!" + + para "This way, weak" + line "#MON strong" + cont "become!" + done + +AcademyEarlNoMoreToTeachText: + text "Oh! Smart student" + line "you are! Nothing" + cont "more do I teach!" + + para "Good to #MON" + line "you must be!" + done + +EarlsPokemonAcademyYoungster1Text: + text "I'm taking notes" + line "of the teacher's" + cont "lecture." + + para "I'd better copy" + line "the stuff on the" + cont "blackboard too." + done + +EarlsPokemonAcademyGameboyKid1Text: + text "I traded my best" + line "#MON to the" + cont "guy beside me." + done + +EarlsPokemonAcademyGameboyKid2Text: + text "Huh? The #MON I" + line "just got is hold-" + cont "ing something!" + done + +EarlsPokemonAcademyYoungster2Text: + text "A #MON holding" + line "a BERRY will heal" + cont "itself in battle." + + para "Many other items" + line "can be held by" + cont "#MON…" + + para "It sure is tough" + line "taking notes…" + done + +AcademyBlackboardText: + text "The blackboard" + line "describes #MON" + + para "status changes in" + line "battle." + done + +AcademyBlackboardText2: +; unused + text "Read which topic?" + done + +AcademyPoisonText: + text "If poisoned, a" + line "#MON steadily" + cont "loses HP." + + para "Poison lingers" + line "after the battle," + + para "and HP is lost as" + line "you walk." + + para "To cure it, use an" + line "ANTIDOTE." + done + +AcademyParalysisText: + text "Paralysis reduces" + line "speed and may" + cont "prevent movement." + + para "It remains after" + line "battle, so use" + cont "a PARLYZ HEAL." + done + +AcademySleepText: + text "If asleep, your" + line "#MON can't make" + cont "a move." + + para "A sleeping #MON" + line "doesn't wake up" + cont "after battle." + + para "Wake it up with" + line "an AWAKENING." + done + +AcademyBurnText: + text "A burn steadily" + line "consumes HP." + + para "It also reduces" + line "attack power." + + para "A burn lingers" + line "after battle." + + para "Use a BURN HEAL as" + line "the cure." + done + +AcademyFreezeText: + text "If your #MON is" + line "frozen, it can't" + cont "do a thing." + + para "It remains frozen" + line "after battle." + + para "Thaw it out with" + line "an ICE HEAL." + done + +AcademyNotebookText: + text "It's this kid's" + line "notebook…" + + para "Catch #MON" + line "using # BALLS." + + para "Up to six can be" + line "in your party." + + para "Keep reading?" + done + +AcademyNotebookText1: + text "Before throwing a" + line "# BALL, weaken" + cont "the target first." + + para "A poisoned or" + line "burned #MON is" + cont "easier to catch." + + para "Keep reading?" + done + +AcademyNotebookText2: + text "Some moves may" + line "cause confusion." + + para "Confusion may make" + line "a #MON attack" + cont "itself." + + para "Leaving battle" + line "clears up any" + cont "confusion." + + para "Keep reading?" + done + +AcademyNotebookText3: + text "People who catch" + line "and use #MON" + + para "in battle are" + line "#MON trainers." + + para "They are expected" + line "to visit #MON" + + para "GYMS and defeat" + line "other trainers." + + para "The next page" + line "is… Blank!" + + para "Boy: E-he-he…" + + para "I haven't written" + line "anymore…" + done + +AcademyStickerMachineText: + text "This super machine" + line "prints data out as" + + para "stickers!" + done + +EarlsPokemonAcademy_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 3, 15, VIOLET_CITY, 3 + warp_event 4, 15, VIOLET_CITY, 3 + + db 0 ; coord events + + db 4 ; bg events + bg_event 0, 1, BGEVENT_READ, AcademyBookshelf + bg_event 1, 1, BGEVENT_READ, AcademyBookshelf + bg_event 3, 0, BGEVENT_READ, AcademyBlackboard + bg_event 4, 0, BGEVENT_READ, AcademyBlackboard + + db 6 ; object events + object_event 4, 2, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, EarlsPokemonAcademyYoungster1Script, -1 + object_event 3, 11, SPRITE_GAMEBOY_KID, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EarlsPokemonAcademyGameboyKid1Script, -1 + object_event 4, 11, SPRITE_GAMEBOY_KID, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, EarlsPokemonAcademyGameboyKid2Script, -1 + object_event 4, 7, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EarlsPokemonAcademyYoungster2Script, -1 + object_event 2, 4, SPRITE_POKEDEX, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, AcademyNotebook, -1 diff --git a/maps/Route32Pokecenter1F.asm b/maps/Route32Pokecenter1F.asm new file mode 100644 index 00000000..0f51be40 --- /dev/null +++ b/maps/Route32Pokecenter1F.asm @@ -0,0 +1,110 @@ + const_def 2 ; object constants + const ROUTE32POKECENTER1F_NURSE + const ROUTE32POKECENTER1F_FISHING_GURU + const ROUTE32POKECENTER1F_COOLTRAINER_F + +Route32Pokecenter1F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +Route32Pokecenter1FNurseScript: + jumpstd pokecenternurse + +Route32Pokecenter1FFishingGuruScript: + faceplayer + opentext + checkevent EVENT_GOT_OLD_ROD + iftrue .GotOldRod + writetext Route32Pokecenter1FFishingGuruText_Question + yesorno + iffalse .Refused + writetext Route32Pokecenter1FFishingGuruText_Yes + buttonsound + verbosegiveitem OLD_ROD + writetext Route32Pokecenter1FFishingGuruText_GiveOldRod + waitbutton + closetext + setevent EVENT_GOT_OLD_ROD + end + +.Refused: + writetext Route32Pokecenter1FFishingGuruText_No + waitbutton + closetext + end + +.GotOldRod: + writetext Route32Pokecenter1FFishingGuruText_After + waitbutton + closetext + end + +Route32Pokecenter1FCooltrainerFScript: + jumptextfaceplayer Route32Pokecenter1FCooltrainerFText + +Route32Pokecenter1FFishingGuruText_Question: + text "This is a great" + line "fishing spot." + + para "You saw people" + line "fishing? How" + cont "about you?" + + para "Would you like one" + line "of my RODS?" + done + +Route32Pokecenter1FFishingGuruText_Yes: + text "Heh, that's good" + line "to hear." + + para "Now you're an" + line "angler too!" + done + +Route32Pokecenter1FFishingGuruText_GiveOldRod: + text "Fishing is great!" + + para "If there's water," + line "be it the sea or a" + + para "stream, try out" + line "your ROD." + done + +Route32Pokecenter1FFishingGuruText_No: + text "Oh. That's rather" + line "disappointing…" + done + +Route32Pokecenter1FFishingGuruText_After: + text "Yo, youngster. How" + line "are they biting?" + done + +Route32Pokecenter1FCooltrainerFText: + text "What should I make" + line "my #MON hold?" + + para "Maybe an item that" + line "increases ATTACK" + cont "power…" + done + +Route32Pokecenter1F_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 3, 7, ROUTE_32, 1 + warp_event 4, 7, ROUTE_32, 1 + warp_event 0, 7, POKECENTER_2F, 1 + + db 0 ; coord events + + db 0 ; bg events + + db 3 ; object events + object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route32Pokecenter1FNurseScript, -1 + object_event 1, 4, SPRITE_FISHING_GURU, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route32Pokecenter1FFishingGuruScript, -1 + object_event 6, 2, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route32Pokecenter1FCooltrainerFScript, -1 diff --git a/maps/Route32RuinsOfAlphGate.asm b/maps/Route32RuinsOfAlphGate.asm new file mode 100644 index 00000000..3329d54f --- /dev/null +++ b/maps/Route32RuinsOfAlphGate.asm @@ -0,0 +1,63 @@ + const_def 2 ; object constants + const ROUTE32RUINSOFALPHGATE_OFFICER + const ROUTE32RUINSOFALPHGATE_POKEFAN_M + const ROUTE32RUINSOFALPHGATE_YOUNGSTER + +Route32RuinsOfAlphGate_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +Route32RuinsOfAlphGateOfficerScript: + jumptextfaceplayer Route32RuinsOfAlphGateOfficerText + +Route32RuinsOfAlphGatePokefanMScript: + jumptextfaceplayer Route32RuinsOfAlphGatePokefanMText + +Route32RuinsOfAlphGateYoungsterScript: + jumptextfaceplayer Route32RuinsOfAlphGateYoungsterText + +Route32RuinsOfAlphGateOfficerText: + text "RUINS OF ALPH" + + para "A Look-and-Touch" + line "Tourist Site" + + para "Try the sliding" + line "stone panels!" + done + +Route32RuinsOfAlphGatePokefanMText: + text "You're studying" + line "the RUINS?" + + para "I see a scientist" + line "in the making." + done + +Route32RuinsOfAlphGateYoungsterText: + text "There are drawings" + line "on stone panels." + + para "I tried moving" + line "them. I wonder" + cont "what they are." + done + +Route32RuinsOfAlphGate_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 0, 4, RUINS_OF_ALPH_OUTSIDE, 10 + warp_event 0, 5, RUINS_OF_ALPH_OUTSIDE, 11 + warp_event 9, 4, ROUTE_32, 2 + warp_event 9, 5, ROUTE_32, 3 + + db 0 ; coord events + + db 0 ; bg events + + db 3 ; object events + object_event 5, 2, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route32RuinsOfAlphGateOfficerScript, -1 + object_event 8, 2, SPRITE_POKEFAN_M, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, Route32RuinsOfAlphGatePokefanMScript, -1 + object_event 1, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route32RuinsOfAlphGateYoungsterScript, -1 diff --git a/maps/Route35GoldenrodGate.asm b/maps/Route35GoldenrodGate.asm new file mode 100644 index 00000000..b2816dbd --- /dev/null +++ b/maps/Route35GoldenrodGate.asm @@ -0,0 +1,194 @@ + const_def 2 ; object constants + const ROUTE35GOLDENRODGATE_OFFICER + const ROUTE35GOLDENRODGATE_POKEFAN_F + const ROUTE35GOLDENRODGATE_FISHER + +Route35GoldenrodGate_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +RandyScript: + faceplayer + opentext + checkevent EVENT_GOT_HP_UP_FROM_RANDY + iftrue .gothpup + checkevent EVENT_GAVE_KENYA + iftrue .questcomplete + checkevent EVENT_GOT_KENYA + iftrue .alreadyhavekenya + writetext UnknownText_0x69ddd + yesorno + iffalse .refused + writetext UnknownText_0x69e48 + buttonsound + waitsfx + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, .partyfull + writetext UnknownText_0x69eb8 + playsound SFX_KEY_ITEM + waitsfx + givepoke SPEAROW, 10, NO_ITEM, TRUE, GiftSpearowName, GiftSpearowOTName + givepokemail GiftSpearowMail + setevent EVENT_GOT_KENYA +.alreadyhavekenya + writetext UnknownText_0x69ed6 + waitbutton + closetext + end + +.partyfull + writetext UnknownText_0x69f56 + waitbutton + closetext + end + +.refused + writetext UnknownText_0x69f74 + waitbutton + closetext + end + +.questcomplete + writetext UnknownText_0x69f8b + buttonsound + verbosegiveitem HP_UP + iffalse .bagfull + setevent EVENT_GOT_HP_UP_FROM_RANDY +.gothpup + writetext UnknownText_0x69fd9 + waitbutton +.bagfull + closetext + end + +GiftSpearowMail: + db FLOWER_MAIL + db "DARK CAVE leads" + next "to another road@" + +GiftSpearowName: + db "KENYA@" + +GiftSpearowOTName: + db "RANDY@" + +Route35GoldenrodGatePokefanFScript: + faceplayer + opentext + checkevent EVENT_FOUGHT_SUDOWOODO + iftrue .FoughtSudowoodo + writetext Route35GoldenrodGatePokefanFText + waitbutton + closetext + end + +.FoughtSudowoodo + writetext Route35GoldenrodGatePokefanFText_FoughtSudowoodo + waitbutton + closetext + end + +UnknownText_0x69ddd: + text "Excuse me, guy!" + line "Can you do a guy" + cont "a favor?" + + para "Can you take this" + line "#MON with MAIL" + cont "to my friend?" + + para "He's on ROUTE 31." + done + +UnknownText_0x69e48: + text "You will? Perfect!" + line "Thanks, guy!" + + para "My pal's a chubby" + line "guy who snoozes" + cont "all the time." + + para "You'll recognize" + line "him right away!" + done + +UnknownText_0x69eb8: + text "<PLAYER> received a" + line "#MON with MAIL." + done + +UnknownText_0x69ed6: + text "You can read it," + line "but don't lose it!" + cont "ROUTE 31!" + + para "Oh, yeah. There" + line "was a weird tree" + cont "blocking the road." + + para "I wonder if it's" + line "been cleared?" + done + +UnknownText_0x69f56: + text "You can't carry" + line "another #MON…" + done + +UnknownText_0x69f74: + text "Oh… Never mind," + line "then…" + done + +UnknownText_0x69f8b: + text "Thanks, guy! You" + line "made the delivery" + cont "for me!" + + para "Here's something" + line "for your trouble!" + done + +UnknownText_0x69fd9: + text "My pal was snooz-" + line "ing, right? Heh," + cont "what'd I say?" + done + +Route35GoldenrodGatePokefanFText: + text "A strange tree is" + line "blocking the road." + + para "It wriggles around" + line "if you talk to it." + + para "I heard it became" + line "wild when someone" + + para "watered it with a" + line "SQUIRTBOTTLE." + done + +Route35GoldenrodGatePokefanFText_FoughtSudowoodo: + text "I like the #MON" + line "Lullaby they play" + cont "on the radio." + done + +Route35GoldenrodGate_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 4, 0, ROUTE_35, 1 + warp_event 5, 0, ROUTE_35, 2 + warp_event 4, 7, GOLDENROD_CITY, 13 + warp_event 5, 7, GOLDENROD_CITY, 13 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 0, 4, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RandyScript, -1 + object_event 6, 4, SPRITE_POKEFAN_F, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Route35GoldenrodGatePokefanFScript, -1 diff --git a/maps/Route35NationalParkGate.asm b/maps/Route35NationalParkGate.asm new file mode 100644 index 00000000..35040564 --- /dev/null +++ b/maps/Route35NationalParkGate.asm @@ -0,0 +1,452 @@ + const_def 2 ; object constants + const ROUTE35NATIONALPARKGATE_OFFICER1 + const ROUTE35NATIONALPARKGATE_YOUNGSTER + const ROUTE35NATIONALPARKGATE_OFFICER2 + +Route35NationalParkGate_MapScripts: + db 3 ; scene scripts + scene_script .DummyScene0 ; SCENE_ROUTE35NATIONALPARKGATE_NOTHING + scene_script .DummyScene1 ; SCENE_ROUTE35NATIONALPARKGATE_UNUSED + scene_script .LeaveContestEarly ; SCENE_ROUTE35NATIONALPARKGATE_LEAVE_CONTEST_EARLY + + db 2 ; callbacks + callback MAPCALLBACK_NEWMAP, .CheckIfContestRunning + callback MAPCALLBACK_OBJECTS, .CheckIfContestAvailable + +.DummyScene0: + end + +.DummyScene1: + end + +.LeaveContestEarly: + priorityjump .LeavingContestEarly + end + +.CheckIfContestRunning: + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue .BugContestIsRunning + setscene SCENE_ROUTE35NATIONALPARKGATE_NOTHING + return + +.BugContestIsRunning: + setscene SCENE_ROUTE35NATIONALPARKGATE_LEAVE_CONTEST_EARLY + return + +.CheckIfContestAvailable: + checkcode VAR_WEEKDAY + ifequal TUESDAY, .SetContestOfficer + ifequal THURSDAY, .SetContestOfficer + ifequal SATURDAY, .SetContestOfficer + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue .BugContestIsRunning + disappear ROUTE35NATIONALPARKGATE_OFFICER1 + appear ROUTE35NATIONALPARKGATE_YOUNGSTER + appear ROUTE35NATIONALPARKGATE_OFFICER2 + return + +.SetContestOfficer: + appear ROUTE35NATIONALPARKGATE_OFFICER1 + disappear ROUTE35NATIONALPARKGATE_YOUNGSTER + disappear ROUTE35NATIONALPARKGATE_OFFICER2 + return + +.LeavingContestEarly: + applymovement PLAYER, MovementData_0x6a2e2 + turnobject ROUTE35NATIONALPARKGATE_OFFICER1, RIGHT + opentext + checkcode VAR_CONTESTMINUTES + addvar 1 + vartomem MEM_BUFFER_0 + writetext UnknownText_0x6a79a + yesorno + iffalse .GoBackToContest + writetext UnknownText_0x6a7db + waitbutton + closetext + jumpstd bugcontestresultswarp + +.GoBackToContest: + writetext UnknownText_0x6a823 + waitbutton + closetext + scall Route35NationalParkGate_EnterContest + playsound SFX_ENTER_DOOR + special FadeOutPalettes + waitsfx + warp NATIONAL_PARK_BUG_CONTEST, 10, 47 + end + +Route35OfficerScriptContest: + checkcode VAR_WEEKDAY + ifequal SUNDAY, Route35NationalParkGate_NoContestToday + ifequal MONDAY, Route35NationalParkGate_NoContestToday + ifequal WEDNESDAY, Route35NationalParkGate_NoContestToday + ifequal FRIDAY, Route35NationalParkGate_NoContestToday + faceplayer + opentext + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue Route35NationalParkGate_ContestIsOver + scall Route35NationalParkGate_GetDayOfWeek + writetext UnknownText_0x6a2eb + yesorno + iffalse Route35NationalParkGate_DeclinedToParticipate + checkcode VAR_PARTYCOUNT + ifgreater 1, Route35NationalParkGate_LeaveTheRestBehind + special ContestDropOffMons + clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER +Route35NationalParkGate_OkayToProceed: + setflag ENGINE_BUG_CONTEST_TIMER + special PlayMapMusic + writetext UnknownText_0x6a39d + buttonsound + writetext UnknownText_0x6a3c7 + playsound SFX_ITEM + waitsfx + writetext UnknownText_0x6a3e2 + waitbutton + closetext + special GiveParkBalls + scall Route35NationalParkGate_EnterContest + playsound SFX_ENTER_DOOR + special FadeOutPalettes + waitsfx + special SelectRandomBugContestContestants + warp NATIONAL_PARK_BUG_CONTEST, 10, 47 + end + +Route35NationalParkGate_EnterContest: + checkcode VAR_FACING + ifequal LEFT, Route35NationalParkGate_FacingLeft + applymovement PLAYER, MovementData_0x6a2e5 + end + +Route35NationalParkGate_FacingLeft: + applymovement PLAYER, MovementData_0x6a2e9 + end + +Route35NationalParkGate_LeaveTheRestBehind: + checkcode VAR_PARTYCOUNT + ifless PARTY_LENGTH, Route35NationalParkGate_LessThanFullParty + checkcode VAR_BOXSPACE + ifequal 0, Route35NationalParkGate_NoRoomInBox + +Route35NationalParkGate_LessThanFullParty: + special CheckFirstMonIsEgg + ifequal TRUE, Route35NationalParkGate_FirstMonIsEgg + writetext UnknownText_0x6a4c6 + yesorno + iffalse Route35NationalParkGate_DeclinedToLeaveMonsBehind + special ContestDropOffMons + iftrue Route35NationalParkGate_FirstMonIsFainted + setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER + writetext UnknownText_0x6a537 + buttonsound + writetext UnknownText_0x6a56b + playsound SFX_GOT_SAFARI_BALLS + waitsfx + buttonsound + jump Route35NationalParkGate_OkayToProceed + +Route35NationalParkGate_DeclinedToParticipate: + writetext UnknownText_0x6a5dc + waitbutton + closetext + end + +Route35NationalParkGate_DeclinedToLeaveMonsBehind: + writetext UnknownText_0x6a597 + waitbutton + closetext + end + +Route35NationalParkGate_FirstMonIsFainted: + writetext UnknownText_0x6a608 + waitbutton + closetext + end + +Route35NationalParkGate_NoRoomInBox: + writetext UnknownText_0x6a67c + waitbutton + closetext + end + +Route35NationalParkGate_FirstMonIsEgg: + writetext UnknownText_0x6a71f + waitbutton + closetext + end + +Route35NationalParkGate_ContestIsOver: + writetext UnknownText_0x6a84f + waitbutton + closetext + end + +Route35NationalParkGate_NoContestToday: + jumptextfaceplayer UnknownText_0x6a894 + +Route35NationalParkGateOfficerScript: + faceplayer + opentext + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue Route35NationalParkGate_ContestIsOver + writetext UnknownText_0x6a894 + waitbutton + closetext + end + +Route35NationalParkGateYoungsterScript: + jumptextfaceplayer Route35NationalParkGateYoungsterText + +BugCatchingContestExplanationSign: + jumptext BugCatchingContestExplanationText + +Route35NationalParkGate_GetDayOfWeek: + jumpstd daytotext + end + +MovementData_0x6a2e2: + step DOWN + turn_head LEFT + step_end + +MovementData_0x6a2e5: + step RIGHT + step UP + step UP + step_end + +MovementData_0x6a2e9: + step UP + step_end + +UnknownText_0x6a2eb: + text "Today's @" + text_from_ram wStringBuffer3 + text "." + line "That means the" + + para "Bug-Catching Con-" + line "test is on today." + + para "The rules are sim-" + line "ple." + + para "Using one of your" + line "#MON, catch a" + + para "bug #MON to be" + line "judged." + + para "Would you like to" + line "give it a try?" + done + +UnknownText_0x6a39d: + text "Here are the PARK" + line "BALLS for the" + cont "Contest." + done + +UnknownText_0x6a3c7: + text "<PLAYER> received" + line "20 PARK BALLS." + done + +UnknownText_0x6a3e2: + text "The person who" + line "gets the strong-" + cont "est bug #MON" + cont "is the winner." + + para "You have 20" + line "minutes." + + para "If you run out of" + line "PARK BALLS, you're" + cont "done." + + para "You can keep the" + line "last #MON you" + cont "catch as your own." + + para "Go out and catch" + line "the strongest bug" + + para "#MON you can" + line "find!" + done + +UnknownText_0x6a4c6: + text "Uh-oh…" + + para "You have more than" + line "one #MON." + + para "You'll have to use" + line "@" + text_from_ram wStringBuffer3 + text ", the" + + para "first #MON in" + line "your party." + + para "Is that OK with" + line "you?" + done + +UnknownText_0x6a537: + text "Fine, we'll hold" + line "your other #MON" + cont "while you compete." + done + +UnknownText_0x6a56b: + text "<PLAYER>'s #MON" + line "were left with the" + cont "CONTEST HELPER." + done + +UnknownText_0x6a597: + text "Please choose the" + line "#MON to be used" + + para "in the Contest," + line "then come see me." + done + +UnknownText_0x6a5dc: + text "OK. We hope you'll" + line "take part in the" + cont "future." + done + +UnknownText_0x6a608: + text "Uh-oh…" + line "The first #MON" + + para "in your party" + line "can't battle." + + para "Please switch it" + line "with the #MON" + + para "you want to use," + line "then come see me." + done + +UnknownText_0x6a67c: + text "Uh-oh…" + line "Both your party" + + para "and your PC BOX" + line "are full." + + para "You have no room" + line "to put the bug" + cont "#MON you catch." + + para "Please make room" + line "in your party or" + + para "your PC BOX, then" + line "come see me." + done + +UnknownText_0x6a71f: + text "Uh-oh…" + line "You have an EGG as" + + para "the first #MON" + line "in your party." + + para "Please switch it" + line "with the #MON" + + para "you want to use," + line "then come see me." + done + +UnknownText_0x6a79a: + text "You still have @" + text_from_ram wStringBuffer3 + text_start + line "minute(s) left." + + para "Do you want to" + line "finish now?" + done + +UnknownText_0x6a7db: + text "OK. Please wait at" + line "the North Gate for" + + para "the announcement" + line "of the winners." + done + +UnknownText_0x6a823: + text "OK. Please get" + line "back outside and" + cont "finish up." + done + +UnknownText_0x6a84f: + text "Today's Contest is" + line "over. We hope you" + + para "will participate" + line "in the future." + done + +UnknownText_0x6a894: + text "We hold Contests" + line "regularly in the" + + para "PARK. You should" + line "give it a shot." + done + +Route35NationalParkGateYoungsterText: + text "When is the next" + line "Bug-Catching Con-" + cont "test going to be?" + done + +BugCatchingContestExplanationText: + text "The Bug-Catching" + line "Contest is held on" + + para "Tuesday, Thursday" + line "and Saturday." + + para "Not only do you" + line "earn a prize just" + + para "for participating," + line "you also get to" + + para "keep a bug #MON" + line "that you catch." + done + +Route35NationalParkGate_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 3, 0, NATIONAL_PARK, 3 + warp_event 4, 0, NATIONAL_PARK, 4 + warp_event 3, 7, ROUTE_35, 3 + warp_event 4, 7, ROUTE_35, 3 + + db 0 ; coord events + + db 1 ; bg events + bg_event 5, 0, BGEVENT_READ, BugCatchingContestExplanationSign + + db 3 ; object events + object_event 2, 1, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route35OfficerScriptContest, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY + object_event 6, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route35NationalParkGateYoungsterScript, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER + object_event 0, 3, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route35NationalParkGateOfficerScript, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY diff --git a/maps/Route36NationalParkGate.asm b/maps/Route36NationalParkGate.asm new file mode 100644 index 00000000..52fc9ac2 --- /dev/null +++ b/maps/Route36NationalParkGate.asm @@ -0,0 +1,875 @@ + const_def 2 ; object constants + const ROUTE36NATIONALPARKGATE_OFFICER1 + const ROUTE36NATIONALPARKGATE_YOUNGSTER1 + const ROUTE36NATIONALPARKGATE_YOUNGSTER2 + const ROUTE36NATIONALPARKGATE_ROCKER + const ROUTE36NATIONALPARKGATE_POKEFAN_M + const ROUTE36NATIONALPARKGATE_YOUNGSTER3 + const ROUTE36NATIONALPARKGATE_YOUNGSTER4 + const ROUTE36NATIONALPARKGATE_LASS + const ROUTE36NATIONALPARKGATE_YOUNGSTER5 + const ROUTE36NATIONALPARKGATE_YOUNGSTER6 + const ROUTE36NATIONALPARKGATE_YOUNGSTER7 + const ROUTE36NATIONALPARKGATE_OFFICER2 + +Route36NationalParkGate_MapScripts: + db 3 ; scene scripts + scene_script .DummyScene0 ; SCENE_ROUTE36NATIONALPARKGATE_NOTHING + scene_script .DummyScene1 ; SCENE_ROUTE36NATIONALPARKGATE_UNUSED + scene_script .LeaveContestEarly ; SCENE_ROUTE36NATIONALPARKGATE_LEAVE_CONTEST_EARLY + + db 2 ; callbacks + callback MAPCALLBACK_NEWMAP, .CheckIfContestRunning + callback MAPCALLBACK_OBJECTS, .CheckIfContestAvailable + +.DummyScene0: + end + +.DummyScene1: + end + +.LeaveContestEarly: + priorityjump .LeavingContestEarly + end + +.CheckIfContestRunning: + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue .BugContestIsRunning + setscene SCENE_ROUTE36NATIONALPARKGATE_NOTHING + return + +.BugContestIsRunning: + setscene SCENE_ROUTE36NATIONALPARKGATE_LEAVE_CONTEST_EARLY + return + +.CheckIfContestAvailable: + checkevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE + iftrue .Return + checkcode VAR_WEEKDAY + ifequal TUESDAY, .SetContestOfficer + ifequal THURSDAY, .SetContestOfficer + ifequal SATURDAY, .SetContestOfficer + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue .SetContestOfficer + disappear ROUTE36NATIONALPARKGATE_OFFICER1 + appear ROUTE36NATIONALPARKGATE_OFFICER2 + return + +.SetContestOfficer: + appear ROUTE36NATIONALPARKGATE_OFFICER1 + disappear ROUTE36NATIONALPARKGATE_OFFICER2 +.Return: + return + +.LeavingContestEarly: + turnobject PLAYER, UP + opentext + checkcode VAR_CONTESTMINUTES + addvar 1 + vartomem MEM_BUFFER_0 + writetext UnknownText_0x6b284 + yesorno + iffalse .GoBackToContest + writetext UnknownText_0x6b2c5 + waitbutton + closetext + special FadeBlackQuickly + special ReloadSpritesNoPalettes + scall .CopyContestants + disappear ROUTE36NATIONALPARKGATE_OFFICER1 + appear ROUTE36NATIONALPARKGATE_OFFICER2 + applymovement PLAYER, MovementData_0x6add1 + pause 15 + special FadeInQuickly + jumpstd bugcontestresults + +.GoBackToContest: + writetext UnknownText_0x6b300 + waitbutton + closetext + turnobject PLAYER, LEFT + playsound SFX_EXIT_BUILDING + special FadeOutPalettes + waitsfx + warp NATIONAL_PARK_BUG_CONTEST, 33, 18 + end + +.CopyContestants: + checkevent EVENT_BUG_CATCHING_CONTESTANT_1A + iftrue .Not1 + appear ROUTE36NATIONALPARKGATE_YOUNGSTER1 +.Not1: + checkevent EVENT_BUG_CATCHING_CONTESTANT_2A + iftrue .Not2 + appear ROUTE36NATIONALPARKGATE_YOUNGSTER2 +.Not2: + checkevent EVENT_BUG_CATCHING_CONTESTANT_3A + iftrue .Not3 + appear ROUTE36NATIONALPARKGATE_ROCKER +.Not3: + checkevent EVENT_BUG_CATCHING_CONTESTANT_4A + iftrue .Not4 + appear ROUTE36NATIONALPARKGATE_POKEFAN_M +.Not4: + checkevent EVENT_BUG_CATCHING_CONTESTANT_5A + iftrue .Not5 + appear ROUTE36NATIONALPARKGATE_YOUNGSTER3 +.Not5: + checkevent EVENT_BUG_CATCHING_CONTESTANT_6A + iftrue .Not6 + appear ROUTE36NATIONALPARKGATE_YOUNGSTER4 +.Not6: + checkevent EVENT_BUG_CATCHING_CONTESTANT_7A + iftrue .Not7 + appear ROUTE36NATIONALPARKGATE_LASS +.Not7: + checkevent EVENT_BUG_CATCHING_CONTESTANT_8A + iftrue .Not8 + appear ROUTE36NATIONALPARKGATE_YOUNGSTER5 +.Not8: + checkevent EVENT_BUG_CATCHING_CONTESTANT_9A + iftrue .Not9 + appear ROUTE36NATIONALPARKGATE_YOUNGSTER6 +.Not9: + checkevent EVENT_BUG_CATCHING_CONTESTANT_10A + iftrue .Not10 + appear ROUTE36NATIONALPARKGATE_YOUNGSTER7 +.Not10: + special UpdateSprites + end + +Route36OfficerScriptContest: + checkcode VAR_WEEKDAY + ifequal SUNDAY, _ContestNotOn + ifequal MONDAY, _ContestNotOn + ifequal WEDNESDAY, _ContestNotOn + ifequal FRIDAY, _ContestNotOn + faceplayer + opentext + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue Route36Officer_ContestHasConcluded + scall Route36ParkGate_DayToText + writetext UnknownText_0x6add5 + yesorno + iffalse .DecidedNotToJoinContest + checkcode VAR_PARTYCOUNT + ifgreater 1, .LeaveMonsWithOfficer + special ContestDropOffMons + clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER +.ResumeStartingContest: + setflag ENGINE_BUG_CONTEST_TIMER + special PlayMapMusic + writetext UnknownText_0x6ae87 + buttonsound + waitsfx + writetext UnknownText_0x6aeb1 + playsound SFX_ITEM + waitsfx + writetext UnknownText_0x6aecc + waitbutton + closetext + setflag ENGINE_BUG_CONTEST_TIMER + special GiveParkBalls + turnobject PLAYER, LEFT + playsound SFX_EXIT_BUILDING + special FadeOutPalettes + waitsfx + special SelectRandomBugContestContestants + warp NATIONAL_PARK_BUG_CONTEST, 33, 18 + end + +.LeaveMonsWithOfficer: + checkcode VAR_PARTYCOUNT + ifless PARTY_LENGTH, .ContinueLeavingMons + checkcode VAR_BOXSPACE + ifequal 0, .BoxFull +.ContinueLeavingMons: + special CheckFirstMonIsEgg + ifequal TRUE, .FirstMonIsEgg + writetext UnknownText_0x6afb0 + yesorno + iffalse .RefusedToLeaveMons + special ContestDropOffMons + iftrue .FirstMonIsFainted + setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER + writetext UnknownText_0x6b021 + buttonsound + writetext UnknownText_0x6b055 + playsound SFX_GOT_SAFARI_BALLS + waitsfx + buttonsound + jump .ResumeStartingContest + +.DecidedNotToJoinContest: + writetext UnknownText_0x6b0c6 + waitbutton + closetext + end + +.RefusedToLeaveMons: + writetext UnknownText_0x6b081 + waitbutton + closetext + end + +.FirstMonIsFainted: + writetext UnknownText_0x6b0f2 + waitbutton + closetext + end + +.BoxFull: + writetext UnknownText_0x6b166 + waitbutton + closetext + end + +.FirstMonIsEgg: + writetext UnknownText_0x6b209 + waitbutton + closetext + end + +Route36Officer_ContestHasConcluded: + checkevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE + iftrue .Sunstone + checkevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE + iftrue .Everstone + checkevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY + iftrue .GoldBerry + checkevent EVENT_CONTEST_OFFICER_HAS_BERRY + iftrue .Berry + writetext UnknownText_0x6b32b + waitbutton + closetext + end + +.Sunstone: + writetext UnknownText_0x6b97f + buttonsound + verbosegiveitem SUN_STONE + iffalse .BagFull + clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE + closetext + end + +.Everstone: + writetext UnknownText_0x6b97f + buttonsound + verbosegiveitem EVERSTONE + iffalse .BagFull + clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE + closetext + end + +.GoldBerry: + writetext UnknownText_0x6b97f + buttonsound + verbosegiveitem GOLD_BERRY + iffalse .BagFull + clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY + closetext + end + +.Berry: + writetext UnknownText_0x6b97f + buttonsound + verbosegiveitem BERRY + iffalse .BagFull + clearevent EVENT_CONTEST_OFFICER_HAS_BERRY + closetext + end + +.BagFull: + writetext UnknownText_0x6b910 + waitbutton + closetext + end + +_ContestNotOn: + jumptextfaceplayer UnknownText_0x6b370 + +Route36NationalParkGateOfficerScript: + faceplayer + opentext + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue Route36Officer_ContestHasConcluded + writetext UnknownText_0x6b370 + waitbutton + closetext + end + +Route36ParkGate_DayToText: + jumpstd daytotext + end + +BugCatchingContestant1BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant1BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant1BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant2BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant2BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant2BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant3BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant3BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant3BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant4BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant4BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant4BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant5BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant5BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant5BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant6BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant6BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant6BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant7BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant7BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant7BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant8BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant8BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant8BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant9BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant9BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant9BStillCompetingText + waitbutton + closetext + end + +BugCatchingContestant10BScript: + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iffalse .StillCompeting + writetext BugCatchingContestant10BText + waitbutton + closetext + end + +.StillCompeting: + writetext BugCatchingContestant10BStillCompetingText + waitbutton + closetext + end + +UnusedBugCatchingContestExplanationSign: +; duplicate of BugCatchingContestExplanationSign in Route35NationalParkGate.asm + jumptext UnusedBugCatchingContestExplanationText + +MovementData_0x6add1: + big_step DOWN + big_step RIGHT + turn_head UP + step_end + +UnknownText_0x6add5: + text "Today's @" + text_from_ram wStringBuffer3 + text "." + line "That means the" + + para "Bug-Catching Con-" + line "test is on today." + + para "The rules are" + line "simple." + + para "Using one of your" + line "#MON, catch a" + + para "bug #MON to be" + line "judged." + + para "Would you like to" + line "give it a try?" + done + +UnknownText_0x6ae87: + text "Here are the PARK" + line "BALLS for the" + cont "Contest." + done + +UnknownText_0x6aeb1: + text "<PLAYER> received" + line "20 PARK BALLS." + done + +UnknownText_0x6aecc: + text "The person who" + line "gets the strong-" + cont "est bug #MON" + cont "is the winner." + + para "You have 20" + line "minutes." + + para "If you run out of" + line "PARK BALLS, you're" + cont "done." + + para "You may keep the" + line "last #MON you" + cont "catch as your own." + + para "Go out and catch" + line "the strongest bug" + + para "#MON you can" + line "find!" + done + +UnknownText_0x6afb0: + text "Uh-oh…" + + para "You have more than" + line "one #MON." + + para "You'll have to use" + line "@" + text_from_ram wStringBuffer3 + text ", the" + + para "first #MON in" + line "your party." + + para "Is that OK with" + line "you?" + done + +UnknownText_0x6b021: + text "Fine. We'll hold" + line "your other #MON" + cont "while you compete." + done + +UnknownText_0x6b055: + text "<PLAYER>'s #MON" + line "were left with the" + cont "CONTEST HELPER." + done + +UnknownText_0x6b081: + text "Please choose the" + line "#MON to be used" + + para "in the Contest," + line "then come see me." + done + +UnknownText_0x6b0c6: + text "OK. We hope you'll" + line "take part in the" + cont "future." + done + +UnknownText_0x6b0f2: + text "Uh-oh…" + line "The first #MON" + + para "in your party" + line "can't battle." + + para "Please switch it" + line "with the #MON" + + para "you want to use," + line "then come see me." + done + +UnknownText_0x6b166: + text "Uh-oh…" + line "Both your party" + + para "and your PC BOX" + line "are full." + + para "You have nowhere" + line "to put the bug" + cont "#MON you catch." + + para "Please make room" + line "in your party or" + + para "your PC BOX, then" + line "come see me." + done + +UnknownText_0x6b209: + text "Uh-oh…" + line "You have an EGG as" + + para "the first #MON" + line "in your party." + + para "Please switch it" + line "with the #MON" + + para "you want to use," + line "then come see me." + done + +UnknownText_0x6b284: + text "You still have @" + text_from_ram wStringBuffer3 + text_start + line "minutes left." + + para "Do you want to" + line "finish now?" + done + +UnknownText_0x6b2c5: + text "OK. Please wait" + line "here for the" + + para "announcement of" + line "the winners." + done + +UnknownText_0x6b300: + text "OK. Please go back" + line "outside and finish" + cont "up." + done + +UnknownText_0x6b32b: + text "Today's Contest is" + line "over. We hope you" + + para "will participate" + line "in the future." + done + +UnknownText_0x6b370: + text "Some #MON can" + line "only be seen in" + cont "the PARK." + done + +BugCatchingContestant1BText: + text "DON: Wow, you beat" + line "me. You're pretty" + cont "good." + done + +BugCatchingContestant1BStillCompetingText: + text "DON: Luck plays a" + line "big part in this." + + para "You never know" + line "what #MON will" + cont "appear." + done + +BugCatchingContestant2BText: + text "ED: I envy you." + line "I just couldn't" + cont "do it this time." + done + +BugCatchingContestant2BStillCompetingText: + text "ED: Maybe you win" + line "with big #MON?" + done + +BugCatchingContestant3BText: + text "NICK: Well done!" + line "I'm going to raise" + cont "my #MON better." + done + +BugCatchingContestant3BStillCompetingText: + text "NICK: Maybe you" + line "get a higher score" + + para "for a #MON of" + line "an unusual color." + done + +BugCatchingContestant4BText: + text "WILLIAM: You're" + line "the winner? What" + cont "did you catch?" + done + +BugCatchingContestant4BStillCompetingText: + text "WILLIAM: Well, I'm" + line "satisfied because" + + para "I caught a #MON" + line "that I wanted." + done + +BugCatchingContestant5BText: + text "BENNY: Congrats!" + line "You have earned my" + cont "respect!" + done + +BugCatchingContestant5BStillCompetingText: + text "BENNY: I caught a" + line "SCYTHER before," + cont "but I didn't win." + done + +BugCatchingContestant6BText: + text "BARRY: That #-" + line "MON you caught…" + cont "it's awesome!" + done + +BugCatchingContestant6BStillCompetingText: + text "BARRY: It's easier" + line "to win if you get" + + para "a high-level bug" + line "#MON." + + para "But I think they" + line "also consider some" + cont "other points." + done + +BugCatchingContestant7BText: + text "CINDY: You won?" + line "That's great!" + + para "Do you feel like" + line "looking for bug" + cont "#MON with me?" + done + +BugCatchingContestant7BStillCompetingText: + text "CINDY: I really" + line "love bug #MON!" + done + +BugCatchingContestant8BText: + text "JOSH: I… I can't" + line "believe I lost at" + cont "bug-catching…" + done + +BugCatchingContestant8BStillCompetingText: + text "JOSH: I heard that" + line "somebody won with" + cont "a CATERPIE!" + done + +BugCatchingContestant9BText: + text "SAMUEL: Next time," + line "I'm going to win." + done + +BugCatchingContestant9BStillCompetingText: + text "SAMUEL: Darn." + line "I thought I would" + cont "score higher…" + done + +BugCatchingContestant10BText: + text "KIPP: Could you" + line "give me some tips?" + + para "I want to study" + line "your style." + done + +BugCatchingContestant10BStillCompetingText: + text "KIPP: I study a" + line "lot, but that's" + + para "not good enough to" + line "win." + done + +UnusedSudowoodoText: +; This text is unused and unreferenced in the final game. +; The tree Pokémon is Sudowoodo. +; The Silph Scope 2 was later reworked into the Squirtbottle. + text "I hear there's a" + line "#MON that looks" + cont "just like a tree." + + para "You can reveal its" + line "identity using a" + cont "SILPHSCOPE 2." + done + +UnusedBugCatchingContestExplanationText: +; duplicate of BugCatchingContestExplanationText in Route35NationalParkGate.asm + text "The Bug-Catching" + line "Contest is held on" + + para "Tuesday, Thursday" + line "and Saturday." + + para "Not only do you" + line "earn a prize just" + + para "for participating," + line "you also get to" + + para "keep a bug #MON" + line "that you catch." + done + +UnknownText_0x6b910: + text "Uh-oh… Your PACK" + line "is full." + + para "We'll hold on to" + line "your prize, but" + cont "only for today." + + para "Please make room," + line "then come see me." + done + +UnknownText_0x6b97f: + text "<PLAYER>?" + + para "Here's the prize" + line "we were holding" + cont "for you." + done + +Route36NationalParkGate_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 0, 4, NATIONAL_PARK, 1 + warp_event 0, 5, NATIONAL_PARK, 2 + warp_event 9, 4, ROUTE_36, 1 + warp_event 9, 5, ROUTE_36, 2 + + db 0 ; coord events + + db 1 ; bg events + bg_event 6, 0, BGEVENT_READ, BugCatchingContestExplanationSign + + db 12 ; object events + object_event 0, 3, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route36OfficerScriptContest, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant1BScript, EVENT_BUG_CATCHING_CONTESTANT_1B + object_event 4, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant2BScript, EVENT_BUG_CATCHING_CONTESTANT_2B + object_event 2, 6, SPRITE_ROCKER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant3BScript, EVENT_BUG_CATCHING_CONTESTANT_3B + object_event 6, 5, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant4BScript, EVENT_BUG_CATCHING_CONTESTANT_4B + object_event 2, 7, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant5BScript, EVENT_BUG_CATCHING_CONTESTANT_5B + object_event 5, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant6BScript, EVENT_BUG_CATCHING_CONTESTANT_6B + object_event 3, 6, SPRITE_LASS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant7BScript, EVENT_BUG_CATCHING_CONTESTANT_7B + object_event 4, 7, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant8BScript, EVENT_BUG_CATCHING_CONTESTANT_8B + object_event 6, 7, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant9BScript, EVENT_BUG_CATCHING_CONTESTANT_9B + object_event 6, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, BugCatchingContestant10BScript, EVENT_BUG_CATCHING_CONTESTANT_10B + object_event 3, 2, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route36NationalParkGateOfficerScript, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY diff --git a/maps/Route36RuinsOfAlphGate.asm b/maps/Route36RuinsOfAlphGate.asm new file mode 100644 index 00000000..ed894445 --- /dev/null +++ b/maps/Route36RuinsOfAlphGate.asm @@ -0,0 +1,50 @@ + const_def 2 ; object constants + const ROUTE36RUINSOFALPHGATE_OFFICER + const ROUTE36RUINSOFALPHGATE_GRAMPS + +Route36RuinsOfAlphGate_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +Route36RuinsOfAlphGateOfficerScript: + jumptextfaceplayer Route36RuinsOfAlphGateOfficerText + +Route36RuinsOfAlphGateGrampsScript: + jumptextfaceplayer Route36RuinsOfAlphGateGrampsText + +Route36RuinsOfAlphGateOfficerText: + text "Don't you wonder" + line "who'd make some-" + cont "thing like this?" + cont "And why?" + done + +Route36RuinsOfAlphGateGrampsText: + text "Did you see that" + line "strange tree in" + cont "the road?" + + para "That may explain" + line "why fewer people" + + para "are visiting the" + line "RUINS OF ALPH." + done + +Route36RuinsOfAlphGate_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 4, 0, ROUTE_36, 3 + warp_event 5, 0, ROUTE_36, 4 + warp_event 4, 7, RUINS_OF_ALPH_OUTSIDE, 9 + warp_event 5, 7, RUINS_OF_ALPH_OUTSIDE, 9 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 0, 4, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route36RuinsOfAlphGateOfficerScript, -1 + object_event 7, 5, SPRITE_GRAMPS, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, Route36RuinsOfAlphGateGrampsScript, -1 diff --git a/maps/VioletGym.asm b/maps/VioletGym.asm new file mode 100644 index 00000000..4fefeba5 --- /dev/null +++ b/maps/VioletGym.asm @@ -0,0 +1,299 @@ + const_def 2 ; object constants + const VIOLETGYM_FALKNER + const VIOLETGYM_YOUNGSTER1 + const VIOLETGYM_YOUNGSTER2 + const VIOLETGYM_GYM_GUY + +VioletGym_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +VioletGymFalknerScript: + faceplayer + opentext + checkevent EVENT_BEAT_FALKNER + iftrue .FightDone + writetext FalknerIntroText + waitbutton + closetext + winlosstext FalknerWinLossText, 0 + loadtrainer FALKNER, FALKNER1 + startbattle + reloadmapafterbattle + setevent EVENT_BEAT_FALKNER + opentext + writetext ReceivedZephyrBadgeText + playsound SFX_GET_BADGE + waitsfx + setflag ENGINE_ZEPHYRBADGE + checkcode VAR_BADGES + scall VioletGymActivateRockets +.FightDone: + checkevent EVENT_GOT_TM31_MUD_SLAP + iftrue .SpeechAfterTM + setevent EVENT_BEAT_BIRD_KEEPER_ROD + setevent EVENT_BEAT_BIRD_KEEPER_ABE + setmapscene ELMS_LAB, SCENE_ELMSLAB_NOTHING + specialphonecall SPECIALCALL_ASSISTANT + writetext FalknerZephyrBadgeText + buttonsound + verbosegiveitem TM_MUD_SLAP + iffalse .NoRoomForMudSlap + setevent EVENT_GOT_TM31_MUD_SLAP + writetext FalknerTMMudSlapText + waitbutton + closetext + end + +.SpeechAfterTM: + writetext FalknerFightDoneText + waitbutton +.NoRoomForMudSlap: + closetext + end + +VioletGymActivateRockets: + ifequal 7, .RadioTowerRockets + ifequal 6, .GoldenrodRockets + end + +.GoldenrodRockets: + jumpstd goldenrodrockets + +.RadioTowerRockets: + jumpstd radiotowerrockets + +TrainerBirdKeeperRod: + trainer BIRD_KEEPER, ROD, EVENT_BEAT_BIRD_KEEPER_ROD, BirdKeeperRodSeenText, BirdKeeperRodBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext BirdKeeperRodAfterBattleText + waitbutton + closetext + end + +TrainerBirdKeeperAbe: + trainer BIRD_KEEPER, ABE, EVENT_BEAT_BIRD_KEEPER_ABE, BirdKeeperAbeSeenText, BirdKeeperAbeBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext BirdKeeperAbeAfterBattleText + waitbutton + closetext + end + +VioletGymGuyScript: + faceplayer + opentext + checkevent EVENT_BEAT_FALKNER + iftrue .VioletGymGuyWinScript + writetext VioletGymGuyText + waitbutton + closetext + end + +.VioletGymGuyWinScript: + writetext VioletGymGuyWinText + waitbutton + closetext + end + +VioletGymStatue: + checkflag ENGINE_ZEPHYRBADGE + iftrue .Beaten + jumpstd gymstatue1 +.Beaten: + trainertotext FALKNER, FALKNER1, MEM_BUFFER_1 + jumpstd gymstatue2 + +FalknerIntroText: + text "I'm FALKNER, the" + line "VIOLET #MON GYM" + cont "leader!" + + para "People say you can" + line "clip flying-type" + + para "#MON's wings" + line "with a jolt of" + cont "electricity…" + + para "I won't allow such" + line "insults to bird" + cont "#MON!" + + para "I'll show you the" + line "real power of the" + + para "magnificent bird" + line "#MON!" + done + +FalknerWinLossText: + text "…Darn! My Dad's" + line "cherished bird" + cont "#MON…" + + para "All right." + line "Take this." + + para "It's the official" + line "#MON LEAGUE" + cont "ZEPHYRBADGE." + done + +ReceivedZephyrBadgeText: + text "<PLAYER> received" + line "ZEPHYRBADGE." + done + +FalknerZephyrBadgeText: + text "ZEPHYRBADGE" + line "raises the attack" + cont "power of #MON." + + para "It also enables" + line "#MON to use" + + para "FLASH, if they" + line "have it, anytime." + + para "Here--take this" + line "too." + done + +FalknerTMMudSlapText: + text "By using a TM, a" + line "#MON will" + + para "instantly learn a" + line "new move." + + para "Think before you" + line "act--a TM can be" + cont "used only once." + + para "TM31 contains" + line "MUD-SLAP." + + para "It reduces the" + line "enemy's accuracy" + + para "while it causes" + line "damage." + + para "In other words, it" + line "is both defensive" + cont "and offensive." + done + +FalknerFightDoneText: + text "There are #MON" + line "GYMS in cities and" + cont "towns ahead." + + para "You should test" + line "your skills at" + cont "these GYMS." + + para "I'm going to train" + line "harder to become" + + para "the greatest bird" + line "master!" + done + +BirdKeeperRodSeenText: + text "The keyword is" + line "guts!" + + para "Those here are" + line "training night and" + + para "day to become bird" + line "#MON masters." + + para "Come on!" + done + +BirdKeeperRodBeatenText: + text "Gaaah!" + done + +BirdKeeperRodAfterBattleText: + text "FALKNER's skills" + line "are for real!" + + para "Don't get cocky" + line "just because you" + cont "beat me!" + done + +BirdKeeperAbeSeenText: + text "Let me see if you" + line "are good enough to" + cont "face FALKNER!" + done + +BirdKeeperAbeBeatenText: + text "This can't be" + line "true!" + done + +BirdKeeperAbeAfterBattleText: + text "This is pathetic," + line "losing to some" + cont "rookie trainer…" + done + +VioletGymGuyText: + text "Hey! I'm no train-" + line "er but I can give" + cont "some advice!" + + para "Believe me!" + line "If you believe, a" + + para "championship dream" + line "can come true." + + para "You believe?" + line "Then listen." + + para "The grass-type is" + line "weak against the" + + para "flying-type. Keep" + line "this in mind." + done + +VioletGymGuyWinText: + text "Nice battle! Keep" + line "it up, and you'll" + + para "be the CHAMP in no" + line "time at all!" + done + +VioletGym_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 4, 15, VIOLET_CITY, 2 + warp_event 5, 15, VIOLET_CITY, 2 + + db 0 ; coord events + + db 2 ; bg events + bg_event 3, 13, BGEVENT_READ, VioletGymStatue + bg_event 6, 13, BGEVENT_READ, VioletGymStatue + + db 4 ; object events + object_event 5, 1, SPRITE_FALKNER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, VioletGymFalknerScript, -1 + object_event 7, 6, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_LEFT, 2, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerBirdKeeperRod, -1 + object_event 2, 10, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 2, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerBirdKeeperAbe, -1 + object_event 7, 13, SPRITE_GYM_GUY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, VioletGymGuyScript, -1 diff --git a/maps/VioletKylesHouse.asm b/maps/VioletKylesHouse.asm new file mode 100644 index 00000000..eb906270 --- /dev/null +++ b/maps/VioletKylesHouse.asm @@ -0,0 +1,46 @@ + const_def 2 ; object constants + const VIOLETKYLESHOUSE_POKEFAN_M + const VIOLETKYLESHOUSE_KYLE + +VioletKylesHouse_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +VioletKylesHousePokefanMScript: + jumptextfaceplayer VioletKylesHousePokefanMText + +Kyle: + faceplayer + opentext + trade NPC_TRADE_KYLE + waitbutton + closetext + end + +VioletKylesHousePokefanMText: + text "A #MON you get" + line "in a trade grows" + cont "quickly." + + para "But if you don't" + line "have the right GYM" + + para "BADGE, they may" + line "disobey you." + done + +VioletKylesHouse_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 3, 7, VIOLET_CITY, 6 + warp_event 4, 7, VIOLET_CITY, 6 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 2, 3, SPRITE_POKEFAN_M, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VioletKylesHousePokefanMScript, -1 + object_event 6, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 2, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Kyle, -1 diff --git a/maps/VioletMart.asm b/maps/VioletMart.asm new file mode 100644 index 00000000..d3e4ce73 --- /dev/null +++ b/maps/VioletMart.asm @@ -0,0 +1,63 @@ + const_def 2 ; object constants + const VIOLETMART_CLERK + const VIOLETMART_GRANNY + const VIOLETMART_COOLTRAINER_M + +VioletMart_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +VioletMartClerkScript: + opentext + pokemart MARTTYPE_STANDARD, MART_VIOLET + closetext + end + +VioletMartGrannyScript: + jumptextfaceplayer VioletMartGrannyText + +VioletMartCooltrainerMScript: + jumptextfaceplayer VioletMartCooltrainerMText + +VioletMartGrannyText: + text "When you first" + line "catch a #MON," + cont "it may be weak." + + para "But it will even-" + line "tually grow to be" + cont "strong." + + para "It's important to" + line "treat #MON with" + cont "love." + done + +VioletMartCooltrainerMText: + text "#MON can hold" + line "items like POTION" + cont "and ANTIDOTE." + + para "But they don't" + line "appear to know how" + + para "to use manmade" + line "items." + done + +VioletMart_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 2, 7, VIOLET_CITY, 1 + warp_event 3, 7, VIOLET_CITY, 1 + + db 0 ; coord events + + db 0 ; bg events + + db 3 ; object events + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VioletMartClerkScript, -1 + object_event 7, 6, SPRITE_GRANNY, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VioletMartGrannyScript, -1 + object_event 5, 2, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, VioletMartCooltrainerMScript, -1 diff --git a/maps/VioletNicknameSpeechHouse.asm b/maps/VioletNicknameSpeechHouse.asm new file mode 100644 index 00000000..ec274786 --- /dev/null +++ b/maps/VioletNicknameSpeechHouse.asm @@ -0,0 +1,59 @@ + const_def 2 ; object constants + const VIOLETNICKNAMESPEECHHOUSE_TEACHER + const VIOLETNICKNAMESPEECHHOUSE_LASS + const VIOLETNICKNAMESPEECHHOUSE_BIRD + +VioletNicknameSpeechHouse_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +VioletNicknameSpeechHouseTeacherScript: + jumptextfaceplayer VioletNicknameSpeechHouseTeacherText + +VioletNicknameSpeechHouseLassScript: + jumptextfaceplayer VioletNicknameSpeechHouseLassText + +VioletNicknameSpeechHouseBirdScript: + faceplayer + opentext + writetext VioletNicknameSpeechHouseBirdText + cry PIDGEY + waitbutton + closetext + end + +VioletNicknameSpeechHouseTeacherText: + text "She uses the names" + line "of her favorite" + cont "things to eat." + + para "For the nicknames" + line "she gives to her" + cont "#MON, I mean." + done + +VioletNicknameSpeechHouseLassText: + text "I call my PIDGEY" + line "STRAWBERRY!" + done + +VioletNicknameSpeechHouseBirdText: + text "STRAWBERRY: Pijji!" + done + +VioletNicknameSpeechHouse_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 3, 7, VIOLET_CITY, 4 + warp_event 4, 7, VIOLET_CITY, 4 + + db 0 ; coord events + + db 0 ; bg events + + db 3 ; object events + object_event 2, 3, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VioletNicknameSpeechHouseTeacherScript, -1 + object_event 6, 4, SPRITE_LASS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, VioletNicknameSpeechHouseLassScript, -1 + object_event 5, 2, SPRITE_BIRD, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, VioletNicknameSpeechHouseBirdScript, -1 diff --git a/maps/VioletPokecenter1F.asm b/maps/VioletPokecenter1F.asm new file mode 100644 index 00000000..b2e64a16 --- /dev/null +++ b/maps/VioletPokecenter1F.asm @@ -0,0 +1,210 @@ + const_def 2 ; object constants + const VIOLETPOKECENTER1F_NURSE + const VIOLETPOKECENTER1F_GAMEBOY_KID + const VIOLETPOKECENTER1F_GENTLEMAN + const VIOLETPOKECENTER1F_YOUNGSTER + const VIOLETPOKECENTER1F_SCIENTIST + +VioletPokecenter1F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +VioletPokecenterNurse: + jumpstd pokecenternurse + +VioletPokecenter1F_ElmsAideScript: + faceplayer + opentext + checkevent EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE + iftrue .SecondTimeAsking + writetext UnknownText_0x69555 +.AskTakeEgg: + yesorno + iffalse .RefusedEgg + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, .PartyFull + giveegg TOGEPI, 5 + stringtotext .eggname, MEM_BUFFER_1 + scall .AideGivesEgg + setevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE + clearevent EVENT_ELMS_AIDE_IN_LAB + clearevent EVENT_TOGEPI_HATCHED + setmapscene ROUTE_32, SCENE_ROUTE32_OFFER_SLOWPOKETAIL + writetext UnknownText_0x695c5 + waitbutton + closetext + checkcode VAR_FACING + ifequal UP, .AideWalksAroundPlayer + turnobject PLAYER, DOWN + applymovement VIOLETPOKECENTER1F_SCIENTIST, MovementData_AideWalksStraightOutOfPokecenter + playsound SFX_EXIT_BUILDING + disappear VIOLETPOKECENTER1F_SCIENTIST + waitsfx + end + +.AideWalksAroundPlayer: + applymovement VIOLETPOKECENTER1F_SCIENTIST, MovementData_AideWalksLeftToExitPokecenter + turnobject PLAYER, DOWN + applymovement VIOLETPOKECENTER1F_SCIENTIST, MovementData_AideFinishesLeavingPokecenter + playsound SFX_EXIT_BUILDING + disappear VIOLETPOKECENTER1F_SCIENTIST + waitsfx + end + +.eggname + db "EGG@" + +.AideGivesEgg: + jumpstd receivetogepiegg + end + +.PartyFull: + writetext UnknownText_0x69693 + waitbutton + closetext + end + +.RefusedEgg: + writetext UnknownText_0x696f2 + waitbutton + closetext + setevent EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE + end + +.SecondTimeAsking: + writetext UnknownText_0x69712 + jump .AskTakeEgg + +VioletPokecenter1FGameboyKidScript: + jumptextfaceplayer VioletPokecenter1FGameboyKidText + +VioletPokecenter1FGentlemanScript: + jumptextfaceplayer VioletPokecenter1FGentlemanText + +VioletPokecenter1FYoungsterScript: + jumptextfaceplayer VioletPokecenter1FYoungsterText + +MovementData_AideWalksStraightOutOfPokecenter: + step DOWN + step DOWN + step DOWN + step DOWN + step_end + +MovementData_AideWalksLeftToExitPokecenter: + step LEFT + step DOWN + step_end + +MovementData_AideFinishesLeavingPokecenter: + step DOWN + step DOWN + step DOWN + step_end + +UnknownText_0x69555: + text "<PLAYER>, long" + line "time, no see." + + para "PROF.ELM asked me" + line "to find you." + + para "He has another" + line "favor to ask." + + para "Would you take the" + line "#MON EGG?" + done + +UnknownText_0x695c5: + text "We discovered that" + line "a #MON will not" + + para "hatch until it" + line "grows in the EGG." + + para "It also has to be" + line "with other active" + cont "#MON to hatch." + + para "<PLAYER>, you're" + line "the only person" + cont "we can rely on." + + para "Please call PROF." + line "ELM when that EGG" + cont "hatches!" + done + +UnknownText_0x69693: + text "Oh, no. You can't" + line "carry any more" + cont "#MON with you." + + para "I'll wait here" + line "while you make" + cont "room for the EGG." + done + +UnknownText_0x696f2: + text "B-but… PROF.ELM" + line "asked for you…" + done + +UnknownText_0x69712: + text "<PLAYER>, will you" + line "take the EGG?" + done + +VioletPokecenter1FGameboyKidText: + text "A guy named BILL" + line "made the #MON" + cont "PC storage system." + done + +VioletPokecenter1FGentlemanText: + text "It was around" + line "three years ago." + + para "TEAM ROCKET was up" + line "to no good with" + cont "#MON." + + para "But justice pre-" + line "vailed--a young" + cont "kid broke 'em up." + done + +VioletPokecenter1FYoungsterText: + text "#MON are smart." + line "They won't obey a" + + para "trainer they don't" + line "respect." + + para "Without the right" + line "GYM BADGES, they" + + para "will just do as" + line "they please." + done + +VioletPokecenter1F_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 3, 7, VIOLET_CITY, 5 + warp_event 4, 7, VIOLET_CITY, 5 + warp_event 0, 7, POKECENTER_2F, 1 + + db 0 ; coord events + + db 0 ; bg events + + db 5 ; object events + object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VioletPokecenterNurse, -1 + object_event 7, 6, SPRITE_SUPER_NERD, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, VioletPokecenter1FGameboyKidScript, -1 + object_event 1, 4, SPRITE_GENTLEMAN, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VioletPokecenter1FGentlemanScript, -1 + object_event 8, 1, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, VioletPokecenter1FYoungsterScript, -1 + object_event 4, 3, SPRITE_SCIENTIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, VioletPokecenter1F_ElmsAideScript, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER |