diff options
-rw-r--r-- | constants/event_flags.asm | 4 | ||||
-rw-r--r-- | macros/scripts/events.asm | 17 | ||||
-rw-r--r-- | main.asm | 18 | ||||
-rw-r--r-- | maps/DarkCaveBlackthornEntrance.asm | 76 | ||||
-rw-r--r-- | maps/DarkCaveVioletEntrance.asm | 51 | ||||
-rw-r--r-- | maps/DragonsDen1F.asm | 19 | ||||
-rw-r--r-- | maps/DragonsDenB1F.asm | 289 | ||||
-rw-r--r-- | maps/SilverCaveItemRooms.asm | 29 | ||||
-rw-r--r-- | maps/SilverCaveOutside.asm | 38 | ||||
-rw-r--r-- | maps/SilverCavePokecenter1F.asm | 44 | ||||
-rw-r--r-- | maps/SilverCaveRoom1.asm | 43 | ||||
-rw-r--r-- | maps/SilverCaveRoom2.asm | 28 | ||||
-rw-r--r-- | maps/SilverCaveRoom3.asm | 62 | ||||
-rw-r--r-- | maps/TohjoFalls.asm | 24 | ||||
-rw-r--r-- | maps/WhirlIslandB1F.asm | 68 | ||||
-rw-r--r-- | maps/WhirlIslandB2F.asm | 36 | ||||
-rw-r--r-- | maps/WhirlIslandCave.asm | 17 | ||||
-rw-r--r-- | maps/WhirlIslandLugiaChamber.asm | 66 | ||||
-rw-r--r-- | maps/WhirlIslandNE.asm | 25 | ||||
-rw-r--r-- | maps/WhirlIslandNW.asm | 19 | ||||
-rw-r--r-- | maps/WhirlIslandSE.asm | 17 | ||||
-rw-r--r-- | maps/WhirlIslandSW.asm | 27 |
22 files changed, 1002 insertions, 15 deletions
diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 41010f6b..fbde1623 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -1747,7 +1747,7 @@ const EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST const EVENT_ICE_PATH_B3F_NEVERMELTICE const EVENT_WHIRL_ISLAND_NE_ULTRA_BALL - const EVENT_WHIRL_ISLAND_SW_ULTRA_BALL + const EVENT_WHIRL_ISLAND_SW_GUARD_SPEC const EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE const EVENT_WHIRL_ISLAND_B1F_CARBOS const EVENT_WHIRL_ISLAND_B1F_CALCIUM @@ -1757,7 +1757,7 @@ const EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE const EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER const EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER - const EVENT_SILVER_CAVE_ROOM_1_PROTEIN + const EVENT_SILVER_CAVE_ROOM_1_X_ACCURACY const EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE const EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE const EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index 6c936ffc..6feee09f 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -953,13 +953,13 @@ describedecoration: MACRO db \1 ; byte ENDM - enum fruittree_command ; $9b + enum fruittree_command ; $9a fruittree: MACRO db fruittree_command db \1 ; tree_id ENDM - enum specialphonecall_command ; $9c + enum specialphonecall_command ; $9b specialphonecall: MACRO db specialphonecall_command dw \1 ; call_id @@ -981,26 +981,19 @@ else endc ENDM - enum verbosegiveitem2_command ; $9f -verbosegiveitem2: MACRO - db verbosegiveitem2_command - db \1 ; item - db \2 ; var -ENDM - - enum swarm_command ; $a0 + enum swarm_command ; $9e swarm: MACRO db swarm_command db \1 ; flag map_id \2 ; map ENDM - enum halloffame_command ; $a1 + enum halloffame_command ; $9f halloffame: MACRO db halloffame_command ENDM - enum credits_command ; $a2 + enum credits_command ; $a0 credits: MACRO db credits_command ENDM @@ -1601,7 +1601,23 @@ INCLUDE "maps/IcePathB2FBlackthornSide.asm" INCLUDE "maps/IcePathB3F.asm" SECTION "bank47", ROMX, BANK[$47] - dr $11c000, $120000 +INCLUDE "maps/WhirlIslandNW.asm" +INCLUDE "maps/WhirlIslandNE.asm" +INCLUDE "maps/WhirlIslandSW.asm" +INCLUDE "maps/WhirlIslandCave.asm" +INCLUDE "maps/WhirlIslandSE.asm" +INCLUDE "maps/WhirlIslandB1F.asm" +INCLUDE "maps/WhirlIslandB2F.asm" +INCLUDE "maps/WhirlIslandLugiaChamber.asm" +INCLUDE "maps/SilverCaveRoom1.asm" +INCLUDE "maps/SilverCaveRoom2.asm" +INCLUDE "maps/SilverCaveRoom3.asm" +INCLUDE "maps/SilverCaveItemRooms.asm" +INCLUDE "maps/DarkCaveVioletEntrance.asm" +INCLUDE "maps/DarkCaveBlackthornEntrance.asm" +INCLUDE "maps/DragonsDen1F.asm" +INCLUDE "maps/DragonsDenB1F.asm" +INCLUDE "maps/TohjoFalls.asm" SECTION "bank48", ROMX, BANK[$48] dr $120000, $124000 diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm new file mode 100644 index 00000000..84daa17d --- /dev/null +++ b/maps/DarkCaveBlackthornEntrance.asm @@ -0,0 +1,76 @@ + const_def 2 ; object constants + const DARKCAVEBLACKTHORNENTRANCE_PHARMACIST + const DARKCAVEBLACKTHORNENTRANCE_POKE_BALL1 + const DARKCAVEBLACKTHORNENTRANCE_POKE_BALL2 + +DarkCaveBlackthornEntrance_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +DarkCaveBlackthornEntrancePharmacistScript: + faceplayer + opentext + checkevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE + iftrue .GotBlackglasses + writetext DarkCaveBlackthornEntrancePharmacistText1 + buttonsound + verbosegiveitem BLACKGLASSES + iffalse .PackFull + setevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE +.GotBlackglasses: + writetext DarkCaveBlackthornEntrancePharmacistText2 + waitbutton +.PackFull: + closetext + end + +DarkCaveBlackthornEntranceRevive: + itemball REVIVE + +DarkCaveBlackthornEntranceTMSnore: + itemball TM_SNORE + +DarkCaveBlackthornEntrancePharmacistText1: + text "Whoa! You startled" + line "me there!" + + para "I had my BLACK-" + line "GLASSES on, so I" + + para "didn't notice you" + line "at all." + + para "What am I doing" + line "here?" + + para "Hey, don't you" + line "worry about it." + + para "I'll give you a" + line "pair of BLACK-" + cont "GLASSES, so forget" + cont "you saw me, OK?" + done + +DarkCaveBlackthornEntrancePharmacistText2: + text "BLACKGLASSES ups" + line "the power of dark-" + cont "type moves." + done + +DarkCaveBlackthornEntrance_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 23, 3, ROUTE_45, 1 + warp_event 3, 25, DARK_CAVE_VIOLET_ENTRANCE, 2 + + db 0 ; coord events + + db 0 ; bg events + + db 3 ; object events + object_event 7, 3, SPRITE_PHARMACIST, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DarkCaveBlackthornEntrancePharmacistScript, -1 + object_event 21, 24, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, DarkCaveBlackthornEntranceRevive, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE + object_event 7, 22, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, DarkCaveBlackthornEntranceTMSnore, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE diff --git a/maps/DarkCaveVioletEntrance.asm b/maps/DarkCaveVioletEntrance.asm new file mode 100644 index 00000000..e6dd4b83 --- /dev/null +++ b/maps/DarkCaveVioletEntrance.asm @@ -0,0 +1,51 @@ + const_def 2 ; object constants + const DARKCAVEVIOLETENTRANCE_POKE_BALL1 + const DARKCAVEVIOLETENTRANCE_ROCK1 + const DARKCAVEVIOLETENTRANCE_ROCK2 + const DARKCAVEVIOLETENTRANCE_ROCK3 + const DARKCAVEVIOLETENTRANCE_ROCK4 + const DARKCAVEVIOLETENTRANCE_POKE_BALL2 + const DARKCAVEVIOLETENTRANCE_POKE_BALL3 + const DARKCAVEVIOLETENTRANCE_POKE_BALL4 + +DarkCaveVioletEntrance_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +DarkCaveVioletEntrancePotion: + itemball POTION + +DarkCaveVioletEntranceFullHeal: + itemball FULL_HEAL + +DarkCaveVioletEntranceHyperPotion: + itemball HYPER_POTION + +DarkCaveVioletEntranceRock: + jumpstd smashrock + +DarkCaveVioletEntranceHiddenElixer: + hiddenitem ELIXER, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HIDDEN_ELIXER + +DarkCaveVioletEntrance_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 3, 15, ROUTE_31, 3 + warp_event 17, 1, DARK_CAVE_BLACKTHORN_ENTRANCE, 2 + warp_event 35, 33, ROUTE_46, 3 + + db 0 ; coord events + + db 1 ; bg events + bg_event 26, 3, BGEVENT_ITEM, DarkCaveVioletEntranceHiddenElixer + + db 7 ; object events + object_event 6, 8, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, DarkCaveVioletEntrancePotion, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION + object_event 16, 14, SPRITE_ROCK, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + object_event 27, 6, SPRITE_ROCK, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + object_event 7, 14, SPRITE_ROCK, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + object_event 36, 31, SPRITE_ROCK, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DarkCaveVioletEntranceRock, -1 + object_event 36, 22, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, DarkCaveVioletEntranceFullHeal, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL + object_event 35, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, DarkCaveVioletEntranceHyperPotion, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION diff --git a/maps/DragonsDen1F.asm b/maps/DragonsDen1F.asm new file mode 100644 index 00000000..2fbc62df --- /dev/null +++ b/maps/DragonsDen1F.asm @@ -0,0 +1,19 @@ +DragonsDen1F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +DragonsDen1F_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 3, 5, BLACKTHORN_CITY, 8 + warp_event 3, 3, DRAGONS_DEN_1F, 4 + warp_event 5, 15, DRAGONS_DEN_B1F, 1 + warp_event 5, 13, DRAGONS_DEN_1F, 2 + + db 0 ; coord events + + db 0 ; bg events + + db 0 ; object events diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm new file mode 100644 index 00000000..13d20b01 --- /dev/null +++ b/maps/DragonsDenB1F.asm @@ -0,0 +1,289 @@ + const_def 2 ; object constants + const DRAGONSDENB1F_POKE_BALL1 + const DRAGONSDENB1F_CLAIR + const DRAGONSDENB1F_SILVER + const DRAGONSDENB1F_COOLTRAINER_M + const DRAGONSDENB1F_COOLTRAINER_F + const DRAGONSDENB1F_TWIN1 + const DRAGONSDENB1F_TWIN2 + const DRAGONSDENB1F_POKE_BALL2 + const DRAGONSDENB1F_POKE_BALL3 + +DragonsDenB1F_MapScripts: + db 0 ; scene scripts + + db 1 ; callbacks + callback MAPCALLBACK_NEWMAP, .CheckSilver + +.CheckSilver: + checkevent EVENT_BEAT_RIVAL_IN_MT_MOON + iftrue .CheckDay + disappear DRAGONSDENB1F_SILVER + return + +.CheckDay: + checkcode VAR_WEEKDAY + ifequal TUESDAY, .AppearSilver + ifequal THURSDAY, .AppearSilver + disappear DRAGONSDENB1F_SILVER + return + +.AppearSilver: + appear DRAGONSDENB1F_SILVER + return + +DragonsDenB1FDragonFangScript: + giveitem DRAGON_FANG + iffalse .BagFullDragonFang + disappear DRAGONSDENB1F_POKE_BALL1 + opentext + itemtotext DRAGON_FANG, MEM_BUFFER_0 + writetext Text_FoundDragonFang + playsound SFX_ITEM + waitsfx + itemnotify + closetext + checkcode VAR_FACING + ifequal RIGHT, .next + jump .next2 +.next + moveobject DRAGONSDENB1F_CLAIR, 34, 21 +.next2 + appear DRAGONSDENB1F_CLAIR + applymovement DRAGONSDENB1F_CLAIR, MovementDragonsDen_ClairWalksToYou + turnobject PLAYER, DOWN + opentext + writetext ClairText_GiveDragonbreathDragonDen + buttonsound + waitsfx + writetext DragonShrinePlayerReceivedRisingBadgeText + playsound SFX_GET_BADGE + waitsfx + setflag ENGINE_RISINGBADGE + specialphonecall SPECIALCALL_MASTERBALL + writetext DragonShrineRisingBadgeExplanationText + buttonsound + verbosegiveitem TM_DRAGONBREATH, 1 + iffalse .ClairLastText + setevent EVENT_GOT_TM24_DRAGONBREATH + writetext ClairText_DescribeDragonbreathDragonDen + buttonsound + jump .ClairLastText +.ClairLastText + writetext ClairText_WhatsTheMatterDragonDen + waitbutton + closetext + applymovement DRAGONSDENB1F_CLAIR, MovementDragonsDen_ClairWalksAway + disappear DRAGONSDENB1F_CLAIR + end + +.BagFullDragonFang: + opentext + itemtotext DRAGON_FANG, MEM_BUFFER_0 + writetext Text_FoundDragonFang + buttonsound + writetext Text_NoRoomForDragonFang + waitbutton + closetext + end + +DragonsDenB1FSilverScript: + playmusic MUSIC_RIVAL_ENCOUNTER + faceplayer + opentext + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + iftrue .SilverTalkAgain + writetext SilverText_Training1 + waitbutton + closetext + setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + special RestartMapMusic + end + +.SilverTalkAgain: + writetext SilverText_Training2 + waitbutton + closetext + special RestartMapMusic + end + +DragonShrineSignpost: + jumptext DragonShrineSignpostText + +DragonsDenB1FHiddenRevive: + hiddenitem REVIVE, EVENT_DRAGONS_DEN_B1F_HIDDEN_REVIVE + +DragonsDenB1FHiddenMaxPotion: + hiddenitem MAX_POTION, EVENT_DRAGONS_DEN_B1F_HIDDEN_MAX_POTION + +DragonsDenB1FHiddenMaxElixer: + hiddenitem MAX_ELIXER, EVENT_DRAGONS_DEN_B1F_HIDDEN_MAX_ELIXER + +MovementDragonsDen_ClairWalksToYou: + step UP + step UP + step UP + step UP + step_end + +MovementDragonsDen_ClairWalksAway: + step DOWN + step DOWN + step DOWN + step DOWN + step_end + +ClairText_GiveDragonbreathDragonDen: + text "CLAIR: All right." + line "I recognize your" + + para "true power. This" + line "BADGE is yours." + done + +DragonShrinePlayerReceivedRisingBadgeText: + text "<PLAYER> received" + line "RISINGBADGE." + done + +DragonShrineRisingBadgeExplanationText: + text "RISINGBADGE will" + line "enable your" + + para "#MON to use the" + line "move for climbing" + cont "waterfalls." + + para "Also, all #MON" + line "will recognize you" + + para "as a trainer and" + line "obey your every" + + para "command without" + line "question." + + para "I also want you to" + line "have this TM." + done + +NotifyReceiveDragonbreath: + text "<PLAYER> received" + line "TM24." + done + +ClairText_DescribeDragonbreathDragonDen: + text "That contains" + line "DRAGONBREATH." + + para "No, it doesn't" + line "have anything to" + cont "do with my breath." + + para "If you don't want" + line "it, you don't have" + cont "to take it." + done + +ClairText_WhatsTheMatterDragonDen: + text "So, you've col-" + line "lected all the" + cont "BADGES." + + para "Your destination" + line "is the #MON" + + para "LEAGUE in INDIGO" + line "PLATEAU." + + para "Do you know how to" + line "get there?" + + para "From here, go to" + line "NEW BARK TOWN." + + para "Then SURF east." + line "The route there is" + cont "very tough." + + para "Don't you dare" + line "lose at the #-" + cont "MON LEAGUE!" + + para "If you do, I'll" + line "feel even worse" + + para "about having lost" + line "to you!" + done + +DragonShrineSignpostText: + text "DRAGON SHRINE" + + para "A shrine honoring" + line "the dragon #MON" + + para "said to have lived" + line "in DRAGON'S DEN." + done + +SilverText_Training1: + text "…" + line "What? <PLAYER>?" + + para "…No, I won't" + line "battle you now…" + + para "My #MON aren't" + line "ready to beat you." + + para "I can't push them" + line "too hard now." + + para "I have to be dis-" + line "ciplined to become" + + para "the greatest #-" + line "MON trainer…" + done + +SilverText_Training2: + text "…" + + para "Whew…" + + para "Learn to stay out" + line "of my way…" + done + +Text_FoundDragonFang: + text "<PLAYER> found a" + line "@" + text_from_ram wStringBuffer3 + text "!" + done + +Text_NoRoomForDragonFang: + text "But <PLAYER> can't" + line "carry any more" + cont "items." + done + +DragonsDenB1F_MapEvents: + db 0, 0 ; filler + + db 1 ; warp events + warp_event 20, 3, DRAGONS_DEN_1F, 3 + + db 0 ; coord events + + db 4 ; bg events + bg_event 18, 24, BGEVENT_READ, DragonShrineSignpost + bg_event 31, 4, BGEVENT_ITEM, DragonsDenB1FHiddenRevive + bg_event 21, 17, BGEVENT_ITEM, DragonsDenB1FHiddenMaxPotion + bg_event 31, 15, BGEVENT_ITEM, DragonsDenB1FHiddenMaxElixer + + db 3 ; object events + object_event 35, 16, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DragonsDenB1FDragonFangScript, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG + object_event 35, 22, SPRITE_CLAIR, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR + object_event 20, 23, SPRITE_SILVER, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DragonsDenB1FSilverScript, EVENT_RIVAL_DRAGONS_DEN diff --git a/maps/SilverCaveItemRooms.asm b/maps/SilverCaveItemRooms.asm new file mode 100644 index 00000000..e2f48638 --- /dev/null +++ b/maps/SilverCaveItemRooms.asm @@ -0,0 +1,29 @@ + const_def 2 ; object constants + const SILVERCAVEITEMROOMS_POKE_BALL1 + const SILVERCAVEITEMROOMS_POKE_BALL2 + +SilverCaveItemRooms_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +SilverCaveItemRoomsMaxRevive: + itemball MAX_REVIVE + +SilverCaveItemRoomsFullRestore: + itemball FULL_RESTORE + +SilverCaveItemRooms_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 13, 3, SILVER_CAVE_ROOM_2, 3 + warp_event 7, 15, SILVER_CAVE_ROOM_2, 4 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 6, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, SilverCaveItemRoomsMaxRevive, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE + object_event 15, 11, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, SilverCaveItemRoomsFullRestore, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE diff --git a/maps/SilverCaveOutside.asm b/maps/SilverCaveOutside.asm new file mode 100644 index 00000000..fea25620 --- /dev/null +++ b/maps/SilverCaveOutside.asm @@ -0,0 +1,38 @@ +SilverCaveOutside_MapScripts: + db 0 ; scene scripts + + db 1 ; callbacks + callback MAPCALLBACK_NEWMAP, .FlyPoint + +.FlyPoint: + setflag ENGINE_FLYPOINT_SILVER_CAVE + return + +MtSilverPokecenterSign: + jumpstd pokecentersign + +MtSilverSign: + jumptext MtSilverSignText + +SilverCaveOutsideHiddenFullRestore: + hiddenitem FULL_RESTORE, EVENT_SILVER_CAVE_OUTSIDE_HIDDEN_FULL_RESTORE + +MtSilverSignText: + text "MT.SILVER" + done + +SilverCaveOutside_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 23, 19, SILVER_CAVE_POKECENTER_1F, 1 + warp_event 18, 11, SILVER_CAVE_ROOM_1, 1 + + db 0 ; coord events + + db 3 ; bg events + bg_event 24, 19, BGEVENT_READ, MtSilverPokecenterSign + bg_event 17, 13, BGEVENT_READ, MtSilverSign + bg_event 9, 25, BGEVENT_ITEM, SilverCaveOutsideHiddenFullRestore + + db 0 ; object events diff --git a/maps/SilverCavePokecenter1F.asm b/maps/SilverCavePokecenter1F.asm new file mode 100644 index 00000000..7c293a36 --- /dev/null +++ b/maps/SilverCavePokecenter1F.asm @@ -0,0 +1,44 @@ + const_def 2 ; object constants + const SILVERCAVEPOKECENTER1F_NURSE + const SILVERCAVEPOKECENTER1F_GRANNY + +SilverCavePokecenter1F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +SilverCavePokecenter1FNurseScript: + jumpstd pokecenternurse + +SilverCavePokecenter1FGrannyScript: + jumptextfaceplayer SilverCavePokecenter1FGrannyText + +SilverCavePokecenter1FGrannyText: + text "Trainers who seek" + line "power climb MT." + + para "SILVER despite its" + line "many dangers…" + + para "With their trusted" + line "#MON, they must" + + para "feel they can go" + line "anywhere…" + done + +SilverCavePokecenter1F_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 3, 7, SILVER_CAVE_OUTSIDE, 1 + warp_event 4, 7, SILVER_CAVE_OUTSIDE, 1 + warp_event 0, 7, POKECENTER_2F, 1 + + db 0 ; coord events + + db 0 ; bg events + + db 2 ; object events + object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SilverCavePokecenter1FNurseScript, -1 + object_event 1, 5, SPRITE_GRANNY, SPRITEMOVEDATA_STANDING_LEFT, 2, 1, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SilverCavePokecenter1FGrannyScript, -1 diff --git a/maps/SilverCaveRoom1.asm b/maps/SilverCaveRoom1.asm new file mode 100644 index 00000000..15398351 --- /dev/null +++ b/maps/SilverCaveRoom1.asm @@ -0,0 +1,43 @@ + const_def 2 ; object constants + const SILVERCAVEROOM1_POKE_BALL1 + const SILVERCAVEROOM1_POKE_BALL2 + const SILVERCAVEROOM1_POKE_BALL3 + const SILVERCAVEROOM1_POKE_BALL4 + +SilverCaveRoom1_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +SilverCaveRoom1MaxElixer: + itemball MAX_ELIXER + +SilverCaveRoom1XAccuracy: + itemball X_ACCURACY + +SilverCaveRoom1EscapeRope: + itemball ESCAPE_ROPE + +SilverCaveRoom1HiddenDireHit: + hiddenitem DIRE_HIT, EVENT_SILVER_CAVE_ROOM_1_HIDDEN_DIRE_HIT + +SilverCaveRoom1HiddenUltraBall: + hiddenitem ULTRA_BALL, EVENT_SILVER_CAVE_ROOM_1_HIDDEN_ULTRA_BALL + +SilverCaveRoom1_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 9, 33, SILVER_CAVE_OUTSIDE, 2 + warp_event 15, 1, SILVER_CAVE_ROOM_2, 1 + + db 0 ; coord events + + db 2 ; bg events + bg_event 16, 23, BGEVENT_ITEM, SilverCaveRoom1HiddenDireHit + bg_event 17, 12, BGEVENT_ITEM, SilverCaveRoom1HiddenUltraBall + + db 3 ; object events + object_event 4, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, SilverCaveRoom1MaxElixer, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER + object_event 15, 29, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, SilverCaveRoom1XAccuracy, EVENT_SILVER_CAVE_ROOM_1_X_ACCURACY + object_event 5, 30, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, SilverCaveRoom1EscapeRope, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE diff --git a/maps/SilverCaveRoom2.asm b/maps/SilverCaveRoom2.asm new file mode 100644 index 00000000..a9df9969 --- /dev/null +++ b/maps/SilverCaveRoom2.asm @@ -0,0 +1,28 @@ + const_def 2 ; object constants + const SILVERCAVEROOM2_POKE_BALL1 + const SILVERCAVEROOM2_POKE_BALL2 + const SILVERCAVEROOM2_POKE_BALL3 + +SilverCaveRoom2_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +SilverCaveRoom2HiddenMaxPotion: + hiddenitem MAX_POTION, EVENT_SILVER_CAVE_ROOM_2_HIDDEN_MAX_POTION + +SilverCaveRoom2_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 17, 31, SILVER_CAVE_ROOM_1, 2 + warp_event 11, 5, SILVER_CAVE_ROOM_3, 1 + warp_event 13, 21, SILVER_CAVE_ITEM_ROOMS, 1 + warp_event 23, 3, SILVER_CAVE_ITEM_ROOMS, 2 + + db 0 ; coord events + + db 1 ; bg events + bg_event 14, 31, BGEVENT_ITEM, SilverCaveRoom2HiddenMaxPotion + + db 0 ; object events diff --git a/maps/SilverCaveRoom3.asm b/maps/SilverCaveRoom3.asm new file mode 100644 index 00000000..3f071288 --- /dev/null +++ b/maps/SilverCaveRoom3.asm @@ -0,0 +1,62 @@ + const_def 2 ; object constants + const SILVERCAVEROOM3_RED + +SilverCaveRoom3_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +Red: + special FadeOutMusic + faceplayer + opentext + writetext .Text1 + waitbutton + closetext + winlosstext .Text2, .Text2 + loadtrainer RED, RED1 + startbattle + dontrestartmapmusic + reloadmapafterbattle + special FadeOutMusic + opentext + writetext .Text3 + waitbutton + closetext + special FadeBlackQuickly + special ReloadSpritesNoPalettes + disappear SILVERCAVEROOM3_RED + pause 15 + special FadeInQuickly + pause 30 + special HealParty + refreshscreen + credits + end + +.Text1: + text "…" + line "…" + done + +.Text2: + text "…" + done + +.Text3: + text "…" + line "…" + done + +SilverCaveRoom3_MapEvents: + db 0, 0 ; filler + + db 1 ; warp events + warp_event 9, 33, SILVER_CAVE_ROOM_2, 2 + + db 0 ; coord events + + db 0 ; bg events + + db 1 ; object events + object_event 9, 10, SPRITE_RED, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, Red, EVENT_RED_IN_MT_SILVER diff --git a/maps/TohjoFalls.asm b/maps/TohjoFalls.asm new file mode 100644 index 00000000..4a57e3d2 --- /dev/null +++ b/maps/TohjoFalls.asm @@ -0,0 +1,24 @@ + const_def 2 ; object constants + const TOHJOFALLS_POKE_BALL + +TohjoFalls_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +TohjoFallsMoonStone: + itemball MOON_STONE + +TohjoFalls_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 13, 15, ROUTE_27, 2 + warp_event 25, 15, ROUTE_27, 3 + + db 0 ; coord events + + db 0 ; bg events + + db 1 ; object events + object_event 2, 6, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TohjoFallsMoonStone, EVENT_TOHJO_FALLS_MOON_STONE diff --git a/maps/WhirlIslandB1F.asm b/maps/WhirlIslandB1F.asm new file mode 100644 index 00000000..a38e53a1 --- /dev/null +++ b/maps/WhirlIslandB1F.asm @@ -0,0 +1,68 @@ + const_def 2 ; object constants + const WHIRLISLANDB1F_POKE_BALL1 + const WHIRLISLANDB1F_POKE_BALL2 + const WHIRLISLANDB1F_POKE_BALL3 + const WHIRLISLANDB1F_POKE_BALL4 + const WHIRLISLANDB1F_POKE_BALL5 + const WHIRLISLANDB1F_BOULDER + +WhirlIslandB1F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +WhirlIslandB1FFullRestore: + itemball FULL_RESTORE + +WhirlIslandB1FCarbos: + itemball CARBOS + +WhirlIslandB1FCalcium: + itemball CALCIUM + +WhirlIslandB1FNugget: + itemball NUGGET + +WhirlIslandB1FEscapeRope: + itemball ESCAPE_ROPE + +WhirlIslandB1FBoulder: + jumpstd strengthboulder + +WhirlIslandB1FHiddenRareCandy: + hiddenitem RARE_CANDY, EVENT_WHIRL_ISLAND_B1F_HIDDEN_RARE_CANDY + +WhirlIslandB1FHiddenUltraBall: + hiddenitem ULTRA_BALL, EVENT_WHIRL_ISLAND_B1F_HIDDEN_ULTRA_BALL + +WhirlIslandB1FHiddenFullRestore: + hiddenitem FULL_RESTORE, EVENT_WHIRL_ISLAND_B1F_HIDDEN_FULL_RESTORE + +WhirlIslandB1F_MapEvents: + db 0, 0 ; filler + + db 9 ; warp events + warp_event 5, 5, WHIRL_ISLAND_NW, 2 + warp_event 35, 3, WHIRL_ISLAND_NE, 2 + warp_event 29, 9, WHIRL_ISLAND_NE, 3 + warp_event 9, 31, WHIRL_ISLAND_SW, 3 + warp_event 23, 31, WHIRL_ISLAND_SW, 2 + warp_event 31, 29, WHIRL_ISLAND_SE, 2 + warp_event 25, 21, WHIRL_ISLAND_B2F, 1 + warp_event 13, 27, WHIRL_ISLAND_B2F, 2 + warp_event 17, 21, WHIRL_ISLAND_CAVE, 1 + + db 0 ; coord events + + db 3 ; bg events + bg_event 30, 4, BGEVENT_ITEM, WhirlIslandB1FHiddenRareCandy + bg_event 36, 18, BGEVENT_ITEM, WhirlIslandB1FHiddenUltraBall + bg_event 2, 23, BGEVENT_ITEM, WhirlIslandB1FHiddenFullRestore + + db 6 ; object events + object_event 7, 13, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB1FFullRestore, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE + object_event 2, 18, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB1FCarbos, EVENT_WHIRL_ISLAND_B1F_CARBOS + object_event 33, 23, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB1FCalcium, EVENT_WHIRL_ISLAND_B1F_CALCIUM + object_event 17, 8, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB1FNugget, EVENT_WHIRL_ISLAND_B1F_NUGGET + object_event 19, 26, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB1FEscapeRope, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE + object_event 23, 26, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, WhirlIslandB1FBoulder, -1 diff --git a/maps/WhirlIslandB2F.asm b/maps/WhirlIslandB2F.asm new file mode 100644 index 00000000..acee9670 --- /dev/null +++ b/maps/WhirlIslandB2F.asm @@ -0,0 +1,36 @@ + const_def 2 ; object constants + const WHIRLISLANDB2F_POKE_BALL1 + const WHIRLISLANDB2F_POKE_BALL2 + const WHIRLISLANDB2F_POKE_BALL3 + +WhirlIslandB2F_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +WhirlIslandB2FFullRestore: + itemball FULL_RESTORE + +WhirlIslandB2FMaxRevive: + itemball MAX_REVIVE + +WhirlIslandB2FMaxElixer: + itemball MAX_ELIXER + +WhirlIslandB2F_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 11, 5, WHIRL_ISLAND_B1F, 7 + warp_event 7, 11, WHIRL_ISLAND_B1F, 8 + warp_event 7, 25, WHIRL_ISLAND_LUGIA_CHAMBER, 1 + warp_event 13, 31, WHIRL_ISLAND_SW, 5 + + db 0 ; coord events + + db 0 ; bg events + + db 3 ; object events + object_event 10, 11, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB2FFullRestore, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE + object_event 6, 4, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB2FMaxRevive, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE + object_event 5, 12, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandB2FMaxElixer, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER diff --git a/maps/WhirlIslandCave.asm b/maps/WhirlIslandCave.asm new file mode 100644 index 00000000..35e726b5 --- /dev/null +++ b/maps/WhirlIslandCave.asm @@ -0,0 +1,17 @@ +WhirlIslandCave_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +WhirlIslandCave_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 7, 5, WHIRL_ISLAND_B1F, 9 + warp_event 3, 13, WHIRL_ISLAND_NW, 4 + + db 0 ; coord events + + db 0 ; bg events + + db 0 ; object events diff --git a/maps/WhirlIslandLugiaChamber.asm b/maps/WhirlIslandLugiaChamber.asm new file mode 100644 index 00000000..19c21331 --- /dev/null +++ b/maps/WhirlIslandLugiaChamber.asm @@ -0,0 +1,66 @@ + const_def 2 ; object constants + const WHIRLISLANDLUGIACHAMBER_LUGIA + +WhirlIslandLugiaChamber_MapScripts: + db 0 ; scene scripts + + db 1 ; callbacks + callback MAPCALLBACK_OBJECTS, .Lugia + +.Lugia: + checkevent EVENT_FOUGHT_LUGIA + iftrue .NoAppear + checkitem SILVER_WING + iftrue .Appear + jump .NoAppear + +.Appear: + appear WHIRLISLANDLUGIACHAMBER_LUGIA + return + +.NoAppear: + disappear WHIRLISLANDLUGIACHAMBER_LUGIA + return + +Lugia: + faceplayer + opentext + writetext LugiaText + cry LUGIA + pause 15 + closetext + setevent EVENT_FOUGHT_LUGIA + checkver + iftrue .Silver + + writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM + loadwildmon LUGIA, 70 + startbattle + disappear WHIRLISLANDLUGIACHAMBER_LUGIA + reloadmapafterbattle + end + +.Silver: + writecode VAR_BATTLETYPE, BATTLETYPE_FORCEITEM + loadwildmon LUGIA, 40 + startbattle + disappear WHIRLISLANDLUGIACHAMBER_LUGIA + reloadmapafterbattle + end + +LugiaText: + text "Gyaaas!" + done + +WhirlIslandLugiaChamber_MapEvents: + db 0, 0 ; filler + + db 1 ; warp events + warp_event 9, 13, WHIRL_ISLAND_B2F, 3 + + db 0 ; coord events + + db 0 ; bg events + + db 1 ; object events + object_event 9, 5, SPRITE_LUGIA, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Lugia, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA diff --git a/maps/WhirlIslandNE.asm b/maps/WhirlIslandNE.asm new file mode 100644 index 00000000..c13cd7a9 --- /dev/null +++ b/maps/WhirlIslandNE.asm @@ -0,0 +1,25 @@ + const_def 2 ; object constants + const WHIRLISLANDNE_POKE_BALL + +WhirlIslandNE_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +WhirlIslandNEUltraBall: + itemball ULTRA_BALL + +WhirlIslandNE_MapEvents: + db 0, 0 ; filler + + db 3 ; warp events + warp_event 3, 13, ROUTE_41, 2 + warp_event 17, 3, WHIRL_ISLAND_B1F, 2 + warp_event 13, 11, WHIRL_ISLAND_B1F, 3 + + db 0 ; coord events + + db 0 ; bg events + + db 1 ; object events + object_event 11, 11, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandNEUltraBall, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL diff --git a/maps/WhirlIslandNW.asm b/maps/WhirlIslandNW.asm new file mode 100644 index 00000000..55e4f2d0 --- /dev/null +++ b/maps/WhirlIslandNW.asm @@ -0,0 +1,19 @@ +WhirlIslandNW_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +WhirlIslandNW_MapEvents: + db 0, 0 ; filler + + db 4 ; warp events + warp_event 5, 7, ROUTE_41, 1 + warp_event 5, 3, WHIRL_ISLAND_B1F, 1 + warp_event 3, 15, WHIRL_ISLAND_SW, 4 + warp_event 7, 15, WHIRL_ISLAND_CAVE, 2 + + db 0 ; coord events + + db 0 ; bg events + + db 0 ; object events diff --git a/maps/WhirlIslandSE.asm b/maps/WhirlIslandSE.asm new file mode 100644 index 00000000..be43871c --- /dev/null +++ b/maps/WhirlIslandSE.asm @@ -0,0 +1,17 @@ +WhirlIslandSE_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +WhirlIslandSE_MapEvents: + db 0, 0 ; filler + + db 2 ; warp events + warp_event 5, 13, ROUTE_41, 4 + warp_event 5, 3, WHIRL_ISLAND_B1F, 6 + + db 0 ; coord events + + db 0 ; bg events + + db 0 ; object events diff --git a/maps/WhirlIslandSW.asm b/maps/WhirlIslandSW.asm new file mode 100644 index 00000000..9cedc665 --- /dev/null +++ b/maps/WhirlIslandSW.asm @@ -0,0 +1,27 @@ + const_def 2 ; object constants + const WHIRLISLANDSW_POKE_BALL + +WhirlIslandSW_MapScripts: + db 0 ; scene scripts + + db 0 ; callbacks + +WhirlIslandSWGuardSpec: + itemball GUARD_SPEC + +WhirlIslandSW_MapEvents: + db 0, 0 ; filler + + db 5 ; warp events + warp_event 5, 7, ROUTE_41, 3 + warp_event 17, 3, WHIRL_ISLAND_B1F, 5 + warp_event 3, 3, WHIRL_ISLAND_B1F, 4 + warp_event 3, 15, WHIRL_ISLAND_NW, 3 + warp_event 17, 15, WHIRL_ISLAND_B2F, 4 + + db 0 ; coord events + + db 0 ; bg events + + db 1 ; object events + object_event 15, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, WhirlIslandSWGuardSpec, EVENT_WHIRL_ISLAND_SW_GUARD_SPEC |