Groundwork for Pocket Lapras

This is still a bit glitchy:
- For some reason, unrelated text pops up after something is printed. I don't know why.
- Pocket Lapras needs to close the menu post-use. Probably very easy, something in engine\items\item_effects.
- The Pocket Lapras needs to default to Lapras as the text. This is a bit difficult as the item effect is actually used by Surf itself, so you may need to add a function that the Pocket Lapras loads before jumping to the real function (basically just loading the LAPRAS species ID for the text, ask me if you need help)
- Cycling Road needs to run the routine to force you onto the bike after using the Pocket Lapras, or simply have it check for if you're on a ForceBikeSurf map and yell at you. Both work.

I don't have time to finish this right now but it's at least obtainable.
This commit is contained in:
Llinos Evans 2024-05-13 17:30:12 +01:00
parent f675c1ad9b
commit dd7130c489
4 changed files with 82 additions and 6 deletions

View file

@ -207,6 +207,7 @@
const EVENT_GAVE_FOSSIL_TO_LAB const EVENT_GAVE_FOSSIL_TO_LAB
const EVENT_LAB_STILL_REVIVING_FOSSIL const EVENT_LAB_STILL_REVIVING_FOSSIL
const EVENT_LAB_HANDING_OVER_FOSSIL_MON const EVENT_LAB_HANDING_OVER_FOSSIL_MON
const EVENT_GOT_POCKET_LAPRAS
; Saffron City events ; Saffron City events
const_next $340 const_next $340

View file

@ -6,7 +6,7 @@ KeyItemFlags:
dbit FALSE ; POKE_BALL dbit FALSE ; POKE_BALL
dbit TRUE ; TOWN_MAP dbit TRUE ; TOWN_MAP
dbit TRUE ; BICYCLE dbit TRUE ; BICYCLE
dbit TRUE ; SURFBOARD dbit TRUE ; LAPRAS' BALL - SURFBOARD
dbit FALSE ; SAFARI_BALL dbit FALSE ; SAFARI_BALL
dbit TRUE ; POKEDEX dbit TRUE ; POKEDEX
dbit FALSE ; MOON_STONE dbit FALSE ; MOON_STONE

View file

@ -10,14 +10,15 @@ CinnabarIsland_Object:
warp_event 14, 11, CINNABAR_VOLCANO_FLOORS, 1 warp_event 14, 11, CINNABAR_VOLCANO_FLOORS, 1
def_bg_events def_bg_events
bg_event 11, 15, 3 ; CinnabarIslandText3 bg_event 11, 15, 4 ; CinnabarIslandText3
bg_event 22, 19, 4 ; MartSignText bg_event 22, 19, 5 ; MartSignText
bg_event 16, 17, 5 ; PokeCenterSignText bg_event 16, 17, 6 ; PokeCenterSignText
bg_event 9, 23, 6 ; CinnabarIslandText6 bg_event 9, 23, 7 ; CinnabarIslandText6
bg_event 23, 13, 7 ; CinnabarIslandText7 bg_event 23, 13, 8 ; CinnabarIslandText7
def_object_events def_object_events
object_event 11, 18, SPRITE_GIRL, WALK, LEFT_RIGHT, 1 ; person object_event 11, 18, SPRITE_GIRL, WALK, LEFT_RIGHT, 1 ; person
object_event 17, 20, SPRITE_GAMBLER, STAY, NONE, 2 ; person object_event 17, 20, SPRITE_GAMBLER, STAY, NONE, 2 ; person
object_event 25, 18, SPRITE_COOLTRAINER_M, WALK, UP_DOWN, 3 ; Pocket Lapras
def_warps_to CINNABAR_ISLAND def_warps_to CINNABAR_ISLAND

View file

@ -53,6 +53,7 @@ CinnabarIslandScript1:
CinnabarIsland_TextPointers: CinnabarIsland_TextPointers:
dw CinnabarIslandText1 dw CinnabarIslandText1
dw CinnabarIslandText2 dw CinnabarIslandText2
dw CinnabarPocketLapras
dw CinnabarIslandText3 dw CinnabarIslandText3
dw MartSignText dw MartSignText
dw PokeCenterSignText dw PokeCenterSignText
@ -83,3 +84,76 @@ CinnabarIslandText6:
CinnabarIslandText7: CinnabarIslandText7:
text_far _CinnabarIslandText7 text_far _CinnabarIslandText7
text_end text_end
_CinnabarPocketLapras1:
text "Bah, this LAPRAS"
line "just doesn't"
cont "wanna fight! Can"
cont "you believe that?"
para "All it does is"
line "SURF. My GYARADOS"
cont "can do that!"
para "Here. Take it."
line "I can't stand"
cont "looking at its"
cont "big ol' eyes."
done
_PocketLaprasNoRoomText:
text "You don't have"
line "room either?"
para "Well, it's not"
line "going anywhere..."
done
_ReceivedPocketLaprasText:
text "Take care of that"
line "LAPRAS though,"
cont "yeah? They're"
cont "an endangered"
cont "species."
para "You should stay"
line "safe, too." ; haha, llinos, you sly dog
done
; for some reason it crashed super hard if I didn't do this.
CinnabarPocketLapras1:
text_far _CinnabarPocketLapras1
text_end
PocketLaprasNoRoomText:
text_far _PocketLaprasNoRoomText
text_end
ReceivedPocketLaprasText:
text_far _ReceivedPocketLaprasText
text_end
CinnabarPocketLapras:
text_asm
CheckEvent EVENT_GOT_POCKET_LAPRAS
jr nz, .skip
ld hl, CinnabarPocketLapras1
call PrintText
call TheAutoskipStopinator ; it's been a while but i didnt forget how annoying this was
lb bc, SURFBOARD, 1
call GiveItem
jr nc, .bag_full
SetEvent EVENT_GOT_POCKET_LAPRAS ; if you get here, it's done. Using this to load all three texts with one PrintText instruction
sound_get_key_item
ld hl, ReceivedPocketLaprasText
jr .end
.bag_full
ld hl, PocketLaprasNoRoomText
jr .end
.skip
ld hl, ReceivedPocketLaprasText
; fallthrough
.end
call PrintText
call TheAutoskipStopinator
jp TextScriptEnd