mirror of https://github.com/pret/pokecrystal.git
558 lines
12 KiB
NASM
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
|