summaryrefslogtreecommitdiff
path: root/maps
diff options
context:
space:
mode:
authorIIMarckus <iimarckus@gmail.com>2018-08-20 01:47:06 -0600
committerIIMarckus <iimarckus@gmail.com>2018-08-20 01:47:06 -0600
commitb38965afe50fa46e849768c9cc625ddad929a7d5 (patch)
tree9b8d3f57a8a6f0002282ad6a9b811317cb80eed3 /maps
parent8e19fee1a97979dd38269e81bda7170698f19e6b (diff)
Add all map objects from bank 42.
Diffstat (limited to 'maps')
-rw-r--r--maps/BurnedTower1F.asm310
-rw-r--r--maps/BurnedTowerB1F.asm155
-rw-r--r--maps/DiglettsCave.asm40
-rw-r--r--maps/MountMoon.asm181
-rw-r--r--maps/RockTunnel1F.asm41
-rw-r--r--maps/RockTunnelB1F.asm40
-rw-r--r--maps/SafariZoneBeta.asm17
-rw-r--r--maps/SafariZoneFuchsiaGateBeta.asm19
-rw-r--r--maps/TinTower1F.asm53
-rw-r--r--maps/TinTower2F.asm17
-rw-r--r--maps/TinTower3F.asm24
-rw-r--r--maps/TinTower4F.asm40
-rw-r--r--maps/TinTower5F.asm34
-rw-r--r--maps/TinTower6F.asm17
-rw-r--r--maps/TinTower7F.asm27
-rw-r--r--maps/TinTower8F.asm38
-rw-r--r--maps/TinTower9F.asm32
-rw-r--r--maps/UndergroundPath.asm25
-rw-r--r--maps/VictoryRoad.asm268
19 files changed, 1378 insertions, 0 deletions
diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm
new file mode 100644
index 00000000..f359bef6
--- /dev/null
+++ b/maps/BurnedTower1F.asm
@@ -0,0 +1,310 @@
+ const_def 2 ; object constants
+ const BURNEDTOWER1F_FIREBREATHER_DICK
+ const BURNEDTOWER1F_MORTY
+ const BURNEDTOWER1F_POKE_BALL
+ const BURNEDTOWER1F_EUSINE
+ const BURNEDTOWER1F_SILVER
+ const BURNEDTOWER1F_FIREBREATHER_DICK_ASHES
+
+BurnedTower1F_MapScripts:
+ db 3 ; scene scripts
+ scene_script .RivalScene ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_BURNEDTOWER1F_RIVAL_BATTLE
+ scene_script .DummyScene2 ; SCENE_BURNEDTOWER1F_NOTHING
+
+ db 0 ; callbacks
+
+.RivalScene:
+ priorityjump .Rival
+ end
+
+.DummyScene1:
+ end
+
+.DummyScene2:
+ end
+
+.Rival:
+ turnobject PLAYER, UP
+ showemote EMOTE_SHOCK, PLAYER, 15
+ special FadeOutMusic
+ pause 15
+ turnobject BURNEDTOWER1F_SILVER, RIGHT
+ pause 10
+ turnobject BURNEDTOWER1F_SILVER, LEFT
+ pause 15
+ turnobject BURNEDTOWER1F_SILVER, DOWN
+ pause 15
+ applymovement BURNEDTOWER1F_SILVER, BurnedTowerMovement_SilverWalksToPlayer
+ playmusic MUSIC_RIVAL_ENCOUNTER
+ opentext
+ writetext BurnedTowerSilver_BeforeText
+ waitbutton
+ closetext
+ checkevent EVENT_GOT_TOTODILE_FROM_ELM
+ iftrue .totodile
+ checkevent EVENT_GOT_CHIKORITA_FROM_ELM
+ iftrue .chikorita
+ winlosstext BurnedTowerSilver_WinText, BurnedTowerSilver_LossText
+ setlasttalked BURNEDTOWER1F_SILVER
+ loadtrainer RIVAL1, RIVAL1_3_TOTODILE
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .returnfrombattle
+
+.totodile
+ winlosstext BurnedTowerSilver_WinText, BurnedTowerSilver_LossText
+ setlasttalked BURNEDTOWER1F_SILVER
+ loadtrainer RIVAL1, RIVAL1_3_CHIKORITA
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .returnfrombattle
+
+.chikorita
+ winlosstext BurnedTowerSilver_WinText, BurnedTowerSilver_LossText
+ setlasttalked BURNEDTOWER1F_SILVER
+ loadtrainer RIVAL1, RIVAL1_3_CYNDAQUIL
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .returnfrombattle
+
+.returnfrombattle
+ playmusic MUSIC_RIVAL_AFTER
+ opentext
+ writetext BurnedTowerSilver_AfterText1
+ waitbutton
+ closetext
+ turnobject PLAYER, UP
+ turnobject PLAYER, RIGHT
+ applymovement BURNEDTOWER1F_SILVER, BurnedTowerMovement_SilverLeaves
+ playsound SFX_EXIT_BUILDING
+ disappear BURNEDTOWER1F_SILVER
+ setscene SCENE_BURNEDTOWER1F_RIVAL_BATTLE
+ waitsfx
+ playmapmusic
+ end
+
+FirebreatherDickFight:
+ playmusic MUSIC_HIKER_ENCOUNTER
+ showemote EMOTE_SHOCK, BURNEDTOWER1F_FIREBREATHER_DICK, 30
+ applymovement BURNEDTOWER1F_FIREBREATHER_DICK, FirebreatherDickMovement
+ turnobject PLAYER, DOWN
+ opentext
+ writetext FirebreatherDickBeforeText
+ waitbutton
+ closetext
+ winlosstext FirebreatherDickBattleWinText, -1
+ setlasttalked BURNEDTOWER1F_FIREBREATHER_DICK
+ loadtrainer FIREBREATHER, DICK
+ startbattle
+ iftrue .next
+ disappear BURNEDTOWER1F_FIREBREATHER_DICK
+ appear BURNEDTOWER1F_FIREBREATHER_DICK_ASHES
+ reloadmapafterbattle
+ setevent EVENT_BEAT_FIREBREATHER_DICK
+ setscene SCENE_BURNEDTOWER1F_NOTHING
+ clearevent EVENT_BURNED_TOWER_FIREBREATHER_DICK_NORMAL
+ setevent EVENT_BURNED_TOWER_FIREBREATHER_DICK_ASHES
+ end
+.next
+ reloadmapafterbattle
+ end
+
+FirebreatherDickPostBattle:
+ faceplayer
+ opentext
+ writetext BurnedTower1FEusineText
+ waitbutton
+ closetext
+ end
+
+TrainerFirebreatherNed:
+ trainer FIREBREATHER, NED, EVENT_BEAT_FIREBREATHER_NED, BurnedTower1FMortyText, Text2, 0, .LossScript
+
+.LossScript
+ endifjustbattled
+ opentext
+ writetext Text3
+ waitbutton
+ closetext
+ end
+
+BurnedTower1FRock:
+ jumpstd smashrock
+
+BurnedTower1FHiddenEther:
+ hiddenitem ETHER, EVENT_BURNED_TOWER_1F_HIDDEN_ETHER
+
+BurnedTower1FBurnHeal:
+ itemball BURN_HEAL, 1
+
+BurnedTower1FXSpeed:
+ itemball X_SPEED, 1
+
+BurnedTowerMovement_SilverWalksToPlayer:
+ step DOWN
+ step DOWN
+ step_end
+
+BurnedTowerMovement_SilverLeaves:
+ step RIGHT
+ step DOWN
+ step_end
+
+FirebreatherDickMovement:
+ step UP
+ step_end
+
+BurnedTowerSilver_BeforeText:
+ text "<……> <……> <……>"
+
+ para "…Oh, it's you."
+
+ para "You wanted to get"
+ line "stronger, so you"
+
+ para "came for the leg-"
+ line "endary #MON"
+
+ para "that's supposed to"
+ line "be here. That's"
+ cont "your story, right?"
+
+ para "Well, that's not"
+ line "going to happen."
+
+ para "Because I'm going"
+ line "to get it!"
+
+ para "I'm going to be"
+ line "the world's great-"
+ cont "est trainer, so a"
+ cont "legendary #MON"
+ cont "would be perfect"
+ cont "for me."
+
+ para "…Well, anyway,"
+ line "I'm getting tired"
+
+ para "of having a wimp"
+ line "like you always"
+ cont "showing up."
+ done
+
+BurnedTowerSilver_WinText:
+ text "…Humph!"
+
+ para "This is why I hate"
+ line "battling wimps."
+
+ para "There's no"
+ line "challenge in it."
+ done
+
+BurnedTowerSilver_AfterText1:
+ text "…Aw, whatever."
+
+ para "You would never be"
+ line "able to catch a"
+
+ para "legendary #MON"
+ line "anyway."
+ done
+
+BurnedTowerSilver_LossText:
+ text "…Humph!"
+
+ para "This is why I hate"
+ line "battling wimps."
+
+ para "It's just a waste"
+ line "of my time."
+ done
+
+FirebreatherDickBeforeText:
+ text "Hey, I'm training"
+ line "secretly here!"
+
+ para "Don't embarrass me"
+ line "by looking!"
+ done
+
+FirebreatherDickBattleWinText:
+ text "I burned down to"
+ line "white ashes…"
+ done
+
+BurnedTower1FEusineText:
+ text "I was so into my"
+ line "training that I"
+
+ para "fell down this"
+ line "hole."
+ done
+
+BurnedTower1FMortyText:
+ text "My soul is on"
+ line "fire. I'll show"
+
+ para "you how hot it"
+ line "burns!"
+ done
+
+Text2:
+ text "Still not hot"
+ line "enough…"
+ done
+
+Text3:
+ text "In the past, there"
+ line "were these #MON"
+
+ para "that ran through"
+ line "grass at super-"
+ cont "high speed."
+
+ para "They say that they"
+ line "run like the wind."
+
+ para "If you run into"
+ line "one in grass, it"
+ cont "will likely bolt."
+ done
+
+BurnedTower1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 14 ; warp events
+ warp_event 9, 15, ECRUTEAK_CITY, 13
+ warp_event 10, 15, ECRUTEAK_CITY, 13
+ warp_event 5, 4, BURNED_TOWER_B1F, 1
+ warp_event 5, 5, BURNED_TOWER_B1F, 1
+ warp_event 5, 6, BURNED_TOWER_B1F, 1
+ warp_event 4, 6, BURNED_TOWER_B1F, 1
+ warp_event 15, 4, BURNED_TOWER_B1F, 2
+ warp_event 15, 5, BURNED_TOWER_B1F, 2
+ warp_event 10, 7, BURNED_TOWER_B1F, 3
+ warp_event 5, 14, BURNED_TOWER_B1F, 4
+ warp_event 4, 14, BURNED_TOWER_B1F, 4
+ warp_event 14, 14, BURNED_TOWER_B1F, 5
+ warp_event 15, 14, BURNED_TOWER_B1F, 5
+ warp_event 7, 15, BURNED_TOWER_B1F, 6
+
+ db 1 ; coord events
+ coord_event 8, 1, SCENE_BURNEDTOWER1F_RIVAL_BATTLE, FirebreatherDickFight
+
+ db 1 ; bg events
+ bg_event 8, 7, BGEVENT_ITEM, BurnedTower1FHiddenEther
+
+ db 8 ; object events
+ object_event 8, 3, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, FirebreatherDickPostBattle, EVENT_BURNED_TOWER_FIREBREATHER_DICK_NORMAL
+ object_event 16, 8, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerFirebreatherNed, -1
+ object_event 4, 3, SPRITE_ROCK, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BurnedTower1FRock, -1
+ object_event 16, 13, SPRITE_ROCK, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BurnedTower1FRock, -1
+ object_event 9, 12, SPRITE_SILVER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_TRAINER, 3, $2812, EVENT_RIVAL_BURNED_TOWER
+ object_event 8, 2, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_SILVER, OBJECTTYPE_SCRIPT, 0, $4ef6, EVENT_BURNED_TOWER_FIREBREATHER_DICK_ASHES
+ object_event 15, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, BurnedTower1FBurnHeal, EVENT_BURNED_TOWER_1F_X_SPEED
+ object_event 7, 5, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, BurnedTower1FXSpeed, EVENT_BURNED_TOWER_1F_BURN_HEAL
diff --git a/maps/BurnedTowerB1F.asm b/maps/BurnedTowerB1F.asm
new file mode 100644
index 00000000..374d3632
--- /dev/null
+++ b/maps/BurnedTowerB1F.asm
@@ -0,0 +1,155 @@
+ const_def 2 ; object constants
+ const BURNEDTOWERB1F_BOULDER
+ const BURNEDTOWERB1F_RAIKOU1
+ const BURNEDTOWERB1F_ENTEI1
+ const BURNEDTOWERB1F_SUICUNE1
+ const BURNEDTOWERB1F_RAIKOU2
+ const BURNEDTOWERB1F_ENTEI2
+ const BURNEDTOWERB1F_SUICUNE2
+ const BURNEDTOWERB1F_POKE_BALL
+ const BURNEDTOWERB1F_EUSINE
+
+BurnedTowerB1F_MapScripts:
+ db 2 ; scene scripts
+ scene_script .DummyScene0 ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_FINISHED
+
+ db 0 ; callbacks
+
+.DummyScene0:
+ end
+
+.DummyScene1:
+ end
+
+ReleaseTheBeasts:
+ playmusic MUSIC_NONE
+ pause 30
+ appear BURNEDTOWERB1F_RAIKOU1
+ turnobject PLAYER, UP
+ pause 5
+ disappear BURNEDTOWERB1F_RAIKOU2
+ pause 15
+ cry RAIKOU
+ appear BURNEDTOWERB1F_ENTEI1
+ turnobject PLAYER, UP
+ pause 5
+ disappear BURNEDTOWERB1F_ENTEI2
+ pause 15
+ cry ENTEI
+ appear BURNEDTOWERB1F_SUICUNE1
+ turnobject PLAYER, UP
+ pause 5
+ disappear BURNEDTOWERB1F_SUICUNE2
+ pause 15
+ cry SUICUNE
+ pause 15
+ playsound SFX_WARP_FROM
+ turnobject PLAYER, RIGHT
+ applymovement BURNEDTOWERB1F_RAIKOU1, BurnedTowerRaikouMovement
+ disappear BURNEDTOWERB1F_RAIKOU1
+ waitsfx
+ playsound SFX_WARP_FROM
+ turnobject PLAYER, DOWN
+ applymovement BURNEDTOWERB1F_ENTEI1, BurnedTowerEnteiMovement
+ disappear BURNEDTOWERB1F_ENTEI1
+ waitsfx
+ playsound SFX_WARP_FROM
+ turnobject PLAYER, LEFT
+ applymovement BURNEDTOWERB1F_SUICUNE1, BurnedTowerSuicuneMovement
+ disappear BURNEDTOWERB1F_SUICUNE1
+ waitsfx
+ special RestartMapMusic
+ setscene SCENE_FINISHED
+ setevent EVENT_RELEASED_THE_BEASTS
+ special InitRoamMons
+ end
+
+ opentext
+ writetext BurnedTowerB1FEusineText
+ cry ENTEI
+ waitbutton
+ closetext
+ loadwildmon ENTEI, 40
+ startbattle
+ ifequal 2, .next
+ disappear 4
+ reloadmapafterbattle
+ end
+.next
+ reloadmapafterbattle
+ disappear 4
+ end
+
+
+BurnedTowerB1FHPUp:
+ itemball HP_UP
+BurnedTowerB1FTMEndure:
+ itemball TM_ENDURE
+BurnedTowerB1FBoulder:
+ jumpstd strengthboulder
+
+BurnedTowerB1FHiddenUltraBall:
+ hiddenitem ULTRA_BALL, EVENT_BURNED_TOWER_B1F_HIDDEN_ULTRA_BALL
+BurnedTowerB1FHiddenBurnHeal:
+ hiddenitem BURN_HEAL, EVENT_BURNED_TOWER_B1F_HIDDEN_BURN_HEAL
+BurnedTowerB1FHiddenNugget:
+ hiddenitem NUGGET, EVENT_BURNED_TOWER_B1F_HIDDEN_NUGGET
+
+BurnedTowerRaikouMovement:
+ set_sliding
+ fast_jump_step RIGHT
+ big_step RIGHT
+ fast_jump_step RIGHT
+ big_step RIGHT
+ remove_sliding
+ step_end
+
+BurnedTowerEnteiMovement:
+ set_sliding
+ fast_jump_step DOWN
+ fast_jump_step DOWN
+ fast_jump_step DOWN
+ remove_sliding
+ step_end
+
+BurnedTowerSuicuneMovement:
+ set_sliding
+ fast_jump_step LEFT
+ big_step LEFT
+ remove_sliding
+ step_end
+
+BurnedTowerB1FEusineText:
+ text "ENTEI: Bufuu!"
+ done
+
+BurnedTowerB1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 6 ; warp events
+ warp_event 3, 3, BURNED_TOWER_1F, 3
+ warp_event 17, 7, BURNED_TOWER_1F, 7
+ warp_event 10, 8, BURNED_TOWER_1F, 9
+ warp_event 3, 13, BURNED_TOWER_1F, 10
+ warp_event 17, 14, BURNED_TOWER_1F, 12
+ warp_event 7, 15, BURNED_TOWER_1F, 14
+
+ db 1 ; coord events
+ coord_event 9, 5, SCENE_DEFAULT, ReleaseTheBeasts
+
+ db 3 ; bg events
+ bg_event 2, 13, BGEVENT_ITEM, BurnedTowerB1FHiddenUltraBall
+ bg_event 17, 14, BGEVENT_ITEM, BurnedTowerB1FHiddenBurnHeal
+ bg_event 8, 3, BGEVENT_ITEM, BurnedTowerB1FHiddenNugget
+
+ db 9 ; object events
+ object_event 17, 4, SPRITE_BOULDER, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BurnedTowerB1FBoulder, -1
+ object_event 10, 3, SPRITE_GROWLITHE, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ object_event 8, 4, SPRITE_GROWLITHE, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ object_event 7, 2, SPRITE_GROWLITHE, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ object_event 10, 3, SPRITE_GROWLITHE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_SILVER, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+ object_event 8, 4, SPRITE_GROWLITHE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_SILVER, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+ object_event 7, 2, SPRITE_GROWLITHE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_SILVER, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
+ object_event 4, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, BurnedTowerB1FHPUp, EVENT_BURNED_TOWER_B1F_HP_UP
+ object_event 15, 3, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, BurnedTowerB1FTMEndure, EVENT_BURNED_TOWER_B1F_TM_ENDURE
diff --git a/maps/DiglettsCave.asm b/maps/DiglettsCave.asm
new file mode 100644
index 00000000..8475c141
--- /dev/null
+++ b/maps/DiglettsCave.asm
@@ -0,0 +1,40 @@
+ const_def 2 ; object constants
+ const DIGLETTSCAVE_POKEFAN_M
+
+DiglettsCave_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+DiglettsCavePokefanMScript:
+ jumptextfaceplayer DiglettsCavePokefanMText
+
+DiglettsCaveHiddenMaxRevive:
+ hiddenitem MAX_REVIVE, EVENT_DIGLETTS_CAVE_HIDDEN_MAX_REVIVE
+
+DiglettsCavePokefanMText:
+ text "A bunch of DIGLETT"
+ line "popped out of the"
+
+ para "ground! That was"
+ line "shocking."
+ done
+
+DiglettsCave_MapEvents:
+ db 0, 0 ; filler
+
+ db 6 ; warp events
+ warp_event 3, 33, VERMILION_CITY, 10
+ warp_event 5, 31, DIGLETTS_CAVE, 5
+ warp_event 15, 5, ROUTE_2, 5
+ warp_event 17, 3, DIGLETTS_CAVE, 6
+ warp_event 17, 33, DIGLETTS_CAVE, 2
+ warp_event 3, 3, DIGLETTS_CAVE, 4
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 6, 11, BGEVENT_ITEM, DiglettsCaveHiddenMaxRevive
+
+ db 1 ; object events
+ object_event 3, 31, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DiglettsCavePokefanMScript, -1
diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm
new file mode 100644
index 00000000..79b2188f
--- /dev/null
+++ b/maps/MountMoon.asm
@@ -0,0 +1,181 @@
+ const_def 2 ; object constants
+ const MOUNTMOON_SILVER
+
+MountMoon_MapScripts:
+ db 2 ; scene scripts
+ scene_script .RivalEncounter ; SCENE_DEFAULT
+ scene_script .DummyScene ; SCENE_FINISHED
+
+ db 0 ; callbacks
+
+.RivalEncounter:
+ priorityjump .RivalBattle
+ end
+
+.DummyScene:
+ end
+
+.RivalBattle:
+ turnobject PLAYER, RIGHT
+ showemote EMOTE_SHOCK, PLAYER, 15
+ special FadeOutMusic
+ pause 15
+ applymovement MOUNTMOON_SILVER, MountMoonSilverMovementBefore
+ playmusic MUSIC_RIVAL_ENCOUNTER
+ opentext
+ writetext MountMoonSilverTextBefore
+ waitbutton
+ closetext
+ checkevent EVENT_GOT_TOTODILE_FROM_ELM
+ iftrue .Totodile
+ checkevent EVENT_GOT_CHIKORITA_FROM_ELM
+ iftrue .Chikorita
+ winlosstext MountMoonSilverTextWin, MountMoonSilverTextLoss
+ setlasttalked MOUNTMOON_SILVER
+ loadtrainer RIVAL2, RIVAL2_1_TOTODILE
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .FinishBattle
+
+.Totodile:
+ winlosstext MountMoonSilverTextWin, MountMoonSilverTextLoss
+ setlasttalked MOUNTMOON_SILVER
+ loadtrainer RIVAL2, RIVAL2_1_CHIKORITA
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .FinishBattle
+
+.Chikorita:
+ winlosstext MountMoonSilverTextWin, MountMoonSilverTextLoss
+ setlasttalked MOUNTMOON_SILVER
+ loadtrainer RIVAL2, RIVAL2_1_CYNDAQUIL
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .FinishBattle
+
+.FinishBattle:
+ playmusic MUSIC_RIVAL_AFTER
+ opentext
+ writetext MountMoonSilverTextAfter
+ waitbutton
+ closetext
+ turnobject PLAYER, UP
+ turnobject PLAYER, RIGHT
+ applymovement MOUNTMOON_SILVER, MountMoonSilverMovementAfter
+ disappear MOUNTMOON_SILVER
+ setscene SCENE_FINISHED
+ setevent EVENT_BEAT_RIVAL_IN_MT_MOON
+ playmapmusic
+ end
+
+MountMoonSilverMovementBefore:
+ step LEFT
+ step LEFT
+ step LEFT
+ step_end
+
+MountMoonSilverMovementAfter:
+ step RIGHT
+ step RIGHT
+ step DOWN
+ step DOWN
+ step DOWN
+ step DOWN
+ step DOWN
+ step_end
+
+MountMoonSilverTextBefore:
+ text "<……> <……> <……>"
+
+ para "It's been a while,"
+ line "<PLAYER>."
+
+ para "…Since I lost to"
+ line "you, I thought"
+
+ para "about what I was"
+ line "lacking with my"
+ cont "#MON…"
+
+ para "And we came up"
+ line "with an answer."
+
+ para "<PLAYER>, now we'll"
+ line "show you!"
+ done
+
+MountMoonSilverTextWin:
+ text "<……> <……> <……>"
+
+ para "I thought I raised"
+ line "my #MON to be"
+
+ para "the best they"
+ line "could be…"
+
+ para "…But it still "
+ line "wasn't enough…"
+ done
+
+MountMoonSilverTextAfter:
+ text "<……> <……> <……>"
+
+ para "…You won, fair"
+ line "and square."
+
+ para "I admit it. But"
+ line "this isn't the"
+ cont "end."
+
+ para "I'm going to be"
+ line "the greatest #-"
+ cont "MON trainer ever."
+
+ para "Because these guys"
+ line "are behind me."
+
+ para "…Listen, <PLAYER>."
+
+ para "One of these days"
+ line "I'm going to prove"
+
+ para "how good I am by"
+ line "beating you."
+ done
+
+MountMoonSilverTextLoss:
+ text "<……> <……> <……>"
+
+ para "I've repaid my"
+ line "debt to you."
+
+ para "With my #MON,"
+ line "I'm going to beat"
+
+ para "the CHAMPION and"
+ line "become the world's"
+ cont "greatest trainer."
+ done
+
+MountMoon_MapEvents:
+ db 0, 0 ; filler
+
+ db 8 ; warp events
+ warp_event 3, 3, ROUTE_3, 1
+ warp_event 15, 15, ROUTE_4, 1
+ warp_event 13, 3, MOUNT_MOON, 7
+ warp_event 15, 11, MOUNT_MOON, 8
+ warp_event 25, 5, MOUNT_MOON_SQUARE, 1
+ warp_event 25, 15, MOUNT_MOON_SQUARE, 2
+ warp_event 25, 3, MOUNT_MOON, 3
+ warp_event 25, 13, MOUNT_MOON, 4
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 7, 3, SPRITE_SILVER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_MT_MOON_RIVAL
diff --git a/maps/RockTunnel1F.asm b/maps/RockTunnel1F.asm
new file mode 100644
index 00000000..008f7aec
--- /dev/null
+++ b/maps/RockTunnel1F.asm
@@ -0,0 +1,41 @@
+ const_def 2 ; object constants
+ const ROCKTUNNEL1F_POKE_BALL1
+ const ROCKTUNNEL1F_POKE_BALL2
+
+RockTunnel1F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+RockTunnel1FElixer:
+ itemball ELIXER
+
+RockTunnel1FTMSteelWing:
+ itemball TM_STEEL_WING
+
+RockTunnel1FHiddenXAccuracy:
+ hiddenitem X_ACCURACY, EVENT_ROCK_TUNNEL_1F_HIDDEN_X_ACCURACY
+
+RockTunnel1FHiddenXDefend:
+ hiddenitem X_DEFEND, EVENT_ROCK_TUNNEL_1F_HIDDEN_X_DEFEND
+
+RockTunnel1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 6 ; warp events
+ warp_event 15, 3, ROUTE_9, 1
+ warp_event 11, 25, ROUTE_10_SOUTH, 1
+ warp_event 5, 3, ROCK_TUNNEL_B1F, 3
+ warp_event 15, 9, ROCK_TUNNEL_B1F, 2
+ warp_event 27, 3, ROCK_TUNNEL_B1F, 4
+ warp_event 27, 13, ROCK_TUNNEL_B1F, 1
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 24, 4, BGEVENT_ITEM, RockTunnel1FHiddenXAccuracy
+ bg_event 21, 15, BGEVENT_ITEM, RockTunnel1FHiddenXDefend
+
+ db 2 ; object events
+ object_event 4, 18, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, RockTunnel1FElixer, EVENT_ROCK_TUNNEL_1F_ELIXER
+ object_event 10, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, RockTunnel1FTMSteelWing, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
diff --git a/maps/RockTunnelB1F.asm b/maps/RockTunnelB1F.asm
new file mode 100644
index 00000000..82cea792
--- /dev/null
+++ b/maps/RockTunnelB1F.asm
@@ -0,0 +1,40 @@
+ const_def 2 ; object constants
+ const ROCKTUNNELB1F_POKE_BALL1
+ const ROCKTUNNELB1F_POKE_BALL2
+ const ROCKTUNNELB1F_POKE_BALL3
+
+RockTunnelB1F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+RockTunnelB1FIron:
+ itemball IRON
+
+RockTunnelB1FPPUp:
+ itemball PP_UP
+
+RockTunnelB1FRevive:
+ itemball REVIVE
+
+RockTunnelB1FHiddenMaxPotion:
+ hiddenitem MAX_POTION, EVENT_ROCK_TUNNEL_B1F_HIDDEN_MAX_POTION
+
+RockTunnelB1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 3, 3, ROCK_TUNNEL_1F, 6
+ warp_event 17, 9, ROCK_TUNNEL_1F, 4
+ warp_event 23, 3, ROCK_TUNNEL_1F, 3
+ warp_event 25, 23, ROCK_TUNNEL_1F, 5
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 4, 14, BGEVENT_ITEM, RockTunnelB1FHiddenMaxPotion
+
+ db 3 ; object events
+ object_event 7, 25, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, RockTunnelB1FIron, EVENT_ROCK_TUNNEL_B1F_IRON
+ object_event 6, 17, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, RockTunnelB1FPPUp, EVENT_ROCK_TUNNEL_B1F_PP_UP
+ object_event 15, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, RockTunnelB1FRevive, EVENT_ROCK_TUNNEL_B1F_REVIVE
diff --git a/maps/SafariZoneBeta.asm b/maps/SafariZoneBeta.asm
new file mode 100644
index 00000000..32627af6
--- /dev/null
+++ b/maps/SafariZoneBeta.asm
@@ -0,0 +1,17 @@
+SafariZoneBeta_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+SafariZoneBeta_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 9, 23, SAFARI_ZONE_FUCHSIA_GATE_BETA, 1
+ warp_event 10, 23, SAFARI_ZONE_FUCHSIA_GATE_BETA, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/SafariZoneFuchsiaGateBeta.asm b/maps/SafariZoneFuchsiaGateBeta.asm
new file mode 100644
index 00000000..547ed5bd
--- /dev/null
+++ b/maps/SafariZoneFuchsiaGateBeta.asm
@@ -0,0 +1,19 @@
+SafariZoneFuchsiaGateBeta_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+SafariZoneFuchsiaGateBeta_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 4, 0, SAFARI_ZONE_BETA, 1
+ warp_event 5, 0, SAFARI_ZONE_BETA, 2
+ warp_event 4, 7, FUCHSIA_CITY, 7
+ warp_event 5, 7, FUCHSIA_CITY, 7
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm
new file mode 100644
index 00000000..57a165ab
--- /dev/null
+++ b/maps/TinTower1F.asm
@@ -0,0 +1,53 @@
+TinTower1F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTowerSageScript:
+ jumptextfaceplayer TinTowerSageText
+
+TinTowerSageText:
+ text "I'm trying to un-"
+ line "cover the secret"
+
+ para "of the legendary"
+ line "#MON that is"
+ cont "said to land here."
+
+ para "They say that the"
+ line "#MON has flown"
+
+ para "continuously ever"
+ line "since the TOWER in"
+ cont "the West burned."
+
+ para "So, I thought that"
+ line "if I had what the"
+
+ para "#MON has, it"
+ line "would be attracted"
+ cont "by that item."
+
+ para "I think that item"
+ line "is probably…"
+
+ para "A RAINBOW WING!"
+
+ para "But, where would"
+ line "I find one?"
+ done
+
+TinTower1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 9, 15, ECRUTEAK_CITY, 12
+ warp_event 10, 15, ECRUTEAK_CITY, 12
+ warp_event 10, 2, TIN_TOWER_2F, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 10, 2, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, TinTowerSageScript, EVENT_TEAM_ROCKET_DISBANDED
diff --git a/maps/TinTower2F.asm b/maps/TinTower2F.asm
new file mode 100644
index 00000000..280ab059
--- /dev/null
+++ b/maps/TinTower2F.asm
@@ -0,0 +1,17 @@
+TinTower2F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower2F_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 10, 14, TIN_TOWER_3F, 1
+ warp_event 10, 2, TIN_TOWER_1F, 3
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/TinTower3F.asm b/maps/TinTower3F.asm
new file mode 100644
index 00000000..c089d812
--- /dev/null
+++ b/maps/TinTower3F.asm
@@ -0,0 +1,24 @@
+ const_def 2 ; object constants
+ const TINTOWER3F_POKE_BALL
+
+TinTower3F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower3FFullHeal:
+ itemball FULL_HEAL
+
+TinTower3F_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 10, 14, TIN_TOWER_2F, 1
+ warp_event 16, 2, TIN_TOWER_4F, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 3, 14, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower3FFullHeal, EVENT_TIN_TOWER_3F_FULL_HEAL
diff --git a/maps/TinTower4F.asm b/maps/TinTower4F.asm
new file mode 100644
index 00000000..fbf08dc8
--- /dev/null
+++ b/maps/TinTower4F.asm
@@ -0,0 +1,40 @@
+ const_def 2 ; object constants
+ const TINTOWER4F_POKE_BALL1
+ const TINTOWER4F_POKE_BALL2
+ const TINTOWER4F_POKE_BALL3
+
+TinTower4F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower4FUltraBall:
+ itemball ULTRA_BALL
+
+TinTower4FPPUp:
+ itemball SUPER_POTION
+
+TinTower4FEscapeRope:
+ itemball ESCAPE_ROPE
+
+TinTower4FHiddenMaxPotion:
+ hiddenitem MAX_POTION, EVENT_TIN_TOWER_4F_HIDDEN_MAX_POTION
+
+TinTower4F_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 2, 4, TIN_TOWER_5F, 2
+ warp_event 16, 2, TIN_TOWER_3F, 2
+ warp_event 2, 14, TIN_TOWER_5F, 3
+ warp_event 17, 15, TIN_TOWER_5F, 4
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 11, 6, BGEVENT_ITEM, TinTower4FHiddenMaxPotion
+
+ db 3 ; object events
+ object_event 14, 10, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower4FUltraBall, EVENT_TIN_TOWER_4F_ULTRA_BALL
+ object_event 17, 14, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower4FPPUp, EVENT_TIN_TOWER_4F_PP_UP
+ object_event 2, 12, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower4FEscapeRope, EVENT_TIN_TOWER_4F_ESCAPE_ROPE
diff --git a/maps/TinTower5F.asm b/maps/TinTower5F.asm
new file mode 100644
index 00000000..cff375b3
--- /dev/null
+++ b/maps/TinTower5F.asm
@@ -0,0 +1,34 @@
+ const_def 2 ; object constants
+ const TINTOWER5F_POKE_BALL
+
+TinTower5F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower5FRareCandy:
+ itemball RARE_CANDY
+
+TinTower5FHiddenFullRestore:
+ hiddenitem FULL_RESTORE, EVENT_TIN_TOWER_5F_HIDDEN_FULL_RESTORE
+
+TinTower5FHiddenCarbos:
+ hiddenitem CARBOS, EVENT_TIN_TOWER_5F_HIDDEN_CARBOS
+
+TinTower5F_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 11, 15, TIN_TOWER_6F, 2
+ warp_event 2, 4, TIN_TOWER_4F, 1
+ warp_event 2, 14, TIN_TOWER_4F, 3
+ warp_event 17, 15, TIN_TOWER_4F, 4
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 16, 14, BGEVENT_ITEM, TinTower5FHiddenFullRestore
+ bg_event 3, 15, BGEVENT_ITEM, TinTower5FHiddenCarbos
+
+ db 1 ; object events
+ object_event 9, 9, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower5FRareCandy, EVENT_TIN_TOWER_5F_RARE_CANDY
diff --git a/maps/TinTower6F.asm b/maps/TinTower6F.asm
new file mode 100644
index 00000000..dccc1d4b
--- /dev/null
+++ b/maps/TinTower6F.asm
@@ -0,0 +1,17 @@
+TinTower6F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower6F_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 3, 9, TIN_TOWER_7F, 1
+ warp_event 11, 15, TIN_TOWER_5F, 1
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/TinTower7F.asm b/maps/TinTower7F.asm
new file mode 100644
index 00000000..5025fbbe
--- /dev/null
+++ b/maps/TinTower7F.asm
@@ -0,0 +1,27 @@
+ const_def 2 ; object constants
+ const TINTOWER7F_POKE_BALL
+
+TinTower7F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower7FMaxRevive:
+ itemball MAX_REVIVE
+
+TinTower7F_MapEvents:
+ db 0, 0 ; filler
+
+ db 5 ; warp events
+ warp_event 3, 9, TIN_TOWER_6F, 1
+ warp_event 10, 15, TIN_TOWER_8F, 1
+ warp_event 12, 7, TIN_TOWER_7F, 4
+ warp_event 8, 3, TIN_TOWER_7F, 3
+ warp_event 6, 9, TIN_TOWER_9F, 5
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 16, 1, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower7FMaxRevive, EVENT_TIN_TOWER_7F_MAX_REVIVE
diff --git a/maps/TinTower8F.asm b/maps/TinTower8F.asm
new file mode 100644
index 00000000..c39f118e
--- /dev/null
+++ b/maps/TinTower8F.asm
@@ -0,0 +1,38 @@
+ const_def 2 ; object constants
+ const TINTOWER8F_POKE_BALL1
+ const TINTOWER8F_POKE_BALL2
+ const TINTOWER8F_POKE_BALL3
+
+TinTower8F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower8FNugget:
+ itemball NUGGET
+
+TinTower8FMaxElixer:
+ itemball MAX_ELIXER
+
+TinTower8FFullRestore:
+ itemball FULL_RESTORE
+
+TinTower8F_MapEvents:
+ db 0, 0 ; filler
+
+ db 6 ; warp events
+ warp_event 2, 5, TIN_TOWER_7F, 2
+ warp_event 2, 11, TIN_TOWER_9F, 1
+ warp_event 16, 7, TIN_TOWER_9F, 2
+ warp_event 10, 3, TIN_TOWER_9F, 3
+ warp_event 14, 15, TIN_TOWER_9F, 6
+ warp_event 6, 9, TIN_TOWER_9F, 7
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 3 ; object events
+ object_event 7, 13, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower8FNugget, EVENT_TIN_TOWER_8F_NUGGET
+ object_event 11, 6, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower8FMaxElixer, EVENT_TIN_TOWER_8F_MAX_ELIXER
+ object_event 3, 1, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, TinTower8FFullRestore, EVENT_TIN_TOWER_8F_FULL_RESTORE
diff --git a/maps/TinTower9F.asm b/maps/TinTower9F.asm
new file mode 100644
index 00000000..bb26d54e
--- /dev/null
+++ b/maps/TinTower9F.asm
@@ -0,0 +1,32 @@
+TinTower9F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+TinTower9FUnusedHoOhText:
+; unused
+ text "HO-OH: Shaoooh!"
+ done
+
+TinTower9FUnusedLugiaText:
+; unused
+ text "LUGIA: Gyaaan!"
+ done
+
+TinTower9F_MapEvents:
+ db 0, 0 ; filler
+
+ db 7 ; warp events
+ warp_event 12, 3, TIN_TOWER_8F, 2
+ warp_event 2, 5, TIN_TOWER_8F, 3
+ warp_event 12, 7, TIN_TOWER_8F, 4
+ warp_event 7, 9, TIN_TOWER_ROOF, 1
+ warp_event 16, 7, TIN_TOWER_7F, 5
+ warp_event 6, 13, TIN_TOWER_8F, 5
+ warp_event 8, 13, TIN_TOWER_8F, 6
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/UndergroundPath.asm b/maps/UndergroundPath.asm
new file mode 100644
index 00000000..72e8cd74
--- /dev/null
+++ b/maps/UndergroundPath.asm
@@ -0,0 +1,25 @@
+UndergroundPath_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+UndergroundPathHiddenFullRestore:
+ hiddenitem FULL_RESTORE, EVENT_UNDERGROUND_PATH_HIDDEN_FULL_RESTORE
+
+UndergroundPathHiddenXSpecial:
+ hiddenitem X_SPECIAL, EVENT_UNDERGROUND_PATH_HIDDEN_X_SPECIAL
+
+UndergroundPath_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 3, 2, ROUTE_5_UNDERGROUND_PATH_ENTRANCE, 3
+ warp_event 3, 24, ROUTE_6_UNDERGROUND_PATH_ENTRANCE, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 3, 9, BGEVENT_ITEM, UndergroundPathHiddenFullRestore
+ bg_event 1, 19, BGEVENT_ITEM, UndergroundPathHiddenXSpecial
+
+ db 0 ; object events
diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm
new file mode 100644
index 00000000..448db78d
--- /dev/null
+++ b/maps/VictoryRoad.asm
@@ -0,0 +1,268 @@
+ const_def 2 ; object constants
+ const VICTORYROAD_SILVER
+ const VICTORYROAD_POKE_BALL1
+ const VICTORYROAD_POKE_BALL2
+ const VICTORYROAD_POKE_BALL3
+ const VICTORYROAD_POKE_BALL4
+ const VICTORYROAD_POKE_BALL5
+
+VictoryRoad_MapScripts:
+ db 2 ; scene scripts
+ scene_script .DummyScene0 ; SCENE_DEFAULT
+ scene_script .DummyScene1 ; SCENE_FINISHED
+
+ db 0 ; callbacks
+
+.DummyScene0:
+ end
+
+.DummyScene1:
+ end
+
+VictoryRoadRivalLeft:
+ moveobject VICTORYROAD_SILVER, 18, 11
+ turnobject PLAYER, DOWN
+ showemote EMOTE_SHOCK, PLAYER, 15
+ special FadeOutMusic
+ pause 15
+ appear VICTORYROAD_SILVER
+ applymovement VICTORYROAD_SILVER, MovementData_0x74539
+ scall VictoryRoadRivalNext
+ applymovement VICTORYROAD_SILVER, MovementData_0x7454c
+ disappear VICTORYROAD_SILVER
+ setscene SCENE_FINISHED
+ playmapmusic
+ end
+
+VictoryRoadRivalRight:
+ turnobject PLAYER, DOWN
+ showemote EMOTE_SHOCK, PLAYER, 15
+ special FadeOutMusic
+ pause 15
+ appear VICTORYROAD_SILVER
+ applymovement VICTORYROAD_SILVER, MovementData_0x74542
+ scall VictoryRoadRivalNext
+ applymovement VICTORYROAD_SILVER, MovementData_0x74555
+ disappear VICTORYROAD_SILVER
+ setscene SCENE_FINISHED
+ playmapmusic
+ end
+
+VictoryRoadRivalNext:
+ turnobject PLAYER, DOWN
+ playmusic MUSIC_RIVAL_ENCOUNTER
+ opentext
+ writetext VictoryRoadRivalBeforeText
+ waitbutton
+ closetext
+ setevent EVENT_RIVAL_VICTORY_ROAD
+ checkevent EVENT_GOT_TOTODILE_FROM_ELM
+ iftrue .GotTotodile
+ checkevent EVENT_GOT_CHIKORITA_FROM_ELM
+ iftrue .GotChikorita
+ winlosstext VictoryRoadRivalDefeatText, VictoryRoadRivalVictoryText
+ setlasttalked VICTORYROAD_SILVER
+ loadtrainer RIVAL1, RIVAL1_5_TOTODILE
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .AfterBattle
+
+.GotTotodile:
+ winlosstext VictoryRoadRivalDefeatText, VictoryRoadRivalVictoryText
+ setlasttalked VICTORYROAD_SILVER
+ loadtrainer RIVAL1, RIVAL1_5_CHIKORITA
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .AfterBattle
+
+.GotChikorita:
+ winlosstext VictoryRoadRivalDefeatText, VictoryRoadRivalVictoryText
+ setlasttalked VICTORYROAD_SILVER
+ loadtrainer RIVAL1, RIVAL1_5_CYNDAQUIL
+ startbattle
+ dontrestartmapmusic
+ reloadmapafterbattle
+ jump .AfterBattle
+
+.AfterBattle:
+ playmusic MUSIC_RIVAL_AFTER
+ opentext
+ writetext VictoryRoadRivalAfterText
+ waitbutton
+ closetext
+ end
+
+VictoryRoadTMEarthquake:
+ itemball TM_EARTHQUAKE
+
+VictoryRoadMaxRevive:
+ itemball MAX_REVIVE
+
+VictoryRoadFullRestore:
+ itemball FULL_RESTORE
+
+VictoryRoadFullHeal:
+ itemball FULL_HEAL
+
+VictoryRoadHPUp:
+ itemball X_SPECIAL
+
+VictoryRoadHiddenMaxPotion:
+ hiddenitem MAX_POTION, EVENT_VICTORY_ROAD_HIDDEN_MAX_POTION
+
+VictoryRoadHiddenFullHeal:
+ hiddenitem FULL_HEAL, EVENT_VICTORY_ROAD_HIDDEN_FULL_HEAL
+
+MovementData_0x74539:
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step UP
+ step UP
+ step_end
+
+MovementData_0x74542:
+ step UP
+ step UP
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step LEFT
+ step UP
+ step UP
+ step_end
+
+MovementData_0x7454c:
+ step DOWN
+ step DOWN
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step_end
+
+MovementData_0x74555:
+ step DOWN
+ step DOWN
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step RIGHT
+ step DOWN
+ step DOWN
+ step_end
+
+VictoryRoadRivalBeforeText:
+ text "Hold it."
+
+ para "…Are you going to"
+ line "take the #MON"
+ cont "LEAGUE challenge?"
+
+ para "…Don't make me"
+ line "laugh."
+
+ para "You're so much"
+ line "weaker than I am."
+
+ para "I'm not like I was"
+ line "before."
+
+ para "I now have the"
+ line "best and strongest"
+
+ para "#MON with me."
+ line "I'm invincible!"
+
+ para "<PLAYER>!"
+ line "I challenge you!"
+ done
+
+VictoryRoadRivalDefeatText:
+ text "…I couldn't win…"
+
+ para "I gave it every-"
+ line "thing I had…"
+
+ para "What you possess,"
+ line "and what I lack…"
+
+ para "I'm beginning to"
+ line "understand what"
+
+ para "that dragon master"
+ line "said to me…"
+ done
+
+VictoryRoadRivalAfterText:
+ text "…I haven't given up"
+ line "on becoming the"
+ cont "greatest trainer…"
+
+ para "I'm going to find"
+ line "out why I can't"
+
+ para "win and become"
+ line "stronger…"
+
+ para "When I do, I will"
+ line "challenge you."
+
+ para "And I'll beat you"
+ line "down with all my"
+ cont "power."
+
+ para "…Humph! You keep"
+ line "at it until then."
+ done
+
+VictoryRoadRivalVictoryText:
+ text "…Humph!"
+
+ para "When it comes down"
+ line "to it, nothing can"
+ cont "beat power."
+
+ para "I don't need any-"
+ line "thing else."
+ done
+
+VictoryRoad_MapEvents:
+ db 0, 0 ; filler
+
+ db 10 ; warp events
+ warp_event 9, 67, VICTORY_ROAD_GATE, 5
+ warp_event 1, 49, VICTORY_ROAD, 3
+ warp_event 1, 35, VICTORY_ROAD, 2
+ warp_event 13, 31, VICTORY_ROAD, 5
+ warp_event 13, 17, VICTORY_ROAD, 4
+ warp_event 17, 33, VICTORY_ROAD, 7
+ warp_event 17, 19, VICTORY_ROAD, 6
+ warp_event 0, 11, VICTORY_ROAD, 9
+ warp_event 0, 27, VICTORY_ROAD, 8
+ warp_event 13, 5, ROUTE_23, 3
+
+ db 2 ; coord events
+ coord_event 12, 8, SCENE_DEFAULT, VictoryRoadRivalLeft
+ coord_event 13, 8, SCENE_DEFAULT, VictoryRoadRivalRight
+
+ db 2 ; bg events
+ bg_event 3, 29, BGEVENT_ITEM, VictoryRoadHiddenMaxPotion
+ bg_event 3, 65, BGEVENT_ITEM, VictoryRoadHiddenFullHeal
+
+ db 6 ; object events
+ object_event 18, 13, SPRITE_SILVER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD
+ object_event 3, 28, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, VictoryRoadTMEarthquake, EVENT_VICTORY_ROAD_TM_EARTHQUAKE
+ object_event 12, 48, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, VictoryRoadMaxRevive, EVENT_VICTORY_ROAD_MAX_REVIVE
+ object_event 18, 29, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, VictoryRoadFullRestore, EVENT_VICTORY_ROAD_FULL_RESTORE
+ object_event 15, 48, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, VictoryRoadFullHeal, EVENT_VICTORY_ROAD_FULL_HEAL
+ object_event 7, 38, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, VictoryRoadHPUp, EVENT_VICTORY_ROAD_HP_UP