diff options
author | IIMarckus <iimarckus@gmail.com> | 2018-09-20 22:44:07 -0600 |
---|---|---|
committer | IIMarckus <iimarckus@gmail.com> | 2018-09-20 22:44:07 -0600 |
commit | fa8af11b880a0d666a9270eb2dc487907dba26f4 (patch) | |
tree | 6aaff26b4dd95531d1ff7588d6f678ce4b79315e | |
parent | f7c1a2cd8ffb4c00ba0261ed57fe6ea5349af8a4 (diff) |
Add map objects from bank 46.
-rw-r--r-- | constants/event_flags.asm | 40 | ||||
-rw-r--r-- | constants/map_constants.asm | 6 | ||||
-rw-r--r-- | constants/wram_constants.asm | 13 | ||||
-rw-r--r-- | home/map_objects.asm | 6 | ||||
-rw-r--r-- | main.asm | 24 | ||||
-rw-r--r-- | maps/GoldenrodDeptStoreB1F.asm | 130 | ||||
-rw-r--r-- | maps/GoldenrodGameCorner.asm | 2 | ||||
-rw-r--r-- | maps/GoldenrodUnderground.asm | 676 | ||||
-rw-r--r-- | maps/GoldenrodUndergroundSwitchRoomEntrances.asm | 968 | ||||
-rw-r--r-- | maps/GoldenrodUndergroundWarehouse.asm | 226 | ||||
-rw-r--r-- | maps/IcePath1F.asm | 32 | ||||
-rw-r--r-- | maps/IcePathB1F.asm | 99 | ||||
-rw-r--r-- | maps/IcePathB2FBlackthornSide.asm | 28 | ||||
-rw-r--r-- | maps/IcePathB2FMahoganySide.asm | 53 | ||||
-rw-r--r-- | maps/IcePathB3F.asm | 29 | ||||
-rw-r--r-- | maps/MountMortar1FInside.asm | 53 | ||||
-rw-r--r-- | maps/MountMortar1FOutside.asm | 40 | ||||
-rw-r--r-- | maps/MountMortar2FInside.asm | 54 | ||||
-rw-r--r-- | maps/MountMortarB1F.asm | 142 | ||||
-rw-r--r-- | wram.asm | 2 |
20 files changed, 2585 insertions, 38 deletions
diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 12d5fce1..41010f6b 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -3,13 +3,13 @@ ; These first eight flags are reset upon reloading the map. const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; 000 - const EVENT_RECEIVED_BALLS_FROM_KURT - const EVENT_DRAGON_SHRINE_QUESTION_2 - const EVENT_DRAGON_SHRINE_QUESTION_3 - const EVENT_DRAGON_SHRINE_QUESTION_4 - const EVENT_DRAGON_SHRINE_QUESTION_5 - const EVENT_JUST_RECEIVED_DRATINI - const EVENT_IN_YOUR_ROOM + const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2 + const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3 + const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_4 + const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_5 + const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_6 + const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_7 + const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_8 ; Johto story events const EVENT_GOT_TM31_MUD_SLAP const EVENT_GOT_TM49_FURY_CUTTER @@ -143,11 +143,11 @@ const EVENT_ILEX_FOREST_HIDDEN_ETHER const EVENT_ILEX_FOREST_HIDDEN_SUPER_POTION const EVENT_ILEX_FOREST_HIDDEN_FULL_HEAL - const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_PARLYZ_HEAL - const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_SUPER_POTION - const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_ANTIDOTE - const EVENT_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_MAX_POTION - const EVENT_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_REVIVE + const EVENT_GOLDENROD_UNDERGROUND_HIDDEN_PARLYZ_HEAL + const EVENT_GOLDENROD_UNDERGROUND_HIDDEN_SUPER_POTION + const EVENT_GOLDENROD_UNDERGROUND_HIDDEN_ANTIDOTE + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_MAX_POTION + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_REVIVE const EVENT_MOUNT_MORTAR_1F_OUTSIDE_HIDDEN_HYPER_POTION const EVENT_MOUNT_MORTAR_1F_INSIDE_HIDDEN_MAX_REPEL const EVENT_MOUNT_MORTAR_2F_INSIDE_HIDDEN_FULL_RESTORE @@ -1717,9 +1717,9 @@ const EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN const EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL const EVENT_ILEX_FOREST_REVIVE - const EVENT_WAREHOUSE_ENTRANCE_COIN_CASE - const EVENT_UNDERGROUND_SWITCH_ROOM_ENTRANCES_SMOKE_BALL - const EVENT_UNDERGROUND_SWITCH_ROOM_ENTRANCES_FULL_HEAL + const EVENT_GOLDENROD_UNDERGROUND_COIN_CASE + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_SMOKE_BALL + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_FULL_HEAL const EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER const EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN const EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL @@ -1797,7 +1797,7 @@ const EVENT_RIVAL_CHERRYGROVE_CITY const EVENT_RIVAL_AZALEA_TOWN const EVENT_RIVAL_TEAM_ROCKET_BASE - const EVENT_RIVAL_UNDERGROUND + const EVENT_RIVAL_GOLDENROD_UNDERGROUND const EVENT_RIVAL_VICTORY_ROAD const EVENT_RIVAL_OLIVINE_CITY const EVENT_RIVAL_SPROUT_TOWER @@ -1942,10 +1942,10 @@ const EVENT_OPENED_MT_SILVER const EVENT_FOUGHT_SNORLAX ; 750 const EVENT_LAKE_OF_RAGE_RED_GYARADOS - const EVENT_WAREHOUSE_ENTRANCE_GRANNY - const EVENT_WAREHOUSE_ENTRANCE_GRAMPS - const EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER - const EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER + const EVENT_GOLDENROD_UNDERGROUND_GRANNY + const EVENT_GOLDENROD_UNDERGROUND_GRAMPS + const EVENT_GOLDENROD_UNDERGROUND_OLDER_HAIRCUT_BROTHER + const EVENT_GOLDENROD_UNDERGROUND_YOUNGER_HAIRCUT_BROTHER const EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST const EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM const EVENT_ROUTE_32_FRIEDA_OF_FRIDAY diff --git a/constants/map_constants.asm b/constants/map_constants.asm index c41643c8..1d74fd4c 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -101,10 +101,10 @@ ENDM map_const TEAM_ROCKET_BASE_B2F, 9, 15 ; 50 map_const TEAM_ROCKET_BASE_B3F, 9, 15 ; 51 map_const ILEX_FOREST, 27, 15 ; 52 - map_const WAREHOUSE_ENTRANCE, 18, 15 ; 53 - map_const UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54 + map_const GOLDENROD_UNDERGROUND, 18, 15 ; 53 + map_const GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES,18, 15 ; 54 map_const GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55 - map_const UNDERGROUND_WAREHOUSE, 9, 10 ; 56 + map_const GOLDENROD_UNDERGROUND_WAREHOUSE, 9, 10 ; 56 map_const MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57 map_const MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58 map_const MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59 diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 74d27aab..8f996cfb 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -41,10 +41,15 @@ FACE_LEFT EQU 2 FACE_RIGHT EQU 1 ; TimeOfDay: ; d269 -MORN EQU 0 -DAY EQU 1 -NITE EQU 2 -DARKNESS EQU 3 +MORN_F EQU 0 +DAY_F EQU 1 +NITE_F EQU 2 +DARKNESS_F EQU 3 + +MORN EQU 1 << MORN_F +DAY EQU 1 << DAY_F +NITE EQU 1 << NITE_F +DARKNESS EQU 1 << DARKNESS_F ; ScriptFlags: ; d434 SCRIPT_RUNNING EQU 2 diff --git a/home/map_objects.asm b/home/map_objects.asm index aef1e3d0..94fe60f4 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -240,9 +240,9 @@ CheckObjectTime:: ret .TimeOfDayValues_17bb: - db 1 << MORN ; 1 - db 1 << DAY ; 2 - db 1 << NITE ; 4 + db MORN + db DAY + db NITE .asm_17be ld hl, $6 @@ -340,11 +340,11 @@ CheckTime:: ld c, a ret -TimeOfDayTable: ; c012 - db MORN, 1 << MORN - db DAY, 1 << DAY - db NITE, 1 << NITE - db NITE, 1 << NITE +TimeOfDayTable: + db MORN_F, MORN + db DAY_F, DAY + db NITE_F, NITE + db NITE_F, NITE db -1 INCLUDE "engine/engine_flags.asm" @@ -1586,7 +1586,19 @@ INCLUDE "maps/TeamRocketBaseB3F.asm" INCLUDE "maps/IlexForest.asm" SECTION "bank46", ROMX, BANK[$46] - dr $118000, $11c000 +INCLUDE "maps/GoldenrodUnderground.asm" +INCLUDE "maps/GoldenrodUndergroundSwitchRoomEntrances.asm" +INCLUDE "maps/GoldenrodDeptStoreB1F.asm" +INCLUDE "maps/GoldenrodUndergroundWarehouse.asm" +INCLUDE "maps/MountMortar1FOutside.asm" +INCLUDE "maps/MountMortar1FInside.asm" +INCLUDE "maps/MountMortar2FInside.asm" +INCLUDE "maps/MountMortarB1F.asm" +INCLUDE "maps/IcePath1F.asm" +INCLUDE "maps/IcePathB1F.asm" +INCLUDE "maps/IcePathB2FMahoganySide.asm" +INCLUDE "maps/IcePathB2FBlackthornSide.asm" +INCLUDE "maps/IcePathB3F.asm" SECTION "bank47", ROMX, BANK[$47] dr $11c000, $120000 diff --git a/maps/GoldenrodDeptStoreB1F.asm b/maps/GoldenrodDeptStoreB1F.asm new file mode 100644 index 00000000..adadb249 --- /dev/null +++ b/maps/GoldenrodDeptStoreB1F.asm @@ -0,0 +1,130 @@ + const_def 2 ; object constants + const GOLDENRODDEPTSTOREB1F_POKE_BALL1 + const GOLDENRODDEPTSTOREB1F_POKE_BALL2 + const GOLDENRODDEPTSTOREB1F_POKE_BALL3 + const GOLDENRODDEPTSTOREB1F_POKE_BALL4 + const GOLDENRODDEPTSTOREB1F_BLACK_BELT1 + const GOLDENRODDEPTSTOREB1F_BLACK_BELT2 + const GOLDENRODDEPTSTOREB1F_BLACK_BELT3 + const GOLDENRODDEPTSTOREB1F_MACHOP + +GoldenrodDeptStoreB1F_MapScripts: + db 0 ; scene scripts + + db 2 ; callbacks + callback MAPCALLBACK_TILES, .ClearBoxes + callback MAPCALLBACK_NEWMAP, .Unblock + +.ClearBoxes: + checkevent EVENT_RECEIVED_CARD_KEY + iftrue .GotCardKey + jump .Continue + +.GotCardKey: + changeblock 16, 4, $0d ; floor + jump .Continue + +.Continue: + checkevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_2 + iftrue .Layout2 + checkevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_3 + iftrue .Layout3 + changeblock 10, 8, $0d ; floor + return + +.Layout2: + changeblock 4, 10, $0d ; floor + return + +.Layout3: + changeblock 10, 12, $0d ; floor + return + +.Unblock: + clearevent EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_BLOCKED_OFF + return + +GoldenrodDeptStoreB1FBlackBelt1Script: + jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt1Text + +GoldenrodDeptStoreB1FBlackBelt2Script: + jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt2Text + +GoldenrodDeptStoreB1FBlackBelt3Script: + jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt3Text + +GoldenrodDeptStoreB1FMachopScript: + opentext + writetext GoldenrodDeptStoreB1FMachokeText + cry MACHOKE + waitbutton + closetext + end + +GoldenrodDeptStoreB1FEther: + itemball ETHER + +GoldenrodDeptStoreB1FAmuletCoin: + itemball AMULET_COIN + +GoldenrodDeptStoreB1FBurnHeal: + itemball BURN_HEAL + +GoldenrodDeptStoreB1FUltraBall: + itemball ULTRA_BALL + +GoldenrodDeptStoreB1FBlackBelt1Text: + text "Hey, kid! You're" + line "holding us up!" + + para "Our policy is to" + line "work behind the" + + para "scenes where no-" + line "one can see us!" + done + +GoldenrodDeptStoreB1FBlackBelt2Text: + text "I lose my passion" + line "for work if some-" + cont "one's watching." + + para "Come on, kid," + line "scoot!" + done + +GoldenrodDeptStoreB1FBlackBelt3Text: + text "Oohah! Oohah!" + + para "The stuff on the" + line "ground's junk." + + para "Take it if you" + line "want it!" + done + +GoldenrodDeptStoreB1FMachokeText: + text "MACHOKE: Maaacho!" + done + +GoldenrodDeptStoreB1F_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 17, 2, GOLDENROD_UNDERGROUND_WAREHOUSE, 3 + warp_event 9, 4, GOLDENROD_DEPT_STORE_ELEVATOR, 1 + warp_event 10, 4, GOLDENROD_DEPT_STORE_ELEVATOR, 2 + + db 0 ; coord events + + db 0 ; bg events + + db 8 ; object events + object_event 10, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FEther, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER + object_event 14, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FAmuletCoin, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN + object_event 6, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FBurnHeal, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL + object_event 15, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FUltraBall, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL + object_event 9, 10, SPRITE_BLACK_BELT, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt1Script, -1 + object_event 4, 8, SPRITE_BLACK_BELT, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt2Script, -1 + object_event 6, 13, SPRITE_BLACK_BELT, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt3Script, -1 + object_event 7, 7, SPRITE_MACHOP, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FMachopScript, -1 diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm index ab88704c..89e9c0c9 100644 --- a/maps/GoldenrodGameCorner.asm +++ b/maps/GoldenrodGameCorner.asm @@ -515,8 +515,8 @@ GoldenrodGameCorner_MapEvents: object_event 3, 2, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerCoinVendorScript, -1 object_event 16, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerTMVendorScript, -1 object_event 18, 2, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPrizeMonVendorScript, -1 + object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1 object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1 - object_event 8, 7, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, 4, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPharmacistScript, -1 object_event 11, 10, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPokefanM1Script, -1 object_event 14, 8, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerCooltrainerMScript, -1 object_event 17, 6, SPRITE_POKEFAN_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, GoldenrodGameCornerPokefanFScript, -1 diff --git a/maps/GoldenrodUnderground.asm b/maps/GoldenrodUnderground.asm new file mode 100644 index 00000000..1e629348 --- /dev/null +++ b/maps/GoldenrodUnderground.asm @@ -0,0 +1,676 @@ + 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 haircuts!" + + para "I'll show you how" + line "strong they are!" + 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 diff --git a/maps/GoldenrodUndergroundSwitchRoomEntrances.asm b/maps/GoldenrodUndergroundSwitchRoomEntrances.asm new file mode 100644 index 00000000..8c30fe78 --- /dev/null +++ b/maps/GoldenrodUndergroundSwitchRoomEntrances.asm @@ -0,0 +1,968 @@ +; block ids +UNDERGROUND_DOOR_CLOSED1 EQU $2a +UNDERGROUND_DOOR_CLOSED2 EQU $3e +UNDERGROUND_DOOR_CLOSED3 EQU $3f +UNDERGROUND_DOOR_OPEN1 EQU $2d +UNDERGROUND_DOOR_OPEN2 EQU $3d + +ugdoor: MACRO +\1_YCOORD EQU \2 +\1_XCOORD EQU \3 +ENDM + + ugdoor UGDOOR_1, $10, $06 + ugdoor UGDOOR_2, $0a, $06 + ugdoor UGDOOR_3, $02, $06 + ugdoor UGDOOR_4, $02, $0a + ugdoor UGDOOR_5, $0a, $0a + ugdoor UGDOOR_6, $10, $0a + ugdoor UGDOOR_7, $0c, $06 + ugdoor UGDOOR_8, $0c, $08 + ugdoor UGDOOR_9, $06, $06 + ugdoor UGDOOR_10, $06, $08 + ugdoor UGDOOR_11, $0c, $0a + ugdoor UGDOOR_12, $0c, $0c + ugdoor UGDOOR_13, $06, $0a + ugdoor UGDOOR_14, $06, $0c + ugdoor UGDOOR_15, $12, $0a + ugdoor UGDOOR_16, $12, $0c + +doorstate: MACRO + changeblock UGDOOR_\1_YCOORD, UGDOOR_\1_XCOORD, UNDERGROUND_DOOR_\2 +ENDM + + const_def 2 ; object constants + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_PHARMACIST1 + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_PHARMACIST2 + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_ROCKET1 + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_ROCKET2 + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_ROCKET3 + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_ROCKET_GIRL + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_TEACHER + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SUPER_NERD + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_POKE_BALL1 + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_POKE_BALL2 + const GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + +GoldenrodUndergroundSwitchRoomEntrances_MapScripts: + db 2 ; scene scripts + scene_script .DummyScene0 ; SCENE_DEFAULT + scene_script .DummyScene1 ; SCENE_FINISHED + + db 1 ; callbacks + callback MAPCALLBACK_TILES, .UpdateDoorPositions + +.DummyScene0: + end + +.DummyScene1: + end + +.UpdateDoorPositions: + checkevent EVENT_SWITCH_4 + iffalse .false4 + doorstate 1, OPEN1 +.false4 + checkevent EVENT_SWITCH_5 + iffalse .false5 + doorstate 2, OPEN1 +.false5 + checkevent EVENT_SWITCH_6 + iffalse .false6 + doorstate 3, OPEN1 +.false6 + checkevent EVENT_SWITCH_7 + iffalse .false7 + doorstate 4, OPEN1 +.false7 + checkevent EVENT_SWITCH_8 + iffalse .false8 + doorstate 5, OPEN1 +.false8 + checkevent EVENT_SWITCH_9 + iffalse .false9 + doorstate 6, OPEN1 +.false9 + checkevent EVENT_SWITCH_10 + iffalse .false10 + doorstate 7, CLOSED1 + doorstate 8, OPEN1 +.false10 + checkevent EVENT_SWITCH_11 + iffalse .false11 + doorstate 9, CLOSED1 + doorstate 10, OPEN1 +.false11 + checkevent EVENT_SWITCH_12 + iffalse .false12 + doorstate 11, CLOSED1 + doorstate 12, OPEN1 +.false12 + checkevent EVENT_SWITCH_13 + iffalse .false13 + doorstate 13, CLOSED1 + doorstate 14, OPEN1 +.false13 + checkevent EVENT_SWITCH_14 + iffalse .false14 + doorstate 15, CLOSED1 + doorstate 16, OPEN1 +.false14 + return + +GoldenrodUndergroundSwitchRoomEntrancesSuperNerdScript: + jumptextfaceplayer GoldenrodUndergroundSwitchRoomEntrances_SuperNerdText + +GoldenrodUndergroundSwitchRoomEntrancesTeacherScript: + jumptextfaceplayer GoldenrodUndergroundSwitchRoomEntrances_TeacherText + +UndergroundSilverScene1: + turnobject PLAYER, RIGHT + showemote EMOTE_SHOCK, PLAYER, 15 + special FadeOutMusic + pause 15 + playsound SFX_EXIT_BUILDING + appear GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + waitsfx + applymovement GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER, UndergroundSilverApproachMovement1 + turnobject PLAYER, RIGHT + scall UndergroundSilverBattleScript + applymovement GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER, UndergroundSilverRetreatMovement1 + playsound SFX_EXIT_BUILDING + disappear GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + setscene SCENE_FINISHED + waitsfx + playmapmusic + end + +UndergroundSilverScene2: + turnobject PLAYER, RIGHT + showemote EMOTE_SHOCK, PLAYER, 15 + special FadeOutMusic + pause 15 + playsound SFX_EXIT_BUILDING + appear GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + waitsfx + applymovement GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER, UndergroundSilverApproachMovement2 + turnobject PLAYER, RIGHT + scall UndergroundSilverBattleScript + applymovement GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER, UndergroundSilverRetreatMovement2 + playsound SFX_EXIT_BUILDING + disappear GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + setscene SCENE_FINISHED + waitsfx + playmapmusic + end + +UndergroundSilverBattleScript: + checkevent EVENT_RIVAL_BURNED_TOWER + iftrue .Continue + setevent EVENT_RIVAL_BURNED_TOWER + setmapscene BURNED_TOWER_1F, SCENE_BURNEDTOWER1F_RIVAL_BATTLE +.Continue: + playmusic MUSIC_RIVAL_ENCOUNTER + opentext + writetext UndergroundSilverBeforeText + waitbutton + closetext + setevent EVENT_RIVAL_GOLDENROD_UNDERGROUND + checkevent EVENT_GOT_TOTODILE_FROM_ELM + iftrue .Totodile + checkevent EVENT_GOT_CHIKORITA_FROM_ELM + iftrue .Chikorita + winlosstext UndergroundSilverWinText, UndergroundSilverLossText + setlasttalked GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + loadtrainer RIVAL1, RIVAL1_4_TOTODILE + startbattle + dontrestartmapmusic + reloadmapafterbattle + jump .FinishRivalBattle + +.Totodile: + winlosstext UndergroundSilverWinText, UndergroundSilverLossText + setlasttalked GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + loadtrainer RIVAL1, RIVAL1_4_CHIKORITA + startbattle + dontrestartmapmusic + reloadmapafterbattle + jump .FinishRivalBattle + +.Chikorita: + winlosstext UndergroundSilverWinText, UndergroundSilverLossText + setlasttalked GOLDENRODUNDERGROUNDSWITCHROOMENTRANCES_SILVER + loadtrainer RIVAL1, RIVAL1_4_CYNDAQUIL + startbattle + dontrestartmapmusic + reloadmapafterbattle + jump .FinishRivalBattle + +.FinishRivalBattle: + playmusic MUSIC_RIVAL_AFTER + opentext + writetext UndergroundSilverAfterText + waitbutton + closetext + end + +TrainerGruntM11: + trainer GRUNTM, GRUNTM_11, EVENT_BEAT_ROCKET_GRUNTM_11, GruntM11SeenText, GruntM11BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext GruntM11AfterBattleText + waitbutton + closetext + end + +TrainerGruntM25: + trainer GRUNTM, GRUNTM_25, EVENT_BEAT_ROCKET_GRUNTM_25, GruntM25SeenText, GruntM25BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext GruntM25AfterBattleText + waitbutton + closetext + end + +TrainerBurglarDuncan: + trainer BURGLAR, DUNCAN, EVENT_BEAT_BURGLAR_DUNCAN, BurglarDuncanSeenText, BurglarDuncanBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext BurglarDuncanAfterBattleText + waitbutton + closetext + end + +TrainerBurglarEddie: + trainer BURGLAR, EDDIE, EVENT_BEAT_BURGLAR_EDDIE, BurglarEddieSeenText, BurglarEddieBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext BurglarEddieAfterBattleText + waitbutton + closetext + end + +TrainerGruntM13: + trainer GRUNTM, GRUNTM_13, EVENT_BEAT_ROCKET_GRUNTM_13, GruntM13SeenText, GruntM13BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext GruntM13AfterBattleText + waitbutton + closetext + end + +TrainerGruntF3: + trainer GRUNTF, GRUNTF_3, EVENT_BEAT_ROCKET_GRUNTF_3, GruntF3SeenText, GruntF3BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext GruntF3AfterBattleText + waitbutton + closetext + end + +Switch1Script: + opentext + writetext SwitchRoomText_Switch1 + buttonsound + checkevent EVENT_SWITCH_1 + iftrue .On + writetext SwitchRoomText_OffTurnOn + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + copybytetovar wUndergroundSwitchPositions + addvar 1 + copyvartobyte wUndergroundSwitchPositions + setevent EVENT_SWITCH_1 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +.On: + writetext SwitchRoomText_OnTurnOff + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + copybytetovar wUndergroundSwitchPositions + addvar -1 + copyvartobyte wUndergroundSwitchPositions + clearevent EVENT_SWITCH_1 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +Switch2Script: + opentext + writetext SwitchRoomText_Switch2 + buttonsound + checkevent EVENT_SWITCH_2 + iftrue .On + writetext SwitchRoomText_OffTurnOn + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + copybytetovar wUndergroundSwitchPositions + addvar 2 + copyvartobyte wUndergroundSwitchPositions + setevent EVENT_SWITCH_2 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +.On: + writetext SwitchRoomText_OnTurnOff + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + copybytetovar wUndergroundSwitchPositions + addvar -2 + copyvartobyte wUndergroundSwitchPositions + clearevent EVENT_SWITCH_2 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +Switch3Script: + opentext + writetext SwitchRoomText_Switch3 + buttonsound + checkevent EVENT_SWITCH_3 + iftrue .On + writetext SwitchRoomText_OffTurnOn + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + copybytetovar wUndergroundSwitchPositions + addvar 3 + copyvartobyte wUndergroundSwitchPositions + setevent EVENT_SWITCH_3 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +.On: + writetext SwitchRoomText_OnTurnOff + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + copybytetovar wUndergroundSwitchPositions + addvar -3 + copyvartobyte wUndergroundSwitchPositions + clearevent EVENT_SWITCH_3 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +EmergencySwitchScript: + opentext + writetext SwitchRoomText_Emergency + buttonsound + checkevent EVENT_EMERGENCY_SWITCH + iftrue .On + writetext SwitchRoomText_OffTurnOn + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + writebyte 7 + copyvartobyte wUndergroundSwitchPositions + setevent EVENT_EMERGENCY_SWITCH + setevent EVENT_SWITCH_1 + setevent EVENT_SWITCH_2 + setevent EVENT_SWITCH_3 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +.On: + writetext SwitchRoomText_OnTurnOff + yesorno + iffalse GoldenrodUndergroundSwitchRoomEntrances_DontToggle + writebyte 0 + copyvartobyte wUndergroundSwitchPositions + clearevent EVENT_EMERGENCY_SWITCH + clearevent EVENT_SWITCH_1 + clearevent EVENT_SWITCH_2 + clearevent EVENT_SWITCH_3 + jump GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors + +GoldenrodUndergroundSwitchRoomEntrances_DontToggle: + closetext + end + +GoldenrodUndergroundSwitchRoomEntrances_UpdateDoors: + copybytetovar wUndergroundSwitchPositions + ifequal 0, .Position0 + ifequal 1, .Position1 + ifequal 2, .Position2 + ifequal 3, .Position3 + ifequal 4, .Position4 + ifequal 5, .Position5 + ifequal 6, .Position6 + ifequal 7, .EmergencyPosition +.Position0: + playsound SFX_ENTER_DOOR + scall .Clear4 + scall .Clear5 + scall .Clear6 + scall .Clear7 + scall .Clear8 + scall .Clear9 + scall .Clear10 + scall .Clear11 + scall .Clear12 + scall .Clear13 + scall .Clear14 + reloadmappart + closetext + end + +.Position1: + playsound SFX_ENTER_DOOR + scall .Set4 + scall .Set10 + scall .Set13 + scall .Clear9 + scall .Clear11 + scall .Clear12 + scall .Clear14 + reloadmappart + closetext + end + +.Position2: + playsound SFX_ENTER_DOOR + scall .Set5 + scall .Set11 + scall .Set12 + scall .Clear8 + scall .Clear10 + scall .Clear13 + scall .Clear14 + reloadmappart + closetext + end + +.Position3: + playsound SFX_ENTER_DOOR + scall .Set6 + scall .Set10 + scall .Set13 + scall .Clear7 + scall .Clear11 + scall .Clear12 + scall .Clear14 + reloadmappart + closetext + end + +.Position4: + playsound SFX_ENTER_DOOR + scall .Set7 + scall .Set11 + scall .Set12 + scall .Clear6 + scall .Clear10 + scall .Clear13 + scall .Clear14 + reloadmappart + closetext + end + +.Position5: + playsound SFX_ENTER_DOOR + scall .Set8 + scall .Set10 + scall .Set13 + scall .Clear5 + scall .Clear11 + scall .Clear12 + scall .Clear14 + reloadmappart + closetext + end + +.Position6: + playsound SFX_ENTER_DOOR + scall .Set9 + scall .Set11 + scall .Set12 + scall .Set14 + scall .Clear4 + scall .Clear10 + scall .Clear13 + reloadmappart + closetext + end + +.EmergencyPosition: + playsound SFX_ENTER_DOOR + scall .Clear4 + scall .Clear5 + scall .Set6 + scall .Clear7 + scall .Set8 + scall .Set9 + scall .Clear10 + scall .Set11 + scall .Set12 + scall .Clear13 + scall .Set14 + reloadmappart + closetext + writebyte 6 + copyvartobyte wUndergroundSwitchPositions + end + +.Set4: + doorstate 1, OPEN1 + setevent EVENT_SWITCH_4 + end + +.Set5: + doorstate 2, OPEN1 + setevent EVENT_SWITCH_5 + end + +.Set6: + doorstate 3, OPEN1 + setevent EVENT_SWITCH_6 + end + +.Set7: + doorstate 4, OPEN1 + setevent EVENT_SWITCH_7 + end + +.Set8: + doorstate 5, OPEN1 + setevent EVENT_SWITCH_8 + end + +.Set9: + doorstate 6, OPEN1 + setevent EVENT_SWITCH_9 + end + +.Set10: + doorstate 7, CLOSED1 + doorstate 8, OPEN1 + setevent EVENT_SWITCH_10 + end + +.Set11: + doorstate 9, CLOSED1 + doorstate 10, OPEN1 + setevent EVENT_SWITCH_11 + end + +.Set12: + doorstate 11, CLOSED1 + doorstate 12, OPEN1 + setevent EVENT_SWITCH_12 + end + +.Set13: + doorstate 13, CLOSED1 + doorstate 14, OPEN1 + setevent EVENT_SWITCH_13 + end + +.Set14: + doorstate 15, CLOSED1 + doorstate 16, OPEN1 + setevent EVENT_SWITCH_14 + end + +.Clear4: + doorstate 1, CLOSED2 + clearevent EVENT_SWITCH_4 + end + +.Clear5: + doorstate 2, CLOSED2 + clearevent EVENT_SWITCH_5 + end + +.Clear6: + doorstate 3, CLOSED2 + clearevent EVENT_SWITCH_6 + end + +.Clear7: + doorstate 4, CLOSED2 + clearevent EVENT_SWITCH_7 + end + +.Clear8: + doorstate 5, CLOSED2 + clearevent EVENT_SWITCH_8 + end + +.Clear9: + doorstate 6, CLOSED2 + clearevent EVENT_SWITCH_9 + end + +.Clear10: + doorstate 7, CLOSED3 + doorstate 8, OPEN2 + clearevent EVENT_SWITCH_10 + end + +.Clear11: + doorstate 9, CLOSED3 + doorstate 10, OPEN2 + clearevent EVENT_SWITCH_11 + end + +.Clear12: + doorstate 11, CLOSED3 + doorstate 12, OPEN2 + clearevent EVENT_SWITCH_12 + end + +.Clear13: + doorstate 13, CLOSED3 + doorstate 14, OPEN2 + clearevent EVENT_SWITCH_13 + end + +.Clear14: + doorstate 15, CLOSED3 + doorstate 16, OPEN2 + clearevent EVENT_SWITCH_14 + end + +GoldenrodUndergroundSwitchRoomEntrancesSmokeBall: + itemball SMOKE_BALL + +GoldenrodUndergroundSwitchRoomEntrancesFullHeal: + itemball FULL_HEAL + +GoldenrodUndergroundSwitchRoomEntrancesHiddenMaxPotion: + hiddenitem MAX_POTION, EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_MAX_POTION + +GoldenrodUndergroundSwitchRoomEntrancesHiddenRevive: + hiddenitem REVIVE, EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_REVIVE + +UndergroundSilverApproachMovement1: + step DOWN + step LEFT + step LEFT + step LEFT + step_end + +UndergroundSilverApproachMovement2: + step DOWN + step DOWN + step LEFT + step LEFT + step LEFT + step_end + +UndergroundSilverRetreatMovement1: + step RIGHT + step RIGHT + step RIGHT + step UP + step_end + +UndergroundSilverRetreatMovement2: + step RIGHT + step RIGHT + step RIGHT + step UP + step UP + step_end + +UndergroundSilverBeforeText: + text "Hold it!" + + para "I saw you, so I" + line "tailed you." + + para "I don't need you" + line "underfoot while I" + + para "take care of TEAM" + line "ROCKET." + + para "…Wait a second." + line "You beat me be-" + cont "fore, didn't you?" + + para "That was just a" + line "fluke." + + para "But I repay my" + line "debts!" + done + +UndergroundSilverWinText: + text "…Why…" + line "Why do I lose?" + + para "I've assembled the" + line "toughest #MON." + + para "I didn't ease up" + line "on the gas." + + para "So why do I lose?" + done + +UndergroundSilverAfterText: + text "…I don't under-" + line "stand…" + + para "Is what that LANCE" + line "guy said true?" + + para "That I don't treat" + line "#MON properly?" + + para "Love…" + + para "Trust…" + + para "Are they really" + line "what I lack?" + + para "Are they keeping" + line "me from winning?" + + para "I… I just don't" + line "understand." + + para "But it's not going" + line "to end here." + + para "Not now. Not" + line "because of this." + + para "I won't give up my" + line "dream of becoming" + + para "the world's best" + line "#MON trainer!" + done + +UndergroundSilverLossText: + text "Humph. This is my" + line "real power, wimp." + + para "I'll make TEAM" + line "ROCKET history." + + para "And I'm going to" + line "grind that LANCE" + cont "under my heels." + done + +GoldenrodUndergroundSwitchRoomEntrances_SuperNerdText: + text "I was challenged" + line "to a battle down-" + cont "stairs." + + para "It's rough down" + line "there. You'd" + cont "better be careful." + done + +GoldenrodUndergroundSwitchRoomEntrances_TeacherText: + text "There are some" + line "shops downstairs…" + + para "But there are" + line "also trainers." + + para "I'm scared to go" + line "down there." + done + +GruntM11SeenText: + text "Open one shutter," + line "another closes." + + para "Bet you can't get" + line "where you want!" + done + +GruntM11BeatenText: + text "Drat! I was sunk" + line "by indecision!" + done + +GruntM11AfterBattleText: + text "I'm confused too…" + line "The switch on the" + + para "end is the one to" + line "press first, but…" + done + +GruntM25SeenText: + text "Kwahaha!" + + para "Confounded by the" + line "shutters, are we?" + + para "I'll let you in on" + line "a secret if you" + cont "can beat me!" + done + +GruntM25BeatenText: + text "Uwww…" + line "I blew it." + done + +GruntM25AfterBattleText: + text "All right. A hint!" + + para "Change the order" + line "of switching." + + para "That'll change the" + line "ways the shutters" + cont "open and close." + done + +BurglarDuncanSeenText: + text "Fork over your" + line "goodies!" + done + +BurglarDuncanBeatenText: + text "Mercy!" + done + +BurglarDuncanAfterBattleText: + text "Steal and sell!" + line "That's basic in" + cont "crime, bub!" + done + +BurglarEddieSeenText: + text "They ditched this" + line "project before" + cont "they finished." + + para "I'm searching for" + line "leftover loot." + done + +BurglarEddieBeatenText: + text "Over the top!" + done + +BurglarEddieAfterBattleText: + text "UNDERGROUND WARE-" + line "HOUSE?" + + para "What do you want" + line "to go there for?" + + para "There's nothing" + line "down there." + done + +GruntM13SeenText: + text "I don't care if" + line "you're lost." + + para "You show up here," + line "you're nothing but" + cont "a victim!" + done + +GruntM13BeatenText: + text "Urk! Yeah, think" + line "you're cool, huh?" + done + +GruntM13AfterBattleText: + text "You must have ice" + line "in your veins to" + cont "dis TEAM ROCKET." + done + +SwitchRoomText_Switch1: + text "It's labeled" + line "SWITCH 1." + done + +GruntF3SeenText: + text "Are you lost? No," + line "you can't be." + + para "You don't have" + line "that scared look." + + para "I'll give you" + line "something to be" + cont "scared about!" + done + +GruntF3BeatenText: + text "How could you?" + done + +GruntF3AfterBattleText: + text "Go wherever you'd" + line "like! Get lost!" + cont "See if I care!" + done + +SwitchRoomText_OffTurnOn: + text "It's OFF." + line "Turn it ON?" + done + +SwitchRoomText_OnTurnOff: + text "It's ON." + line "Turn it OFF?" + done + +SwitchRoomText_Switch2: + text "It's labeled" + line "SWITCH 2." + done + +SwitchRoomText_Switch3: + text "It's labeled" + line "SWITCH 3." + done + +SwitchRoomText_Emergency: + text "It's labeled" + line "EMERGENCY." + done + +GoldenrodUndergroundSwitchRoomEntrances_MapEvents: + db 0, 0 ; filler + + db 9 ; warp events + warp_event 23, 3, GOLDENROD_UNDERGROUND, 6 + warp_event 22, 10, GOLDENROD_UNDERGROUND_WAREHOUSE, 1 + warp_event 23, 10, GOLDENROD_UNDERGROUND_WAREHOUSE, 2 + warp_event 5, 25, GOLDENROD_UNDERGROUND, 2 + warp_event 4, 29, GOLDENROD_CITY, 15 + warp_event 5, 29, GOLDENROD_CITY, 15 + warp_event 21, 25, GOLDENROD_UNDERGROUND, 1 + warp_event 20, 29, GOLDENROD_CITY, 14 + warp_event 21, 29, GOLDENROD_CITY, 14 + + db 2 ; coord events + coord_event 19, 4, SCENE_DEFAULT, UndergroundSilverScene1 + coord_event 19, 5, SCENE_DEFAULT, UndergroundSilverScene2 + + db 6 ; bg events + bg_event 16, 1, BGEVENT_READ, Switch1Script + bg_event 10, 1, BGEVENT_READ, Switch2Script + bg_event 2, 1, BGEVENT_READ, Switch3Script + bg_event 20, 11, BGEVENT_READ, EmergencySwitchScript + bg_event 8, 9, BGEVENT_ITEM, GoldenrodUndergroundSwitchRoomEntrancesHiddenMaxPotion + bg_event 1, 8, BGEVENT_ITEM, GoldenrodUndergroundSwitchRoomEntrancesHiddenRevive + + db 11 ; object events + object_event 9, 12, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 2, TrainerBurglarDuncan, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 4, 8, SPRITE_PHARMACIST, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 2, TrainerBurglarEddie, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 17, 2, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM13, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 11, 2, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM11, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 3, 2, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM25, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 19, 12, SPRITE_ROCKET_GIRL, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 3, 27, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, GoldenrodUndergroundSwitchRoomEntrancesTeacherScript, -1 + object_event 19, 27, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, GoldenrodUndergroundSwitchRoomEntrancesSuperNerdScript, -1 + object_event 1, 12, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodUndergroundSwitchRoomEntrancesSmokeBall, EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_SMOKE_BALL + object_event 14, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodUndergroundSwitchRoomEntrancesFullHeal, EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_FULL_HEAL + object_event 23, 3, SPRITE_SILVER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_GOLDENROD_UNDERGROUND diff --git a/maps/GoldenrodUndergroundWarehouse.asm b/maps/GoldenrodUndergroundWarehouse.asm new file mode 100644 index 00000000..e9e9e735 --- /dev/null +++ b/maps/GoldenrodUndergroundWarehouse.asm @@ -0,0 +1,226 @@ + const_def 2 ; object constants + const GOLDENRODUNDERGROUNDWAREHOUSE_ROCKET1 + const GOLDENRODUNDERGROUNDWAREHOUSE_ROCKET2 + const GOLDENRODUNDERGROUNDWAREHOUSE_ROCKET3 + const GOLDENRODUNDERGROUNDWAREHOUSE_GENTLEMAN + const GOLDENRODUNDERGROUNDWAREHOUSE_POKE_BALL1 + const GOLDENRODUNDERGROUNDWAREHOUSE_POKE_BALL2 + const GOLDENRODUNDERGROUNDWAREHOUSE_POKE_BALL3 + +GoldenrodUndergroundWarehouse_MapScripts: + db 0 ; scene scripts + + db 1 ; callbacks + callback MAPCALLBACK_NEWMAP, .ResetSwitches + +.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 + +TrainerGruntM24: + trainer GRUNTM, GRUNTM_24, EVENT_BEAT_ROCKET_GRUNTM_24, GruntM24SeenText, GruntM24BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext GruntM24AfterBattleText + waitbutton + closetext + end + +TrainerGruntM14: + trainer GRUNTM, GRUNTM_14, EVENT_BEAT_ROCKET_GRUNTM_14, GruntM14SeenText, GruntM14BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext GruntM14AfterBattleText + waitbutton + closetext + end + +TrainerGruntM15: + trainer GRUNTM, GRUNTM_15, EVENT_BEAT_ROCKET_GRUNTM_15, GruntM15SeenText, GruntM15BeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext GruntM15AfterBattleText + waitbutton + closetext + end + +GoldenrodUndergroundWarehouseDirectorScript: + faceplayer + opentext + checkevent EVENT_RECEIVED_CARD_KEY + iftrue .GotCardKey + writetext DirectorIntroText + buttonsound + verbosegiveitem CARD_KEY + setevent EVENT_RECEIVED_CARD_KEY + setevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_1 + clearevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_2 + clearevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_3 + writetext DirectorCardKeyText + buttonsound +.GotCardKey: + writetext DirectorAfterText + waitbutton + closetext + end + +GoldenrodUndergroundWarehouseMaxEther: + itemball MAX_ETHER + +GoldenrodUndergroundWarehouseTMSleepTalk: + itemball TM_SLEEP_TALK + +GruntM24SeenText: + text "How did you get" + line "this far?" + + para "I guess it can't" + line "be helped. I'll" + cont "dispose of you." + done + +GruntM24BeatenText: + text "He disposed of me…" + done + +GruntM24AfterBattleText: + text "TEAM ROCKET will" + line "keep going, wait-" + cont "ing for the return" + cont "of GIOVANNI." + + para "We'll do whatever" + line "it takes." + done + +GruntM14SeenText: + text "You're not going" + line "any farther!" + + para "I don't show mercy" + line "to my enemies, not" + cont "even brats!" + done + +GruntM14BeatenText: + text "Blast it!" + done + +GruntM14AfterBattleText: + text "I lost…" + + para "Please forgive me," + line "GIOVANNI!" + done + +GruntM15SeenText: + text "Hyuck-hyuck-hyuck!" + line "I remember you!" + + para "You got me good" + line "at our hideout!" + done + +GruntM15BeatenText: + text "Hyuck-hyuck-hyuck!" + line "So, that's how?" + done + +GruntM15AfterBattleText: + text "Hyuck-hyuck-hyuck!" + line "That was a blast!" + cont "I'll remember you!" + done + +DirectorIntroText: + text "DIRECTOR: Who?" + line "What? You came to" + cont "rescue me?" + + para "Thank you!" + + para "The RADIO TOWER!" + + para "What's happening" + line "there?" + + para "Taken over by TEAM" + line "ROCKET?" + + para "Here. Take this" + line "CARD KEY." + done + +DirectorCardKeyText: + text "DIRECTOR: Use that" + line "to open the shut-" + cont "ters on 3F." + done + +DirectorAfterText: + text "I'm begging you to" + line "help." + + para "There's no telling" + line "what they'll do if" + + para "they control the" + line "transmitter." + + para "They may even be" + line "able to control" + + para "#MON using a" + line "special signal!" + + para "You're the only" + line "one I can call on." + + para "Please save the" + line "RADIO TOWER…" + + para "And all the #-" + line "MON nationwide!" + done + +GoldenrodUndergroundWarehouse_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 2, 12, GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 2 + warp_event 3, 12, GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 3 + warp_event 17, 2, GOLDENROD_DEPT_STORE_B1F, 1 + + db 0 ; coord events + + db 0 ; bg events + + db 6 ; object events + object_event 9, 8, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 8, 15, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 14, 3, SPRITE_ROCKET, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 12, 8, SPRITE_GENTLEMAN, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, GoldenrodUndergroundWarehouseDirectorScript, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + object_event 18, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodUndergroundWarehouseMaxEther, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER + object_event 13, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, GoldenrodUndergroundWarehouseTMSleepTalk, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK diff --git a/maps/IcePath1F.asm b/maps/IcePath1F.asm new file mode 100644 index 00000000..23c16580 --- /dev/null +++ b/maps/IcePath1F.asm @@ -0,0 +1,32 @@ + const_def 2 ; object constants + const ICEPATH1F_POKE_BALL1 + const ICEPATH1F_POKE_BALL2 + const ICEPATH1F_POKE_BALL3 + +IcePath1F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +IcePath1FHMWaterfall: + itemball HM_WATERFALL + +IcePath1FPPUp: + itemball PP_UP + +IcePath1F_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 4, 19, ROUTE_44, 1 + warp_event 36, 27, BLACKTHORN_CITY, 7 + warp_event 37, 5, ICE_PATH_B1F, 1 + warp_event 37, 13, ICE_PATH_B1F, 7 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 31, 7, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, IcePath1FHMWaterfall, EVENT_GOT_HM07_WATERFALL + object_event 32, 23, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, IcePath1FPPUp, EVENT_ICE_PATH_1F_PP_UP diff --git a/maps/IcePathB1F.asm b/maps/IcePathB1F.asm new file mode 100644 index 00000000..5f3c150d --- /dev/null +++ b/maps/IcePathB1F.asm @@ -0,0 +1,99 @@ + const_def 2 ; object constants + const ICEPATHB1F_BOULDER1 + const ICEPATHB1F_BOULDER2 + const ICEPATHB1F_BOULDER3 + const ICEPATHB1F_BOULDER4 + const ICEPATHB1F_POKE_BALL + +IcePathB1F_MapScripts: + db 0 ; scene scripts + + db 1 ; callbacks + callback MAPCALLBACK_CMDQUEUE, .SetUpStoneTable + +.SetUpStoneTable: + writecmdqueue .CommandQueue + return + +.CommandQueue: + cmdqueue CMDQUEUE_STONETABLE, .StoneTable ; check if any stones are sitting on a warp + +.StoneTable: + stonetable 3, ICEPATHB1F_BOULDER1, .Boulder1 + stonetable 4, ICEPATHB1F_BOULDER2, .Boulder2 + stonetable 5, ICEPATHB1F_BOULDER3, .Boulder3 + stonetable 6, ICEPATHB1F_BOULDER4, .Boulder4 + db -1 ; end + +.Boulder1: + disappear ICEPATHB1F_BOULDER1 + clearevent EVENT_BOULDER_IN_ICE_PATH_1A + jump .FinishBoulder + +.Boulder2: + disappear ICEPATHB1F_BOULDER2 + clearevent EVENT_BOULDER_IN_ICE_PATH_2A + jump .FinishBoulder + +.Boulder3: + disappear ICEPATHB1F_BOULDER3 + clearevent EVENT_BOULDER_IN_ICE_PATH_3A + jump .FinishBoulder + +.Boulder4: + disappear ICEPATHB1F_BOULDER4 + clearevent EVENT_BOULDER_IN_ICE_PATH_4A + jump .FinishBoulder + +.FinishBoulder: + pause 30 + scall .BoulderFallsThrough + opentext + writetext IcePathBoulderFellThroughText + waitbutton + closetext + end + +.BoulderFallsThrough: + playsound SFX_STRENGTH + earthquake 80 + end + +IcePathB1FBoulder: + jumpstd strengthboulder + +IcePathB1FIron: + itemball IRON + +IcePathB1FHiddenMaxPotion: + hiddenitem MAX_POTION, EVENT_ICE_PATH_B1F_HIDDEN_MAX_POTION + +IcePathBoulderFellThroughText: + text "The boulder fell" + line "through." + done + +IcePathB1F_MapEvents: + db 0, 0 ; filler + + db 8 ; warp events + warp_event 3, 15, ICE_PATH_1F, 3 + warp_event 17, 3, ICE_PATH_B2F_MAHOGANY_SIDE, 1 + warp_event 11, 2, ICE_PATH_B2F_MAHOGANY_SIDE, 3 ; hole + warp_event 4, 7, ICE_PATH_B2F_MAHOGANY_SIDE, 4 ; hole + warp_event 5, 12, ICE_PATH_B2F_MAHOGANY_SIDE, 5 ; hole + warp_event 12, 13, ICE_PATH_B2F_MAHOGANY_SIDE, 6 ; hole + warp_event 5, 25, ICE_PATH_1F, 4 + warp_event 11, 27, ICE_PATH_B2F_BLACKTHORN_SIDE, 1 + + db 0 ; coord events + + db 1 ; bg events + bg_event 15, 31, BGEVENT_ITEM, IcePathB1FHiddenMaxPotion + + db 5 ; object events + object_event 11, 7, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1 + object_event 7, 8, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2 + object_event 8, 9, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3 + object_event 17, 7, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4 + object_event 5, 35, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, IcePathB1FIron, EVENT_ICE_PATH_B1F_IRON diff --git a/maps/IcePathB2FBlackthornSide.asm b/maps/IcePathB2FBlackthornSide.asm new file mode 100644 index 00000000..23ba9377 --- /dev/null +++ b/maps/IcePathB2FBlackthornSide.asm @@ -0,0 +1,28 @@ + const_def 2 ; object constants + const ICEPATHB2FBLACKTHORNSIDE_POKE_BALL + +IcePathB2FBlackthornSide_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +IcePathB2FBlackthornSideTMRest: + itemball TM_REST + +IcePathB2FBlackthornSideHiddenIceHeal: + hiddenitem ICE_HEAL, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_HIDDEN_ICE_HEAL + +IcePathB2FBlackthornSide_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 3, 15, ICE_PATH_B1F, 8 + warp_event 3, 3, ICE_PATH_B3F, 2 + + db 0 ; coord events + + db 1 ; bg events + bg_event 2, 10, BGEVENT_ITEM, IcePathB2FBlackthornSideHiddenIceHeal + + db 1 ; object events + object_event 8, 16, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, IcePathB2FBlackthornSideTMRest, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST diff --git a/maps/IcePathB2FMahoganySide.asm b/maps/IcePathB2FMahoganySide.asm new file mode 100644 index 00000000..86a706db --- /dev/null +++ b/maps/IcePathB2FMahoganySide.asm @@ -0,0 +1,53 @@ + const_def 2 ; object constants + const ICEPATHB2FMAHOGANYSIDE_BOULDER1 + const ICEPATHB2FMAHOGANYSIDE_BOULDER2 + const ICEPATHB2FMAHOGANYSIDE_BOULDER3 + const ICEPATHB2FMAHOGANYSIDE_BOULDER4 + const ICEPATHB2FMAHOGANYSIDE_POKE_BALL1 + const ICEPATHB2FMAHOGANYSIDE_POKE_BALL2 + +IcePathB2FMahoganySide_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +IcePathB2FMahoganySideBoulder: + jumptext IcePathB2FMahoganySideBoulderText + +IcePathB2FMahoganySideFullHeal: + itemball FULL_HEAL + +IcePathB2FMahoganySideMaxPotion: + itemball MAX_POTION + +IcePathB2FMahoganySideHiddenCarbos: + hiddenitem CARBOS, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_HIDDEN_CARBOS + +IcePathB2FMahoganySideBoulderText: + text "It's immovably" + line "imbedded in ice." + done + +IcePathB2FMahoganySide_MapEvents: + db 0, 0 ; filler + + db 6 ; warp events + warp_event 17, 1, ICE_PATH_B1F, 2 + warp_event 9, 11, ICE_PATH_B3F, 1 + warp_event 11, 4, ICE_PATH_B1F, 3 + warp_event 4, 6, ICE_PATH_B1F, 4 + warp_event 4, 12, ICE_PATH_B1F, 5 + warp_event 12, 12, ICE_PATH_B1F, 6 + + db 0 ; coord events + + db 1 ; bg events + bg_event 0, 17, BGEVENT_ITEM, IcePathB2FMahoganySideHiddenCarbos + + db 6 ; object events + object_event 11, 3, SPRITE_BOULDER, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB2FMahoganySideBoulder, EVENT_BOULDER_IN_ICE_PATH_1A + object_event 4, 7, SPRITE_BOULDER, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB2FMahoganySideBoulder, EVENT_BOULDER_IN_ICE_PATH_2A + object_event 3, 12, SPRITE_BOULDER, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB2FMahoganySideBoulder, EVENT_BOULDER_IN_ICE_PATH_3A + object_event 12, 13, SPRITE_BOULDER, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB2FMahoganySideBoulder, EVENT_BOULDER_IN_ICE_PATH_4A + object_event 8, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, IcePathB2FMahoganySideFullHeal, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL + object_event 0, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, IcePathB2FMahoganySideMaxPotion, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION diff --git a/maps/IcePathB3F.asm b/maps/IcePathB3F.asm new file mode 100644 index 00000000..1130705a --- /dev/null +++ b/maps/IcePathB3F.asm @@ -0,0 +1,29 @@ + const_def 2 ; object constants + const ICEPATHB3F_POKE_BALL + const ICEPATHB3F_ROCK + +IcePathB3F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +IcePathB3FNevermeltice: + itemball NEVERMELTICE + +IcePathB3FRock: + jumpstd smashrock + +IcePathB3F_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 3, 5, ICE_PATH_B2F_MAHOGANY_SIDE, 2 + warp_event 15, 5, ICE_PATH_B2F_BLACKTHORN_SIDE, 2 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 5, 7, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, IcePathB3FNevermeltice, EVENT_ICE_PATH_B3F_NEVERMELTICE + object_event 6, 6, SPRITE_ROCK, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, IcePathB3FRock, -1 diff --git a/maps/MountMortar1FInside.asm b/maps/MountMortar1FInside.asm new file mode 100644 index 00000000..3e837835 --- /dev/null +++ b/maps/MountMortar1FInside.asm @@ -0,0 +1,53 @@ + const_def 2 ; object constants + const MOUNTMORTAR1FINSIDE_BOULDER + const MOUNTMORTAR1FINSIDE_POKE_BALL1 + const MOUNTMORTAR1FINSIDE_POKE_BALL2 + const MOUNTMORTAR1FINSIDE_POKE_BALL3 + const MOUNTMORTAR1FINSIDE_POKE_BALL4 + const MOUNTMORTAR1FINSIDE_POKE_BALL5 + const MOUNTMORTAR1FINSIDE_SUPER_NERD1 + const MOUNTMORTAR1FINSIDE_SUPER_NERD2 + const MOUNTMORTAR1FINSIDE_POKE_BALL6 + const MOUNTMORTAR1FINSIDE_POKE_BALL7 + +MountMortar1FInside_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +MountMortar1FBoulder: + jumpstd strengthboulder + +MountMortar1FInsideEscapeRope: + itemball ESCAPE_ROPE + +MountMortar1FInsideMaxRevive: + itemball MAX_REVIVE + +MountMortar1FInsideHyperPotion: + itemball HYPER_POTION + +MountMortar1FInsideHiddenMaxRepel: + hiddenitem MAX_REPEL, EVENT_MOUNT_MORTAR_1F_INSIDE_HIDDEN_MAX_REPEL + +MountMortar1FInside_MapEvents: + db 0, 0 ; filler + + db 6 ; warp events + warp_event 11, 47, MOUNT_MORTAR_1F_OUTSIDE, 5 + warp_event 29, 47, MOUNT_MORTAR_1F_OUTSIDE, 6 + warp_event 5, 39, MOUNT_MORTAR_1F_OUTSIDE, 8 + warp_event 33, 41, MOUNT_MORTAR_1F_OUTSIDE, 9 + warp_event 3, 19, MOUNT_MORTAR_B1F, 1 + warp_event 9, 9, MOUNT_MORTAR_2F_INSIDE, 2 + + db 0 ; coord events + + db 1 ; bg events + bg_event 31, 9, BGEVENT_ITEM, MountMortar1FInsideHiddenMaxRepel + + db 4 ; object events + object_event 21, 43, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MountMortar1FBoulder, -1 + object_event 33, 22, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar1FInsideEscapeRope, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE + object_event 16, 10, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar1FInsideMaxRevive, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE + object_event 12, 21, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar1FInsideHyperPotion, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION diff --git a/maps/MountMortar1FOutside.asm b/maps/MountMortar1FOutside.asm new file mode 100644 index 00000000..d1f123c7 --- /dev/null +++ b/maps/MountMortar1FOutside.asm @@ -0,0 +1,40 @@ + const_def 2 ; object constants + const MOUNTMORTAR1FOUTSIDE_POKE_BALL1 + const MOUNTMORTAR1FOUTSIDE_POKE_BALL2 + +MountMortar1FOutside_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +MountMortar1FOutsideEther: + itemball ETHER + +MountMortar1FOutsideGuardSpec: + itemball GUARD_SPEC + +MountMortar1FOutsideHiddenHyperPotion: + hiddenitem HYPER_POTION, EVENT_MOUNT_MORTAR_1F_OUTSIDE_HIDDEN_HYPER_POTION + +MountMortar1FOutside_MapEvents: + db 0, 0 ; filler + + db 9 ; warp events + warp_event 3, 33, ROUTE_42, 3 + warp_event 17, 33, ROUTE_42, 4 + warp_event 37, 33, ROUTE_42, 5 + warp_event 17, 5, MOUNT_MORTAR_2F_INSIDE, 1 + warp_event 11, 21, MOUNT_MORTAR_1F_INSIDE, 1 + warp_event 29, 21, MOUNT_MORTAR_1F_INSIDE, 2 + warp_event 17, 29, MOUNT_MORTAR_B1F, 2 + warp_event 7, 13, MOUNT_MORTAR_1F_INSIDE, 3 + warp_event 33, 13, MOUNT_MORTAR_1F_INSIDE, 4 + + db 0 ; coord events + + db 1 ; bg events + bg_event 25, 22, BGEVENT_ITEM, MountMortar1FOutsideHiddenHyperPotion + + db 2 ; object events + object_event 13, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar1FOutsideEther, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER + object_event 31, 18, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar1FOutsideGuardSpec, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE diff --git a/maps/MountMortar2FInside.asm b/maps/MountMortar2FInside.asm new file mode 100644 index 00000000..10eb78dc --- /dev/null +++ b/maps/MountMortar2FInside.asm @@ -0,0 +1,54 @@ + const_def 2 ; object constants + const MOUNTMORTAR2FINSIDE_POKE_BALL1 + const MOUNTMORTAR2FINSIDE_POKE_BALL2 + const MOUNTMORTAR2FINSIDE_POKE_BALL3 + const MOUNTMORTAR2FINSIDE_POKE_BALL4 + const MOUNTMORTAR2FINSIDE_POKE_BALL5 + const MOUNTMORTAR2FINSIDE_POKE_BALL6 + const MOUNTMORTAR2FINSIDE_SUPER_NERD + +MountMortar2FInside_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +MountMortar2FInsideMaxPotion: + itemball MAX_POTION + +MountMortar2FInsideRareCandy: + itemball RARE_CANDY + +MountMortar2FInsideTMDefenseCurl: + itemball TM_DEFENSE_CURL + +MountMortar2FInsideDragonScale: + itemball DRAGON_SCALE + +MountMortar2FInsideElixer: + itemball ELIXER + +MountMortar2FInsideEscapeRope: + itemball ESCAPE_ROPE + +MountMortar2FInsideHiddenFullRestore: + hiddenitem FULL_RESTORE, EVENT_MOUNT_MORTAR_2F_INSIDE_HIDDEN_FULL_RESTORE + +MountMortar2FInside_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 17, 33, MOUNT_MORTAR_1F_OUTSIDE, 4 + warp_event 3, 5, MOUNT_MORTAR_1F_INSIDE, 6 + + db 0 ; coord events + + db 1 ; bg events + bg_event 19, 6, BGEVENT_ITEM, MountMortar2FInsideHiddenFullRestore + + db 6 ; object events + object_event 31, 23, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar2FInsideMaxPotion, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION + object_event 2, 24, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar2FInsideRareCandy, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY + object_event 19, 17, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar2FInsideTMDefenseCurl, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL + object_event 14, 5, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar2FInsideDragonScale, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE + object_event 8, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar2FInsideElixer, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER + object_event 28, 5, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortar2FInsideEscapeRope, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE diff --git a/maps/MountMortarB1F.asm b/maps/MountMortarB1F.asm new file mode 100644 index 00000000..580d699f --- /dev/null +++ b/maps/MountMortarB1F.asm @@ -0,0 +1,142 @@ + const_def 2 ; object constants + const MOUNTMORTARB1F_POKE_BALL1 + const MOUNTMORTARB1F_POKE_BALL2 + const MOUNTMORTARB1F_BOULDER + const MOUNTMORTARB1F_BLACK_BELT + const MOUNTMORTARB1F_POKE_BALL3 + const MOUNTMORTARB1F_POKE_BALL4 + const MOUNTMORTARB1F_POKE_BALL5 + +MountMortarB1F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +MountMortarB1FKiyoScript: + faceplayer + opentext + checkevent EVENT_GOT_TYROGUE_FROM_KIYO + iftrue .GotTyrogue + checkevent EVENT_BEAT_BLACKBELT_KIYO + iftrue .BeatKiyo + writetext UnknownText_0x7e24d + waitbutton + closetext + winlosstext UnknownText_0x7e2a9, 0 + loadtrainer BLACKBELT_T, KIYO + startbattle + reloadmapafterbattle + setevent EVENT_BEAT_BLACKBELT_KIYO + opentext +.BeatKiyo: + writetext UnknownText_0x7e2c0 + buttonsound + waitsfx + checkcode VAR_PARTYCOUNT + ifequal PARTY_LENGTH, .NoRoom + writetext UnknownText_0x7e355 + playsound SFX_CAUGHT_MON + waitsfx + givepoke TYROGUE, 10 + setevent EVENT_GOT_TYROGUE_FROM_KIYO +.GotTyrogue: + writetext UnknownText_0x7e36a + waitbutton + closetext + end + +.NoRoom: + writetext UnknownText_0x7e3df + waitbutton + closetext + end + +MountMortarB1FBoulder: + jumpstd strengthboulder + +MountMortarB1FHyperPotion: + itemball HYPER_POTION + +MountMortarB1FFullHeal: + itemball FULL_HEAL + +MountMortarB1FHiddenMaxRevive: + hiddenitem MAX_REVIVE, EVENT_MOUNT_MORTAR_B1F_HIDDEN_MAX_REVIVE + +UnknownText_0x7e24d: + text "Hey!" + + para "I am the KARATE" + line "KING!" + + para "I train alone here" + line "in the dark!" + + para "You!" + line "Battle with me!" + + para "Hwaaarggh!" + done + +UnknownText_0x7e2a9: + text "Waaaarggh!" + line "I'm beaten!" + done + +UnknownText_0x7e2c0: + text "I… I'm crushed…" + + para "My training is" + line "still not enough…" + + para "But a loss is a" + line "loss. I admit it." + + para "As proof that you" + line "defeated me, I'll" + + para "give you a rare" + line "fighting #MON." + done + +UnknownText_0x7e355: + text "<PLAYER> received" + line "TYROGUE." + done + +UnknownText_0x7e36a: + text "TYROGUE is a" + line "fighting-type." + + para "It evolves into a" + line "tougher #MON." + + para "Keep up the hard" + line "work. I'll keep" + cont "training too." + + para "Farewell!" + done + +UnknownText_0x7e3df: + text "You have no room" + line "in your party!" + done + +MountMortarB1F_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 3, 3, MOUNT_MORTAR_1F_INSIDE, 5 + warp_event 19, 29, MOUNT_MORTAR_1F_OUTSIDE, 7 + + db 0 ; coord events + + db 1 ; bg events + bg_event 4, 6, BGEVENT_ITEM, MountMortarB1FHiddenMaxRevive + + db 4 ; object events + object_event 31, 17, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortarB1FHyperPotion, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION + object_event 4, 16, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, MountMortarB1FFullHeal, EVENT_MOUNT_MORTAR_B1F_CARBOS + object_event 9, 10, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, MountMortarB1FBoulder, -1 + object_event 13, 4, SPRITE_BLACK_BELT, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, MountMortarB1FKiyoScript, -1 @@ -3026,7 +3026,7 @@ wd6a4:: ds 1 ; d6a4 wd6a5:: ds 1 ; d6a5 wd6a6:: ds 1 ; d6a6 wd6a7:: ds 1 ; d6a7 -wd6a8:: ds 1 ; d6a8 +wUndergroundSwitchPositions:: ds 1 ; d6a8 wd6a9:: ds 1 ; d6a9 wd6aa:: ds 1 ; d6aa wd6ab:: ds 1 ; d6ab |