pokecrystal/maps/Route45.asm

558 lines
12 KiB
NASM

const_def 2 ; object constants
const ROUTE45_POKEFAN_M1
const ROUTE45_POKEFAN_M2
const ROUTE45_POKEFAN_M3
const ROUTE45_POKEFAN_M4
const ROUTE45_BLACK_BELT
const ROUTE45_COOLTRAINER_M
const ROUTE45_COOLTRAINER_F
const ROUTE45_FRUIT_TREE
const ROUTE45_POKE_BALL1
const ROUTE45_POKE_BALL2
const ROUTE45_POKE_BALL3
const ROUTE45_POKE_BALL4
const ROUTE45_YOUNGSTER
Route45_MapScripts:
db 0 ; scene scripts
db 0 ; callbacks
TrainerBlackbeltKenji:
trainer BLACKBELT_T, KENJI3, EVENT_BEAT_BLACKBELT_KENJI, BlackbeltKenji3SeenText, BlackbeltKenji3BeatenText, 0, .Script
.Script:
writecode VAR_CALLERID, PHONE_BLACKBELT_KENJI
end_if_just_battled
opentext
checkcellnum PHONE_BLACKBELT_KENJI
iftrue .Registered
checkevent EVENT_KENJI_ASKED_FOR_PHONE_NUMBER
iftrue .AskedAlready
special SampleKenjiBreakCountdown
writetext BlackbeltKenjiAfterBattleText
waitbutton
setevent EVENT_KENJI_ASKED_FOR_PHONE_NUMBER
scall Route45AskNumber1M
jump .AskForNumber
.AskedAlready:
scall Route45AskNumber2M
.AskForNumber:
askforphonenumber PHONE_BLACKBELT_KENJI
if_equal PHONE_CONTACTS_FULL, Route45PhoneFullM
if_equal PHONE_CONTACT_REFUSED, Route45NumberDeclinedM
trainertotext BLACKBELT_T, KENJI3, MEM_BUFFER_0
scall Route45RegisteredNumberM
jump Route45NumberAcceptedM
.Registered:
checkcode VAR_KENJI_BREAK
if_not_equal 1, Route45NumberAcceptedM
checkmorn
iftrue .Morning
checknite
iftrue .Night
checkevent EVENT_KENJI_ON_BREAK
iffalse Route45NumberAcceptedM
scall Route45GiftM
verbosegiveitem PP_UP
iffalse .NoRoom
clearevent EVENT_KENJI_ON_BREAK
special SampleKenjiBreakCountdown
jump Route45NumberAcceptedM
.Morning:
writetext BlackbeltKenjiMorningText
waitbutton
closetext
end
.Night:
writetext BlackbeltKenjiNightText
waitbutton
closetext
end
.NoRoom:
jump Route45PackFullM
Route45AskNumber1M:
jumpstd asknumber1m
end
Route45AskNumber2M:
jumpstd asknumber2m
end
Route45RegisteredNumberM:
jumpstd registerednumberm
end
Route45NumberAcceptedM:
jumpstd numberacceptedm
end
Route45NumberDeclinedM:
jumpstd numberdeclinedm
end
Route45PhoneFullM:
jumpstd phonefullm
end
Route45RematchM:
jumpstd rematchm
end
Route45GiftM:
jumpstd giftm
end
Route45PackFullM:
jumpstd packfullm
end
HikerParryHasIron:
setevent EVENT_PARRY_IRON
jumpstd packfullm
end
Route45RematchGiftM:
jumpstd rematchgiftm
end
TrainerHikerErik:
trainer HIKER, ERIK, EVENT_BEAT_HIKER_ERIK, HikerErikSeenText, HikerErikBeatenText, 0, .Script
.Script:
end_if_just_battled
opentext
writetext HikerErikAfterBattleText
waitbutton
closetext
end
TrainerHikerMichael:
trainer HIKER, MICHAEL, EVENT_BEAT_HIKER_MICHAEL, HikerMichaelSeenText, HikerMichaelBeatenText, 0, .Script
.Script:
end_if_just_battled
opentext
writetext HikerMichaelAfterBattleText
waitbutton
closetext
end
TrainerHikerParry:
trainer HIKER, PARRY3, EVENT_BEAT_HIKER_PARRY, HikerParry3SeenText, HikerParry3BeatenText, 0, .Script
.Script:
writecode VAR_CALLERID, PHONE_HIKER_PARRY
end_if_just_battled
opentext
checkflag ENGINE_PARRY
iftrue .WantsBattle
checkcellnum PHONE_HIKER_PARRY
iftrue Route45NumberAcceptedM
checkevent EVENT_PARRY_ASKED_FOR_PHONE_NUMBER
iftrue .AskedAlready
writetext HikerParryAfterBattleText
buttonsound
setevent EVENT_PARRY_ASKED_FOR_PHONE_NUMBER
scall Route45AskNumber1M
jump .AskForNumber
.AskedAlready:
scall Route45AskNumber2M
.AskForNumber:
askforphonenumber PHONE_HIKER_PARRY
if_equal PHONE_CONTACTS_FULL, Route45PhoneFullM
if_equal PHONE_CONTACT_REFUSED, Route45NumberDeclinedM
trainertotext HIKER, PARRY1, MEM_BUFFER_0
scall Route45RegisteredNumberM
jump Route45NumberAcceptedM
.WantsBattle:
scall Route45RematchM
winlosstext HikerParry3BeatenText, 0
copybytetovar wParryFightCount
if_equal 2, .Fight2
if_equal 1, .Fight1
if_equal 0, .LoadFight0
.Fight2:
checkevent EVENT_RESTORED_POWER_TO_KANTO
iftrue .LoadFight2
.Fight1:
checkevent EVENT_BEAT_ELITE_FOUR
iftrue .LoadFight1
.LoadFight0:
loadtrainer HIKER, PARRY3
startbattle
reloadmapafterbattle
loadvar wParryFightCount, 1
clearflag ENGINE_PARRY
end
.LoadFight1:
loadtrainer HIKER, PARRY1
startbattle
reloadmapafterbattle
loadvar wParryFightCount, 2
clearflag ENGINE_PARRY
end
.LoadFight2:
loadtrainer HIKER, PARRY2
startbattle
reloadmapafterbattle
clearflag ENGINE_PARRY
checkevent EVENT_PARRY_IRON
iftrue .HasIron
checkevent EVENT_GOT_IRON_FROM_PARRY
iftrue .GotIron
scall Route45RematchGiftM
verbosegiveitem IRON
iffalse HikerParryHasIron
setevent EVENT_GOT_IRON_FROM_PARRY
jump Route45NumberAcceptedM
.GotIron:
end
.HasIron:
opentext
writetext HikerParryGivesIronText
waitbutton
verbosegiveitem IRON
iffalse HikerParryHasIron
clearevent EVENT_PARRY_IRON
setevent EVENT_GOT_IRON_FROM_PARRY
jump Route45NumberAcceptedM
TrainerHikerTimothy:
trainer HIKER, TIMOTHY, EVENT_BEAT_HIKER_TIMOTHY, HikerTimothySeenText, HikerTimothyBeatenText, 0, .Script
.Script:
end_if_just_battled
opentext
writetext HikerTimothyAfterBattleText
waitbutton
closetext
end
TrainerCooltrainermRyan:
trainer COOLTRAINERM, RYAN, EVENT_BEAT_COOLTRAINERM_RYAN, CooltrainermRyanSeenText, CooltrainermRyanBeatenText, 0, .Script
.Script:
end_if_just_battled
opentext
writetext CooltrainermRyanAfterBattleText
waitbutton
closetext
end
TrainerCooltrainerfKelly:
trainer COOLTRAINERF, KELLY, EVENT_BEAT_COOLTRAINERF_KELLY, CooltrainerfKellySeenText, CooltrainerfKellyBeatenText, 0, .Script
.Script:
end_if_just_battled
opentext
writetext CooltrainerfKellyAfterBattleText
waitbutton
closetext
end
TrainerCamperQuentin:
faceplayer
opentext
checkevent EVENT_BEAT_CAMPER_QUENTIN
iftrue .Defeated
writetext CamperQuentinSeenText
waitbutton
closetext
winlosstext CamperQuentinBeatenText, 0
loadtrainer CAMPER, QUENTIN
startbattle
reloadmapafterbattle
setevent EVENT_BEAT_CAMPER_QUENTIN
closetext
end
.Defeated:
writetext CamperQuentinAfterBattleText
waitbutton
closetext
end
Route45DummyScript:
writetext Route45DummyText
waitbutton
closetext
end
Route45Sign:
jumptext Route45SignText
FruitTreeScript_0x19e294:
fruittree FRUITTREE_ROUTE_45
Route45Nugget:
itemball NUGGET
Route45Revive:
itemball REVIVE
Route45Elixer:
itemball ELIXER
Route45MaxPotion:
itemball MAX_POTION
Route45HiddenPpUp:
hiddenitem PP_UP, EVENT_ROUTE_45_HIDDEN_PP_UP
HikerErikSeenText:
text "Be prepared for"
line "anything!"
para "Let me see if your"
line "#MON have been"
cont "raised properly!"
done
HikerErikBeatenText:
text "Oh, I lost that!"
done
HikerErikAfterBattleText:
text "I'll head back to"
line "BLACKTHORN's ICE"
para "PATH and train"
line "some more."
done
HikerMichaelSeenText:
text "Yo! You're spunky!"
line "But you know what?"
para "When it comes to"
line "sheer spunkiness,"
cont "I'm the man!"
done
HikerMichaelBeatenText:
text "My #MON weren't"
line "spunky enough!"
done
HikerMichaelAfterBattleText:
text "Boy, do I love"
line "HP UP! Mmmm, yum!"
para "I keep drinking my"
line "#MON's!"
para "I can't help it!"
done
HikerParry3SeenText:
text "My #MON are"
line "power packed!"
done
HikerParry3BeatenText:
text "Wahahah! I'm the"
line "big loser!"
done
HikerParryAfterBattleText:
text "I'm not much good"
line "at thinking, see?"
para "So, I just plow"
line "ahead with power!"
done
HikerTimothySeenText:
text "Why do I climb"
line "mountains?"
para "Because they're"
line "there."
para "Why do I train"
line "#MON?"
para "Because they're"
line "there!"
done
HikerTimothyBeatenText:
text "Losses…"
line "They're there too!"
done
HikerTimothyAfterBattleText:
text "The best thing to"
line "ever happen to me"
para "was discovering"
line "#MON."
done
HikerParryGivesIronText:
text "I just can't find"
line "a way to win!"
para "Keep it up!"
para "Oh, and take this"
line "--it's the gift"
para "you couldn't take"
line "when we last met."
done
BlackbeltKenji3SeenText:
text "I was training"
line "here alone."
para "Behold the fruits"
line "of my labor!"
done
BlackbeltKenji3BeatenText:
text "Waaaargh!"
done
BlackbeltKenjiAfterBattleText:
text "This calls for"
line "extreme measures."
para "I must take to the"
line "hills and train in"
cont "solitude."
done
BlackbeltKenjiMorningText:
text "I'm going to train"
line "a bit more before"
cont "I break for lunch."
done
BlackbeltKenjiNightText:
text "We had plenty of"
line "rest at lunch, so"
para "now we're all"
line "ready to go again!"
para "We're going to"
line "train again!"
done
CooltrainermRyanSeenText:
text "What are your"
line "thoughts on rais-"
cont "ing #MON?"
done
CooltrainermRyanBeatenText:
text "You've won my"
line "respect."
done
CooltrainermRyanAfterBattleText:
text "I see you're rais-"
line "ing your #MON"
cont "with care."
para "The bond you build"
line "will save you in"
cont "tough situations."
done
CooltrainerfKellySeenText:
text "What is your"
line "battle strategy?"
para "It is foolish to"
line "use strong moves"
cont "indiscriminately."
done
CooltrainerfKellyBeatenText:
text "Fine. I lost."
done
CooltrainerfKellyAfterBattleText:
text "I'm not in favor"
line "of overly power-"
cont "ful moves."
para "I want to win, but"
line "I also don't want"
cont "to harm #MON."
done
Route45DummyText:
text "I'm really, really"
line "tough!"
para "Is there anywhere"
line "I can prove how"
cont "tough I really am?"
done
CamperQuentinSeenText:
text "I'm really, really"
line "tough!"
done
CamperQuentinBeatenText:
text "I was tough at the"
line "BATTLE TOWER…"
done
CamperQuentinAfterBattleText:
text "Have you been to"
line "the BATTLE TOWER?"
para "I never, ever lose"
line "there, but…"
done
Route45SignText:
text "ROUTE 45"
line "MOUNTAIN RD. AHEAD"
done
Route45_MapEvents:
db 0, 0 ; filler
db 1 ; warp events
warp_event 2, 5, 1, DARK_CAVE_BLACKTHORN_ENTRANCE
db 0 ; coord events
db 2 ; bg events
bg_event 10, 4, BGEVENT_READ, Route45Sign
bg_event 13, 80, BGEVENT_ITEM, Route45HiddenPpUp
db 13 ; object events
object_event 10, 16, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 1, TrainerHikerErik, -1
object_event 15, 65, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerHikerMichael, -1
object_event 5, 28, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerHikerParry, -1
object_event 9, 65, SPRITE_POKEFAN_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 1, TrainerHikerTimothy, -1
object_event 11, 50, SPRITE_BLACK_BELT, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerBlackbeltKenji, -1
object_event 17, 18, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 1, TrainerCooltrainermRyan, -1
object_event 5, 36, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerCooltrainerfKelly, -1
object_event 16, 82, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, FruitTreeScript_0x19e294, -1
object_event 6, 51, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route45Nugget, EVENT_ROUTE_45_NUGGET
object_event 5, 66, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route45Revive, EVENT_ROUTE_45_REVIVE
object_event 6, 20, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route45Elixer, EVENT_ROUTE_45_ELIXER
object_event 7, 33, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route45MaxPotion, EVENT_ROUTE_45_MAX_POTION
object_event 4, 70, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, TrainerCamperQuentin, -1