diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 30a0478..941529a 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -60,6 +60,9 @@ ENDM map_const ROUTE_42, 30, 9 ; 5 map_const ROUTE_44, 30, 9 ; 6 map_const MAHOGANY_TOWN, 10, 9 ; 7 + map_const LAKE_OF_RAGE_TRADER_HOUSE, 4, 4 ; 8 + map_const LAKE_OF_RAGE_POKECENTER_1F, 5, 4 ; 9 + map_const LAKE_OF_RAGE_MART, 6, 4 ; 10 endgroup newgroup DUNGEONS ; 3 diff --git a/constants/mart_constants.asm b/constants/mart_constants.asm index 1a2d08f..5ccc834 100644 --- a/constants/mart_constants.asm +++ b/constants/mart_constants.asm @@ -42,4 +42,5 @@ const MART_MT_MOON const MART_INDIGO_PLATEAU const MART_UNDERGROUND + const MART_LAKEOFRAGE DEF NUM_MARTS EQU const_value diff --git a/data/events/special_pointers.asm b/data/events/special_pointers.asm index 36fa6d1..713f8bc 100644 --- a/data/events/special_pointers.asm +++ b/data/events/special_pointers.asm @@ -183,3 +183,6 @@ SpecialsPointers:: add_special InitialSetDSTFlag add_special InitialClearDSTFlag add_special UnusedDummySpecial ; unused + +; Tradeback NPC tutorial + add_special TradebackNPC \ No newline at end of file diff --git a/data/items/marts.asm b/data/items/marts.asm index d96281d..5721c42 100644 --- a/data/items/marts.asm +++ b/data/items/marts.asm @@ -35,6 +35,7 @@ Marts: dw MartMtMoon dw MartIndigoPlateau dw MartUnderground + dw MartLakeOfRage assert_table_length NUM_MARTS MartCherrygrove: @@ -405,3 +406,18 @@ DefaultMart: db POKE_BALL db POTION db -1 ; end + +; Excludes the Moon and Sun Stones, which are "treasure" items. +; Designed to solve the "stone problem" faced by Pokemon like Bellsprout in the early-game. +MartLakeOfRage: + db 9 + db FIRE_STONE + db THUNDERSTONE + db WATER_STONE + db LEAF_STONE + db HEART_STONE + db POISON_STONE + db ICE_STONE + db DUSK_STONE + db SHINY_STONE + db -1 ; end diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index f3a47bc..eeae718 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -568,6 +568,7 @@ ENDM map_attributes RedsHouse1F, REDS_HOUSE_1F, $00, 0 map_attributes RedsHouse2F, REDS_HOUSE_2F, $00, 0 map_attributes BluesHouse, BLUES_HOUSE, $00, 0 + map_attributes LakeOfRageTraderHouse, LAKE_OF_RAGE_TRADER_HOUSE, $00, 0 map_attributes OaksLab, OAKS_LAB, $00, 0 map_attributes PewterNidoranSpeechHouse, PEWTER_NIDORAN_SPEECH_HOUSE, $00, 0 map_attributes PewterGym, PEWTER_GYM, $00, 0 @@ -603,11 +604,13 @@ ENDM map_attributes SafariZoneWardensHome, SAFARI_ZONE_WARDENS_HOME, $00, 0 map_attributes Route15FuchsiaGate, ROUTE_15_FUCHSIA_GATE, $00, 0 map_attributes LavenderPokecenter1F, LAVENDER_POKECENTER_1F, $00, 0 + map_attributes LakeOfRagePokecenter1F, LAKE_OF_RAGE_POKECENTER_1F, $00, 0 map_attributes LavenderPokecenter2FBeta, LAVENDER_POKECENTER_2F_BETA, $00, 0 map_attributes MrFujisHouse, MR_FUJIS_HOUSE, $00, 0 map_attributes LavenderSpeechHouse, LAVENDER_SPEECH_HOUSE, $00, 0 map_attributes LavenderNameRater, LAVENDER_NAME_RATER, $00, 0 map_attributes LavenderMart, LAVENDER_MART, $00, 0 + map_attributes LakeOfRageMart, LAKE_OF_RAGE_MART, $00, 0 map_attributes SoulHouse, SOUL_HOUSE, $00, 0 map_attributes LavRadioTower1F, LAV_RADIO_TOWER_1F, $00, 0 map_attributes Route8SaffronGate, ROUTE_8_SAFFRON_GATE, $00, 0 diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index 526df88..99f43cf 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -198,6 +198,7 @@ CherrygroveGymSpeechHouse_Blocks: GuideGentsHouse_Blocks: CherrygroveEvolutionSpeechHouse_Blocks: Route30BerryHouse_Blocks: +LakeOfRageTraderHouse_Blocks: INCBIN "maps/House1.ablk" SafariZoneFuchsiaGateBeta_Blocks: @@ -334,6 +335,7 @@ LavenderMart_Blocks: ViridianMart_Blocks: SaffronMart_Blocks: CherrygroveMart_Blocks: +LakeOfRageMart_Blocks: INCBIN "maps/Mart.ablk" Route10North_Blocks: @@ -363,6 +365,7 @@ CianwoodPokecenter1F_Blocks: ViridianPokecenter1F_Blocks: SaffronPokecenter1F_Blocks: CherrygrovePokecenter1F_Blocks: +LakeOfRagePokecenter1F_Blocks: INCBIN "maps/Pokecenter1F.ablk" BetaPewterMuseumOfScience1F_Blocks: ; unreferenced diff --git a/data/maps/maps.asm b/data/maps/maps.asm index fde6e0c..956438d 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -73,6 +73,9 @@ MapGroup_Mahogany: map Route42, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_42, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_LAKE map Route44, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_44, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_POND map MahoganyTown, TILESET_JOHTO, TOWN, LANDMARK_MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE + map LakeOfRageTraderHouse, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE + map LakeOfRagePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE + map LakeOfRageMart, TILESET_MART, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE assert_table_length NUM_MAHOGANY_MAPS MapGroup_Dungeons: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 0cd36ab..8c07534 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -494,3 +494,6 @@ INCLUDE "maps/CeruleanCave1F.asm" INCLUDE "maps/CeruleanCave2F.asm" INCLUDE "maps/CeruleanCaveB1F.asm" INCLUDE "maps/SilentHills.asm" +INCLUDE "maps/LakeOfRageTraderHouse.asm" +INCLUDE "maps/LakeOfRagePokecenter1F.asm" +INCLUDE "maps/LakeOfRageMart.asm" diff --git a/engine/events/specials.asm b/engine/events/specials.asm index 8417d5a..e8b6fa4 100644 --- a/engine/events/specials.asm +++ b/engine/events/specials.asm @@ -420,3 +420,8 @@ TrainerHouse: ld a, [sMysteryGiftTrainerHouseFlag] ld [wScriptVar], a jp CloseSRAM + +; Tradeback NPC tutorial +TradebackNPC: + farcall TradebackGuy + ret \ No newline at end of file diff --git a/engine/events/tradeback_npc.asm b/engine/events/tradeback_npc.asm new file mode 100644 index 0000000..4c4c44c --- /dev/null +++ b/engine/events/tradeback_npc.asm @@ -0,0 +1,140 @@ +; Fun fact, the 'trade' part of a trade isn't checked to evolve a Pokémon. +; It seems that just the trade animation and the link state are enough. +; No Pokémon is actualy ever moved to or from your party because of that fact. + +TradebackGuy:: + ld hl, TradebackGuyText + call PrintText + call YesNoBox + ld hl, TradebackGuyCanceledText + jr c, .done + +; Select a Pokémon from the party. + ld b, PARTYMENUACTION_GIVE_MON + farcall SelectTradeOrDayCareMon + ld a, [wCurPartyMon] + ld hl, TradebackGuyCanceledText + jr c, .done + + ld hl, NPCTradeCableText + call PrintText + + call TradeWithTradebackGuy + call RestartMapMusic + + ld hl, TradebackGuyCompleteText + call PrintText + ret +.done + call PrintText + ret + +; Loads the appropriate data to perform the trade animation. +TradeWithTradebackGuy: +; Sets the link state to trading so that evolution is possible. + ld a, LINK_TRADECENTER + ld [wLinkMode], a + +; Establish names of trading trainers + ld hl, wPlayerName + ld de, wPlayerTrademonSenderName + ld bc, NAME_LENGTH + call CopyBytes + + ld hl, .tradeback_guy_name + ld de, wOTTrademonSenderName + ld bc, NAME_LENGTH + call CopyBytes +.tradeback_guy_name: + db "TRADER@@@" + +; Establish the Pokémon's species. + ld a, [wCurPartyMon] + ld hl, wPartySpecies + ld b, 0 + ld c, a + add hl, bc + ld a, [hl] + ld [wPlayerTrademonSpecies], a + ld [wOTTrademonSpecies], a + +; Establish Pokémon's ID number. + ld hl, wPartyMon1ID + ld a, [wCurPartyMon] + call GetPartyLocation + ld a, [hli] + ld [wPlayerTrademonID], a + ld [wOTTrademonID], a + ld a, [hl] + ld [wPlayerTrademonID + 1], a + ld [wOTTrademonID + 1], a + +; Correctly display Pokémon shiny status on the trade screen. + ld hl, wPartyMon1DVs + ld a, [wCurPartyMon] + call GetPartyLocation + ld a, [hli] + ld [wPlayerTrademonDVs], a + ld [wOTTrademonDVs], a + ld a, [hl] + ld [wPlayerTrademonDVs + 1], a + ld [wOTTrademonDVs + 1], a + +; Establish Pokémon's OT's name + ld a, [wCurPartyMon] + ld hl, wPartyMonOTs + call SkipNames + ld de, wPlayerTrademonOTName + ld bc, NAME_LENGTH + call CopyBytes + + ld hl, wPartyMonOTs + ld de, wOTTrademonOTName + ld bc, NAME_LENGTH + call CopyBytes + +; Makes it so that pressing B will not cancel the evolution. + ; This is standard for trade based evolution. + ld a, 1 + ld [wForceEvolution], a + +; Run the trade animation/ evolves the mon if applicable. + call DisableSpriteUpdates +; wTradeDialog aliases wFrameCounter, which TradeAnimation uses. + ld a, [wTradeDialog] + push af + predef TradeAnimation + callfar EvolvePokemon + pop af + ld [wTradeDialog], a + call ReturnToMapWithSpeechTextbox + +; Changes the link mode back to not linked, battles won't work right otherwise. + ld a, LINK_NULL + ld [wLinkMode], a + ret + +TradebackGuyText:: + text "Hey there! I'm" + line "the TRADER!" + + para "I love helping" + line "TRAINERs evolve" + cont "their #MON!" + + para "Wanna try?" + done + +TradebackGuyCanceledText:: + text "Oh, ok then." + + para "Come back if you" + line "change your mind!" + done + +TradebackGuyCompleteText:: + text "And...done!" + + para "I hope that" + line "was helpful!" + done diff --git a/main.asm b/main.asm index 15645f4..0095bbb 100644 --- a/main.asm +++ b/main.asm @@ -480,7 +480,7 @@ SECTION "bank3F", ROMX INCLUDE "engine/tilesets/tileset_anims.asm" INCLUDE "engine/events/npc_trade.asm" INCLUDE "engine/events/mom_phone.asm" - +INCLUDE "engine/events/tradeback_npc.asm" ; Tradeback NPC tutorial SECTION "mobile40", ROMX diff --git a/maps/FuchsiaMart.asm b/maps/FuchsiaMart.asm index 30443e4..9627ff8 100644 --- a/maps/FuchsiaMart.asm +++ b/maps/FuchsiaMart.asm @@ -21,11 +21,9 @@ FuchsiaMartCooltrainerFScript: jumptextfaceplayer FuchsiaMartCooltrainerFText FuchsiaMartFisherText: - text "I was hoping to" - line "buy some SAFARI" - - para "ZONE souvenirs," - line "but it's closed…" + text "I'm buying some" + line "SAFARI ZONE" + cont "souvenirs!" done FuchsiaMartCooltrainerFText: diff --git a/maps/LakeOfRage.ablk b/maps/LakeOfRage.ablk index 3b26d4f..d1d63a0 100644 --- a/maps/LakeOfRage.ablk +++ b/maps/LakeOfRage.ablk @@ -1 +1 @@ -,-aaaaaaa./aaa]]a\]f\]aa[]aaTvvy555Y<[]]]X5555555YbeeX55555Ya?jpp=aX5YGfhqqeWKee`ehqqaKWa`Gjqqqe=]hqqqdlrqq \ No newline at end of file +\^af\a\^afG^f\\f>^fTU^abfd?fdTvyY>dG\fd\X55Ya^d?f^Tvy55Y<d`f\\Ty555Y`f]\?\aX555Y\\^?Tvvy555Y^<fTvy555555Y^bd\bf^X5555555Ydf\ffTy5555555Y\b\af\fX55555Ya^d<d\daX555Yfd\\G`f^^\>e\adfa \ No newline at end of file diff --git a/maps/LakeOfRage.asm b/maps/LakeOfRage.asm index 51a7b9d..e5f7fa3 100644 --- a/maps/LakeOfRage.asm +++ b/maps/LakeOfRage.asm @@ -11,6 +11,7 @@ const LAKEOFRAGE_WESLEY const LAKEOFRAGE_POKE_BALL1 const LAKEOFRAGE_POKE_BALL2 + const LAKEOFRAGE_CAMERAMAN LakeOfRage_MapScripts: def_scene_scripts @@ -125,6 +126,9 @@ LakeOfRageSuperNerdScript: LakeOfRageCooltrainerFScript: jumptextfaceplayer LakeOfRageCooltrainerFText +LakeOfRageCameramanScript: + jumptextfaceplayer LakeOfRageCameramanText + LakeOfRageSign: jumptext LakeOfRageSignText @@ -491,32 +495,51 @@ FishingGurusHouseSignText: line "HOUSE" done +LakeOfRageCameramanText: ; Reference to the Battle Zone + text "Hohoho!" + + para "Am I lucky to" + line "have been here" + cont "when that MAGIKARP" + cont "evolved!" + + para "This film is" + line "gonna make me" + cont "rich!" + done + LakeOfRage_MapEvents: db 0, 0 ; filler def_warp_events - warp_event 7, 3, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 1 - warp_event 27, 31, LAKE_OF_RAGE_MAGIKARP_HOUSE, 1 + warp_event 21, 5, LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 1 + warp_event 35, 29, LAKE_OF_RAGE_MAGIKARP_HOUSE, 1 + warp_event 3, 9, LAKE_OF_RAGE_MART, 1 + warp_event 5, 19, LAKE_OF_RAGE_POKECENTER_1F, 1 + warp_event 17, 13, LAKE_OF_RAGE_TRADER_HOUSE, 1 +; warp_event 10, 5, LAKE_OF_RAGE_PRE_GYM, 1 ; tbd def_coord_events def_bg_events - bg_event 21, 27, BGEVENT_READ, LakeOfRageSign - bg_event 25, 31, BGEVENT_READ, MagikarpHouseSignScript - bg_event 11, 28, BGEVENT_ITEM, LakeOfRageHiddenFullRestore - bg_event 4, 4, BGEVENT_ITEM, LakeOfRageHiddenRareCandy - bg_event 35, 5, BGEVENT_ITEM, LakeOfRageHiddenMaxPotion + bg_event 19, 31, BGEVENT_READ, LakeOfRageSign + bg_event 33, 29, BGEVENT_READ, MagikarpHouseSignScript + bg_event 3, 31, BGEVENT_ITEM, LakeOfRageHiddenFullRestore + bg_event 9, 11, BGEVENT_ITEM, LakeOfRageHiddenRareCandy + bg_event 19, 5, BGEVENT_ITEM, LakeOfRageHiddenMaxPotion def_object_events - object_event 21, 28, SPRITE_LANCE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageLanceScript, EVENT_LAKE_OF_RAGE_LANCE - object_event 20, 26, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageGrampsScript, -1 + object_event 19, 32, SPRITE_LANCE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageLanceScript, EVENT_LAKE_OF_RAGE_LANCE + object_event 20, 30, SPRITE_GRAMPS, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageGrampsScript, -1 object_event 36, 13, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageSuperNerdScript, -1 - object_event 25, 29, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageCooltrainerFScript, -1 - object_event 30, 23, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS - object_event 24, 26, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS - object_event 4, 15, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS + object_event 9, 9, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageCooltrainerFScript, -1 + object_event 21, 15, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS + object_event 31, 22, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS + object_event 2, 25, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS object_event 36, 7, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS - object_event 18, 22, SPRITE_GYARADOS, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RedGyarados, EVENT_LAKE_OF_RAGE_RED_GYARADOS - object_event 4, 4, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY - object_event 7, 10, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageElixer, EVENT_LAKE_OF_RAGE_ELIXER - object_event 35, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageTMDetect, EVENT_LAKE_OF_RAGE_TM_DETECT + object_event 19, 26, SPRITE_GYARADOS, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, RedGyarados, EVENT_LAKE_OF_RAGE_RED_GYARADOS + object_event 9, 11, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY + object_event 7, 27, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageElixer, EVENT_LAKE_OF_RAGE_ELIXER + object_event 27, 8, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, LakeOfRageTMDetect, EVENT_LAKE_OF_RAGE_TM_DETECT + object_event 11, 18, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageCameramanScript, -1 + \ No newline at end of file diff --git a/maps/LakeOfRageMart.asm b/maps/LakeOfRageMart.asm new file mode 100644 index 0000000..5caa4c1 --- /dev/null +++ b/maps/LakeOfRageMart.asm @@ -0,0 +1,54 @@ + object_const_def + const LAKEOFRAGEMART_CLERK + const LAKEOFRAGEMART_GRAMPS + const LAKEOFRAGEMART_POKEFAN_F + +LakeOfRageMart_MapScripts: + def_scene_scripts + + def_callbacks + +LakeOfRageMartClerkScript: + opentext + pokemart MARTTYPE_STANDARD, MART_LAKEOFRAGE + closetext + end + +LakeOfRageMartPokefanFScript: + jumptextfaceplayer LakeOfRageMartPokefanFText + +LakeOfRageMartGrampsScript: + jumptextfaceplayer LakeOfRageMartGrampsText + +LakeOfRageMartPokefanFText: + text "This shop sells" + line "so many STONEs!" + + para "I'm spoiled for" + line "choice!" + done + +LakeOfRageMartGrampsText: + text "The TRADER helped" + line "me evolve my" + cont "RAICHU!" + + para "...what's with" + line "that look?" + done + +LakeOfRageMart_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 2, 7, LAKE_OF_RAGE, 3 + warp_event 3, 7, LAKE_OF_RAGE, 3 + + def_coord_events + + def_bg_events + + def_object_events + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageMartClerkScript, -1 + object_event 6, 6, SPRITE_POKEFAN_M, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 2, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, LakeOfRageMartPokefanFScript, -1 + object_event 9, 2, SPRITE_ROCKER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRageMartGrampsScript, -1 diff --git a/maps/LakeOfRagePokecenter1F.asm b/maps/LakeOfRagePokecenter1F.asm new file mode 100644 index 0000000..c1caa28 --- /dev/null +++ b/maps/LakeOfRagePokecenter1F.asm @@ -0,0 +1,95 @@ + object_const_def + const LAKEOFRAGEPOKECENTER1F_NURSE + const LAKEOFRAGEPOKECENTER1F_SCIENTIST + const LAKEOFRAGEPOKECENTER1F_GENTLEMAN + const LAKEOFRAGEPOKECENTER1F_YOUNGSTER + +LakeOfRagePokecenter1F_MapScripts: + def_scene_scripts + + def_callbacks + +LakeOfRagePokecenter1FNurseScript: + jumpstd PokecenterNurseScript + +LakeOfRagePokecenter1FGentlemanScript: + jumptextfaceplayer LakeOfRagePokecenter1FGentlemanText + +LakeOfRagePokecenter1FScientistScript: + jumptextfaceplayer LakeOfRagePokecenter1FScientistText + +LakeOfRagePokecenter1FYoungsterScript: + faceplayer + opentext + checkevent EVENT_LAKE_OF_RAGE_RED_GYARADOS + iftrue .GyaradosDefeated + writetext LakeOfRagePokecenter1FYoungsterText + waitbutton + closetext + end + +.GyaradosDefeated: + writetext LakeOfRagePokecenter1FYoungsterText_GyaradosDefeated + waitbutton + closetext + end + +LakeOfRagePokecenter1FScientistText: + text "GYARADOS are very" + line "sensitive to" + cont "changes in their" + cont "environment." + + para "Even a minor" + line "tremor can drive" + cont "them wild!" + done + +LakeOfRagePokecenter1FGentlemanText: + text "I wonder who is" + line "behind all this" + cont "nonsense?" + + para "First the RADIO" + line "TOWER, now the" + cont "lake..." + + done + +LakeOfRagePokecenter1FYoungsterText: + text "Dad said I have" + line "to stay inside." + + para "I hear a monster" + line "outside..." + + para "And my #GEAR" + line "keeps playing" + cont "this weird music!" + + para "Waaah! So scary!" + done + +LakeOfRagePokecenter1FYoungsterText_GyaradosDefeated: + text "The monster is" + line "gone! I can go" + cont "outside again!" + done + +LakeOfRagePokecenter1F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 3, 7, LAKE_OF_RAGE, 4 + warp_event 4, 7, LAKE_OF_RAGE, 4 + warp_event 0, 7, POKECENTER_2F, 1 + + def_coord_events + + def_bg_events + + def_object_events + object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRagePokecenter1FNurseScript, -1 + object_event 7, 6, SPRITE_SCIENTIST, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, LakeOfRagePokecenter1FScientistScript, -1 + object_event 5, 3, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, LakeOfRagePokecenter1FGentlemanScript, -1 + object_event 1, 5, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, LakeOfRagePokecenter1FYoungsterScript, -1 diff --git a/maps/LakeOfRageTraderHouse.asm b/maps/LakeOfRageTraderHouse.asm new file mode 100644 index 0000000..d15a099 --- /dev/null +++ b/maps/LakeOfRageTraderHouse.asm @@ -0,0 +1,42 @@ + object_const_def + const LAKEOFRAGETRADERHOUSE_TRADER + +LakeOfRageTraderHouse_MapScripts: + def_scene_scripts + + def_callbacks + +; Tradeback NPC tutorial +TradebackNPCScript: + faceplayer + opentext + special TradebackNPC + waitbutton + closetext + end + +LakeOfRageTraderHouseBookshelf2: + jumpstd DifficultBookshelfScript + +LakeOfRageTraderHouseBookshelf1: + jumpstd MagazineBookshelfScript + +LakeOfRageTraderHouseRadio: + jumpstd Radio2Script + +LakeOfRageTraderHouse_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 2, 7, LAKE_OF_RAGE, 5 + warp_event 3, 7, LAKE_OF_RAGE, 5 + + def_coord_events + + def_bg_events + bg_event 0, 1, BGEVENT_READ, LakeOfRageTraderHouseBookshelf1 + bg_event 1, 1, BGEVENT_READ, LakeOfRageTraderHouseBookshelf2 + bg_event 7, 1, BGEVENT_READ, LakeOfRageTraderHouseRadio + + def_object_events + object_event 2, 4, SPRITE_GAMEBOY_KID, SPRITEMOVEDATA_STANDING_DOWN, 0, 1, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, TradebackNPCScript, -1 diff --git a/maps/PlayersHouse2F.asm b/maps/PlayersHouse2F.asm index cc7d8e2..5a1d1b5 100644 --- a/maps/PlayersHouse2F.asm +++ b/maps/PlayersHouse2F.asm @@ -145,7 +145,8 @@ PlayersHouse2F_MapEvents: db 0, 0 ; filler def_warp_events - warp_event 7, 0, PLAYERS_HOUSE_1F, 3 + warp_event 7, 0, LAKE_OF_RAGE, 3 + ;warp_event 7, 0, PLAYERS_HOUSE_1F, 3 def_coord_events