Fossil Scientist groundwork

This means the ROM won't build until Feradactyl and Decilla are implemented. Thanks Misty!

Event will activate on any NPC so long as you do this:
```
	faceplayer
	opentext
	special FossilScientist
	waitbutton
	closetext
	end
```
This commit is contained in:
Llinos Evans 2024-07-11 22:19:08 +01:00
parent 0923b49ca4
commit 68436820a1
4 changed files with 295 additions and 2 deletions

View file

@ -186,3 +186,4 @@ SpecialsPointers::
; Tradeback NPC tutorial
add_special TradebackNPC
add_special FossilScientist

View file

@ -0,0 +1,287 @@
FossilScientistGuy::
faceplayer
opentext
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; remove the next two lines to immediately receive the fossil
iftrue .GaveScientistFossil
checkevent EVENT_GAVE_SCIENTIST_OLD_AMBER
iftrue .GiveDecilla
checkevent EVENT_GAVE_SCIENTIST_DOME_FOSSIL
iftrue .GiveKabuto
checkevent EVENT_GAVE_SCIENTIST_HELIX_FOSSIL
iftrue .GiveOmanyte
checkevent EVENT_GAVE_SCIENTIST_CLUB_FOSSIL
iftrue .GiveXylodon
checkevent EVENT_GAVE_SCIENTIST_WING_FOSSIL
iftrue .GiveFeraldactyl
writetext FossilScientistIntroText
waitbutton
loadmenu .MoveMenuHeader
verticalmenu
closewindow
ifequal REVIVE_OLD_AMBER, .OldAmber
ifequal REVIVE_DOME_FOSSIL, .DomeFossil
ifequal REVIVE_HELIX_FOSSIL, .HelixFossil
ifequal REVIVE_CLUB_FOSSIL, .ClubFossil
ifequal REVIVE_WING_FOSSIL, .WingFossil
sjump .No
.OldAmber
checkitem OLD_AMBER
iffalse .No
getmonname STRING_BUFFER_3, DECILLA
writetext FossilScientistMonText
promptbutton
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; remove this to immediately receive the fossil
setevent EVENT_GAVE_SCIENTIST_OLD_AMBER
takeitem OLD_AMBER
writetext FossilScientistGiveText
waitbutton
sjump .GaveScientistFossil
.DomeFossil:
checkitem DOME_FOSSIL
iffalse .No
getmonname STRING_BUFFER_3, KABUTO
writetext FossilScientistMonText
promptbutton
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; remove this to immediately receive the fossil
setevent EVENT_GAVE_SCIENTIST_DOME_FOSSIL
takeitem DOME_FOSSIL
opentext
writetext FossilScientistGiveText
waitbutton
sjump .GaveScientistFossil
.HelixFossil:
checkitem HELIX_FOSSIL
iffalse .No
getmonname STRING_BUFFER_3, OMANYTE
writetext FossilScientistMonText
promptbutton
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; remove this to immediately receive the fossil
setevent EVENT_GAVE_SCIENTIST_HELIX_FOSSIL
takeitem HELIX_FOSSIL
writetext FossilScientistGiveText
waitbutton
sjump .GaveScientistFossil
.ClubFossil:
checkitem HELIX_FOSSIL
iffalse .No
getmonname STRING_BUFFER_3, XYLODON
writetext FossilScientistMonText
promptbutton
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; remove this to immediately receive the fossil
setevent EVENT_GAVE_SCIENTIST_CLUB_FOSSIL
takeitem HELIX_FOSSIL
writetext FossilScientistGiveText
waitbutton
sjump .GaveScientistFossil
.WingFossil:
checkitem HELIX_FOSSIL
iffalse .No
getmonname STRING_BUFFER_3, FERODACTYL
writetext FossilScientistMonText
promptbutton
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 ; remove this to immediately receive the fossil
setevent EVENT_GAVE_SCIENTIST_WING_FOSSIL
takeitem HELIX_FOSSIL
writetext FossilScientistGiveText
waitbutton
sjump .GaveScientistFossil
.No
writetext FossilScientistNoText
waitbutton
closetext
end
.GaveScientistFossil:
writetext FossilScientistTimeText
waitbutton
closetext
; older versions will use FadeBlackQuickly below instead
; special FadeOutToBlack ; uncomment the next five lines to immediately receive the fossil
; special ReloadSpritesNoPalettes
; playsound SFX_WARP_TO
; waitsfx
; pause 35
end ; replace this with "sjump FossilScientist" to immediately receive the fossil
.GiveDecilla:
readvar VAR_PARTYCOUNT
ifequal PARTY_LENGTH, .NoRoom
clearevent EVENT_GAVE_SCIENTIST_OLD_AMBER
writetext FossilScientistDoneText
promptbutton
getmonname STRING_BUFFER_3, DECILLA
writetext FossilScientistReceiveText
playsound SFX_CAUGHT_MON
waitsfx
waitbutton
writetext FossilScientistMonText
givepoke DECILLA, 30
closetext
end
.GiveKabuto:
readvar VAR_PARTYCOUNT
ifequal PARTY_LENGTH, .NoRoom
clearevent EVENT_GAVE_SCIENTIST_DOME_FOSSIL
writetext FossilScientistDoneText
promptbutton
getmonname STRING_BUFFER_3, KABUTO
writetext FossilScientistReceiveText
playsound SFX_CAUGHT_MON
waitsfx
waitbutton
writetext FossilScientistMonText
givepoke KABUTO, 30
closetext
end
.GiveOmanyte:
readvar VAR_PARTYCOUNT
ifequal PARTY_LENGTH, .NoRoom
clearevent EVENT_GAVE_SCIENTIST_HELIX_FOSSIL
writetext FossilScientistDoneText
promptbutton
getmonname STRING_BUFFER_3, OMANYTE
writetext FossilScientistReceiveText
playsound SFX_CAUGHT_MON
waitsfx
waitbutton
writetext FossilScientistMonText
givepoke OMANYTE, 30
closetext
end
.GiveXylodon:
readvar VAR_PARTYCOUNT
ifequal PARTY_LENGTH, .NoRoom
clearevent EVENT_GAVE_SCIENTIST_CLUB_FOSSIL
writetext FossilScientistDoneText
promptbutton
getmonname STRING_BUFFER_3, XYLODON
writetext FossilScientistReceiveText
playsound SFX_CAUGHT_MON
waitsfx
waitbutton
writetext FossilScientistMonText
givepoke XYLODON, 30
closetext
end
.GiveFeraldactyl:
readvar VAR_PARTYCOUNT
ifequal PARTY_LENGTH, .NoRoom
clearevent EVENT_GAVE_SCIENTIST_WING_FOSSIL
writetext FossilScientistDoneText
promptbutton
getmonname STRING_BUFFER_3, FERODACTYL
writetext FossilScientistReceiveText
playsound SFX_CAUGHT_MON
waitsfx
waitbutton
writetext FossilScientistMonText
givepoke FERODACTYL, 30
closetext
end
.NoRoom:
writetext FossilScientistPartyFullText
waitbutton
closetext
end
.MoveMenuHeader:
db MENU_BACKUP_TILES ; flags
menu_coords 0, 2, 15, TEXTBOX_Y - 1
dw .MenuData
db 1 ; default option
.MenuData:
db STATICMENU_CURSOR ; flags
db 6 ; items
db "OLD AMBER@"
db "DOME FOSSIL@"
db "HELIX FOSSIL@"
db "CLUB FOSSIL@"
db "WING FOSSIL@"
db "CANCEL@"
FossilScientistIntroText:
text "Hiya!"
para "I am important"
line "doctor!"
para "I study here rare"
line "#MON fossils!"
para "You! Have you a"
line "fossil for me?"
done
FossilScientistNoText:
text "No! Is too bad!"
para "You come again!"
done
FossilScientistPartyFullText:
text "No! Is too bad!"
para "Your party is"
line "already full!"
done
FossilScientistTimeText:
text "I take a little"
line "time!"
para "You go for walk a"
line "little while!"
done
FossilScientistDoneText:
text "Where were you?"
para "Your fossil is"
line "back to life!"
done
FossilScientistMonText:
text "Oh! That is"
line "a fossil!"
para "It is fossil of"
line "@"
text_ram wStringBuffer3
text ", a"
para "#MON that is"
line "already extinct!"
para "My Resurrection"
line "Machine will make"
cont "that #MON live"
cont "again!"
done
FossilScientistGiveText:
text "So! You hurry and"
line "give me that!"
para "<PLAYER> handed"
line "over the fossil."
done
FossilScientistReceiveText:
text "<PLAYER> received"
line "@"
text_ram wStringBuffer3
text "!"
done

View file

@ -425,3 +425,7 @@ TrainerHouse:
TradebackNPC:
farcall TradebackGuy
ret
FossilScientist:
farcall FossilScientistGuy
ret

View file

@ -475,6 +475,7 @@ INCLUDE "engine/events/play_slow_cry.asm"
INCLUDE "engine/link/time_capsule.asm"
INCLUDE "engine/link/time_capsule_2.asm"
INCLUDE "engine/events/magikarp.asm"
INCLUDE "engine/events/fossil_scientist.asm"
SECTION "bank3Econtcont", ROMX