pokecrystal/maps/KurtsHouse.asm

701 lines
15 KiB
NASM

object_const_def ; object_event constants
const KURTSHOUSE_KURT1
const KURTSHOUSE_TWIN1
const KURTSHOUSE_SLOWPOKE
const KURTSHOUSE_KURT2
const KURTSHOUSE_TWIN2
KurtsHouse_MapScripts:
db 0 ; scene scripts
db 1 ; callbacks
callback MAPCALLBACK_OBJECTS, .KurtCallback
.KurtCallback:
checkevent EVENT_CLEARED_SLOWPOKE_WELL
iffalse .Done
checkevent EVENT_FOREST_IS_RESTLESS
iftrue .Done
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .MakingBalls
disappear KURTSHOUSE_KURT2
appear KURTSHOUSE_KURT1
disappear KURTSHOUSE_TWIN2
appear KURTSHOUSE_TWIN1
endcallback
.MakingBalls:
disappear KURTSHOUSE_KURT1
appear KURTSHOUSE_KURT2
disappear KURTSHOUSE_TWIN1
appear KURTSHOUSE_TWIN2
.Done:
endcallback
Kurt1:
faceplayer
opentext
checkevent EVENT_KURT_GAVE_YOU_LURE_BALL
iftrue .GotLureBall
checkevent EVENT_CLEARED_SLOWPOKE_WELL
iftrue .ClearedSlowpokeWell
writetext KurtsHouseKurtMakingBallsMustWaitText
waitbutton
closetext
special FadeOutMusic
setevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
readvar VAR_FACING
ifequal UP, .RunAround
turnobject PLAYER, DOWN
playsound SFX_FLY
applymovement KURTSHOUSE_KURT1, KurtsHouseKurtExitHouseMovement
playsound SFX_EXIT_BUILDING
disappear KURTSHOUSE_KURT1
waitsfx
special RestartMapMusic
end
.RunAround:
turnobject PLAYER, DOWN
playsound SFX_FLY
applymovement KURTSHOUSE_KURT1, KurtsHouseKurtGoAroundPlayerThenExitHouseMovement
playsound SFX_EXIT_BUILDING
disappear KURTSHOUSE_KURT1
waitsfx
special RestartMapMusic
end
.ClearedSlowpokeWell:
writetext KurtsHouseKurtHonoredToMakeBallsText
promptbutton
verbosegiveitem LURE_BALL
iffalse .NoRoomForBall
setevent EVENT_KURT_GAVE_YOU_LURE_BALL
.GotLureBall:
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
iftrue .WaitForApricorns
checkevent EVENT_GAVE_KURT_RED_APRICORN
iftrue .GiveLevelBall
checkevent EVENT_GAVE_KURT_BLU_APRICORN
iftrue .GiveLureBall
checkevent EVENT_GAVE_KURT_YLW_APRICORN
iftrue .GiveMoonBall
checkevent EVENT_GAVE_KURT_GRN_APRICORN
iftrue .GiveFriendBall
checkevent EVENT_GAVE_KURT_WHT_APRICORN
iftrue .GiveFastBall
checkevent EVENT_GAVE_KURT_BLK_APRICORN
iftrue .GiveHeavyBall
checkevent EVENT_GAVE_KURT_PNK_APRICORN
iftrue .GiveLoveBall
checkevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
iftrue .CanGiveGSBallToKurt
.NoGSBall:
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
iftrue .CheckApricorns
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3
iftrue .CheckApricorns
writetext KurtsHouseKurtBallsFromApricornsText
waitbutton
.CheckApricorns:
checkitem RED_APRICORN
iftrue .AskApricorn
checkitem BLU_APRICORN
iftrue .AskApricorn
checkitem YLW_APRICORN
iftrue .AskApricorn
checkitem GRN_APRICORN
iftrue .AskApricorn
checkitem WHT_APRICORN
iftrue .AskApricorn
checkitem BLK_APRICORN
iftrue .AskApricorn
checkitem PNK_APRICORN
iftrue .AskApricorn
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
iftrue .ThatTurnedOutGreat
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3
iftrue .IMakeBallsFromApricorns
closetext
end
.IMakeBallsFromApricorns:
writetext KurtsHouseKurtBallsFromApricornsText
waitbutton
closetext
end
.AskApricorn:
writetext KurtsHouseKurtAskYouHaveAnApricornText
promptbutton
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_3
special SelectApricornForKurt
ifequal FALSE, .Cancel
ifequal BLU_APRICORN, .Blu
ifequal YLW_APRICORN, .Ylw
ifequal GRN_APRICORN, .Grn
ifequal WHT_APRICORN, .Wht
ifequal BLK_APRICORN, .Blk
ifequal PNK_APRICORN, .Pnk
; .Red
setevent EVENT_GAVE_KURT_RED_APRICORN
sjump .GaveKurtApricorns
.Blu:
setevent EVENT_GAVE_KURT_BLU_APRICORN
sjump .GaveKurtApricorns
.Ylw:
setevent EVENT_GAVE_KURT_YLW_APRICORN
sjump .GaveKurtApricorns
.Grn:
setevent EVENT_GAVE_KURT_GRN_APRICORN
sjump .GaveKurtApricorns
.Wht:
setevent EVENT_GAVE_KURT_WHT_APRICORN
sjump .GaveKurtApricorns
.Blk:
setevent EVENT_GAVE_KURT_BLK_APRICORN
sjump .GaveKurtApricorns
.Pnk:
setevent EVENT_GAVE_KURT_PNK_APRICORN
sjump .GaveKurtApricorns
.GaveKurtApricorns:
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
setflag ENGINE_KURT_MAKING_BALLS
.WaitForApricorns:
writetext KurtsHouseKurtItWillTakeADayText
waitbutton
closetext
end
.Cancel:
writetext KurtsHouseKurtThatsALetdownText
waitbutton
closetext
end
._ThatTurnedOutGreat:
setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
.ThatTurnedOutGreat:
writetext KurtsHouseKurtTurnedOutGreatText
waitbutton
.NoRoomForBall:
closetext
end
.GiveLevelBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitemvar LEVEL_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_RED_APRICORN
sjump ._ThatTurnedOutGreat
.GiveLureBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitemvar LURE_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_BLU_APRICORN
sjump ._ThatTurnedOutGreat
.GiveMoonBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitemvar MOON_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_YLW_APRICORN
sjump ._ThatTurnedOutGreat
.GiveFriendBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitemvar FRIEND_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_GRN_APRICORN
sjump ._ThatTurnedOutGreat
.GiveFastBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitemvar FAST_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_WHT_APRICORN
sjump ._ThatTurnedOutGreat
.GiveHeavyBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitemvar HEAVY_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_BLK_APRICORN
sjump ._ThatTurnedOutGreat
.GiveLoveBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitemvar LOVE_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_PNK_APRICORN
sjump ._ThatTurnedOutGreat
.CanGiveGSBallToKurt:
checkevent EVENT_GAVE_GS_BALL_TO_KURT
iftrue .GaveGSBallToKurt
checkitem GS_BALL
iffalse .NoGSBall
writetext KurtsHouseKurtWhatIsThatText
waitbutton
closetext
setevent EVENT_GAVE_GS_BALL_TO_KURT
takeitem GS_BALL
setflag ENGINE_KURT_MAKING_BALLS
end
.GaveGSBallToKurt:
checkflag ENGINE_KURT_MAKING_BALLS
iffalse .NotMakingBalls
writetext KurtsHouseKurtImCheckingItNowText
waitbutton
writetext KurtsHouseKurtAhHaISeeText
waitbutton
closetext
end
.NotMakingBalls:
writetext KurtsHouseKurtThisBallStartedToShakeText
waitbutton
closetext
setevent EVENT_FOREST_IS_RESTLESS
clearevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
clearevent EVENT_GAVE_GS_BALL_TO_KURT
special FadeOutMusic
pause 20
showemote EMOTE_SHOCK, KURTSHOUSE_KURT1, 30
readvar VAR_FACING
ifequal UP, .GSBallRunAround
turnobject PLAYER, DOWN
playsound SFX_FLY
applymovement KURTSHOUSE_KURT1, KurtsHouseKurtExitHouseMovement
sjump .KurtHasLeftTheBuilding
.GSBallRunAround:
turnobject PLAYER, DOWN
playsound SFX_FLY
applymovement KURTSHOUSE_KURT1, KurtsHouseKurtGoAroundPlayerThenExitHouseMovement
.KurtHasLeftTheBuilding:
playsound SFX_EXIT_BUILDING
disappear KURTSHOUSE_KURT1
clearevent EVENT_AZALEA_TOWN_KURT
waitsfx
special RestartMapMusic
setmapscene AZALEA_TOWN, SCENE_AZALEATOWN_KURT_RETURNS_GS_BALL
end
Kurt2:
faceplayer
opentext
checkevent EVENT_GAVE_GS_BALL_TO_KURT
iftrue KurtScript_ImCheckingItNow
KurtMakingBallsScript:
checkevent EVENT_BUGGING_KURT_TOO_MUCH
iffalse Script_FirstTimeBuggingKurt
writetext KurtsHouseKurtDontBotherMeText
waitbutton
closetext
turnobject KURTSHOUSE_KURT2, UP
end
Script_FirstTimeBuggingKurt:
writetext KurtsHouseKurtGranddaughterHelpingWorkFasterText
waitbutton
closetext
turnobject KURTSHOUSE_KURT2, UP
setevent EVENT_BUGGING_KURT_TOO_MUCH
end
KurtScript_ImCheckingItNow:
writetext KurtsHouseKurtImCheckingItNowText
waitbutton
turnobject KURTSHOUSE_KURT2, UP
writetext KurtsHouseKurtAhHaISeeText
waitbutton
closetext
end
KurtsGranddaughter1:
faceplayer
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
iftrue KurtsGranddaughter2Subscript
checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
iftrue KurtsGranddaughterFunScript
checkevent EVENT_FOREST_IS_RESTLESS
iftrue .Lonely
checkevent EVENT_FAST_SHIP_FIRST_TIME
iftrue .Dad
checkevent EVENT_CLEARED_SLOWPOKE_WELL
iftrue .SlowpokeBack
checkevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
iftrue .Lonely
opentext
writetext KurtsGranddaughterSlowpokeGoneText
waitbutton
closetext
end
.SlowpokeBack:
opentext
writetext KurtsGranddaughterSlowpokeBackText
waitbutton
closetext
end
.Lonely:
opentext
writetext KurtsGranddaughterLonelyText
waitbutton
closetext
end
.Dad:
opentext
writetext KurtsGranddaughterDadText
waitbutton
closetext
end
KurtsGranddaughter2:
faceplayer
KurtsGranddaughter2Subscript:
opentext
checkevent EVENT_GAVE_GS_BALL_TO_KURT
iftrue .GSBall
writetext KurtsGranddaughterHelpText
waitbutton
closetext
turnobject KURTSHOUSE_TWIN2, RIGHT
end
.GSBall:
writetext KurtsGranddaughterGSBallText
waitbutton
closetext
turnobject KURTSHOUSE_TWIN2, RIGHT
end
KurtsGranddaughterFunScript:
opentext
writetext KurtsGranddaughterFunText
waitbutton
closetext
end
KurtsHouseSlowpoke:
faceplayer
opentext
writetext KurtsHouseSlowpokeText
cry SLOWPOKE
waitbutton
closetext
end
KurtsHouseOakPhoto:
jumptext KurtsHouseOakPhotoText
KurtsHouseCelebiStatue:
jumptext KurtsHouseCelebiStatueText
KurtsHouseBookshelf:
jumpstd DifficultBookshelfScript
KurtsHouseRadio:
jumpstd Radio2Script
KurtsHouseKurtExitHouseMovement:
big_step DOWN
big_step DOWN
big_step DOWN
big_step DOWN
big_step DOWN
step_end
KurtsHouseKurtGoAroundPlayerThenExitHouseMovement:
big_step RIGHT
big_step DOWN
big_step DOWN
big_step DOWN
big_step DOWN
big_step DOWN
step_end
KurtsHouseKurtMakingBallsMustWaitText:
text "Hm? Who are you?"
para "<PLAYER>, eh? You"
line "want me to make"
cont "some BALLS?"
para "Sorry, but that'll"
line "have to wait."
para "Do you know TEAM"
line "ROCKET? Ah, don't"
para "worry. I'll tell"
line "you anyhow."
para "TEAM ROCKET's an"
line "evil gang that"
para "uses #MON for"
line "their dirty work."
para "They're supposed"
line "to have disbanded"
cont "three years ago."
para "Anyway, they're at"
line "the WELL, cutting"
para "off SLOWPOKETAILS"
line "for sale!"
para "So I'm going to"
line "go give them a"
cont "lesson in pain!"
para "Hang on, SLOWPOKE!"
line "Old KURT is on his"
cont "way!"
done
KurtsHouseKurtHonoredToMakeBallsText:
text "KURT: Hi, <PLAYER>!"
para "You handled your-"
line "self like a real"
cont "hero at the WELL."
para "I like your style!"
para "I would be honored"
line "to make BALLS for"
para "a trainer like"
line "you."
para "This is all I have"
line "now, but take it."
done
KurtsHouseKurtBallsFromApricornsText:
text "KURT: I make BALLS"
line "from APRICORNS."
para "Collect them from"
line "trees and bring"
cont "'em to me."
para "I'll make BALLS"
line "out of them."
done
KurtsHouseKurtAskYouHaveAnApricornText:
text "KURT: You have an"
line "APRICORN for me?"
para "Fine! I'll turn it"
line "into a BALL."
done
KurtsHouseKurtItWillTakeADayText:
text "KURT: It'll take a"
line "day to make you a"
para "BALL. Come back"
line "for it later."
done
KurtsHouseKurtThatsALetdownText:
text "KURT: Oh…"
line "That's a letdown."
done
KurtsHouseKurtDontBotherMeText:
text "KURT: I'm working!"
line "Don't bother me!"
done
KurtsHouseKurtJustFinishedYourBallText:
text "KURT: Ah, <PLAYER>!"
line "I just finished"
cont "your BALL. Here!"
done
KurtsHouseKurtTurnedOutGreatText:
text "KURT: That turned"
line "out great."
para "Try catching"
line "#MON with it."
done
KurtsHouseKurtGranddaughterHelpingWorkFasterText:
text "KURT: Now that my"
line "granddaughter is"
para "helping me, I can"
line "work much faster."
done
KurtsHouseKurtWhatIsThatText:
text "Wh-what is that?"
para "I've never seen"
line "one before."
para "It looks a lot"
line "like a # BALL,"
para "but it appears to"
line "be something else."
para "Let me check it"
line "for you."
done
KurtsHouseKurtImCheckingItNowText:
text "I'm checking it"
line "now."
done
KurtsHouseKurtAhHaISeeText:
text "Ah-ha! I see!"
line "So…"
done
KurtsHouseKurtThisBallStartedToShakeText:
text "<PLAYER>!"
para "This BALL started"
line "to shake while I"
cont "was checking it."
para "There must be"
line "something to this!"
done
KurtsGranddaughterSlowpokeGoneText:
text "The SLOWPOKE are"
line "gone… Were they"
para "taken away by bad"
line "people?"
done
KurtsGranddaughterLonelyText:
text "Grandpa's gone…"
line "I'm so lonely…"
done
KurtsGranddaughterSlowpokeBackText:
text "The SLOWPOKE my"
line "dad gave me came"
para "back! Its TAIL is"
line "growing back too!"
done
KurtsGranddaughterDadText:
text "Dad works at SILPH"
line "where he studies"
cont "# BALLS."
para "I have to stay"
line "home with Grandpa"
cont "and SLOWPOKE."
done
KurtsGranddaughterHelpText:
text "I get to help"
line "Grandpa now!"
para "We'll make good"
line "BALLS for you, so"
cont "please wait!"
done
KurtsGranddaughterFunText:
text "It's fun to make"
line "BALLS!"
done
KurtsGranddaughterGSBallText:
text "Grandpa's checking"
line "a BALL right now."
para "So I'm waiting"
line "till he's done."
done
KurtsHouseSlowpokeText:
text "SLOWPOKE: …"
line "Yawn?"
done
KurtsHouseOakPhotoText:
text "…A young PROF."
line "OAK?"
done
KurtsHouseCelebiStatueText:
text "It's a statue of"
line "the forest's pro-"
cont "tector."
done
KurtsHouse_MapEvents:
db 0, 0 ; filler
db 2 ; warp events
warp_event 3, 7, AZALEA_TOWN, 4
warp_event 4, 7, AZALEA_TOWN, 4
db 0 ; coord events
db 7 ; bg events
bg_event 6, 1, BGEVENT_READ, KurtsHouseRadio
bg_event 8, 0, BGEVENT_READ, KurtsHouseOakPhoto
bg_event 9, 0, BGEVENT_READ, KurtsHouseOakPhoto
bg_event 5, 1, BGEVENT_READ, KurtsHouseBookshelf
bg_event 2, 1, BGEVENT_READ, KurtsHouseBookshelf
bg_event 3, 1, BGEVENT_READ, KurtsHouseBookshelf
bg_event 4, 1, BGEVENT_READ, KurtsHouseCelebiStatue
db 5 ; object events
object_event 3, 2, SPRITE_KURT, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Kurt1, EVENT_KURTS_HOUSE_KURT_1
object_event 5, 3, SPRITE_TWIN, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
object_event 6, 3, SPRITE_SLOWPOKE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE
object_event 14, 3, SPRITE_KURT, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Kurt2, EVENT_KURTS_HOUSE_KURT_2
object_event 11, 4, SPRITE_TWIN, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2