diff options
-rw-r--r-- | constants/event_flags.asm | 2 | ||||
-rw-r--r-- | main.asm | 13 | ||||
-rw-r--r-- | maps/BlackthornCity.asm | 341 | ||||
-rw-r--r-- | maps/EcruteakCity.asm | 265 | ||||
-rw-r--r-- | maps/LakeOfRage.asm | 522 | ||||
-rw-r--r-- | maps/MahoganyTown.asm | 268 | ||||
-rw-r--r-- | maps/OlivineCity.asm | 306 |
7 files changed, 1709 insertions, 8 deletions
diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 613ebfac..77f3773f 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -1672,7 +1672,7 @@ const EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB const EVENT_VIOLET_CITY_PP_UP const EVENT_VIOLET_CITY_RARE_CANDY - const EVENT_LAKE_OF_RAGE_ELIXER + const EVENT_LAKE_OF_RAGE_MAX_ETHER const EVENT_LAKE_OF_RAGE_TM_DETECT const EVENT_SPROUT_TOWER1F_PARLYZ_HEAL const EVENT_SPROUT_TOWER2F_X_ACCURACY @@ -1628,13 +1628,12 @@ INCLUDE "maps/CianwoodCity.asm" INCLUDE "maps/GoldenrodCity.asm" SECTION "bank49", ROMX, BANK[$49] -;INCLUDE "maps/OlivineCity.asm" -;INCLUDE "maps/EcruteakCity.asm" -;INCLUDE "maps/MahoganyTown.asm" -;INCLUDE "maps/LakeOfRage.asm" -;INCLUDE "maps/BlackthornCity.asm" -;INCLUDE "maps/MountSilver.asm" - dr $124000, $128000 +INCLUDE "maps/OlivineCity.asm" +INCLUDE "maps/EcruteakCity.asm" +INCLUDE "maps/MahoganyTown.asm" +INCLUDE "maps/LakeOfRage.asm" +INCLUDE "maps/BlackthornCity.asm" +INCLUDE "maps/SilverCaveOutside.asm" SECTION "bank4a", ROMX, BANK[$4a] INCLUDE "maps/Route26.asm" diff --git a/maps/BlackthornCity.asm b/maps/BlackthornCity.asm new file mode 100644 index 00000000..a31adb4a --- /dev/null +++ b/maps/BlackthornCity.asm @@ -0,0 +1,341 @@ + const_def 2 ; object constants + const BLACKTHORNCITY_SUPER_NERD1 + const BLACKTHORNCITY_SUPER_NERD2 + const BLACKTHORNCITY_GRAMPS1 + const BLACKTHORNCITY_GRAMPS2 + const BLACKTHORNCITY_BLACK_BELT + const BLACKTHORNCITY_COOLTRAINER_F1 + const BLACKTHORNCITY_YOUNGSTER1 + const BLACKTHORNCITY_SANTOS + const BLACKTHORNCITY_COOLTRAINER_F2 + +BlackthornCity_MapScripts: + db 0 ; scene scripts + + db 2 ; callbacks + callback MAPCALLBACK_NEWMAP, .FlyPoint + callback MAPCALLBACK_OBJECTS, .Santos + +.FlyPoint: + setflag ENGINE_FLYPOINT_BLACKTHORN + return + +.Santos: + checkcode VAR_WEEKDAY + ifequal SATURDAY, .SantosAppears + disappear BLACKTHORNCITY_SANTOS + return + +.SantosAppears: + appear BLACKTHORNCITY_SANTOS + return + +BlackthornSuperNerdScript: + faceplayer + opentext + checkevent EVENT_BEAT_CLAIR + iftrue .BeatClair + checkevent EVENT_CLEARED_RADIO_TOWER + iftrue .ClearedRadioTower + writetext Text_ClairIsOut + waitbutton + closetext + end + +.ClearedRadioTower: + writetext Text_ClairIsIn + waitbutton + closetext + end + +.BeatClair: + writetext Text_ClairIsBeaten + waitbutton + closetext + end + +BlackthornGramps1Script: + jumptextfaceplayer BlackthornGrampsRefusesEntryText + +BlackthornGramps2Script: + jumptextfaceplayer BlackthornGrampsGrantsEntryText + +BlackthornBlackBeltScript: + faceplayer + opentext + checkevent EVENT_CLEARED_RADIO_TOWER + iftrue .ClearedRadioTower + writetext BlackBeltText_WeirdRadio + waitbutton + closetext + end + +.ClearedRadioTower: + writetext BlackBeltText_VoicesInMyHead + waitbutton + closetext + end + +BlackthornCooltrainerF1Script: + jumptextfaceplayer BlackthornCooltrainerF1Text + +BlackthornYoungsterScript: + jumptextfaceplayer BlackthornYoungsterText + +BlackthornCooltrainerF2Script: + jumptextfaceplayer BlackthornCooltrainerF2Text + +SantosScript: + faceplayer + opentext + checkevent EVENT_GOT_SPELL_TAG_FROM_SANTOS + iftrue .Saturday + checkcode VAR_WEEKDAY + ifnotequal SATURDAY, .NotSaturday + checkevent EVENT_MET_SANTOS_OF_SATURDAY + iftrue .MetSantos + writetext MeetSantosText + buttonsound + setevent EVENT_MET_SANTOS_OF_SATURDAY +.MetSantos: + writetext SantosGivesGiftText + buttonsound + verbosegiveitem SPELL_TAG + iffalse .Done + setevent EVENT_GOT_SPELL_TAG_FROM_SANTOS + writetext SantosGaveGiftText + waitbutton + closetext + end + +.Saturday: + writetext SantosSaturdayText + waitbutton +.Done: + closetext + end + +.NotSaturday: + writetext SantosNotSaturdayText + waitbutton + closetext + end + +BlackthornCitySign: + jumptext BlackthornCitySignText + +BlackthornGymSign: + jumptext BlackthornGymSignText + +MoveDeletersHouseSign: + jumptext MoveDeletersHouseSignText + +DragonDensSign: + jumptext DragonDensSignText + +BlackthornCityTrainerTips: + jumptext BlackthornCityTrainerTipsText + +BlackthornCityPokecenterSign: + jumpstd pokecentersign + +BlackthornCityMartSign: + jumpstd martsign + +Text_ClairIsOut: + text "I am sorry." + + para "Our GYM LEADER is" + line "training in the" + cont "cave behind here." + + para "I have no idea" + line "when our LEADER" + cont "will return." + done + +Text_ClairIsIn: + text "Our GYM LEADER is" + line "waiting for you." + + para "However, it would" + line "be impossible for" + + para "a run-of-the-mill" + line "trainer to win." + done + +Text_ClairIsBeaten: + text "You defeated our" + line "GYM LEADER?" + cont "That's amazing!" + + para "With your power," + line "you should succeed" + + para "in the #MON" + line "LEAGUE." + done + +BlackthornGrampsRefusesEntryText: + text "Only dragon users" + line "are permitted to" + + para "train here." + line "Please leave." + done + +BlackthornGrampsGrantsEntryText: + text "Since CLAIR, the" + line "dragon master, has" + + para "allowed it, you" + line "may enter." + done + +BlackBeltText_WeirdRadio: + text "My radio's busted?" + line "Lately, I only get" + cont "this weird signal." + done + +BlackBeltText_VoicesInMyHead: + text "Arooo! Voices in" + line "my head!" + + para "Huh? I'm listening" + line "to my radio!" + done + +BlackthornCooltrainerF1Text: + text "Are you going to" + line "make your #MON" + cont "forget some moves?" + done + +BlackthornYoungsterText: + text "I'm going to be a" + line "dragon user like" + cont "CLAIR." + done + +MeetSantosText: + text "SANTOS: …" + + para "It's Saturday…" + + para "I'm SANTOS of" + line "Saturday…" + done + +SantosGivesGiftText: + text "You can have this…" + done + +SantosGaveGiftText: + text "SANTOS: …" + + para "SPELL TAG…" + + para "Ghost-type moves" + line "get stronger…" + + para "It will frighten" + line "you…" + done + +SantosSaturdayText: + text "SANTOS: …" + + para "See you again on" + line "another Saturday…" + + para "I won't have any" + line "more gifts…" + done + +SantosNotSaturdayText: + text "SANTOS: Today's" + line "not Saturday…" + done + +BlackthornCooltrainerF2Text: + text "Wow, you came" + line "through the ICE" + cont "PATH?" + + para "You must be a real" + line "hotshot trainer!" + done + +BlackthornCitySignText: + text "BLACKTHORN CITY" + + para "A Quiet Mountain" + line "Retreat" + done + +BlackthornGymSignText: + text "BLACKTHORN CITY" + line "#MON GYM" + cont "LEADER: CLAIR" + + para "The Blessed User" + line "of Dragon #MON" + done + +MoveDeletersHouseSignText: + text "MOVE DELETER'S" + line "HOUSE" + done + +DragonDensSignText: + text "DRAGON'S DEN" + line "AHEAD" + done + +BlackthornCityTrainerTipsText: + text "TRAINER TIPS" + + para "A #MON holding" + line "a MIRACLEBERRY" + + para "will cure itself" + line "of any status" + cont "problem." + done + +BlackthornCity_MapEvents: + db 0, 0 ; filler + + db 8 ; warp events + warp_event 18, 11, BLACKTHORN_GYM_1F, 1 + warp_event 13, 21, BLACKTHORN_DRAGON_SPEECH_HOUSE, 1 + warp_event 29, 23, BLACKTHORN_EMYS_HOUSE, 1 + warp_event 15, 29, BLACKTHORN_MART, 2 + warp_event 21, 29, BLACKTHORN_POKECENTER_1F, 1 + warp_event 9, 31, MOVE_DELETERS_HOUSE, 1 + warp_event 36, 9, ICE_PATH_1F, 2 + warp_event 20, 1, DRAGONS_DEN_1F, 1 + + db 0 ; coord events + + db 7 ; bg events + bg_event 34, 24, BGEVENT_READ, BlackthornCitySign + bg_event 17, 13, BGEVENT_READ, BlackthornGymSign + bg_event 7, 31, BGEVENT_READ, MoveDeletersHouseSign + bg_event 21, 3, BGEVENT_READ, DragonDensSign + bg_event 5, 25, BGEVENT_READ, BlackthornCityTrainerTips + bg_event 16, 29, BGEVENT_READ, BlackthornCityMartSign + bg_event 22, 29, BGEVENT_READ, BlackthornCityPokecenterSign + + db 9 ; object events + object_event 18, 12, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, BlackthornSuperNerdScript, EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM + object_event 19, 12, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, BlackthornSuperNerdScript, EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM + object_event 20, 2, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BlackthornGramps1Script, EVENT_BLACKTHORN_CITY_GRAMPS_BLOCKS_DRAGONS_DEN + object_event 21, 2, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BlackthornGramps2Script, EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN + object_event 24, 31, SPRITE_BLACK_BELT, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, BlackthornBlackBeltScript, -1 + object_event 9, 25, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, BlackthornCooltrainerF1Script, -1 + object_event 13, 15, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BlackthornYoungsterScript, -1 + object_event 22, 20, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SantosScript, EVENT_BLACKTHORN_CITY_SANTOS_OF_SATURDAY + object_event 35, 19, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, BlackthornCooltrainerF2Script, -1 diff --git a/maps/EcruteakCity.asm b/maps/EcruteakCity.asm new file mode 100644 index 00000000..57be1eb4 --- /dev/null +++ b/maps/EcruteakCity.asm @@ -0,0 +1,265 @@ + const_def 2 ; object constants + const ECRUTEAKCITY_GRAMPS1 + const ECRUTEAKCITY_GRAMPS2 + const ECRUTEAKCITY_LASS1 + const ECRUTEAKCITY_LASS2 + const ECRUTEAKCITY_FISHER + const ECRUTEAKCITY_YOUNGSTER + const ECRUTEAKCITY_GRAMPS3 + +EcruteakCity_MapScripts: + db 0 ; scene scripts + + db 1 ; callbacks + callback MAPCALLBACK_NEWMAP, .FlyPoint + +.FlyPoint: + setflag ENGINE_FLYPOINT_ECRUTEAK + return + +EcruteakCityGramps1Script: + jumptextfaceplayer EcruteakCityGramps1Text + +EcruteakCityGramps2Script: + jumptextfaceplayer EcruteakCityGramps2Text + +EcruteakCityLass1Script: + jumptextfaceplayer EcruteakCityLass1Text + +EcruteakCityLass2Script: + faceplayer + opentext + checkevent EVENT_RELEASED_THE_BEASTS + iftrue .ReleasedBeasts + writetext EcruteakCityLass2Text + waitbutton + closetext + end + +.ReleasedBeasts: + writetext EcruteakCityLass2Text_ReleasedBeasts + waitbutton + closetext + end + +EcruteakCityFisherScript: + faceplayer + opentext + checkevent EVENT_JASMINE_RETURNED_TO_GYM + iftrue .JasmineReturned + writetext EcruteakCityFisherText + waitbutton + closetext + end + +.JasmineReturned: + writetext EcruteakCityFisherText_JasmineReturned + waitbutton + closetext + end + +EcruteakCityYoungsterScript: + jumptextfaceplayer EcruteakCityYoungsterText + +EcruteakCitySign: + jumptext EcruteakCitySignText + +TinTowerSign: + jumptext TinTowerSignText + +EcruteakGymSign: + jumptext EcruteakGymSignText + +EcruteakDanceTheaterSign: + jumptext EcruteakDanceTheaterSignText + +BurnedTowerSign: + jumptext BurnedTowerSignText + +EcruteakCityPokecenterSign: + jumpstd pokecentersign + +EcruteakCityMartSign: + jumpstd martsign + +EcruteakCityHiddenHyperPotion: + hiddenitem HYPER_POTION, EVENT_ECRUTEAK_CITY_HIDDEN_HYPER_POTION + +UnusedMissingDaughterText: +; unused + text "Oh, no. Oh, no…" + + para "My daughter is" + line "missing." + + para "No… She couldn't" + line "have gone to the" + cont "BURNED TOWER." + + para "I told her not to" + line "go near it…" + + para "People seem to" + line "disappear there…" + + para "Oh, what should I" + line "do…?" + done + +EcruteakCityGramps1Text: + text "ECRUTEAK used to" + line "have two towers:" + + para "one each in the" + line "east and west." + done + +EcruteakCityGramps2Text: + text "Ah, youngster." + line "Have you learned" + + para "to dance like the" + line "KIMONO GIRLS?" + + para "If you go to their" + line "DANCE THEATER, an" + + para "odd old man will" + line "give you something" + cont "nice, I hear." + done + +EcruteakCityLass1Text: + text "I'm going to prac-" + line "tice at the DANCE" + + para "THEATER. Care to" + line "join me?" + done + +EcruteakCityLass2Text: + text "That used to be a" + line "much taller tower," + + para "but it burned down" + line "in a fire." + done + +EcruteakCityLass2Text_ReleasedBeasts: + text "Three big #MON" + line "ran off in differ-" + cont "ent directions." + cont "What were they?" + done + +EcruteakCityFisherText: + text "I heard a rumor" + line "about OLIVINE" + cont "LIGHTHOUSE." + + para "The #MON that" + line "serves as the" + + para "beacon fell ill." + line "Sounds like they" + cont "are in trouble." + done + +EcruteakCityFisherText_JasmineReturned: + text "The #MON at" + line "OLIVINE LIGHTHOUSE" + cont "has been cured." + + para "Boats can safely" + line "sail out to sea at" + cont "night again." + done + +EcruteakCityYoungsterText: + text "I hear #MON are" + line "rampaging at the" + + para "LAKE OF RAGE. I'd" + line "like to see that." + done + +EcruteakCitySignText: + text "ECRUTEAK CITY" + line "A Historical City" + + para "Where the Past" + line "Meets the Present" + done + +TinTowerSignText: + text "TIN TOWER" + + para "A legendary #-" + line "MON is said to" + cont "roost here." + done + +EcruteakGymSignText: + text "ECRUTEAK CITY" + line "#MON GYM" + cont "LEADER: MORTY" + + para "The Mystic Seer of" + line "the Future" + done + +EcruteakDanceTheaterSignText: + text "ECRUTEAK DANCE" + line "THEATER" + done + +BurnedTowerSignText: + text "BURNED TOWER" + + para "It was destroyed" + line "by a mysterious" + cont "fire." + + para "Please stay away," + line "as it is unsafe." + done + +EcruteakCity_MapEvents: + db 0, 0 ; filler + + db 15 ; warp events + warp_event 35, 26, ROUTE_42_ECRUTEAK_GATE, 1 + warp_event 35, 27, ROUTE_42_ECRUTEAK_GATE, 2 + warp_event 18, 11, ECRUTEAK_TIN_TOWER_ENTRANCE, 1 + warp_event 20, 2, WISE_TRIOS_ROOM, 1 + warp_event 20, 3, WISE_TRIOS_ROOM, 2 + warp_event 23, 27, ECRUTEAK_POKECENTER_1F, 1 + warp_event 5, 21, ECRUTEAK_LUGIA_SPEECH_HOUSE, 1 + warp_event 23, 21, DANCE_THEATRE, 1 + warp_event 29, 21, ECRUTEAK_MART, 2 + warp_event 6, 27, ECRUTEAK_GYM, 1 + warp_event 13, 27, ECRUTEAK_ITEMFINDER_HOUSE, 1 + warp_event 37, 7, TIN_TOWER_1F, 1 + warp_event 5, 5, BURNED_TOWER_1F, 1 + warp_event 0, 18, ROUTE_38_ECRUTEAK_GATE, 3 + warp_event 0, 19, ROUTE_38_ECRUTEAK_GATE, 4 + + db 0 ; coord events + + db 8 ; bg events + bg_event 15, 21, BGEVENT_READ, EcruteakCitySign + bg_event 38, 10, BGEVENT_READ, TinTowerSign + bg_event 8, 28, BGEVENT_READ, EcruteakGymSign + bg_event 21, 21, BGEVENT_READ, EcruteakDanceTheaterSign + bg_event 2, 10, BGEVENT_READ, BurnedTowerSign + bg_event 24, 27, BGEVENT_READ, EcruteakCityPokecenterSign + bg_event 30, 21, BGEVENT_READ, EcruteakCityMartSign + bg_event 23, 14, BGEVENT_ITEM, EcruteakCityHiddenHyperPotion + + db 6 ; object events + object_event 18, 15, SPRITE_GRAMPS, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakCityGramps1Script, -1 + object_event 20, 21, SPRITE_GRAMPS, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakCityGramps2Script, -1 + object_event 21, 29, SPRITE_LASS, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, EcruteakCityLass1Script, -1 + object_event 3, 9, SPRITE_LASS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, EcruteakCityLass2Script, -1 + object_event 9, 22, SPRITE_FISHER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, EcruteakCityFisherScript, -1 + object_event 10, 14, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, EcruteakCityYoungsterScript, -1 diff --git a/maps/LakeOfRage.asm b/maps/LakeOfRage.asm new file mode 100644 index 00000000..892d1f0e --- /dev/null +++ b/maps/LakeOfRage.asm @@ -0,0 +1,522 @@ + const_def 2 ; object constants + const LAKEOFRAGE_LANCE + const LAKEOFRAGE_GRAMPS + const LAKEOFRAGE_SUPER_NERD1 + const LAKEOFRAGE_COOLTRAINER_F1 + const LAKEOFRAGE_FISHER1 + const LAKEOFRAGE_FISHER2 + const LAKEOFRAGE_COOLTRAINER_M + const LAKEOFRAGE_COOLTRAINER_F2 + const LAKEOFRAGE_GYARADOS + const LAKEOFRAGE_WESLEY + const LAKEOFRAGE_POKE_BALL1 + const LAKEOFRAGE_POKE_BALL2 + +LakeOfRage_MapScripts: + db 2 ; scene scripts + scene_script .DummyScene0 ; unusable + scene_script .DummyScene1 ; unusable + + db 2 ; callbacks + callback MAPCALLBACK_NEWMAP, .FlyPoint + callback MAPCALLBACK_OBJECTS, .Wesley + +.DummyScene0: + end + +.DummyScene1: + end + +.FlyPoint: + setflag ENGINE_FLYPOINT_LAKE_OF_RAGE + return + +.Wesley: + checkcode VAR_WEEKDAY + ifequal WEDNESDAY, .WesleyAppears + disappear LAKEOFRAGE_WESLEY + return + +.WesleyAppears: + appear LAKEOFRAGE_WESLEY + return + +LakeOfRageLanceScript: + checkevent EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE + iftrue .AskAgainForHelp + opentext + writetext UnknownText_0x70157 + buttonsound + faceplayer + writetext UnknownText_0x701b4 + yesorno + iffalse .RefusedToHelp +.AgreedToHelp: + writetext UnknownText_0x702c6 + waitbutton + closetext + playsound SFX_WARP_TO + applymovement LAKEOFRAGE_LANCE, MovementData_0x70155 + disappear LAKEOFRAGE_LANCE + clearevent EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE + setevent EVENT_DECIDED_TO_HELP_LANCE + setmapscene MAHOGANY_MART_1F, SCENE_MAHOGANYMART1F_LANCE_UNCOVERS_STAIRS + end + +.RefusedToHelp: + writetext UnknownText_0x70371 + waitbutton + closetext + setevent EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE + end + +.AskAgainForHelp: + faceplayer + opentext + writetext UnknownText_0x703a5 + yesorno + iffalse .RefusedToHelp + jump .AgreedToHelp + +RedGyarados: + opentext + writetext UnknownText_0x703cb + pause 15 + cry GYARADOS + closetext + loadwildmon GYARADOS, 30 + writecode VAR_BATTLETYPE, BATTLETYPE_SHINY + startbattle + ifequal $1, .NotBeaten + disappear LAKEOFRAGE_GYARADOS +.NotBeaten: + reloadmapafterbattle + opentext + giveitem RED_SCALE + waitsfx + writetext UnknownText_0x703df + playsound SFX_ITEM + waitsfx + itemnotify + closetext + setscene 0 ; Lake of Rage does not have a scene variable + appear LAKEOFRAGE_LANCE + end + +LakeOfRageGrampsScript: + faceplayer + opentext + checkevent EVENT_CLEARED_ROCKET_HIDEOUT + iftrue .ClearedRocketHideout + writetext LakeOfRageGrampsText + waitbutton + closetext + end + +.ClearedRocketHideout: + writetext LakeOfRageGrampsText_ClearedRocketHideout + waitbutton + closetext + end + +LakeOfRageSuperNerdScript: + jumptextfaceplayer LakeOfRageSuperNerdText + +LakeOfRageCooltrainerFScript: + jumptextfaceplayer LakeOfRageCooltrainerFText + +LakeOfRageSign: + jumptext LakeOfRageSignText + +MagikarpHouseSignScript: + opentext + writetext FishingGurusHouseSignText + checkevent EVENT_CLEARED_ROCKET_HIDEOUT + iftrue .MagikarpLengthRecord + waitbutton + closetext + end + +.MagikarpLengthRecord: + buttonsound + special MagikarpHouseSign + closetext + end + +TrainerFisherAndre: + trainer FISHER, ANDRE, EVENT_BEAT_FISHER_ANDRE, FisherAndreSeenText, FisherAndreBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext FisherAndreAfterBattleText + waitbutton + closetext + end + +TrainerFisherRaymond: + trainer FISHER, RAYMOND, EVENT_BEAT_FISHER_RAYMOND, FisherRaymondSeenText, FisherRaymondBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext FisherRaymondAfterBattleText + waitbutton + closetext + end + +TrainerCooltrainermAaron: + trainer COOLTRAINERM, AARON, EVENT_BEAT_COOLTRAINERM_AARON, CooltrainermAaronSeenText, CooltrainermAaronBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CooltrainermAaronAfterBattleText + waitbutton + closetext + end + +TrainerCooltrainerfLois: + trainer COOLTRAINERF, LOIS, EVENT_BEAT_COOLTRAINERF_LOIS, CooltrainerfLoisSeenText, CooltrainerfLoisBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext CooltrainerfLoisAfterBattleText + waitbutton + closetext + end + +WesleyScript: + faceplayer + opentext + checkevent EVENT_GOT_BLACKBELT_FROM_WESLEY + iftrue WesleyWednesdayScript + checkcode VAR_WEEKDAY + ifnotequal WEDNESDAY, WesleyNotWednesdayScript + checkevent EVENT_MET_WESLEY_OF_WEDNESDAY + iftrue .MetWesley + writetext MeetWesleyText + buttonsound + setevent EVENT_MET_WESLEY_OF_WEDNESDAY +.MetWesley: + writetext WesleyGivesGiftText + buttonsound + verbosegiveitem BLACKBELT + iffalse WesleyDoneScript + setevent EVENT_GOT_BLACKBELT_FROM_WESLEY + writetext WesleyGaveGiftText + waitbutton + closetext + end + +WesleyWednesdayScript: + writetext WesleyWednesdayText + waitbutton +WesleyDoneScript: + closetext + end + +WesleyNotWednesdayScript: + writetext WesleyNotWednesdayText + waitbutton + closetext + end + +LakeOfRageMaxEther: + itemball MAX_ETHER + +LakeOfRageTMDetect: + itemball TM_DETECT + +LakeOfRageHiddenFullRestore: + hiddenitem FULL_RESTORE, EVENT_LAKE_OF_RAGE_HIDDEN_FULL_RESTORE + +LakeOfRageHiddenRareCandy: + hiddenitem RARE_CANDY, EVENT_LAKE_OF_RAGE_HIDDEN_RARE_CANDY + +LakeOfRageHiddenMaxPotion: + hiddenitem MAX_POTION, EVENT_LAKE_OF_RAGE_HIDDEN_MAX_POTION + +MovementData_0x70155: + teleport_from + step_end + +UnknownText_0x70157: + text "This lake is full" + line "of GYARADOS but" + cont "nothing else…" + + para "So the MAGIKARP" + line "are being forced" + cont "to evolve…" + done + +UnknownText_0x701b4: + text "Did you come here" + line "because of the" + cont "rumors?" + + para "You're <PLAYER>?" + line "I'm LANCE, a" + cont "trainer like you." + + para "I heard some ru-" + line "mors, so I came to" + cont "investigate…" + + para "I saw the way you" + line "battled earlier," + cont "<PLAYER>." + + para "I can tell that" + line "you're a trainer" + + para "with considerable" + line "skill." + + para "If you don't mind," + line "could you help me" + cont "investigate?" + done + +UnknownText_0x702c6: + text "LANCE: Excellent!" + + para "It seems that the" + line "LAKE's MAGIKARP" + + para "are being forced" + line "to evolve." + + para "A mysterious radio" + line "broadcast coming" + + para "from MAHOGANY is" + line "the cause." + + para "I'll be waiting" + line "for you, <PLAYER>." + done + +UnknownText_0x70371: + text "Oh… Well, if you" + line "change your mind," + cont "please help me." + done + +UnknownText_0x703a5: + text "LANCE: Hm? Are you" + line "going to help me?" + done + +UnknownText_0x703cb: + text "GYARADOS: Gyashaa!" + done + +UnknownText_0x703df: + text "<PLAYER> obtained a" + line "RED SCALE." + done + +LakeOfRageGrampsText: + text "The GYARADOS are" + line "angry!" + + para "It's a bad omen!" + done + +LakeOfRageGrampsText_ClearedRocketHideout: + text "Hahah! The MAGI-" + line "KARP are biting!" + done + +LakeOfRageSuperNerdText: + text "I heard this lake" + line "was made by ram-" + cont "paging GYARADOS." + + para "I wonder if there" + line "is any connection" + + para "to their mass out-" + line "break now?" + done + +LakeOfRageCooltrainerFText: + text "Did my eyes de-" + line "ceive me? I saw a" + + para "red GYARADOS in" + line "the LAKE…" + + para "But I thought" + line "GYARADOS were" + cont "usually blue?" + done + +FisherAndreSeenText: + text "Let me battle with" + line "the #MON I just" + cont "caught!" + done + +FisherAndreBeatenText: + text "I might be an ex-" + line "pert angler, but" + + para "I stink as a #-" + line "MON trainer…" + done + +FisherAndreAfterBattleText: + text "I won't lose as an" + line "angler! I catch" + cont "#MON all day." + done + +FisherRaymondSeenText: + text "No matter what I" + line "do, all I catch" + + para "are the same #-" + line "MON…" + done + +FisherRaymondBeatenText: + text "My line's all" + line "tangled up…" + done + +FisherRaymondAfterBattleText: + text "Why can't I catch" + line "any good #MON?" + done + +CooltrainermAaronSeenText: + text "If a trainer spots" + line "another trainer," + + para "he has to make a" + line "challenge." + + para "That is our" + line "destiny." + done + +CooltrainermAaronBeatenText: + text "Whew…" + line "Good battle." + done + +CooltrainermAaronAfterBattleText: + text "#MON and their" + line "trainer become" + + para "powerful through" + line "constant battling." + done + +CooltrainerfLoisSeenText: + text "What happened to" + line "the red GYARADOS?" + + para "It's gone?" + + para "Oh, darn. I came" + line "here for nothing?" + + para "I know--let's" + line "battle!" + done + +CooltrainerfLoisBeatenText: + text "Good going!" + done + +CooltrainerfLoisAfterBattleText: + text "Come to think of" + line "it, I've seen a" + cont "pink BUTTERFREE." + done + +MeetWesleyText: + text "WESLEY: Well, how" + line "do you do?" + + para "Seeing as how it's" + line "Wednesday today," + + para "I'm WESLEY of" + line "Wednesday." + done + +WesleyGivesGiftText: + text "Pleased to meet" + line "you. Please take a" + cont "souvenir." + done + +WesleyGaveGiftText: + text "WESLEY: BLACKBELT" + line "beefs up the power" + cont "of fighting moves." + done + +WesleyWednesdayText: + text "WESLEY: Since you" + line "found me, you must" + + para "have met my broth-" + line "ers and sisters." + + para "Or did you just" + line "get lucky?" + done + +WesleyNotWednesdayText: + text "WESLEY: Today's" + line "not Wednesday." + cont "That's too bad." + done + +LakeOfRageSignText: + text "LAKE OF RAGE," + line "also known as" + cont "GYARADOS LAKE." + done + +FishingGurusHouseSignText: + text "FISHING GURU'S" + line "HOUSE" + done + +LakeOfRage_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 7, 3, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 1 + warp_event 27, 31, LAKE_OF_RAGE_MAGIKARP_HOUSE, 1 + + db 0 ; coord events + + db 5 ; bg events + bg_event 21, 27, BGEVENT_READ, LakeOfRageSign + bg_event 25, 31, BGEVENT_READ, MagikarpHouseSignScript + bg_event 11, 28, BGEVENT_ITEM, LakeOfRageHiddenFullRestore + bg_event 4, 4, BGEVENT_ITEM, LakeOfRageHiddenRareCandy + bg_event 35, 5, BGEVENT_ITEM, LakeOfRageHiddenMaxPotion + + db 12 ; object events + object_event 21, 28, SPRITE_LANCE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageLanceScript, EVENT_LAKE_OF_RAGE_LANCE + object_event 20, 26, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageGrampsScript, -1 + object_event 36, 13, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageSuperNerdScript, -1 + object_event 25, 29, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageCooltrainerFScript, -1 + object_event 30, 23, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS + object_event 24, 26, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS + object_event 4, 15, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS + object_event 36, 7, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS + object_event 18, 22, SPRITE_GYARADOS, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RedGyarados, EVENT_LAKE_OF_RAGE_RED_GYARADOS + object_event 4, 4, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY + object_event 7, 10, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageMaxEther, EVENT_LAKE_OF_RAGE_MAX_ETHER + object_event 35, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageTMDetect, EVENT_LAKE_OF_RAGE_TM_DETECT diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm new file mode 100644 index 00000000..dbd7bb9f --- /dev/null +++ b/maps/MahoganyTown.asm @@ -0,0 +1,268 @@ + const_def 2 ; object constants + const MAHOGANYTOWN_POKEFAN_M + const MAHOGANYTOWN_GRAMPS + const MAHOGANYTOWN_FISHER + const MAHOGANYTOWN_LASS + +MahoganyTown_MapScripts: + db 2 ; scene scripts + scene_script .DummyScene0 ; SCENE_DEFAULT + scene_script .DummyScene1 ; SCENE_FINISHED + + db 1 ; callbacks + callback MAPCALLBACK_NEWMAP, .FlyPoint + +.DummyScene0: + end + +.DummyScene1: + end + +.FlyPoint: + setflag ENGINE_FLYPOINT_MAHOGANY + return + +MahoganyTownTryARageCandyBarScript: + showemote EMOTE_SHOCK, MAHOGANYTOWN_POKEFAN_M, 15 + applymovement MAHOGANYTOWN_POKEFAN_M, MovementData_0x1900a9 + follow PLAYER, MAHOGANYTOWN_POKEFAN_M + applymovement PLAYER, MovementData_0x1900a7 + stopfollow + turnobject PLAYER, RIGHT + scall RageCandyBarMerchantScript + applymovement MAHOGANYTOWN_POKEFAN_M, MovementData_0x1900ad + end + +MahoganyTownPokefanMScript: + faceplayer +RageCandyBarMerchantScript: + checkevent EVENT_CLEARED_ROCKET_HIDEOUT + iftrue .ClearedRocketHideout + scall .SellRageCandyBars + end + +.ClearedRocketHideout: + opentext + writetext RageCandyBarMerchantSoldOutText + waitbutton + closetext + end + +.SellRageCandyBars: + opentext + writetext RageCandyBarMerchantTryOneText + special PlaceMoneyTopRight + yesorno + iffalse .Refused + checkmoney YOUR_MONEY, 300 + ifequal HAVE_LESS, .NotEnoughMoney + giveitem RAGECANDYBAR + iffalse .NoRoom + waitsfx + playsound SFX_TRANSACTION + takemoney YOUR_MONEY, 300 + special PlaceMoneyTopRight + writetext RageCandyBarMerchantSavorItText + waitbutton + closetext + end + +.NotEnoughMoney: + writetext RageCandyBarMerchantNotEnoughMoneyText + waitbutton + closetext + end + +.Refused: + writetext RageCandyBarMerchantRefusedText + waitbutton + closetext + end + +.NoRoom: + writetext RageCandyBarMerchantNoRoomText + waitbutton + closetext + end + +MahoganyTownGrampsScript: + faceplayer + opentext + checkevent EVENT_CLEARED_ROCKET_HIDEOUT + iftrue .ClearedRocketHideout + writetext MahoganyTownGrampsText + waitbutton + closetext + end + +.ClearedRocketHideout: + writetext MahoganyTownGrampsText_ClearedRocketHideout + waitbutton + closetext + end + +MahoganyTownFisherScript: + jumptextfaceplayer MahoganyTownFisherText + +MahoganyTownLassScript: + jumptextfaceplayer MahoganyTownLassText + +MahoganyTownSign: + jumptext MahoganyTownSignText + +MahoganyTownRagecandybarSign: + jumptext MahoganyTownRagecandybarSignText + +MahoganyGymSign: + jumptext MahoganyGymSignText + +MahoganyTownPokecenterSign: + jumpstd pokecentersign + +MovementData_0x1900a4: + step DOWN + big_step UP + turn_head DOWN +MovementData_0x1900a7: + step LEFT + step_end + +MovementData_0x1900a9: + step RIGHT + step DOWN + turn_head LEFT + step_end + +MovementData_0x1900ad: + step UP + turn_head DOWN + step_end + +RageCandyBarMerchantTryOneText: + text "Hi, sonny boy! I" + line "see you're new in" + cont "MAHOGANY TOWN." + + para "Since you're new," + line "you should try a" + + para "yummy RAGECANDY-" + line "BAR!" + + para "Right now, it can" + line "be yours for just" + cont "¥300! Want one?" + done + +RageCandyBarMerchantSavorItText: + text "Good! Savor it!" + done + +RageCandyBarMerchantNotEnoughMoneyText: + text "You don't have" + line "enough money." + done + +RageCandyBarMerchantRefusedText: + text "Oh, fine then…" + done + +RageCandyBarMerchantNoRoomText: + text "You don't have" + line "room for this." + done + +RageCandyBarMerchantSoldOutText: + text "RAGECANDYBAR's" + line "sold out." + + para "I'm packing up." + line "Don't bother me," + cont "sonny boy." + done + +MahoganyTownGrampsText: + text "Are you off to see" + line "the GYARADOS ram-" + cont "page at the LAKE?" + done + +MahoganyTownGrampsText_ClearedRocketHideout: + text "MAGIKARP have" + line "returned to LAKE" + cont "OF RAGE." + + para "That should be" + line "good news for the" + cont "anglers there." + done + +MahoganyTownFisherText: + text "Since you came" + line "this far, take the" + + para "time to do some" + line "sightseeing." + + para "You should head" + line "north and check" + + para "out LAKE OF RAGE" + line "right now." + done + +MahoganyTownLassText: + text "Visit Grandma's" + line "shop. She sells" + + para "stuff that nobody" + line "else has." + done + +MahoganyTownSignText: + text "MAHOGANY TOWN" + + para "Welcome to the" + line "Home of the Ninja" + done + +MahoganyTownRagecandybarSignText: + text "While Visiting" + line "MAHOGANY TOWN, Try" + cont "a RAGECANDYBAR!" + done + +MahoganyGymSignText: + text "MAHOGANY TOWN" + line "#MON GYM" + cont "LEADER: PRYCE" + + para "The Teacher of" + line "Winter's Harshness" + done + +MahoganyTown_MapEvents: + db 0, 0 ; filler + + db 5 ; warp events + warp_event 11, 7, MAHOGANY_MART_1F, 1 + warp_event 17, 7, MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 1 + warp_event 6, 13, MAHOGANY_GYM, 1 + warp_event 15, 13, MAHOGANY_POKECENTER_1F, 1 + warp_event 9, 1, ROUTE_43_MAHOGANY_GATE, 3 + + db 2 ; coord events + coord_event 19, 8, SCENE_DEFAULT, MahoganyTownTryARageCandyBarScript + coord_event 19, 9, SCENE_DEFAULT, MahoganyTownTryARageCandyBarScript + + db 4 ; bg events + bg_event 1, 5, BGEVENT_READ, MahoganyTownSign + bg_event 9, 7, BGEVENT_READ, MahoganyTownRagecandybarSign + bg_event 3, 13, BGEVENT_READ, MahoganyGymSign + bg_event 16, 13, BGEVENT_READ, MahoganyTownPokecenterSign + + db 4 ; object events + object_event 19, 8, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MahoganyTownPokefanMScript, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST + object_event 6, 9, SPRITE_GRAMPS, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MahoganyTownGrampsScript, -1 + object_event 6, 14, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, MahoganyTownFisherScript, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM + object_event 12, 8, SPRITE_LASS, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MahoganyTownLassScript, EVENT_MAHOGANY_MART_OWNERS diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm new file mode 100644 index 00000000..e025fcbf --- /dev/null +++ b/maps/OlivineCity.asm @@ -0,0 +1,306 @@ + const_def 2 ; object constants + const OLIVINECITY_SAILOR1 + const OLIVINECITY_STANDING_YOUNGSTER + const OLIVINECITY_SAILOR2 + const OLIVINECITY_OLIVINE_RIVAL + +OlivineCity_MapScripts: + db 2 ; scene scripts + scene_script .DummyScene0 ; SCENE_DEFAULT + scene_script .DummyScene1 ; SCENE_FINISHED + + db 1 ; callbacks + callback MAPCALLBACK_NEWMAP, .FlyPoint + +.DummyScene0: + end + +.DummyScene1: + end + +.FlyPoint: + setflag ENGINE_FLYPOINT_OLIVINE + return + +OlivineCityRivalSceneTop: + turnobject PLAYER, LEFT + showemote EMOTE_SHOCK, PLAYER, 15 + special FadeOutMusic + pause 15 + playsound SFX_ENTER_DOOR + appear OLIVINECITY_OLIVINE_RIVAL + waitsfx + applymovement OLIVINECITY_OLIVINE_RIVAL, MovementData_0x1a88d2 + playmusic MUSIC_RIVAL_ENCOUNTER + opentext + writetext OlivineCityRivalText + waitbutton + closetext + applymovement PLAYER, MovementData_0x1a88f4 + turnobject PLAYER, RIGHT + applymovement OLIVINECITY_OLIVINE_RIVAL, MovementData_0x1a88db + setscene SCENE_FINISHED + disappear OLIVINECITY_OLIVINE_RIVAL + special RestartMapMusic + variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SWIMMER_GUY + special LoadUsedSpritesGFX + end + +OlivineCityRivalSceneBottom: + turnobject PLAYER, LEFT + showemote EMOTE_SHOCK, PLAYER, 15 + special FadeOutMusic + pause 15 + playsound SFX_ENTER_DOOR + appear OLIVINECITY_OLIVINE_RIVAL + waitsfx + applymovement OLIVINECITY_OLIVINE_RIVAL, MovementData_0x1a88d6 + playmusic MUSIC_RIVAL_ENCOUNTER + opentext + writetext OlivineCityRivalText + waitbutton + closetext + applymovement PLAYER, MovementData_0x1a88f7 + turnobject PLAYER, RIGHT + applymovement OLIVINECITY_OLIVINE_RIVAL, MovementData_0x1a88e8 + disappear OLIVINECITY_OLIVINE_RIVAL + setscene SCENE_FINISHED + special RestartMapMusic + variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SWIMMER_GUY + special LoadUsedSpritesGFX + end + +OlivineCitySailor1Script: + jumptextfaceplayer OlivineCitySailor1Text + +OlivineCityStandingYoungsterScript: + faceplayer + opentext + random 2 + ifequal 0, .FiftyFifty + writetext OlivineCityStandingYoungsterPokegearText + waitbutton + closetext + end + +.FiftyFifty: + writetext OlivineCityStandingYoungsterPokedexText + waitbutton + closetext + end + +OlivineCitySailor2Script: + jumptextfaceplayer OlivineCitySailor2Text + +OlivineCitySign: + jumptext OlivineCitySignText + +OlivineCityPortSign: + jumptext OlivineCityPortSignText + +OlivineGymSign: + jumptext OlivineGymSignText + +OlivineLighthouseSign: + jumptext OlivineLighthouseSignText + +OlivineCityPokecenterSign: + jumpstd pokecentersign + +OlivineCityMartSign: + jumpstd martsign + +MovementData_0x1a88d2: + step DOWN + step RIGHT + step RIGHT + step_end + +MovementData_0x1a88d6: + step DOWN + step DOWN + step RIGHT + step RIGHT + step_end + +MovementData_0x1a88db: + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step UP + step UP + step UP + step UP + step UP + step UP + step_end + +MovementData_0x1a88e8: + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step UP + step UP + step UP + step UP + step UP + step_end + +MovementData_0x1a88f4: + step DOWN + turn_head UP + step_end + +MovementData_0x1a88f7: + step UP + turn_head DOWN + step_end + +OlivineCityRivalText: + text "…" + + para "You again?" + + para "There's no need to" + line "panic. I don't" + + para "bother with wimps" + line "like you." + + para "Speaking of weak-" + line "lings, the city's" + + para "GYM LEADER isn't" + line "here." + + para "Supposedly taking" + line "care of a sick" + + para "#MON at the" + line "LIGHTHOUSE." + + para "Humph! Boo-hoo!" + line "Just let sick" + cont "#MON go!" + + para "A #MON that" + line "can't battle is" + cont "worthless!" + + para "Why don't you go" + line "train at the" + cont "LIGHTHOUSE?" + + para "Who knows. It may" + line "make you a bit" + cont "less weak!" + done + +OlivineCitySailor1Text: + text "Dark roads are" + line "dangerous at" + cont "night." + + para "But in the pitch-" + line "black of night," + + para "the sea is even" + line "more treacherous!" + + para "Without the beacon" + line "of the LIGHTHOUSE" + + para "to guide it, no" + line "ship can sail." + done + +OlivineCityStandingYoungsterPokegearText: + text "That thing you" + line "have--it's a #-" + cont "GEAR, right? Wow," + cont "that's cool." + done + +OlivineCityStandingYoungsterPokedexText: + text "Wow, you have a" + line "#DEX!" + + para "That is just so" + line "awesome." + done + +OlivineCitySailor2Text: + text "Hello, laddie!" + line "The sea is sweet!" + + para "Sing with me! " + line "Yo-ho! Blow the" + cont "man down!…" + done + +OlivineCitySignText: + text "OLIVINE CITY" + + para "The Port Closest" + line "to Foreign Lands" + done + +OlivineCityPortSignText: + text "OLIVINE PORT" + line "FAST SHIP PIER" + done + +OlivineGymSignText: + text "OLIVINE CITY" + line "#MON GYM" + cont "LEADER: JASMINE" + + para "The Steel-Clad" + line "Defense Girl" + done + +OlivineLighthouseSignText: + text "OLIVINE LIGHTHOUSE" + line "Also Known as the" + cont "GLITTER LIGHTHOUSE" + done + +OlivineCity_MapEvents: + db 0, 0 ; filler + + db 11 ; warp events + warp_event 13, 21, OLIVINE_POKECENTER_1F, 1 + warp_event 10, 11, OLIVINE_GYM, 1 + warp_event 25, 11, OLIVINE_TIMS_HOUSE, 1 + warp_event 0, 0, OLIVINE_HOUSE_BETA, 1 ; inaccessible + warp_event 29, 11, OLIVINE_PUNISHMENT_SPEECH_HOUSE, 1 + warp_event 13, 15, OLIVINE_GOOD_ROD_HOUSE, 1 + warp_event 7, 21, OLIVINE_CAFE, 1 + warp_event 19, 17, OLIVINE_MART, 2 + warp_event 29, 27, OLIVINE_LIGHTHOUSE_1F, 1 + warp_event 19, 27, OLIVINE_PORT_PASSAGE, 1 + warp_event 20, 27, OLIVINE_PORT_PASSAGE, 2 + + db 2 ; coord events + coord_event 13, 12, SCENE_DEFAULT, OlivineCityRivalSceneTop + coord_event 13, 13, SCENE_DEFAULT, OlivineCityRivalSceneBottom + + db 6 ; bg events + bg_event 17, 11, BGEVENT_READ, OlivineCitySign + bg_event 20, 24, BGEVENT_READ, OlivineCityPortSign + bg_event 7, 11, BGEVENT_READ, OlivineGymSign + bg_event 30, 28, BGEVENT_READ, OlivineLighthouseSign + bg_event 14, 21, BGEVENT_READ, OlivineCityPokecenterSign + bg_event 20, 17, BGEVENT_READ, OlivineCityMartSign + + db 4 ; object events + object_event 26, 27, SPRITE_SAILOR, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OlivineCitySailor1Script, -1 + object_event 20, 13, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, OlivineCityStandingYoungsterScript, -1 + object_event 17, 21, SPRITE_SAILOR, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OlivineCitySailor2Script, -1 + object_event 10, 11, SPRITE_OLIVINE_RIVAL, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY |