pokegold/maps/KurtsHouse.asm

497 lines
10 KiB
NASM

object_const_def ; object_event constants
const KURTSHOUSE_KURT1
const KURTSHOUSE_TWIN
const KURTSHOUSE_SLOWPOKE
const KURTSHOUSE_KURT2
KurtsHouse_MapScripts:
db 0 ; scene scripts
db 1 ; callbacks
callback MAPCALLBACK_OBJECTS, .KurtCallback
.KurtCallback:
checkevent EVENT_CLEARED_SLOWPOKE_WELL
iffalse .Done
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .MakingBalls
disappear KURTSHOUSE_KURT2
appear KURTSHOUSE_KURT1
return
.MakingBalls:
disappear KURTSHOUSE_KURT1
appear KURTSHOUSE_KURT2
.Done:
return
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_2
iftrue .ThatTurnedOutGreat
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
writetext KurtsHouseKurtBallsFromApricornsText
promptbutton
.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
closetext
end
.AskApricorn:
writetext KurtsHouseKurtAskYouHaveAnApricornText
promptbutton
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
.KurtMakingBallsScript:
writetext KurtsHouseKurtDontBotherMeText
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
verbosegiveitem LEVEL_BALL
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_RED_APRICORN
sjump ._ThatTurnedOutGreat
.GiveLureBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitem LURE_BALL
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_BLU_APRICORN
sjump ._ThatTurnedOutGreat
.GiveMoonBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitem MOON_BALL
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_YLW_APRICORN
sjump ._ThatTurnedOutGreat
.GiveFriendBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitem FRIEND_BALL
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_GRN_APRICORN
sjump ._ThatTurnedOutGreat
.GiveFastBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitem FAST_BALL
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_WHT_APRICORN
sjump ._ThatTurnedOutGreat
.GiveHeavyBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitem HEAVY_BALL
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_BLK_APRICORN
sjump ._ThatTurnedOutGreat
.GiveLoveBall:
checkflag ENGINE_KURT_MAKING_BALLS
iftrue .KurtMakingBallsScript
writetext KurtsHouseKurtJustFinishedYourBallText
promptbutton
verbosegiveitem LOVE_BALL
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_PNK_APRICORN
sjump ._ThatTurnedOutGreat
KurtsGranddaughter:
faceplayer
opentext
checkevent EVENT_FAST_SHIP_FIRST_TIME
iftrue .Dad
checkevent EVENT_CLEARED_SLOWPOKE_WELL
iftrue .SlowpokeBack
checkevent EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
iftrue .Lonely
writetext KurtsGranddaughterSlowpokeGoneText
waitbutton
closetext
end
.SlowpokeBack:
writetext KurtsGranddaughterSlowpokeBackText
waitbutton
closetext
end
.Lonely:
writetext KurtsGranddaughterLonelyText
waitbutton
closetext
end
.Dad:
writetext KurtsGranddaughterDadText
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
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
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 4 ; 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, KurtsGranddaughter, -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, Kurt1, EVENT_KURTS_HOUSE_KURT_2