ref: 1d9a68dbdd0132035f1fc7b7ea8f7fdc24741507
dir: /maps/GoldenrodUnderground.asm/
const_def 2 ; object constants const GOLDENRODUNDERGROUND_SUPER_NERD1 const GOLDENRODUNDERGROUND_SUPER_NERD2 const GOLDENRODUNDERGROUND_SUPER_NERD3 const GOLDENRODUNDERGROUND_SUPER_NERD4 const GOLDENRODUNDERGROUND_POKE_BALL const GOLDENRODUNDERGROUND_GRAMPS const GOLDENRODUNDERGROUND_SUPER_NERD5 const GOLDENRODUNDERGROUND_SUPER_NERD6 const GOLDENRODUNDERGROUND_GRANNY GoldenrodUnderground_MapScripts: db 0 ; scene scripts db 3 ; callbacks callback MAPCALLBACK_NEWMAP, .ResetSwitches callback MAPCALLBACK_TILES, .CheckBasementKey callback MAPCALLBACK_OBJECTS, .CheckDayOfWeek .ResetSwitches: clearevent EVENT_SWITCH_1 clearevent EVENT_SWITCH_2 clearevent EVENT_SWITCH_3 clearevent EVENT_EMERGENCY_SWITCH clearevent EVENT_SWITCH_4 clearevent EVENT_SWITCH_5 clearevent EVENT_SWITCH_6 clearevent EVENT_SWITCH_7 clearevent EVENT_SWITCH_8 clearevent EVENT_SWITCH_9 clearevent EVENT_SWITCH_10 clearevent EVENT_SWITCH_11 clearevent EVENT_SWITCH_12 clearevent EVENT_SWITCH_13 clearevent EVENT_SWITCH_14 writebyte 0 copyvartobyte wUndergroundSwitchPositions return .CheckBasementKey: checkevent EVENT_USED_BASEMENT_KEY iffalse .LockBasementDoor return .LockBasementDoor: changeblock 18, 6, $3d ; locked door return .CheckDayOfWeek: checkcode VAR_WEEKDAY ifequal MONDAY, .Monday ifequal TUESDAY, .Tuesday ifequal WEDNESDAY, .Wednesday ifequal THURSDAY, .Thursday ifequal FRIDAY, .Friday ifequal SATURDAY, .Saturday .Sunday: disappear GOLDENRODUNDERGROUND_GRAMPS disappear GOLDENRODUNDERGROUND_SUPER_NERD5 appear GOLDENRODUNDERGROUND_SUPER_NERD6 appear GOLDENRODUNDERGROUND_GRANNY return .Monday: disappear GOLDENRODUNDERGROUND_GRAMPS checktime MORN iffalse .NotMondayMorning appear GOLDENRODUNDERGROUND_GRAMPS .NotMondayMorning: disappear GOLDENRODUNDERGROUND_SUPER_NERD5 disappear GOLDENRODUNDERGROUND_SUPER_NERD6 disappear GOLDENRODUNDERGROUND_GRANNY return .Tuesday: disappear GOLDENRODUNDERGROUND_GRAMPS appear GOLDENRODUNDERGROUND_SUPER_NERD5 disappear GOLDENRODUNDERGROUND_SUPER_NERD6 disappear GOLDENRODUNDERGROUND_GRANNY return .Wednesday: disappear GOLDENRODUNDERGROUND_GRAMPS disappear GOLDENRODUNDERGROUND_SUPER_NERD5 appear GOLDENRODUNDERGROUND_SUPER_NERD6 disappear GOLDENRODUNDERGROUND_GRANNY return .Thursday: disappear GOLDENRODUNDERGROUND_GRAMPS appear GOLDENRODUNDERGROUND_SUPER_NERD5 disappear GOLDENRODUNDERGROUND_SUPER_NERD6 disappear GOLDENRODUNDERGROUND_GRANNY return .Friday: disappear GOLDENRODUNDERGROUND_GRAMPS disappear GOLDENRODUNDERGROUND_SUPER_NERD5 appear GOLDENRODUNDERGROUND_SUPER_NERD6 disappear GOLDENRODUNDERGROUND_GRANNY return .Saturday: disappear GOLDENRODUNDERGROUND_GRAMPS appear GOLDENRODUNDERGROUND_SUPER_NERD5 disappear GOLDENRODUNDERGROUND_SUPER_NERD6 appear GOLDENRODUNDERGROUND_GRANNY return TrainerSupernerdEric: trainer SUPER_NERD, ERIC, EVENT_BEAT_SUPER_NERD_ERIC, SupernerdEricSeenText, SupernerdEricBeatenText, 0, .Script .Script: endifjustbattled opentext writetext SupernerdEricAfterBattleText waitbutton closetext end TrainerSupernerdTeru: trainer SUPER_NERD, TERU, EVENT_BEAT_SUPER_NERD_TERU, SupernerdTeruSeenText, SupernerdTeruBeatenText, 0, .Script .Script: endifjustbattled opentext writetext SupernerdTeruAfterBattleText waitbutton closetext end TrainerPokemaniacIssac: trainer POKEMANIAC, ISSAC, EVENT_BEAT_POKEMANIAC_ISSAC, PokemaniacIssacSeenText, PokemaniacIssacBeatenText, 0, .Script .Script: endifjustbattled opentext writetext PokemaniacIssacAfterBattleText waitbutton closetext end TrainerPokemaniacDonald: trainer POKEMANIAC, DONALD, EVENT_BEAT_POKEMANIAC_DONALD, PokemaniacDonaldSeenText, PokemaniacDonaldBeatenText, 0, .Script .Script: endifjustbattled opentext writetext PokemaniacDonaldAfterBattleText waitbutton closetext end BitterMerchantScript: opentext checkcode VAR_WEEKDAY ifequal SUNDAY, .Open ifequal SATURDAY, .Open jump GoldenrodUndergroundScript_ShopClosed .Open: pokemart MARTTYPE_BITTER, MART_UNDERGROUND closetext end BargainMerchantScript: opentext checkflag ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED iftrue GoldenrodUndergroundScript_ShopClosed checkcode VAR_WEEKDAY ifequal MONDAY, .CheckMorn jump GoldenrodUndergroundScript_ShopClosed .CheckMorn: checktime MORN iffalse GoldenrodUndergroundScript_ShopClosed pokemart MARTTYPE_BARGAIN, 0 closetext end OlderHaircutBrotherScript: opentext checkcode VAR_WEEKDAY ifequal TUESDAY, .DoHaircut ifequal THURSDAY, .DoHaircut ifequal SATURDAY, .DoHaircut jump GoldenrodUndergroundScript_ShopClosed .DoHaircut: checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT iftrue .AlreadyGotHaircut special PlaceMoneyTopRight writetext UnknownText_0x7c5f9 yesorno iffalse .Refused checkmoney YOUR_MONEY, 500 ifequal HAVE_LESS, .NotEnoughMoney writetext UnknownText_0x7c69a buttonsound special YoungerHaircutBrother ifequal $0, .Refused ifequal $1, .Refused setflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT ifequal $2, .two ifequal $3, .three jump .else .two setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3 jump .then .three clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3 jump .then .else clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3 jump .then .then takemoney YOUR_MONEY, 500 special PlaceMoneyTopRight writetext UnknownText_0x7c6b8 waitbutton closetext special FadeOutPalettes playmusic MUSIC_HEAL pause 60 special FadeInPalettes special RestartMapMusic opentext writetext UnknownText_0x7c6d8 waitbutton checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 iftrue EitherHaircutBrotherScript_SlightlyHappier checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 iftrue EitherHaircutBrotherScript_Happier jump EitherHaircutBrotherScript_MuchHappier .Refused: writetext UnknownText_0x7c6ea waitbutton closetext end .NotEnoughMoney: writetext UnknownText_0x7c709 waitbutton closetext end .AlreadyGotHaircut: writetext UnknownText_0x7c72b waitbutton closetext end YoungerHaircutBrotherScript: opentext checkcode VAR_WEEKDAY ifequal SUNDAY, .DoHaircut ifequal WEDNESDAY, .DoHaircut ifequal FRIDAY, .DoHaircut jump GoldenrodUndergroundScript_ShopClosed .DoHaircut: checkflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT iftrue .AlreadyGotHaircut special PlaceMoneyTopRight writetext UnknownText_0x7c75c yesorno iffalse .Refused checkmoney YOUR_MONEY, 300 ifequal HAVE_LESS, .NotEnoughMoney writetext UnknownText_0x7c7f1 buttonsound special OlderHaircutBrother ifequal $0, .Refused ifequal $1, .Refused setflag ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT ifequal $2, .two ifequal $3, .three jump .else .two setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3 jump .then .three clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3 jump .then .else clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 clearevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3 jump .then .then takemoney YOUR_MONEY, 300 special PlaceMoneyTopRight writetext UnknownText_0x7c80e waitbutton closetext special FadeOutPalettes playmusic MUSIC_HEAL pause 60 special FadeInPalettes special RestartMapMusic opentext writetext UnknownText_0x7c82a waitbutton checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 iftrue EitherHaircutBrotherScript_SlightlyHappier checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 iftrue EitherHaircutBrotherScript_Happier jump EitherHaircutBrotherScript_MuchHappier .Refused: writetext UnknownText_0x7c842 waitbutton closetext end .NotEnoughMoney: writetext UnknownText_0x7c85b waitbutton closetext end .AlreadyGotHaircut: writetext UnknownText_0x7c87b waitbutton closetext end EitherHaircutBrotherScript_SlightlyHappier: writetext HaircutBrosText_SlightlyHappier special PlayCurMonCry waitbutton closetext end EitherHaircutBrotherScript_Happier: writetext HaircutBrosText_Happier special PlayCurMonCry waitbutton closetext end EitherHaircutBrotherScript_MuchHappier: writetext HaircutBrosText_MuchHappier special PlayCurMonCry waitbutton closetext end BasementDoorScript:: opentext checkevent EVENT_USED_BASEMENT_KEY iftrue .Open checkitem BASEMENT_KEY iftrue .Unlock writetext UnknownText_0x7c5b0 waitbutton closetext end .Unlock: playsound SFX_TRANSACTION writetext UnknownText_0x7c5d6 waitbutton closetext changeblock 18, 6, $2e ; unlocked door reloadmappart closetext setevent EVENT_USED_BASEMENT_KEY end .Open: writetext UnknownText_0x7c5c3 waitbutton closetext end GoldenrodUndergroundScript_ShopClosed: writetext UnknownText_0x7c904 waitbutton closetext end GoldenrodUndergroundCoinCase: itemball COIN_CASE GoldenrodUndergroundNoEntrySign: jumptext GoldenrodUndergroundNoEntryText GoldenrodUndergroundHiddenParlyzHeal: hiddenitem PARLYZ_HEAL, EVENT_GOLDENROD_UNDERGROUND_HIDDEN_PARLYZ_HEAL GoldenrodUndergroundHiddenSuperPotion: hiddenitem SUPER_POTION, EVENT_GOLDENROD_UNDERGROUND_HIDDEN_SUPER_POTION GoldenrodUndergroundHiddenAntidote: hiddenitem ANTIDOTE, EVENT_GOLDENROD_UNDERGROUND_HIDDEN_ANTIDOTE SupernerdEricSeenText: text "I got booted out" line "of the GAME COR-" cont "NER." para "I was trying to" line "cheat using my" cont "#MON…" done SupernerdEricBeatenText: text "…Grumble…" done SupernerdEricAfterBattleText: text "I guess I have to" line "do things fair and" cont "square…" done SupernerdTeruSeenText: text "Do you consider" line "type alignments in" cont "battle?" para "If you know your" line "type advantages," para "you'll do better" line "in battle." done SupernerdTeruBeatenText: text "Ow, ow, ow!" done SupernerdTeruAfterBattleText: text "I know my #MON" line "type alignments." para "But I only use one" line "type of #MON." done PokemaniacIssacSeenText: text "My #MON just" line "got a haircut!" para "I'll show you how" line "strong it is!" done PokemaniacIssacBeatenText: text "Aiyeeee!" done PokemaniacIssacAfterBattleText: text "Your #MON will" line "like you more if" para "you give them" line "haircuts." done PokemaniacDonaldSeenText: text "I think you have" line "some rare #MON" cont "with you." para "Let me see them!" done PokemaniacDonaldBeatenText: text "Gaah! I lost!" line "That makes me mad!" done PokemaniacDonaldAfterBattleText: text "Are you making a" line "#DEX? Here's a" cont "hot tip." para "The HIKER on ROUTE" line "33, ANTHONY, is a" cont "good guy." para "He'll phone you if" line "he sees any rare" cont "#MON." done UnknownText_0x7c5b0: text "The door's locked…" done UnknownText_0x7c5c3: text "The door is open." done UnknownText_0x7c5d6: text "The BASEMENT KEY" line "opened the door." done UnknownText_0x7c5f9: text "Welcome!" para "I run the #MON" line "SALON!" para "I'm the older and" line "better of the two" cont "HAIRCUT BROTHERS." para "I can make your" line "#MON beautiful" cont "for just ¥500." para "Would you like me" line "to do that?" done UnknownText_0x7c69a: text "Which #MON" line "should I work on?" done UnknownText_0x7c6b8: text "OK! Watch it" line "become beautiful!" done UnknownText_0x7c6d8: text "There! All done!" done UnknownText_0x7c6ea: text "Is that right?" line "That's a shame!" done UnknownText_0x7c709: text "You'll need more" line "money than that." done UnknownText_0x7c72b: text "I do only one" line "haircut a day. I'm" cont "done for today." done UnknownText_0x7c75c: text "Welcome to the" line "#MON SALON!" para "I'm the younger" line "and less expen-" cont "sive of the two" cont "HAIRCUT BROTHERS." para "I'll spiff up your" line "#MON for just" cont "¥300." para "So? How about it?" done UnknownText_0x7c7f1: text "OK, which #MON" line "should I do?" done UnknownText_0x7c80e: text "OK! I'll make it" line "look cool!" done UnknownText_0x7c82a: text "There we go!" line "All done!" done UnknownText_0x7c842: text "No? " line "How disappointing!" done UnknownText_0x7c85b: text "You're a little" line "short on funds." done UnknownText_0x7c87b: text "I can do only one" line "haircut a day." para "Sorry, but I'm all" line "done for today." done HaircutBrosText_SlightlyHappier: text_from_ram wStringBuffer3 text " looks a" line "little happier." done HaircutBrosText_Happier: text_from_ram wStringBuffer3 text " looks" line "happy." done HaircutBrosText_MuchHappier: text_from_ram wStringBuffer3 text " looks" line "delighted!" done UnknownText_0x7c904: text "We're not open" line "today." done GoldenrodUndergroundNoEntryText: text "NO ENTRY BEYOND" line "THIS POINT" done GoldenrodUnderground_MapEvents: db 0, 0 ; filler db 6 ; warp events warp_event 3, 2, GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 7 warp_event 3, 34, GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 4 warp_event 18, 6, GOLDENROD_UNDERGROUND, 4 warp_event 21, 31, GOLDENROD_UNDERGROUND, 3 warp_event 22, 31, GOLDENROD_UNDERGROUND, 3 warp_event 22, 27, GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 1 db 0 ; coord events db 5 ; bg events bg_event 18, 6, BGEVENT_READ, BasementDoorScript bg_event 19, 6, BGEVENT_READ, GoldenrodUndergroundNoEntrySign bg_event 6, 13, BGEVENT_ITEM, GoldenrodUndergroundHiddenParlyzHeal bg_event 4, 18, BGEVENT_ITEM, GoldenrodUndergroundHiddenSuperPotion bg_event 17, 8, BGEVENT_ITEM, GoldenrodUndergroundHiddenAntidote db 9 ; object events object_event 5, 31, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 3, TrainerSupernerdEric, -1 object_event 6, 9, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerSupernerdTeru, -1 object_event 3, 27, SPRITE_SUPER_NERD, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 2, TrainerPokemaniacIssac, -1 object_event 2, 6, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerPokemaniacDonald, -1 object_event 7, 25, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodUndergroundCoinCase, EVENT_GOLDENROD_UNDERGROUND_COIN_CASE object_event 7, 11, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, BargainMerchantScript, EVENT_GOLDENROD_UNDERGROUND_GRAMPS object_event 7, 14, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, OlderHaircutBrotherScript, EVENT_GOLDENROD_UNDERGROUND_OLDER_HAIRCUT_BROTHER object_event 7, 15, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, YoungerHaircutBrotherScript, EVENT_GOLDENROD_UNDERGROUND_YOUNGER_HAIRCUT_BROTHER object_event 7, 21, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, BitterMerchantScript, EVENT_GOLDENROD_UNDERGROUND_GRANNY