diff options
author | IIMarckus <iimarckus@gmail.com> | 2018-10-04 00:04:18 -0600 |
---|---|---|
committer | IIMarckus <iimarckus@gmail.com> | 2018-10-04 00:04:18 -0600 |
commit | d34ed8847fafac0fba47f54db5b8e6ce5e4c927b (patch) | |
tree | 8f7db7a54c8cd7a168ea5e8bb12bff4de2afd54e | |
parent | 6910c7a29002fd01fe4bb330b63294eafdb92865 (diff) |
Add map objects from bank 4A.
-rw-r--r-- | constants/event_flags.asm | 14 | ||||
-rw-r--r-- | constants/map_constants.asm | 8 | ||||
-rw-r--r-- | main.asm | 13 | ||||
-rw-r--r-- | maps/Route26.asm | 414 | ||||
-rw-r--r-- | maps/Route27.asm | 452 | ||||
-rw-r--r-- | maps/Route28.asm | 29 | ||||
-rw-r--r-- | maps/Route29.asm | 438 | ||||
-rw-r--r-- | maps/Route30.asm | 348 | ||||
-rw-r--r-- | maps/Route31.asm | 365 |
9 files changed, 2063 insertions, 18 deletions
diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 471eaa8f..613ebfac 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -630,17 +630,17 @@ const EVENT_GOT_CALCIUM_FROM_ERIN const EVENT_KENJI_ON_BREAK const EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER - const EVENT_26C + const EVENT_GAVEN_READY_FOR_REMATCH const EVENT_BETH_ASKED_FOR_PHONE_NUMBER - const EVENT_26E + const EVENT_BETH_READY_FOR_REMATCH const EVENT_JOSE_ASKED_FOR_PHONE_NUMBER - const EVENT_270 + const EVENT_JOSE_READY_FOR_REMATCH const EVENT_REENA_ASKED_FOR_PHONE_NUMBER - const EVENT_272 + const EVENT_REENA_READY_FOR_REMATCH const EVENT_JOEY_ASKED_FOR_PHONE_NUMBER - const EVENT_274 + const EVENT_JOEY_READY_FOR_REMATCH const EVENT_WADE_ASKED_FOR_PHONE_NUMBER - const EVENT_276 + const EVENT_WADE_READY_FOR_REMATCH const EVENT_RALPH_ASKED_FOR_PHONE_NUMBER const EVENT_RALPH_READY_FOR_REMATCH const EVENT_LIZ_ASKED_FOR_PHONE_NUMBER @@ -1777,7 +1777,7 @@ const EVENT_ROUTE_27_TM_SOLARBEAM const EVENT_ROUTE_27_RARE_CANDY const EVENT_ROUTE_29_POTION - const EVENT_ROUTE_31_POTION + const EVENT_ROUTE_31_ANTIDOTE const EVENT_ROUTE_31_POKE_BALL const EVENT_ROUTE_32_GREAT_BALL const EVENT_ROUTE_32_POTION diff --git a/constants/map_constants.asm b/constants/map_constants.asm index cb874504..ea2ff37d 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -360,7 +360,7 @@ ENDM map_const ROUTE_28, 9, 20 ; 1 map_const SILVER_CAVE_OUTSIDE, 18, 20 ; 2 map_const SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3 - map_const ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4 ; 4 + map_const ROUTE_28_STEEL_WING_HOUSE, 4, 4 ; 4 newgroup ; 20 @@ -437,8 +437,8 @@ ENDM map_const PLAYERS_HOUSE_2F, 3, 4 ; 7 map_const PLAYERS_NEIGHBORS_HOUSE, 4, 4 ; 8 map_const ELMS_HOUSE, 4, 4 ; 9 - map_const ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10 - map_const ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11 + map_const ROUTE_26_HEAL_HOUSE, 4, 4 ; 10 + map_const DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11 map_const ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12 map_const ROUTE_29_ROUTE_46_GATE, 4, 5 ; 13 @@ -470,6 +470,6 @@ ENDM map_const CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6 map_const GUIDE_GENTS_HOUSE, 4, 4 ; 7 map_const CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8 - map_const ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9 + map_const ROUTE_30_BERRY_HOUSE, 4, 4 ; 9 map_const MR_POKEMONS_HOUSE, 4, 4 ; 10 map_const ROUTE_31_VIOLET_GATE, 4, 5 ; 11 @@ -1638,13 +1638,12 @@ SECTION "bank49", ROMX, BANK[$49] dr $124000, $128000 SECTION "bank4a", ROMX, BANK[$4a] -;INCLUDE "maps/Route26.asm" -;INCLUDE "maps/Route27.asm" -;INCLUDE "maps/Route28.asm" -;INCLUDE "maps/Route29.asm" -;INCLUDE "maps/Route30.asm" -;INCLUDE "maps/Route31.asm" - dr $128000, $12c000 +INCLUDE "maps/Route26.asm" +INCLUDE "maps/Route27.asm" +INCLUDE "maps/Route28.asm" +INCLUDE "maps/Route29.asm" +INCLUDE "maps/Route30.asm" +INCLUDE "maps/Route31.asm" SECTION "bank4b", ROMX, BANK[$4b] INCLUDE "maps/Route32.asm" diff --git a/maps/Route26.asm b/maps/Route26.asm new file mode 100644 index 00000000..aa6de49a --- /dev/null +++ b/maps/Route26.asm @@ -0,0 +1,414 @@ + const_def 2 ; object constants + const ROUTE26_COOLTRAINER_M1 + const ROUTE26_COOLTRAINER_M2 + const ROUTE26_COOLTRAINER_F1 + const ROUTE26_COOLTRAINER_F2 + const ROUTE26_YOUNGSTER + const ROUTE26_FISHER + const ROUTE26_FRUIT_TREE + const ROUTE26_POKE_BALL + +Route26_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +TrainerCooltrainermJake: + trainer COOLTRAINERM, JAKE, EVENT_BEAT_COOLTRAINERM_JAKE, CooltrainermJakeSeenText, CooltrainermJakeBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CooltrainermJakeAfterBattleText + waitbutton + closetext + end + +TrainerCooltrainermGaven3: + trainer COOLTRAINERM, GAVEN3, EVENT_BEAT_COOLTRAINERM_GAVEN, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + checkevent EVENT_GAVEN_READY_FOR_REMATCH + iftrue .WantsBattle + checkcellnum PHONE_COOLTRAINERM_GAVEN + iftrue .NumberAccepted + checkevent EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER + iftrue .AskedAlready + writetext CooltrainermGavenAfterText + buttonsound + setevent EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER + scall .AskNumber1 + jump .AskForNumber + +.AskedAlready: + scall .AskNumber2 +.AskForNumber: + askforphonenumber PHONE_COOLTRAINERM_GAVEN + ifequal PHONE_CONTACTS_FULL, .PhoneFull + ifequal PHONE_CONTACT_REFUSED, .NumberDeclined + trainertotext COOLTRAINERM, GAVEN3, MEM_BUFFER_0 + scall .RegisteredNumber + jump .NumberAccepted + +.WantsBattle: + scall .Rematch + winlosstext CooltrainermGaven3BeatenText, 0 + checkevent EVENT_RESTORED_POWER_TO_KANTO + iftrue .LoadFight2 + checkevent EVENT_BEAT_ELITE_FOUR + iftrue .LoadFight1 + loadtrainer COOLTRAINERM, GAVEN3 + startbattle + reloadmapafterbattle + clearevent EVENT_GAVEN_READY_FOR_REMATCH + end + +.LoadFight1: + loadtrainer COOLTRAINERM, GAVEN1 + startbattle + reloadmapafterbattle + clearevent EVENT_GAVEN_READY_FOR_REMATCH + end + +.LoadFight2: + loadtrainer COOLTRAINERM, GAVEN2 + startbattle + reloadmapafterbattle + clearevent EVENT_GAVEN_READY_FOR_REMATCH + end + +.AskNumber1: + jumpstd asknumber1m + end + +.AskNumber2: + jumpstd asknumber2m + end + +.RegisteredNumber: + jumpstd registerednumberm + end + +.NumberAccepted: + jumpstd numberacceptedm + end + +.NumberDeclined: + jumpstd numberdeclinedm + end + +.PhoneFull: + jumpstd phonefullm + end + +.Rematch: + jumpstd rematchm + end + +TrainerCooltrainerfJoyce: + trainer COOLTRAINERF, JOYCE, EVENT_BEAT_COOLTRAINERF_JOYCE, CooltrainerfJoyceSeenText, CooltrainerfJoyceBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CooltrainerfJoyceAfterBattleText + waitbutton + closetext + end + +TrainerCooltrainerfBeth1: + trainer COOLTRAINERF, BETH1, EVENT_BEAT_COOLTRAINERF_BETH, CooltrainerfBeth1SeenText, CooltrainerfBeth1BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + checkevent EVENT_BETH_READY_FOR_REMATCH + iftrue .WantsBattle + checkcellnum PHONE_COOLTRAINERF_BETH + iftrue .NumberAccepted + checkevent EVENT_BETH_ASKED_FOR_PHONE_NUMBER + iftrue .AskedAlready + writetext CooltrainerfBethAfterText + buttonsound + setevent EVENT_BETH_ASKED_FOR_PHONE_NUMBER + scall .AskNumber1 + jump .AskForNumber + +.AskedAlready: + scall .AskNumber2 +.AskForNumber: + askforphonenumber PHONE_COOLTRAINERF_BETH + ifequal PHONE_CONTACTS_FULL, .PhoneFull + ifequal PHONE_CONTACT_REFUSED, .NumberDeclined + trainertotext COOLTRAINERF, BETH1, MEM_BUFFER_0 + scall .RegisteredNumber + jump .NumberAccepted + +.WantsBattle: + scall .Rematch + winlosstext CooltrainerfBeth1BeatenText, 0 + checkevent EVENT_RESTORED_POWER_TO_KANTO + iftrue .LoadFight2 + checkevent EVENT_BEAT_ELITE_FOUR + iftrue .LoadFight1 + loadtrainer COOLTRAINERF, BETH1 + startbattle + reloadmapafterbattle + clearevent EVENT_BETH_READY_FOR_REMATCH + end + +.LoadFight1: + loadtrainer COOLTRAINERF, BETH2 + startbattle + reloadmapafterbattle + clearevent EVENT_BETH_READY_FOR_REMATCH + end + +.LoadFight2: + loadtrainer COOLTRAINERF, BETH3 + startbattle + reloadmapafterbattle + clearevent EVENT_BETH_READY_FOR_REMATCH + end + +.AskNumber1: + jumpstd asknumber1f + end + +.AskNumber2: + jumpstd asknumber2f + end + +.RegisteredNumber: + jumpstd registerednumberf + end + +.NumberAccepted: + jumpstd numberacceptedf + end + +.NumberDeclined: + jumpstd numberdeclinedf + end + +.PhoneFull: + jumpstd phonefullf + end + +.Rematch: + jumpstd rematchf + end + +TrainerPsychicRichard: + trainer PSYCHIC_T, RICHARD, EVENT_BEAT_PSYCHIC_RICHARD, PsychicRichardSeenText, PsychicRichardBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext PsychicRichardAfterBattleText + waitbutton + closetext + end + +TrainerFisherScott: + trainer FISHER, SCOTT, EVENT_BEAT_FISHER_SCOTT, FisherScottSeenText, FisherScottBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext FisherScottAfterBattleText + waitbutton + closetext + end + +Route26Sign: + jumptext Route26SignText + +Route26FruitTree: + fruittree FRUITTREE_ROUTE_26 + +Route26MaxElixer: + itemball MAX_ELIXER + +CooltrainermJakeSeenText: + text "I'm making my" + line "final preparations" + + para "for the #MON" + line "LEAGUE." + done + +CooltrainermJakeBeatenText: + text "I blew it!" + done + +CooltrainermJakeAfterBattleText: + text "It's going to be" + line "tough to win at" + cont "the LEAGUE." + + para "I need to do some" + line "more training." + + para "I hear that the" + line "LEAGUE's ELITE" + + para "FOUR are tougher" + line "than GYM LEADERS." + done + +CooltrainermGaven3SeenText: + text "By experiencing" + line "tough battles, you" + cont "gain power." + done + +CooltrainermGaven3BeatenText: + text "Gaah! Life is even" + line "tougher!" + done + +CooltrainermGavenAfterText: + text "To get to #MON" + line "LEAGUE, you have" + + para "to get through" + line "VICTORY ROAD." + + para "But VICTORY ROAD" + line "is tough." + + para "Practically nobody" + line "goes there!" + done + +CooltrainerfJoyceSeenText: + text "Since you've come" + line "this far, you must" + cont "be good." + + para "I'm going to give" + line "this battle every-" + cont "thing I've got!" + done + +CooltrainerfJoyceBeatenText: + text "No! I don't" + line "believe this!" + done + +CooltrainerfJoyceAfterBattleText: + text "I've defeated" + line "eight GYM LEADERS," + + para "so I was feeling" + line "confident." + + para "I'll have to try" + line "harder next time." + done + +CooltrainerfBeth1SeenText: + text "I lost to a train-" + line "er named <RIVAL>." + + para "He was really" + line "strong, but…" + + para "It was as if he" + line "absolutely had to" + cont "win at any cost." + + para "I felt sorry for" + line "his #MON." + done + +CooltrainerfBeth1BeatenText: + text "#MON aren't" + line "tools of war." + done + +CooltrainerfBethAfterText: + text "#MON are in-" + line "valuable, lifelong" + cont "partners." + done + +PsychicRichardSeenText: + text "Wow, look at all" + line "those BADGES!" + cont "I'm impressed." + + para "But you're not" + line "satisfied by just" + + para "collecting them," + line "right?" + done + +PsychicRichardBeatenText: + text "Good battle!" + done + +PsychicRichardAfterBattleText: + text "People and #MON" + line "grow from their" + cont "experiences." + + para "Don't get lazy and" + line "complacent." + done + +FisherScottSeenText: + text "I'm feeling great" + line "today!" + + para "I feel like I" + line "could boot even" + cont "the LEAGUE CHAMP!" + done + +FisherScottBeatenText: + text "No! Not in this" + line "battle!" + done + +FisherScottAfterBattleText: + text "Just like in fish-" + line "ing, it's all over" + + para "in #MON if you" + line "give up." + done + +Route26SignText: + text "ROUTE 26" + + para "#MON LEAGUE" + line "RECEPTION GATE" + done + +Route26_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 7, 5, VICTORY_ROAD_GATE, 3 + warp_event 15, 57, ROUTE_26_HEAL_HOUSE, 1 + warp_event 5, 71, DAY_OF_WEEK_SIBLINGS_HOUSE, 1 + + db 0 ; coord events + + db 1 ; bg events + bg_event 8, 6, BGEVENT_READ, Route26Sign + + db 8 ; object events + object_event 11, 16, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 2, TrainerCooltrainermJake, -1 + object_event 9, 38, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 5, TrainerCooltrainermGaven3, -1 + object_event 10, 56, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerCooltrainerfJoyce, -1 + object_event 5, 8, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 4, TrainerCooltrainerfBeth1, -1 + object_event 13, 79, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 4, TrainerPsychicRichard, -1 + object_event 10, 92, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerFisherScott, -1 + object_event 14, 54, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route26FruitTree, -1 + object_event 9, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route26MaxElixer, EVENT_ROUTE_26_MAX_ELIXER diff --git a/maps/Route27.asm b/maps/Route27.asm new file mode 100644 index 00000000..e08ac68b --- /dev/null +++ b/maps/Route27.asm @@ -0,0 +1,452 @@ + const_def 2 ; object constants + const ROUTE27_COOLTRAINER_M1 + const ROUTE27_COOLTRAINER_M2 + const ROUTE27_COOLTRAINER_F1 + const ROUTE27_COOLTRAINER_F2 + const ROUTE27_YOUNGSTER1 + const ROUTE27_YOUNGSTER2 + const ROUTE27_POKE_BALL1 + const ROUTE27_POKE_BALL2 + const ROUTE27_FISHER + +Route27_MapScripts: + db 2 ; scene scripts + scene_script .DummyScene0 ; SCENE_DEFAULT + scene_script .DummyScene1 ; SCENE_FINISHED + + db 0 ; callbacks + +.DummyScene0: + end + +.DummyScene1: + end + +FirstStepIntoKantoLeftScene: + turnobject ROUTE27_FISHER, LEFT + showemote EMOTE_SHOCK, ROUTE27_FISHER, 15 + applymovement ROUTE27_FISHER, MovementData_0x1a0a66 + jump FirstStepIntoKantoScene_Continue + +FirstStepIntoKantoRightScene: + turnobject ROUTE27_FISHER, LEFT + showemote EMOTE_SHOCK, ROUTE27_FISHER, 15 + applymovement ROUTE27_FISHER, MovementData_0x1a0a69 +FirstStepIntoKantoScene_Continue: + turnobject PLAYER, RIGHT + opentext + writetext Route27FisherHeyText + buttonsound + writetext Route27FisherText + waitbutton + closetext + setscene SCENE_FINISHED + end + +Route27FisherScript: + jumptextfaceplayer Route27FisherText + +TrainerPsychicGilbert: + trainer PSYCHIC_T, GILBERT, EVENT_BEAT_PSYCHIC_GILBERT, PsychicGilbertSeenText, PsychicGilbertBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext PsychicGilbertAfterBattleText + waitbutton + closetext + end + +TrainerBirdKeeperJose2: + trainer BIRD_KEEPER, JOSE2, EVENT_BEAT_BIRD_KEEPER_JOSE2, BirdKeeperJose2SeenText, BirdKeeperJose2BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + checkevent EVENT_JOSE_READY_FOR_REMATCH + iftrue .WantsBattle + checkcellnum PHONE_BIRDKEEPER_JOSE + iftrue .NumberAccepted + checkevent EVENT_JOSE_ASKED_FOR_PHONE_NUMBER + iftrue .AskedAlready + writetext BirdKeeperJose2AfterBattleText + buttonsound + setevent EVENT_JOSE_ASKED_FOR_PHONE_NUMBER + scall .AskNumber1 + jump .AskForNumber + +.AskedAlready: + scall .AskNumber2 +.AskForNumber: + askforphonenumber PHONE_BIRDKEEPER_JOSE + ifequal PHONE_CONTACTS_FULL, .PhoneFull + ifequal PHONE_CONTACT_REFUSED, .NumberDeclined + trainertotext BIRD_KEEPER, JOSE2, MEM_BUFFER_0 + scall .RegisteredNumber + jump .NumberAccepted + +.WantsBattle: + scall .Rematch + winlosstext BirdKeeperJose2BeatenText, 0 + checkevent EVENT_RESTORED_POWER_TO_KANTO + iftrue .LoadFight2 + checkevent EVENT_BEAT_ELITE_FOUR + iftrue .LoadFight1 + loadtrainer BIRD_KEEPER, JOSE2 + startbattle + reloadmapafterbattle + clearevent EVENT_JOSE_READY_FOR_REMATCH + end + +.LoadFight1: + loadtrainer BIRD_KEEPER, JOSE1 + startbattle + reloadmapafterbattle + clearevent EVENT_JOSE_READY_FOR_REMATCH + end + +.LoadFight2: + loadtrainer BIRD_KEEPER, JOSE3 + startbattle + reloadmapafterbattle + clearevent EVENT_JOSE_READY_FOR_REMATCH + end + +.AskNumber1: + jumpstd asknumber1m + end + +.AskNumber2: + jumpstd asknumber2m + end + +.RegisteredNumber: + jumpstd registerednumberm + end + +.NumberAccepted: + jumpstd numberacceptedm + end + +.NumberDeclined: + jumpstd numberdeclinedm + end + +.PhoneFull: + jumpstd phonefullm + end + +.Rematch: + jumpstd rematchm + end + +TrainerCooltrainermBlake: + trainer COOLTRAINERM, BLAKE, EVENT_BEAT_COOLTRAINERM_BLAKE, CooltrainermBlakeSeenText, CooltrainermBlakeBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CooltrainermBlakeAfterBattleText + waitbutton + closetext + end + +TrainerCooltrainermBrian: + trainer COOLTRAINERM, BRIAN, EVENT_BEAT_COOLTRAINERM_BRIAN, CooltrainermBrianSeenText, CooltrainermBrianBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CooltrainermBrianAfterBattleText + waitbutton + closetext + end + +TrainerCooltrainerfReena: + trainer COOLTRAINERF, REENA1, EVENT_BEAT_COOLTRAINERF_REENA, CooltrainerfReenaSeenText, CooltrainerfReenaBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + checkevent EVENT_REENA_READY_FOR_REMATCH + iftrue .WantsBattle + checkcellnum PHONE_COOLTRAINERF_REENA + iftrue .NumberAccepted + checkevent EVENT_REENA_ASKED_FOR_PHONE_NUMBER + iftrue .AskedAlready + writetext CooltrainerfReenaAfterBattleText + buttonsound + setevent EVENT_REENA_ASKED_FOR_PHONE_NUMBER + scall .AskNumber1 + jump .AskForNumber + +.AskedAlready: + scall .AskNumber2 +.AskForNumber: + askforphonenumber PHONE_COOLTRAINERF_REENA + ifequal PHONE_CONTACTS_FULL, .PhoneFull + ifequal PHONE_CONTACT_REFUSED, .NumberDeclined + trainertotext COOLTRAINERF, REENA1, MEM_BUFFER_0 + scall .RegisteredNumber + jump .NumberAccepted + +.WantsBattle: + scall .Rematch + winlosstext CooltrainerfReenaBeatenText, 0 + checkevent EVENT_RESTORED_POWER_TO_KANTO + iftrue .LoadFight2 + checkevent EVENT_BEAT_ELITE_FOUR + iftrue .LoadFight1 + loadtrainer COOLTRAINERF, REENA1 + startbattle + reloadmapafterbattle + clearevent EVENT_REENA_READY_FOR_REMATCH + end + +.LoadFight1: + loadtrainer COOLTRAINERF, REENA2 + startbattle + reloadmapafterbattle + clearevent EVENT_REENA_READY_FOR_REMATCH + end + +.LoadFight2: + loadtrainer COOLTRAINERF, REENA3 + startbattle + reloadmapafterbattle + clearevent EVENT_REENA_READY_FOR_REMATCH + end + +.AskNumber1: + jumpstd asknumber1f + end + +.AskNumber2: + jumpstd asknumber2f + end + +.RegisteredNumber: + jumpstd registerednumberf + end + +.NumberAccepted: + jumpstd numberacceptedf + end + +.NumberDeclined: + jumpstd numberdeclinedf + end + +.PhoneFull: + jumpstd phonefullf + end + +.Rematch: + jumpstd rematchf + end + +TrainerCooltrainerfMegan: + trainer COOLTRAINERF, MEGAN, EVENT_BEAT_COOLTRAINERF_MEGAN, CooltrainerfMeganSeenText, CooltrainerfMeganBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CooltrainerfMeganAfterBattleText + waitbutton + closetext + end + +TohjoFallsSign: + jumptext TohjoFallsSignText + +Route27TMSolarbeam: + itemball TM_SOLARBEAM + +Route27RareCandy: + itemball RARE_CANDY + +MovementData_0x1a0a66: + step LEFT + step LEFT + step_end + +MovementData_0x1a0a69: + step LEFT + step_end + +Route27FisherHeyText: + text "Hey!" + done + +Route27FisherText: + text "Do you know what" + line "you just did?" + + para "You've taken your" + line "first step into" + cont "KANTO." + + para "Check your #-" + line "GEAR MAP and see." + done + +CooltrainermBlakeSeenText: + text "You look pretty" + line "strong." + cont "Let me battle you!" + done + +CooltrainermBlakeBeatenText: + text "Yow!" + done + +CooltrainermBlakeAfterBattleText: + text "If you prevail on" + line "this harsh trek," + + para "the truth will be" + line "revealed!" + + para "Heh, sorry, I just" + line "wanted to say" + cont "something cool." + done + +CooltrainermBrianSeenText: + text "Hm? You're good," + line "aren't you?" + done + +CooltrainermBrianBeatenText: + text "Just as I thought!" + done + +CooltrainermBrianAfterBattleText: + text "A good trainer can" + line "recognize other" + cont "good trainers." + done + +CooltrainerfReenaSeenText: + text "You shouldn't" + line "underestimate the" + + para "wild #MON in" + line "these parts." + done + +CooltrainerfReenaBeatenText: + text "Oh! You're much" + line "too strong!" + done + +CooltrainerfReenaAfterBattleText: + text "You're just a kid," + line "but you're not to" + + para "be underestimated" + line "either." + done + +CooltrainerfMeganSeenText: + text "It's rare to see" + line "anyone come here." + + para "Are you training" + line "on your own?" + done + +CooltrainerfMeganBeatenText: + text "Oh! You're really" + line "strong!" + done + +CooltrainerfMeganAfterBattleText: + text "I'm checking out" + line "pre- and post-" + cont "evolution #MON." + + para "Evolution really" + line "does make #MON" + cont "stronger." + + para "But evolved forms" + line "also learn moves" + cont "later on." + done + +PsychicGilbertSeenText: + text "Don't say a thing!" + + para "Let me guess what" + line "you're thinking." + + para "Mmmmmmm…" + + para "I got it! You're" + line "on the #MON" + cont "LEAGUE challenge!" + done + +PsychicGilbertBeatenText: + text "You're too much!" + done + +PsychicGilbertAfterBattleText: + text "With your skills," + line "you'll do well at" + cont "the LEAGUE." + + para "That's what my" + line "premonition says." + done + +BirdKeeperJose2SeenText: + text "Tweet! Tweet!" + line "Tetweet!" + done + +BirdKeeperJose2BeatenText: + text "Tweet!" + done + +BirdKeeperJose2AfterBattleText: + text "BIRD KEEPERS like" + line "me mimic bird" + + para "whistles to com-" + line "mand #MON." + done + +TohjoFallsSignText: + text "TOHJO FALLS" + + para "The Link Between" + line "KANTO and JOHTO" + done + +Route27_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 33, 7, ROUTE_27_SANDSTORM_HOUSE, 1 + warp_event 26, 5, TOHJO_FALLS, 1 + warp_event 36, 5, TOHJO_FALLS, 2 + + db 2 ; coord events + coord_event 18, 10, SCENE_DEFAULT, FirstStepIntoKantoLeftScene + coord_event 19, 10, SCENE_DEFAULT, FirstStepIntoKantoRightScene + + db 1 ; bg events + bg_event 25, 7, BGEVENT_READ, TohjoFallsSign + + db 9 ; object events + object_event 49, 7, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerCooltrainermBlake, -1 + object_event 58, 6, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 5, TrainerCooltrainermBrian, -1 + object_event 72, 11, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 5, TrainerCooltrainerfReena, -1 + object_event 37, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 2, TrainerCooltrainerfMegan, -1 + object_event 64, 7, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 5, TrainerPsychicGilbert, -1 + object_event 58, 13, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerBirdKeeperJose2, -1 + object_event 60, 12, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route27TMSolarbeam, EVENT_ROUTE_27_TM_SOLARBEAM + object_event 53, 12, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route27RareCandy, EVENT_ROUTE_27_RARE_CANDY + object_event 21, 10, SPRITE_FISHER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 3, Route27FisherScript, -1 diff --git a/maps/Route28.asm b/maps/Route28.asm new file mode 100644 index 00000000..af41de7c --- /dev/null +++ b/maps/Route28.asm @@ -0,0 +1,29 @@ +Route28_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +Route28Sign: + jumptext Route28SignText + +Route28HiddenRareCandy: + hiddenitem RARE_CANDY, EVENT_ROUTE_28_HIDDEN_RARE_CANDY + +Route28SignText: + text "ROUTE 28" + done + +Route28_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 7, 3, ROUTE_28_STEEL_WING_HOUSE, 1 + warp_event 33, 5, VICTORY_ROAD_GATE, 7 + + db 0 ; coord events + + db 2 ; bg events + bg_event 31, 5, BGEVENT_READ, Route28Sign + bg_event 25, 2, BGEVENT_ITEM, Route28HiddenRareCandy + + db 0 ; object events diff --git a/maps/Route29.asm b/maps/Route29.asm new file mode 100644 index 00000000..3b3322f1 --- /dev/null +++ b/maps/Route29.asm @@ -0,0 +1,438 @@ + const_def 2 ; object constants + const ROUTE29_COOLTRAINER_M1 + const ROUTE29_YOUNGSTER + const ROUTE29_TEACHER1 + const ROUTE29_FRUIT_TREE + const ROUTE29_FISHER + const ROUTE29_COOLTRAINER_M2 + const ROUTE29_TUSCANY + const ROUTE29_POKE_BALL + +Route29_MapScripts: + db 2 ; scene scripts + scene_script .DummyScene0 ; SCENE_ROUTE29_NOTHING + scene_script .DummyScene1 ; SCENE_ROUTE29_CATCH_TUTORIAL + + db 1 ; callbacks + callback MAPCALLBACK_OBJECTS, .Tuscany + +.DummyScene0: + end + +.DummyScene1: + end + +.Tuscany: + checkflag ENGINE_ZEPHYRBADGE + iftrue .DoesTuscanyAppear + +.TuscanyDisappears: + disappear ROUTE29_TUSCANY + return + +.DoesTuscanyAppear: + checkcode VAR_WEEKDAY + ifnotequal TUESDAY, .TuscanyDisappears + appear ROUTE29_TUSCANY + return + +Route29Tutorial1: + turnobject ROUTE29_COOLTRAINER_M1, UP + showemote EMOTE_SHOCK, ROUTE29_COOLTRAINER_M1, 15 + applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData1a + turnobject PLAYER, LEFT + setevent EVENT_DUDE_TALKED_TO_YOU + opentext + writetext CatchingTutorialIntroText + yesorno + iffalse Script_RefusedTutorial1 + closetext + follow ROUTE29_COOLTRAINER_M1, PLAYER + applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData1b + stopfollow + loadwildmon RATTATA, 5 + catchtutorial BATTLETYPE_TUTORIAL + turnobject ROUTE29_COOLTRAINER_M1, UP + opentext + writetext CatchingTutorialDebriefText + waitbutton + closetext + setscene SCENE_ROUTE29_NOTHING + setevent EVENT_LEARNED_TO_CATCH_POKEMON + end + +Route29Tutorial2: + turnobject ROUTE29_COOLTRAINER_M1, UP + showemote EMOTE_SHOCK, ROUTE29_COOLTRAINER_M1, 15 + applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData2a + turnobject PLAYER, LEFT + setevent EVENT_DUDE_TALKED_TO_YOU + opentext + writetext CatchingTutorialIntroText + yesorno + iffalse Script_RefusedTutorial2 + closetext + follow ROUTE29_COOLTRAINER_M1, PLAYER + applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData2b + stopfollow + loadwildmon RATTATA, 5 + catchtutorial BATTLETYPE_TUTORIAL + turnobject ROUTE29_COOLTRAINER_M1, UP + opentext + writetext CatchingTutorialDebriefText + waitbutton + closetext + setscene SCENE_ROUTE29_NOTHING + setevent EVENT_LEARNED_TO_CATCH_POKEMON + end + +Script_RefusedTutorial1: + writetext CatchingTutorialDeclinedText + waitbutton + closetext + applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData1b + setscene SCENE_ROUTE29_NOTHING + end + +Script_RefusedTutorial2: + writetext CatchingTutorialDeclinedText + waitbutton + closetext + applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData2b + setscene SCENE_ROUTE29_NOTHING + end + +CatchingTutorialDudeScript: + faceplayer + opentext + checkcode VAR_BOXSPACE + ifequal 0, .BoxFull + checkevent EVENT_LEARNED_TO_CATCH_POKEMON + iftrue .BoxFull + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iffalse .BoxFull + writetext CatchingTutorialRepeatText + yesorno + iffalse .Declined + closetext + loadwildmon RATTATA, 5 + catchtutorial BATTLETYPE_TUTORIAL + opentext + writetext CatchingTutorialDebriefText + waitbutton + closetext + setevent EVENT_LEARNED_TO_CATCH_POKEMON + end + +.BoxFull: + writetext CatchingTutorialBoxFullText + waitbutton + closetext + end + +.Declined: + writetext CatchingTutorialDeclinedText + waitbutton + closetext + end + +Route29YoungsterScript: + jumptextfaceplayer Route29YoungsterText + +Route29TeacherScript: + jumptextfaceplayer Route29TeacherText + +Route29FisherScript: + jumptextfaceplayer Route29FisherText + +Route29CooltrainerMScript: + faceplayer + opentext + checktime DAY + iftrue .day_morn + checktime NITE + iftrue .nite +.day_morn + writetext Route29CooltrainerMText_WaitingForNight + waitbutton + closetext + end + +.nite + writetext Route29CooltrainerMText_WaitingForMorning + waitbutton + closetext + end + +TuscanyScript: + faceplayer + opentext + checkevent EVENT_GOT_PINK_BOW_FROM_TUSCANY + iftrue TuscanyTuesdayScript + checkcode VAR_WEEKDAY + ifnotequal TUESDAY, TuscanyNotTuesdayScript + checkevent EVENT_MET_TUSCANY_OF_TUESDAY + iftrue .MetTuscany + writetext MeetTuscanyText + buttonsound + setevent EVENT_MET_TUSCANY_OF_TUESDAY +.MetTuscany: + writetext TuscanyGivesGiftText + buttonsound + verbosegiveitem PINK_BOW + iffalse TuscanyDoneScript + setevent EVENT_GOT_PINK_BOW_FROM_TUSCANY + writetext TuscanyGaveGiftText + waitbutton + closetext + end + +TuscanyTuesdayScript: + writetext TuscanyTuesdayText + waitbutton +TuscanyDoneScript: + closetext + end + +TuscanyNotTuesdayScript: + writetext TuscanyNotTuesdayText + waitbutton + closetext + end + +Route29Sign1: + jumptext Route29Sign1Text + +Route29Sign2: + jumptext Route29Sign2Text + +Route29FruitTree: + fruittree FRUITTREE_ROUTE_29 + +Route29Potion: + itemball POTION + +DudeMovementData1a: + step UP + step UP + step UP + step UP + step RIGHT + step RIGHT + step_end + +DudeMovementData2a: + step UP + step UP + step UP + step RIGHT + step RIGHT + step_end + +DudeMovementData1b: + step LEFT + step LEFT + step DOWN + step DOWN + step DOWN + step DOWN + step_end + +DudeMovementData2b: + step LEFT + step LEFT + step DOWN + step DOWN + step DOWN + step_end + +CatchingTutorialBoxFullText: + text "#MON hide in" + line "the grass. Who" + + para "knows when they'll" + line "pop out…" + done + +CatchingTutorialIntroText: + text "I've seen you a" + line "couple times. How" + + para "many #MON have" + line "you caught?" + + para "Would you like me" + line "to show you how to" + cont "catch #MON?" + done + +CatchingTutorialDebriefText: + text "That's how you do" + line "it." + + para "If you weaken them" + line "first, #MON are" + cont "easier to catch." + done + +CatchingTutorialDeclinedText: + text "Oh. Fine, then." + + para "Anyway, if you" + line "want to catch" + + para "#MON, you have" + line "to walk a lot." + done + +CatchingTutorialRepeatText: + text "Huh? You want me" + line "to show you how to" + cont "catch #MON?" + done + +Route29YoungsterText: + text "Yo. How are your" + line "#MON?" + + para "If they're weak" + line "and not ready for" + + para "battle, keep out" + line "of the grass." + done + +Route29TeacherText: + text "See those ledges?" + line "It's scary to jump" + cont "off them." + + para "But you can go to" + line "NEW BARK without" + + para "walking through" + line "the grass." + done + +Route29FisherText: + text "I wanted to take a" + line "break, so I saved" + + para "to record my" + line "progress." + done + +; unused +Text_WaitingForDay: + text "I'm waiting for" + line "#MON that" + + para "appear only in the" + line "daytime." + done + +Route29CooltrainerMText_WaitingForNight: + text "I'm waiting for" + line "#MON that" + + para "appear only at" + line "night." + done + +Route29CooltrainerMText_WaitingForMorning: + text "I'm waiting for" + line "#MON that" + + para "appear only in the" + line "morning." + done + +MeetTuscanyText: + text "TUSCANY: I do be-" + line "lieve that this is" + + para "the first time" + line "we've met?" + + para "Please allow me to" + line "introduce myself." + + para "I am TUSCANY of" + line "Tuesday." + done + +TuscanyGivesGiftText: + text "By way of intro-" + line "duction, please" + + para "accept this gift," + line "a PINK BOW." + done + +TuscanyGaveGiftText: + text "TUSCANY: Wouldn't" + line "you agree that it" + cont "is most adorable?" + + para "It strengthens" + line "normal-type moves." + + para "I am certain it" + line "will be of use." + done + +TuscanyTuesdayText: + text "TUSCANY: Have you" + line "met MONICA, my" + cont "older sister?" + + para "Or my younger" + line "brother, WESLEY?" + + para "I am the second of" + line "seven children." + done + +TuscanyNotTuesdayText: + text "TUSCANY: Today is" + line "not Tuesday. That" + cont "is unfortunate…" + done + +Route29Sign1Text: + text "ROUTE 29" + + para "CHERRYGROVE CITY -" + line "NEW BARK TOWN" + done + +Route29Sign2Text: + text "ROUTE 29" + + para "CHERRYGROVE CITY -" + line "NEW BARK TOWN" + done + +Route29_MapEvents: + db 0, 0 ; filler + + db 1 ; warp events + warp_event 27, 1, ROUTE_29_ROUTE_46_GATE, 3 + + db 2 ; coord events + coord_event 53, 8, SCENE_ROUTE29_CATCH_TUTORIAL, Route29Tutorial1 + coord_event 53, 9, SCENE_ROUTE29_CATCH_TUTORIAL, Route29Tutorial2 + + db 2 ; bg events + bg_event 51, 7, BGEVENT_READ, Route29Sign1 + bg_event 3, 5, BGEVENT_READ, Route29Sign2 + + db 8 ; object events + object_event 50, 12, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, CatchingTutorialDudeScript, -1 + object_event 27, 16, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route29YoungsterScript, -1 + object_event 15, 11, SPRITE_TEACHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, Route29TeacherScript, -1 + object_event 12, 2, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route29FruitTree, -1 + object_event 25, 3, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Route29FisherScript, -1 + object_event 13, 4, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Route29CooltrainerMScript, -1 + object_event 29, 12, SPRITE_TEACHER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY + object_event 48, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route29Potion, EVENT_ROUTE_29_POTION diff --git a/maps/Route30.asm b/maps/Route30.asm new file mode 100644 index 00000000..5e47855b --- /dev/null +++ b/maps/Route30.asm @@ -0,0 +1,348 @@ + const_def 2 ; object constants + const ROUTE30_YOUNGSTER1 + const ROUTE30_YOUNGSTER2 + const ROUTE30_YOUNGSTER3 + const ROUTE30_BUG_CATCHER + const ROUTE30_YOUNGSTER4 + const ROUTE30_MONSTER1 + const ROUTE30_MONSTER2 + const ROUTE30_FRUIT_TREE1 + const ROUTE30_FRUIT_TREE2 + const ROUTE30_COOLTRAINER_F + const ROUTE30_POKE_BALL + +Route30_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +YoungsterJoey_ImportantBattleScript: + waitsfx + playmusic MUSIC_JOHTO_TRAINER_BATTLE + opentext + writetext Text_UseTackle + pause 30 + closetext + playsound SFX_TACKLE + applymovement ROUTE30_MONSTER2, Route30_JoeysRattataAttacksMovement + opentext + faceplayer + writetext Text_ThisIsABigBattle + waitbutton + turnobject ROUTE30_YOUNGSTER1, UP + closetext + playsound SFX_TACKLE + applymovement ROUTE30_MONSTER1, Route30_MikeysRattataAttacksMovement + special RestartMapMusic + end + +TrainerYoungsterJoey: + trainer YOUNGSTER, JOEY1, EVENT_BEAT_YOUNGSTER_JOEY, YoungsterJoey1SeenText, YoungsterJoey1BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + checkevent EVENT_JOEY_READY_FOR_REMATCH + iftrue .Rematch + checkcellnum PHONE_YOUNGSTER_JOEY + iftrue .NumberAccepted + checkevent EVENT_JOEY_ASKED_FOR_PHONE_NUMBER + iftrue .AskAgain + writetext YoungsterJoey1AfterText + buttonsound + setevent EVENT_JOEY_ASKED_FOR_PHONE_NUMBER + scall .AskNumber1 + jump .RequestNumber + +.AskAgain: + scall .AskNumber2 +.RequestNumber: + askforphonenumber PHONE_YOUNGSTER_JOEY + ifequal PHONE_CONTACTS_FULL, .PhoneFull + ifequal PHONE_CONTACT_REFUSED, .NumberDeclined + trainertotext YOUNGSTER, JOEY1, MEM_BUFFER_0 + scall .RegisteredNumber + jump .NumberAccepted + +.Rematch: + scall .RematchStd + winlosstext YoungsterJoey1BeatenText, 0 + checkflag ENGINE_FLYPOINT_OLIVINE + iftrue .LoadFight2 + checkflag ENGINE_FLYPOINT_GOLDENROD + iftrue .LoadFight1 + loadtrainer YOUNGSTER, JOEY1 + startbattle + reloadmapafterbattle + clearevent EVENT_JOEY_READY_FOR_REMATCH + end + +.LoadFight1: + loadtrainer YOUNGSTER, JOEY2 + startbattle + reloadmapafterbattle + clearevent EVENT_JOEY_READY_FOR_REMATCH + end + +.LoadFight2: + loadtrainer YOUNGSTER, JOEY3 + startbattle + reloadmapafterbattle + clearevent EVENT_JOEY_READY_FOR_REMATCH + end + +.AskNumber1: + jumpstd asknumber1m + end + +.AskNumber2: + jumpstd asknumber2m + end + +.RegisteredNumber: + jumpstd registerednumberm + end + +.NumberAccepted: + jumpstd numberacceptedm + end + +.NumberDeclined: + jumpstd numberdeclinedm + end + +.PhoneFull: + jumpstd phonefullm + end + +.RematchStd: + jumpstd rematchm + end + +TrainerYoungsterMikey: + trainer YOUNGSTER, MIKEY, EVENT_BEAT_YOUNGSTER_MIKEY, YoungsterMikeySeenText, YoungsterMikeyBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext YoungsterMikeyAfterText + waitbutton + closetext + end + +TrainerBugCatcherDon: + trainer BUG_CATCHER, DON, EVENT_BEAT_BUG_CATCHER_DON, BugCatcherDonSeenText, BugCatcherDonBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext BugCatcherDonAfterText + waitbutton + closetext + end + +Route30YoungsterScript: + faceplayer + opentext + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iftrue .CompletedEggQuest + writetext Route30YoungsterText_DirectionsToMrPokemonsHouse + waitbutton + closetext + end + +.CompletedEggQuest: + writetext Route30YoungsterText_EveryoneIsBattling + waitbutton + closetext + end + +Route30CooltrainerFScript: + jumptextfaceplayer Route30CooltrainerFText + +Route30Sign: + jumptext Route30SignText + +MrPokemonsHouseDirectionsSign: + jumptext MrPokemonsHouseDirectionsSignText + +MrPokemonsHouseSign: + jumptext MrPokemonsHouseSignText + +Route30TrainerTips: + jumptext Route30TrainerTipsText + +Route30FruitTree1: + fruittree FRUITTREE_ROUTE_30_1 + +Route30FruitTree2: + fruittree FRUITTREE_ROUTE_30_2 + +Route30HiddenPotion: + hiddenitem POTION, EVENT_ROUTE_30_HIDDEN_POTION + +Route30_JoeysRattataAttacksMovement: + fix_facing + big_step UP + big_step DOWN + step_end + +Route30_MikeysRattataAttacksMovement: + fix_facing + big_step DOWN + big_step UP + step_end + +Text_UseTackle: + text "Go, RATTATA!" + + para "TACKLE!" + done + +Text_ThisIsABigBattle: + text "What? This is a" + line "big battle!" + cont "Leave me alone!" + done + +YoungsterJoey1SeenText: + text "I just lost, so" + line "I'm trying to find" + cont "more #MON." + + para "Wait! You look" + line "weak! Come on," + cont "let's battle!" + done + +YoungsterJoey1BeatenText: + text "Ugh. I don't have" + line "any more #MON." + done + +YoungsterJoey1AfterText: + text "I have to have" + line "more #MON for" + cont "battles." + + para "I'm going to catch" + line "some more!" + done + +YoungsterMikeySeenText: + text "You're a #MON" + line "trainer, right?" + + para "Then you have to" + line "battle!" + done + +YoungsterMikeyBeatenText: + text "That's strange." + line "I won before." + done + +YoungsterMikeyAfterText: + text "Becoming a good" + line "trainer is really" + cont "tough." + + para "I'm going to bat-" + line "tle other people" + cont "to get better." + done + +BugCatcherDonSeenText: + text "Instead of a bug" + line "#MON, I found" + cont "a trainer!" + done + +BugCatcherDonBeatenText: + text "Argh! You're too" + line "strong!" + done + +BugCatcherDonAfterText: + text "I ran out of #" + line "BALLS while I was" + cont "catching #MON." + + para "I should've bought" + line "some more…" + done + +Route30YoungsterText_DirectionsToMrPokemonsHouse: + text "MR.#MON's" + line "house? It's a bit" + cont "farther ahead." + done + +Route30YoungsterText_EveryoneIsBattling: + text "Everyone's having" + line "fun battling!" + cont "You should too!" + done + +Route30CooltrainerFText: + text "I'm not a trainer." + + para "But if you look" + line "one in the eyes," + cont "prepare to battle." + done + +Route30SignText: + text "ROUTE 30" + + para "VIOLET CITY -" + line "CHERRYGROVE CITY" + done + +MrPokemonsHouseDirectionsSignText: + text "MR.#MON'S HOUSE" + line "Straight Ahead!" + done + +MrPokemonsHouseSignText: + text "MR.#MON'S HOUSE" + done + +Route30TrainerTipsText: + text "TRAINER TIPS" + + para "No stealing other" + line "people's #MON!" + + para "# BALLS are to" + line "be thrown only at" + cont "wild #MON!" + done + +Route30_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 7, 39, ROUTE_30_BERRY_HOUSE, 1 + warp_event 17, 5, MR_POKEMONS_HOUSE, 1 + + db 0 ; coord events + + db 5 ; bg events + bg_event 9, 43, BGEVENT_READ, Route30Sign + bg_event 13, 29, BGEVENT_READ, MrPokemonsHouseDirectionsSign + bg_event 15, 5, BGEVENT_READ, MrPokemonsHouseSign + bg_event 3, 21, BGEVENT_READ, Route30TrainerTips + bg_event 14, 9, BGEVENT_ITEM, Route30HiddenPotion + + db 10 ; object events + object_event 5, 26, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, YoungsterJoey_ImportantBattleScript, EVENT_ROUTE_30_BATTLE + object_event 6, 29, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 4, TrainerYoungsterJoey, EVENT_ROUTE_30_YOUNGSTER_JOEY + object_event 5, 23, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerYoungsterMikey, -1 + object_event 4, 7, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 3, TrainerBugCatcherDon, -1 + object_event 7, 31, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route30YoungsterScript, -1 + object_event 5, 24, SPRITE_MONSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE + object_event 5, 25, SPRITE_MONSTER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE + object_event 5, 39, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route30FruitTree1, -1 + object_event 11, 5, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route30FruitTree2, -1 + object_event 2, 13, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route30CooltrainerFScript, -1 diff --git a/maps/Route31.asm b/maps/Route31.asm new file mode 100644 index 00000000..7f47a1b2 --- /dev/null +++ b/maps/Route31.asm @@ -0,0 +1,365 @@ + const_def 2 ; object constants + const ROUTE31_FISHER + const ROUTE31_YOUNGSTER + const ROUTE31_BUG_CATCHER + const ROUTE31_COOLTRAINER_M + const ROUTE31_FRUIT_TREE + const ROUTE31_POKE_BALL1 + const ROUTE31_POKE_BALL2 + +Route31_MapScripts: + db 0 ; scene scripts + + db 1 ; callbacks + callback MAPCALLBACK_NEWMAP, .CheckMomCall + +.CheckMomCall: + checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST + iffalse .DoMomCall + return + +.DoMomCall: + specialphonecall SPECIALCALL_WORRIED + return + +TrainerBugCatcherWade1: + trainer BUG_CATCHER, WADE1, EVENT_BEAT_BUG_CATCHER_WADE, BugCatcherWade1SeenText, BugCatcherWade1BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + checkevent EVENT_WADE_READY_FOR_REMATCH + iftrue .WadeRematch + checkcellnum PHONE_BUG_CATCHER_WADE + iftrue .AcceptedNumberSTD + checkevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER + iftrue .AskAgain + writetext BugCatcherWade1AfterText + waitbutton + setevent EVENT_WADE_ASKED_FOR_PHONE_NUMBER + scall .AskPhoneNumberSTD + jump .Continue + +.AskAgain: + scall .AskAgainSTD +.Continue: + askforphonenumber PHONE_BUG_CATCHER_WADE + ifequal PHONE_CONTACTS_FULL, .PhoneFullSTD + ifequal PHONE_CONTACT_REFUSED, .DeclinedNumberSTD + trainertotext BUG_CATCHER, WADE1, MEM_BUFFER_0 + scall .RegisterNumberSTD + jump .AcceptedNumberSTD + +.WadeRematch: + scall .RematchSTD + winlosstext BugCatcherWade1BeatenText, 0 + checkflag ENGINE_FLYPOINT_MAHOGANY + iftrue .LoadFight2 + checkflag ENGINE_FLYPOINT_GOLDENROD + iftrue .LoadFight1 + loadtrainer BUG_CATCHER, WADE1 + startbattle + reloadmapafterbattle + clearevent EVENT_WADE_READY_FOR_REMATCH + end + +.LoadFight1: + loadtrainer BUG_CATCHER, WADE2 + startbattle + reloadmapafterbattle + clearevent EVENT_WADE_READY_FOR_REMATCH + end + +.LoadFight2: + loadtrainer BUG_CATCHER, WADE3 + startbattle + reloadmapafterbattle + clearevent EVENT_WADE_READY_FOR_REMATCH + end + +.AskPhoneNumberSTD: + jumpstd asknumber1m + end + +.AskAgainSTD: + jumpstd asknumber2m + end + +.RegisterNumberSTD: + jumpstd registerednumberm + end + +.AcceptedNumberSTD: + jumpstd numberacceptedm + end + +.DeclinedNumberSTD: + jumpstd numberdeclinedm + end + +.PhoneFullSTD: + jumpstd phonefullm + end + +.RematchSTD: + jumpstd rematchm + end + + +Route31MailRecipientScript: + faceplayer + opentext + checkevent EVENT_GOT_TM50_NIGHTMARE + iftrue .DescribeNightmare + checkevent EVENT_GOT_KENYA + iftrue .TryGiveKenya + writetext Text_Route31SleepyMan + waitbutton + closetext + end + +.TryGiveKenya: + writetext Text_Route31SleepyManGotMail + buttonsound + checkpokemail ReceivedSpearowMailText + ifequal POKEMAIL_WRONG_MAIL, .WrongMail + ifequal POKEMAIL_REFUSED, .Refused + ifequal POKEMAIL_NO_MAIL, .NoMail + ifequal POKEMAIL_LAST_MON, .LastMon + ; POKEMAIL_CORRECT + writetext Text_Route31HandOverMailMon + buttonsound + writetext Text_Route31ReadingMail + buttonsound + setevent EVENT_GAVE_KENYA + verbosegiveitem TM_NIGHTMARE + iffalse .NoRoomForItems + setevent EVENT_GOT_TM50_NIGHTMARE +.DescribeNightmare: + writetext Text_Route31DescribeNightmare + waitbutton +.NoRoomForItems: + closetext + end + +.WrongMail: + writetext Text_Route31WrongMail + waitbutton + closetext + end + +.NoMail: + writetext Text_Route31MissingMail + waitbutton + closetext + end + +.Refused: + writetext Text_Route31DeclinedToHandOverMail + waitbutton + closetext + end + +.LastMon: + writetext Text_Route31CantTakeLastMon + waitbutton + closetext + end + +ReceivedSpearowMailText: + db "DARK CAVE leads" + next "to another road@" + +Route31YoungsterScript: + jumptextfaceplayer Route31YoungsterText + +Route31Sign: + jumptext Route31SignText + +DarkCaveSign: + jumptext DarkCaveSignText + +Route31CooltrainerMScript: + jumptextfaceplayer Route31CooltrainerMText + +Route31FruitTree: + fruittree FRUITTREE_ROUTE_31 + +Route31Antidote: + itemball ANTIDOTE + +Route31PokeBall: + itemball POKE_BALL + +Route31CooltrainerMText: + text "DARK CAVE…" + + para "If #MON could" + line "light it up, I'd" + cont "explore it." + done + +BugCatcherWade1SeenText: + text "I caught a bunch" + line "of #MON. Let me" + cont "battle with you!" + done + +BugCatcherWade1BeatenText: + text "Awwwww…" + done + +BugCatcherWade1AfterText: + text "You can catch" + line "#MON even if" + + para "you have six with" + line "you." + + para "If you catch one," + line "it'll go to your" + cont "BOX automatically." + done + +Text_Route31SleepyMan: + text "… Hnuurg… Huh?" + + para "I walked too far" + line "today looking for" + cont "#MON." + + para "My feet hurt and" + line "I'm sleepy…" + + para "If I were a wild" + line "#MON, I'd be" + cont "easy to catch…" + + para "…Zzzz…" + done + +Text_Route31SleepyManGotMail: + text "…Zzzz… Huh?" + + para "What's that? You" + line "have MAIL for me?" + done + +Text_Route31HandOverMailMon: + text "<PLAYER> handed" + line "over the #MON" + cont "holding the MAIL." + done + +Text_Route31ReadingMail: + text "Let's see…" + + para "…DARK CAVE leads" + line "to another road…" + + para "That's good to" + line "know." + + para "Thanks for bring-" + line "ing this to me." + + para "My friend's a good" + line "guy, and you're a" + cont "swell guy too!" + + para "I'd like to do" + line "something good in" + cont "return too!" + + para "I know! I want you" + line "to have this!" + done + +Text_Route31DescribeNightmare: + text "TM50 is NIGHTMARE." + + para "It's a wicked move" + line "that steadily cuts" + + para "the HP of a sleep-" + line "ing enemy." + + para "Ooooh…" + line "That's scary…" + + para "I don't want to" + line "have bad dreams." + done + +Text_Route31WrongMail: + text "This MAIL isn't" + line "for me." + done + +Text_Route31MissingMail: + text "Why is this #-" + line "MON so special?" + + para "It doesn't have" + line "any MAIL." + done + +Text_Route31DeclinedToHandOverMail: + text "What? You don't" + line "want anything?" + done + +Text_Route31CantTakeLastMon: + text "If I take that" + line "#MON from you," + + para "what are you going" + line "to use in battle?" + done + +Route31YoungsterText: + text "I found a good" + line "#MON in DARK" + cont "CAVE." + + para "I'm going to raise" + line "it to take on" + cont "FALKNER." + + para "He's the leader of" + line "VIOLET CITY's GYM." + done + +Route31SignText: + text "ROUTE 31" + + para "VIOLET CITY -" + line "CHERRYGROVE CITY" + done + +DarkCaveSignText: + text "DARK CAVE" + done + +Route31_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 4, 6, ROUTE_31_VIOLET_GATE, 3 + warp_event 4, 7, ROUTE_31_VIOLET_GATE, 4 + warp_event 34, 5, DARK_CAVE_VIOLET_ENTRANCE, 1 + + db 0 ; coord events + + db 2 ; bg events + bg_event 7, 5, BGEVENT_READ, Route31Sign + bg_event 31, 5, BGEVENT_READ, DarkCaveSign + + db 7 ; object events + object_event 17, 7, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31MailRecipientScript, -1 + object_event 9, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31YoungsterScript, -1 + object_event 18, 15, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 3, TrainerBugCatcherWade1, -1 + object_event 33, 8, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31CooltrainerMScript, -1 + object_event 16, 7, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route31FruitTree, -1 + object_event 29, 5, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route31Antidote, EVENT_ROUTE_31_ANTIDOTE + object_event 21, 13, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route31PokeBall, EVENT_ROUTE_31_POKE_BALL |