From a3c81c549c7993ccc4d8ec7d5272a2fad8900050 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Wed, 28 Jun 2023 16:31:14 +0100 Subject: [PATCH] Charmander & Rod House move This adds Damien, the Charmander trainer, with text changed to be more accurate to his character. I've also moved the Pewter Rod House nearby, as it makes more sense for it to be in the Water-type area. However, it seems to load oddly. I have also integrated the Pikachu/Eevee Mode more, with architecture that it can make it more easily modified. This'll come into play for the Squirtle event. I have also erased further misinformation the game gives about burns, and changed the Viridian Pre-Gym accordingly, to talk about confusion, which lacks a Trainer Tips sign. --- README.md | 1 + constants/event_constants.asm | 2 +- constants/hide_show_constants.asm | 1 + data/maps/hide_show_data.asm | 5 +- data/maps/objects/PewterCity.asm | 1 - data/maps/objects/Route12SuperRodHouse.asm | 4 +- data/maps/objects/Route24.asm | 4 +- data/text/text_2.asm | 12 +++- data/wild/maps/Route24.asm | 8 +-- data/wild/maps/Route25.asm | 6 +- engine/debug/debug_party.asm | 18 ++++++ maps/PewterCity.blk | 2 +- maps/Route24.blk | 2 +- scripts/Daycare.asm | 2 +- scripts/OaksLab.asm | 21 +++++++ scripts/Route24.asm | 70 ++++++++++++++++++++++ text/Route24.asm | 37 ++++++++++++ text/ViridianPreGym.asm | 17 +++--- 18 files changed, 187 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 4914b0a2..e6d1c736 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,7 @@ Improved Areas - Jessie and James have been backported from Yellow, appearing in Mt. Moon, Rocket Hideout, Pokemon Tower, and Silph Co. Additionally, they have a post-game fight. - Rock Tunnel has a more workable map, now being easier to go through and having new areas to explore. Includes a way to get renewable fossils, items, and other interesting bits and pieces. Overall, it makes Flash much more rewarding to bring, showing you where the items and content are instead of being an inconvenience. - Diglett's Cave has a more detailed map with Onix, Wiglett, and Wugtrio also appearing! It also has its beta music! +- Route 24 now features Damien, the Charmander trainer from Yellow, who only appears if Pikachu or Eevee are chosen. His text has been altered to be more accurate to his anime appearance. It also has a house where you can get a Fishing Rod. - Route 25 has been given a facelift, adding Bill's Lighthouse in place of the Sea Cottage. - The Fighting Dojo has been revamped, featuring a design reminiscent of the prototype versions; rough floors, the elder in the back, and more. Additionally, you can now get a Hitmontop as a third option. The Karate Master is also now treated somewhat more like a Gym Leader, having Gym Scaling and a Rematch system. - The Day Care now contains a PC and Melanie from Yellow. If you pick Pikachu or Eevee and beat Misty, Melanie will give you a Bulbasaur. diff --git a/constants/event_constants.asm b/constants/event_constants.asm index dd9b579d..cfde5ca8 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -4,7 +4,7 @@ const_def const EVENT_FOLLOWED_OAK_INTO_LAB const EVENT_GOT_BULBASAUR - const EVENT_GOT_CHARMANDER + const EVENT_54F ; Charmander const EVENT_HALL_OF_FAME_DEX_RATING const EVENT_GOT_SQUIRTLE const EVENT_PALLET_AFTER_GETTING_POKEBALLS diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 76868df5..8b39af01 100644 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -50,6 +50,7 @@ DEF SHOW EQU $15 const HS_ROUTE_22_RIVAL_2 ; 24 const HS_NUGGET_BRIDGE_GUY ; 25 const HS_ROUTE_24_ITEM ; 26 X + const HS_DAMIEN ; FC const HS_ROUTE_25_ITEM ; 27 X const HS_CACTUS ; 28 const HS_BRUNSWICK_ZAPDOS_G_1 ; 29 diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index 08965762..98afcb5c 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -322,6 +322,7 @@ Route22HS: Route24HS: db ROUTE_24, $01, SHOW ; HS_NUGGET_BRIDGE_GUY db ROUTE_24, $08, SHOW ; HS_ROUTE_24_ITEM + db ROUTE_24, $09, HIDE ; HS_DAMIEN Route25HS: db ROUTE_25, $0A, SHOW ; HS_ROUTE_25_ITEM BrunswickTrailHS: @@ -349,8 +350,6 @@ CeruleanCaveHS: db CERULEAN_CAVE_1F, $01, SHOW ; HS_CERULEAN_CAVE_1F_ITEM_1 db CERULEAN_CAVE_1F, $02, SHOW ; HS_CERULEAN_CAVE_1F_ITEM_2 db CERULEAN_CAVE_1F, $03, SHOW ; HS_CERULEAN_CAVE_1F_ITEM_3 -DaycareHS: - db DAYCARE, $03, SHOW ; HS_DAYCARE_BULBASAUR CelesteHillHS: db CELESTE_HILL, $01, SHOW ; HS_MOLTRES_G PokemonTower2FHS: @@ -609,4 +608,6 @@ RockTunnelB1FHS: db ROCK_TUNNEL_B1F, $0D, SHOW ; HS_ROCK_TUNNEL_B1F_WING MtMoonSquareHS: db MT_MOON_SQUARE, $04, SHOW ; HS_MT_MOON_CRATER_GUARD +DaycareHS: + db DAYCARE, $03, SHOW ; HS_DAYCARE_BULBASAUR assert_table_length NUM_HS_OBJECTS + 1 diff --git a/data/maps/objects/PewterCity.asm b/data/maps/objects/PewterCity.asm index ba65c753..219713b1 100644 --- a/data/maps/objects/PewterCity.asm +++ b/data/maps/objects/PewterCity.asm @@ -9,7 +9,6 @@ PewterCity_Object: warp_event 23, 17, PEWTER_MART, 1 warp_event 7, 29, PEWTER_SPEECH_HOUSE, 1 warp_event 13, 25, PEWTER_POKECENTER, 1 - warp_event 7, 11, ROUTE_12_SUPER_ROD_HOUSE, 1 def_bg_events bg_event 19, 29, 6 ; PewterCityText6 diff --git a/data/maps/objects/Route12SuperRodHouse.asm b/data/maps/objects/Route12SuperRodHouse.asm index 7fce7e31..bfa492f3 100644 --- a/data/maps/objects/Route12SuperRodHouse.asm +++ b/data/maps/objects/Route12SuperRodHouse.asm @@ -2,8 +2,8 @@ Route12SuperRodHouse_Object: db $a ; border block def_warp_events - warp_event 2, 7, LAST_MAP, 8 - warp_event 3, 7, LAST_MAP, 8 + warp_event 2, 7, LAST_MAP, 1 + warp_event 3, 7, LAST_MAP, 1 def_bg_events diff --git a/data/maps/objects/Route24.asm b/data/maps/objects/Route24.asm index 80dca821..3502696f 100644 --- a/data/maps/objects/Route24.asm +++ b/data/maps/objects/Route24.asm @@ -2,6 +2,7 @@ Route24_Object: db $2c ; border block def_warp_events + warp_event 5, 5, ROUTE_12_SUPER_ROD_HOUSE, 1 def_bg_events @@ -13,6 +14,7 @@ Route24_Object: object_event 11, 25, SPRITE_YOUNGSTER, STAY, LEFT, 5, OPP_YOUNGSTER, 4 object_event 10, 28, SPRITE_COOLTRAINER_F, STAY, RIGHT, 6, OPP_LASS, 8 object_event 11, 31, SPRITE_YOUNGSTER, STAY, LEFT, 7, OPP_BUG_CATCHER, 9 - object_event 10, 5, SPRITE_POKE_BALL, STAY, NONE, 8, TM_THUNDER_WAVE + object_event 18, 5, SPRITE_POKE_BALL, STAY, NONE, 8, TM_THUNDER_WAVE + object_event 9, 5, SPRITE_COOLTRAINER_M, STAY, DOWN, 9 ; Damien def_warps_to ROUTE_24 diff --git a/data/text/text_2.asm b/data/text/text_2.asm index 45204a22..5cf5e34e 100644 --- a/data/text/text_2.asm +++ b/data/text/text_2.asm @@ -684,6 +684,11 @@ _ViridianBlackboardPoisonText:: para "Poison lingers" line "after battles." + + para "If a #MON is" + line "badly poisoned," + cont "it could worsen" + cont "over time!" para "Use an ANTIDOTE" line "to cure poison!" @@ -693,6 +698,9 @@ _ViridianBlackboardPrlzText:: text "Paralysis could" line "make #MON" cont "moves misfire!" + + para "It even lowers" + line "their SPEED!" para "Paralysis remains" line "after battles." @@ -702,8 +710,8 @@ _ViridianBlackboardPrlzText:: prompt _ViridianBlackboardBurnText:: - text "A burn reduces" - line "power and speed." + text "A burn reduces a" + line "#MON's ATTACK." cont "It also causes" cont "ongoing damage." diff --git a/data/wild/maps/Route24.asm b/data/wild/maps/Route24.asm index 628937a9..329c474e 100644 --- a/data/wild/maps/Route24.asm +++ b/data/wild/maps/Route24.asm @@ -2,14 +2,14 @@ Route24WildMons: def_grass_wildmons 25 ; encounter rate db 13, ODDISH db 13, BELLSPROUT - db 12, PIDGEY + db 12, SPEAROW db 14, ODDISH db 14, BELLSPROUT db 10, ABRA - db 13, PIDGEY - db 14, PIDGEY + db 13, SPEAROW + db 14, SPEAROW db 12, ABRA - db 16, BUTTERFREE + db 16, PIDGEOTTO end_grass_wildmons def_water_wildmons 0 ; encounter rate diff --git a/data/wild/maps/Route25.asm b/data/wild/maps/Route25.asm index 6b9f10c3..99467e01 100644 --- a/data/wild/maps/Route25.asm +++ b/data/wild/maps/Route25.asm @@ -1,15 +1,15 @@ Route25WildMons: def_grass_wildmons 15 ; encounter rate db 14, BELLSPROUT - db 13, PIDGEY + db 13, SPEAROW db 12, VENONAT db 14, ODDISH db 14, ODDISH db 10, ABRA db 13, VENONAT - db 14, PIDGEY + db 14, SPEAROW db 12, ABRA - db 16, BEEDRILL + db 16, PIDGEOTTO end_grass_wildmons def_water_wildmons 0 ; encounter rate diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm index 92c9a1f6..7b3eeafa 100644 --- a/engine/debug/debug_party.asm +++ b/engine/debug/debug_party.asm @@ -163,8 +163,26 @@ IF DEF(_DEBUG) ld a, STARTER5 ld [hl], a + ; This is used to display Damien and Officer Jenny for Charmander and Squirtle, respectively. + ; It was set up in this way to easily add new things for the mode. + ; By default, all Pikachu/Eevee Mode things are hidden - more efficient. + ld hl, DebugPikachuEeveeShows +.loop + ld a, [hli] + cp -1 + ret z + push hl + ld [wMissableObjectIndex], a + predef ShowObject + pop hl + jr .loop + ret +DebugPikachuEeveeShows: + db HS_DAMIEN ; Charmander guy + db -1 ; end + DebugSetPokedexEntries: ld b, wPokedexOwnedEnd - wPokedexOwned ld a, %11111111 diff --git a/maps/PewterCity.blk b/maps/PewterCity.blk index 30934ee4..b199480b 100644 --- a/maps/PewterCity.blk +++ b/maps/PewterCity.blk @@ -10,7 +10,7 @@ ttn,)/7}:~B/B,) -n,)tttt>??,) +n,)tttttt>??,) diff --git a/maps/Route24.blk b/maps/Route24.blk index 21de9390..cce58ca9 100644 --- a/maps/Route24.blk +++ b/maps/Route24.blk @@ -1,4 +1,4 @@ -,,,,,,,,,,,+WWWWWWWW,)1111G1X +,,,,,,,,,,,+WWWWWWWW,)11G1X ,)\K1Z,)11111111,) diff --git a/scripts/Daycare.asm b/scripts/Daycare.asm index 211cb638..abe5ec26 100644 --- a/scripts/Daycare.asm +++ b/scripts/Daycare.asm @@ -312,7 +312,7 @@ DaycareMelanie: and a jr nz, .refused ; imagine refusing a bulbasaur tbh - lb bc, BULBASAUR, 5 ; load the bulbasaur + lb bc, BULBASAUR, 10 ; load the bulbasaur call GivePokemon ; attempt to give the bulbasaur jr nc, .fullParty ; if it's fucked just go here ld a, HS_DAYCARE_BULBASAUR ; hide the bulbasaur diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm index 302110a3..128d51fc 100644 --- a/scripts/OaksLab.asm +++ b/scripts/OaksLab.asm @@ -885,6 +885,7 @@ OaksLabText4: ; $6 = Eevee OaksLabTextPikachu: text_asm + call PikachuEeveeMode ld a, STARTER5 ld [wRivalStarterTemp], a ld a, $8 @@ -895,6 +896,7 @@ OaksLabTextPikachu: OaksLabTextEevee: text_asm + call PikachuEeveeMode ld a, STARTER4 ld [wRivalStarterTemp], a ld a, $7 @@ -1345,3 +1347,22 @@ OaksLabText10: OaksLabText_1d405: text_far _OaksLabText_1d405 text_end + +; This is used to display Damien and Officer Jenny for Charmander and Squirtle, respectively. +; It was set up in this way to easily add new things for the mode. +; By default, all Pikachu/Eevee Mode things are hidden - more efficient. +PikachuEeveeMode: + ld hl, PikachuEeveeShows +.loop + ld a, [hli] + cp -1 + ret z + push hl + ld [wMissableObjectIndex], a + predef ShowObject + pop hl + jr .loop + +PikachuEeveeShows: + db HS_DAMIEN ; Charmander guy + db -1 ; end diff --git a/scripts/Route24.asm b/scripts/Route24.asm index 5cbb78a6..8ca43def 100644 --- a/scripts/Route24.asm +++ b/scripts/Route24.asm @@ -85,6 +85,7 @@ Route24_TextPointers: dw Route24Text6 dw Route24Text7 dw PickUpItemText + dw Route24Damian Route24TrainerHeaders: def_trainers 2 @@ -278,3 +279,72 @@ Route24EndBattleText6: Route24AfterBattleText6: text_far _Route24AfterBattleText6 text_end + +Route24Damian: + text_asm + CheckEvent EVENT_54F + jr nz, .asm_515d5 + ld hl, Route24Text_515de + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_515d0 + ld a, CHARMANDER + ld [wd11e], a + ld [wcf91], a + call GetMonName + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + lb bc, CHARMANDER, 10 + call GivePokemon + jp nc, .fullParty + ld a, [wAddedToParty] + and a + call z, WaitForTextScrollButtonPress + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, Route24Text_515e3 + call PrintText + SetEvent EVENT_54F + jp TextScriptEnd + +.asm_515d5 + ld hl, Route24Text_515ee + jr .asm_515d8 + +.fullParty + ld hl, DamienFullParty + call PrintText + ld a, [wSimulatedJoypadStatesEnd] ; ensuring that the text doesn't autoskip. + and a ; yep, here too. + call z, WaitForTextScrollButtonPress ; and here. + call EnableAutoTextBoxDrawing ; and here. + ; falls through to the next quote. +.asm_515d0 + ld hl, Route24Text_515e9 + jr .asm_515d8 +.asm_515d8 + call PrintText + jp TextScriptEnd + +Route24Text_515de: + text_far _Route24DamienText1 + text_end + +Route24Text_515e3: + text_far _Route24DamienText2 + text_waitbutton + text_end + +Route24Text_515e9: + text_far _Route24DamienText3 + text_end + +Route24Text_515ee: + text_far _Route24DamienText4 + text_end + +DamienFullParty: + text_far _DamienFullParty + text_end diff --git a/text/Route24.asm b/text/Route24.asm index 5dc4ab79..8ed4c942 100644 --- a/text/Route24.asm +++ b/text/Route24.asm @@ -65,3 +65,40 @@ _Route24BattleText1:: text "I saw your feat" line "from the grass!" done + +_Route24DamienText1:: + text "This CHARMANDER" + line "is pathetic!" + + para "It couldn't beat" + line "the weakest of" + cont "opponents!" + + para "I should release" + line "it. It keeps" + cont "following me." + + para "Huh? You want" + line "it?" + done + +_Route24DamienText2:: + text "Sure. Take it." + done + +_Route24DamienText3:: + text "I guess I'll" + line "leave it on some" + cont "rock. Ha!" + done + +_Route24DamienText4:: + text "How's it doing?" + line "It couldn't even" + cont "beat a KRABBY!" + done + +_DamienFullParty:: + text "Huh? Your PARTY" + line "is full?" + done diff --git a/text/ViridianPreGym.asm b/text/ViridianPreGym.asm index 7070995d..d4fa3f3a 100644 --- a/text/ViridianPreGym.asm +++ b/text/ViridianPreGym.asm @@ -140,15 +140,18 @@ _ViridianPreGymSign2:: _ViridianPreGymSign3:: text "TRAINER TIPS" - para "Paralysis lowers" - line "a #MON's SPEED!" + para "If a #MON is" + line "confused, it will" + cont "sometimes hurt" + cont "itself!" - para "Burns lower a" - line "#MON's ATTACK!" + para "It does not remain" + line "after battles." - para "Cure them with" - line "PARALYZ HEAL and" - cont "BURN HEAL!" + para "It can also be" + cont "cured by swapping" + cont "your #MON during" + cont "the battle!" done _ViridianPreGymSign4::