jep-hack/engine/events/fossil_scientist.asm
2024-07-11 23:42:02 -04:00

288 lines
6.3 KiB
NASM

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 .GiveFeradactyl
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, FERADACTYL
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
.GiveFeradactyl:
readvar VAR_PARTYCOUNT
ifequal PARTY_LENGTH, .NoRoom
clearevent EVENT_GAVE_SCIENTIST_WING_FOSSIL
writetext FossilScientistDoneText
promptbutton
getmonname STRING_BUFFER_3, FERADACTYL
writetext FossilScientistReceiveText
playsound SFX_CAUGHT_MON
waitsfx
waitbutton
writetext FossilScientistMonText
givepoke FERADACTYL, 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