From 253f8f4a22e63c077d22bd571044b6df38cd3f66 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Thu, 18 May 2023 18:06:44 +0100 Subject: [PATCH] FRLG Move Tutors Still need to find out what I want to do with Body Slam, Swords Dance, and Thunder Wave. Slam/SD are on the Sevii Islands, and TWave is on an existing NPC who usually gives Self-Destruct. Could possibly refactor the item receiving text. --- README.md | 1 + constants/event_constants.asm | 10 +-- data/maps/objects/FuchsiaCity.asm | 1 + data/maps/objects/MtMoonSquare.asm | 2 +- data/maps/objects/MtMoonSquareHouse.asm | 2 +- data/maps/objects/Museum2F.asm | 1 + data/maps/objects/RockTunnelB1F.asm | 3 +- data/maps/objects/VictoryRoad2F.asm | 1 + data/text/text_7.asm | 5 ++ maps/FuchsiaCity.blk | 4 +- scripts/FuchsiaCity.asm | 82 ++++++++++++++++++++++++ scripts/Museum2F.asm | 83 +++++++++++++++++++++++++ scripts/RockTunnelB1F.asm | 56 +++++++++++++++++ scripts/Route4.asm | 2 +- scripts/VictoryRoad2F.asm | 75 ++++++++++++++++++++++ text/FuchsiaCity.asm | 7 +++ text/Museum2F.asm | 7 +++ text/RockTunnelB1F_2.asm | 42 ++++++++++++- text/Route4.asm | 5 -- text/VictoryRoad2F.asm | 7 +++ 20 files changed, 377 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 9e1b33ff..1925df4b 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,7 @@ Improved Areas - Pokemon Tower was shortened, being less intensive and adding room for more maps. - Silph Co's pathing was completely overhauled to make navigating it less tedious. - Viridian Gym now has a minor new area once you make Giovanni leave. +- Various Move Tutors from FireRed and LeafGreen have been distributed around the region, instead giving their respective TMs. - The S.S. Anne now returns after getting the Marsh Badge and features trades for Galarian forms & Evolutions, as well as Paldean Tauros. - After entering the Hall of Fame, try visiting Route 1! diff --git a/constants/event_constants.asm b/constants/event_constants.asm index 47dbdd34..971d5d62 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -49,7 +49,8 @@ const EVENT_GOT_OLD_AMBER const_skip 8 const EVENT_BEAT_PEWTER_GYM_TRAINER_0 - const_skip 3 + const EVENT_GOT_TM19_2 + const_skip 2 const EVENT_GOT_TM34 const EVENT_BEAT_BROCK @@ -202,7 +203,8 @@ const_skip 20 const EVENT_SAFARI_GAME_OVER const EVENT_IN_SAFARI_ZONE - const_skip 8 + const_skip 7 + const EVENT_GOT_TM50 const EVENT_GOT_TM06 const EVENT_BEAT_KOGA const EVENT_BEAT_FUCHSIA_GYM_TRAINER_0 @@ -351,7 +353,7 @@ const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4 const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5 const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6 - const_skip + const EVENT_GOT_TM48_2 const EVENT_BEAT_POWER_PLANT_VOLTORB_0 const EVENT_BEAT_POWER_PLANT_VOLTORB_1 const EVENT_BEAT_POWER_PLANT_VOLTORB_2 @@ -534,7 +536,7 @@ const EVENT_PASSED_MARSHBADGE_CHECK const EVENT_PASSED_VOLCANOBADGE_CHECK const EVENT_PASSED_EARTHBADGE_CHECK - const_skip + const EVENT_GOT_TM10 const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0 const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_1 diff --git a/data/maps/objects/FuchsiaCity.asm b/data/maps/objects/FuchsiaCity.asm index e55942ee..1a35b8f0 100644 --- a/data/maps/objects/FuchsiaCity.asm +++ b/data/maps/objects/FuchsiaCity.asm @@ -39,5 +39,6 @@ FuchsiaCity_Object: object_event 30, 12, SPRITE_MONSTER, WALK, LEFT_RIGHT, 8 ; person object_event 8, 17, SPRITE_SEEL, WALK, ANY_DIR, 9 ; person object_event 6, 5, SPRITE_FOSSIL, STAY, NONE, 10 ; person + object_event 11, 8, SPRITE_GAMBLER, STAY, UP, 25 ; person def_warps_to FUCHSIA_CITY diff --git a/data/maps/objects/MtMoonSquare.asm b/data/maps/objects/MtMoonSquare.asm index eed83a4d..38d9555c 100644 --- a/data/maps/objects/MtMoonSquare.asm +++ b/data/maps/objects/MtMoonSquare.asm @@ -15,4 +15,4 @@ MtMoonSquare_Object: object_event 5, 4, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person object_event 4, 6, SPRITE_FAIRY, WALK, ANY_DIR, 1 ; person - def_warps_to MT_MOON_SQUARE \ No newline at end of file + def_warps_to MT_MOON_SQUARE diff --git a/data/maps/objects/MtMoonSquareHouse.asm b/data/maps/objects/MtMoonSquareHouse.asm index cd429056..9c39bbfd 100644 --- a/data/maps/objects/MtMoonSquareHouse.asm +++ b/data/maps/objects/MtMoonSquareHouse.asm @@ -11,4 +11,4 @@ MtMoonSquareHouse_Object: object_event 5, 3, SPRITE_BRUNETTE_GIRL, WALK, UP_DOWN, 1 ; person object_event 0, 2, SPRITE_GRAMPS, STAY, RIGHT, 2 ; person - def_warps_to MT_MOON_SQUARE_HOUSE \ No newline at end of file + def_warps_to MT_MOON_SQUARE_HOUSE diff --git a/data/maps/objects/Museum2F.asm b/data/maps/objects/Museum2F.asm index 061833ca..346d09c6 100644 --- a/data/maps/objects/Museum2F.asm +++ b/data/maps/objects/Museum2F.asm @@ -14,5 +14,6 @@ Museum2F_Object: object_event 7, 5, SPRITE_SCIENTIST, STAY, DOWN, 3 ; person object_event 11, 5, SPRITE_BRUNETTE_GIRL, STAY, NONE, 4 ; person object_event 12, 5, SPRITE_HIKER, STAY, DOWN, 5 ; person + object_event 12, 3, SPRITE_SCIENTIST, STAY, UP, 8 ; person def_warps_to MUSEUM_2F diff --git a/data/maps/objects/RockTunnelB1F.asm b/data/maps/objects/RockTunnelB1F.asm index ff9bffec..bb4170ca 100644 --- a/data/maps/objects/RockTunnelB1F.asm +++ b/data/maps/objects/RockTunnelB1F.asm @@ -18,9 +18,8 @@ RockTunnelB1F_Object: object_event 14, 28, SPRITE_COOLTRAINER_F, STAY, RIGHT, 6, OPP_JR_TRAINER_F, 10 object_event 33, 5, SPRITE_HIKER, STAY, RIGHT, 7, OPP_HIKER, 11 object_event 26, 30, SPRITE_SUPER_NERD, STAY, DOWN, 8, OPP_POKEMANIAC, 5 - ;object_event 7, 24, SPRITE_MON, WALK, DOWN, 9, KABUTOPS, 40 + object_event 22, 5, SPRITE_YOUNGSTER, STAY, RIGHT, 9 ;object_event 7, 23, SPRITE_FOSSIL, STAY, NONE, 10, HELIX_FOSSIL ;object_event 6, 23, SPRITE_FOSSIL, STAY, NONE, 11, DOME_FOSSIL - def_warps_to ROCK_TUNNEL_B1F diff --git a/data/maps/objects/VictoryRoad2F.asm b/data/maps/objects/VictoryRoad2F.asm index 9ee091e2..95d74930 100644 --- a/data/maps/objects/VictoryRoad2F.asm +++ b/data/maps/objects/VictoryRoad2F.asm @@ -26,5 +26,6 @@ VictoryRoad2F_Object: object_event 4, 14, SPRITE_BOULDER, STAY, BOULDER_MOVEMENT_BYTE_2, 11 ; person object_event 5, 5, SPRITE_BOULDER, STAY, BOULDER_MOVEMENT_BYTE_2, 12 ; person object_event 23, 16, SPRITE_BOULDER, STAY, BOULDER_MOVEMENT_BYTE_2, 13 ; person + object_event 25, 7, SPRITE_COOLTRAINER_M, STAY, DOWN, 14 def_warps_to VICTORY_ROAD_2F diff --git a/data/text/text_7.asm b/data/text/text_7.asm index 7fd26249..31b6a150 100644 --- a/data/text/text_7.asm +++ b/data/text/text_7.asm @@ -329,3 +329,8 @@ _ClefairyText:: text "CLEFAIRY: Pi" line "pippippi!@" text_end + +_TMNPCNoRoomText:: + text "You have no" + line "room for this!" + done diff --git a/maps/FuchsiaCity.blk b/maps/FuchsiaCity.blk index 4b2cafc9..4f09fc9b 100644 --- a/maps/FuchsiaCity.blk +++ b/maps/FuchsiaCity.blk @@ -1,9 +1,9 @@  !zoooooz7:~zooooooznttmVUwnmnwVwVmzzznwVwVwmzzzzzzzzzzzzzzzzzzz !zzzz !znlllmz|szzzz7:~znVwwmmzooooyzzzVUVzzzzzzngmzzMUlllll11NkkkPRROUwVww11N_tnN>?????????;_t -nN$ !WWWW !%_8989nN +nN$ !WWWW !%_89ttnN |~0|r -1<=<=1nN111111111 +1<=01nN111111111 _Vw1wnN 11 diff --git a/scripts/FuchsiaCity.asm b/scripts/FuchsiaCity.asm index ac9f273b..a4665a11 100644 --- a/scripts/FuchsiaCity.asm +++ b/scripts/FuchsiaCity.asm @@ -26,6 +26,7 @@ FuchsiaCity_TextPointers: dw FuchsiaCityText22 dw FuchsiaCityText23 dw FuchsiaCityText24 + dw SubstituteGuy FuchsiaCityText1: text_far _FuchsiaCityText1 @@ -167,3 +168,84 @@ FuchsiaCityKabutoText: FuchsiaCityText_19b2a: text_far _FuchsiaCityText_19b2a text_end + +; FireRed NPC +; This guy has a Kangaskhan fetish or something wtf +SubstituteGuy: + text_asm + CheckEvent EVENT_GOT_TM50 + jr nz, .got_item + ld hl, TM50PreReceiveText + call PrintText + + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + + lb bc, TM_SUBSTITUTE, 1 + call GiveItem + jr nc, .bag_full + ld hl, ReceivedTM50Text + call PrintText + SetEvent EVENT_GOT_TM50 + jr .done +.refused + ld hl, TM50Refused + call PrintText + jr .done +.bag_full + ld hl, SubstituteNoRoomText + call PrintText + jr .done +.got_item + ld hl, TM50ExplanationText + call PrintText +.done + jp TextScriptEnd + +TM50PreReceiveText: + text "Aww, I wish I was" + line "a KANGASKHAN" + cont "baby." + + para "I'd love to be a" + line "SUBSTITUTE for" + cont "the baby..." + + para "And snuggle in" + line "the mother" + cont "KANGASKHAN's" + cont "belly pouch." + + para "But only #MON" + line "can use the" + cont "move SUBSTITUTE." + + para "Want to teach it" + line "to one?" + prompt + +ReceivedTM50Text: + text_far _ReceivedTM50Text + sound_get_item_1 + text_end + +TM50ExplanationText: + text "Boy, what I'd" + line "give to crawl" + cont "inside a" + cont "KANGASKHAN belly" + cont "pouch..." + done + +TM50Refused: + text "Oh really?" + + para "SUBSTITUTE seems" + line "so fun..." + done + +SubstituteNoRoomText: + text_far _TMNPCNoRoomText + text_end diff --git a/scripts/Museum2F.asm b/scripts/Museum2F.asm index 8b1aa0bf..0fbdd0ba 100644 --- a/scripts/Museum2F.asm +++ b/scripts/Museum2F.asm @@ -9,6 +9,7 @@ Museum2F_TextPointers: dw Museum2FText5 dw Museum2FText6 dw Museum2FText7 + dw SeismicTossGuy Museum2FText1: text_far _Museum2FText1 @@ -37,3 +38,85 @@ Museum2FText6: Museum2FText7: text_far _Museum2FText7 text_end + +; FireRed NPC +SeismicTossGuy: + text_asm + CheckEvent EVENT_GOT_TM19_2 + jr nz, .got_item + ld hl, TM19PreReceiveText + call PrintText + + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + + lb bc, TM_SEISMIC_TOSS, 1 + call GiveItem + jr nc, .bag_full + ld hl, ReceivedTM19Text + call PrintText + SetEvent EVENT_GOT_TM19_2 + jr .done +.refused + ld hl, TM19Refused + call PrintText + jr .done +.bag_full + ld hl, SeismicTossNoRoomText + call PrintText + jr .done +.got_item + ld hl, TM19ExplanationText + call PrintText +.done + jp TextScriptEnd + +TM19PreReceiveText: + text "The secrets of" + line "space..." + + para "The mysteries of" + line "earth..." + + para "There are so many" + line "things about" + cont "which we know so" + cont "little." + + para "But that should" + line "spur us to study" + cont "harder, not toss" + cont "in the towel!" + + para "The only thing you" + line "should toss..." + + para "Well, how about" + line "SEISMIC TOSS?" + prompt + +ReceivedTM19Text: + text_far _ReceivedTM19Text + sound_get_item_1 + text_end + +TM19ExplanationText: + text "I hope you won't" + line "toss in the" + cont "towel." + + para "Good luck!" + done + +TM19Refused: + text "Is that so?" + + para "I'm sure you'll" + line "be back for it." + done + +SeismicTossNoRoomText: + text_far _TMNPCNoRoomText + text_end diff --git a/scripts/RockTunnelB1F.asm b/scripts/RockTunnelB1F.asm index f9a7d8c7..aa19b692 100644 --- a/scripts/RockTunnelB1F.asm +++ b/scripts/RockTunnelB1F.asm @@ -21,6 +21,7 @@ RockTunnelB1F_TextPointers: dw RockTunnel2Text6 dw RockTunnel2Text7 dw RockTunnel2Text8 + dw RockSlideGuy ; dw KabutopsText RockTunnel2TrainerHeaders: @@ -189,6 +190,61 @@ RockTunnel2AfterBattleText9: text_far _RockTunnel2AfterBattleText9 text_end +; FireRed NPC +RockSlideGuy: + text_asm + CheckEvent EVENT_GOT_TM48_2 + jr nz, .got_item + ld hl, TM48PreReceiveText + call PrintText + + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + + lb bc, TM_ROCK_SLIDE, 1 + call GiveItem + jr nc, .bag_full + ld hl, ReceivedTM48Text + call PrintText + SetEvent EVENT_GOT_TM48_2 + jr .done +.refused + ld hl, TM48Refused + call PrintText + jr .done +.bag_full + ld hl, RockSlideNoRoomText + call PrintText + jr .done +.got_item + ld hl, TM48ExplanationText + call PrintText +.done + jp TextScriptEnd + +TM48PreReceiveText: + text_far _TM48PreReceiveText + text_end + +ReceivedTM48Text: + text_far _ReceivedTM48Text + sound_get_item_1 + text_end + +TM48ExplanationText: + text_far _TM48ExplanationText + text_end + +TM48Refused: + text_far _TM48Refused + text_end + +RockSlideNoRoomText: + text_far _TMNPCNoRoomText + text_end + ;KabutopsText: ; text_asm ; ld hl, KabutopsTrainerHeader diff --git a/scripts/Route4.asm b/scripts/Route4.asm index f432e7b7..3a4de41e 100644 --- a/scripts/Route4.asm +++ b/scripts/Route4.asm @@ -109,7 +109,7 @@ TM01Refused: text_end MegaNoRoomText: - text_far _MegaNoRoomText + text_far _TMNPCNoRoomText text_end MegaKickGuy: diff --git a/scripts/VictoryRoad2F.asm b/scripts/VictoryRoad2F.asm index 3a8e9eee..db08f49f 100644 --- a/scripts/VictoryRoad2F.asm +++ b/scripts/VictoryRoad2F.asm @@ -80,6 +80,7 @@ VictoryRoad2F_TextPointers: dw BoulderText dw BoulderText dw BoulderText + dw DoubleEdgeGuy VictoryRoad2TrainerHeaders: def_trainers @@ -200,3 +201,77 @@ VictoryRoad2EndBattleText5: VictoryRoad2AfterBattleText5: text_far _VictoryRoad2AfterBattleText5 text_end + +; FireRed NPC +DoubleEdgeGuy: + text_asm + CheckEvent EVENT_GOT_TM10 + jr nz, .got_item + ld hl, TM10PreReceiveText + call PrintText + + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + + lb bc, TM_DOUBLE_EDGE, 1 + call GiveItem + jr nc, .bag_full + ld hl, ReceivedTM10Text + call PrintText + SetEvent EVENT_GOT_TM10 + jr .done +.refused + ld hl, TM10Refused + call PrintText + jr .done +.bag_full + ld hl, DoubleEdgeNoRoomText + call PrintText + jr .done +.got_item + ld hl, TM10ExplanationText + call PrintText +.done + jp TextScriptEnd + +TM10PreReceiveText: + text "You should be" + line "proud of" + cont "yourself," + cont "having battled" + cont "your way through" + cont "VICTORY ROAD so" + cont "courageously." + + para "In recognition" + line "of your feat," + cont "I can teach your" + cont "#MON" + cont "DOUBLE-EDGE." + prompt + +ReceivedTM10Text: + text_far _ReceivedTM10Text + sound_get_item_1 + text_end + +TM10ExplanationText: + text "Keep that drive" + line "going for the" + cont "#MON LEAGUE!" + + para "Take a run at" + line "them and knock" + cont "em out!" + done + +TM10Refused: + text "I'll teach your" + line "#MON anytime." + done + +DoubleEdgeNoRoomText: + text_far _TMNPCNoRoomText + text_end diff --git a/text/FuchsiaCity.asm b/text/FuchsiaCity.asm index 20cb901b..73042749 100644 --- a/text/FuchsiaCity.asm +++ b/text/FuchsiaCity.asm @@ -117,3 +117,10 @@ _FuchsiaCityKabutoText:: _FuchsiaCityText_19b2a:: text "..." done + +_ReceivedTM50Text:: + text " received" + line "@" + text_ram wStringBuffer + text "!@" + text_end diff --git a/text/Museum2F.asm b/text/Museum2F.asm index 4f34a249..0501d279 100644 --- a/text/Museum2F.asm +++ b/text/Museum2F.asm @@ -43,3 +43,10 @@ _Museum2FText7:: line "fell on MT.MOON." cont "(MOON STONE?)" done + +_ReceivedTM19Text:: + text " received" + line "@" + text_ram wStringBuffer + text "!@" + text_end diff --git a/text/RockTunnelB1F_2.asm b/text/RockTunnelB1F_2.asm index ca4be66f..1cc3d025 100644 --- a/text/RockTunnelB1F_2.asm +++ b/text/RockTunnelB1F_2.asm @@ -19,6 +19,42 @@ _RockTunnel2AfterBattleText9:: line "not a fighter." done -_KabutopsBattleText:: - text "Grr..." - text_end \ No newline at end of file +_TM48PreReceiveText:: + text "When you're on a" + line "rocky mountain" + cont "like this, rock" + cont "slides are a" + cont "threat." + + para "Can you imagine?" + line "Boulders tumbling" + cont "down on you?" + + para "That'd be like..." + line "Waaaaah! Total" + cont "terror!" + + para "You don't seem to" + line "be scared. Want" + cont "to try using" + cont "ROCK SLIDE?" + prompt + +_ReceivedTM48Text:: + text " received" + line "@" + text_ram wStringBuffer + text "!@" + text_end + +_TM48ExplanationText:: + text "It may be scary" + line "to use this in" + cont "a tunnel." + done + +_TM48Refused:: + text "Oh, so you are" + line "scared after" + cont "all." + done diff --git a/text/Route4.asm b/text/Route4.asm index be96d0ed..fa4aeea5 100644 --- a/text/Route4.asm +++ b/text/Route4.asm @@ -79,11 +79,6 @@ _TM01Refused:: cont "PUNCH." done -_MegaNoRoomText:: - text "You have no" - line "room for this!" - done - _TM05PreReceiveText:: text "A kick of brutal" line "ferocity!" diff --git a/text/VictoryRoad2F.asm b/text/VictoryRoad2F.asm index 049387f5..feca3551 100644 --- a/text/VictoryRoad2F.asm +++ b/text/VictoryRoad2F.asm @@ -84,3 +84,10 @@ _VictoryRoad2AfterBattleText5:: line "up the challenge" cont "here." done + +_ReceivedTM10Text:: + text " received" + line "@" + text_ram wStringBuffer + text "!@" + text_end