mirror of
https://github.com/thornAvery/jep-hack.git
synced 2025-09-17 02:30:50 +12:00

This adds Duplica, Ritchie, and Casey to various Kanto areas, aiming to make the routes a bit more populated. They're also quite strong. Minor rewrite on Silver's Victory Road quote to legitimise the lack of trainers, just like HGSS.
473 lines
10 KiB
NASM
473 lines
10 KiB
NASM
object_const_def
|
|
const ROUTE26_COOLTRAINER_M1
|
|
const ROUTE26_COOLTRAINER_M2
|
|
const ROUTE26_COOLTRAINER_F1
|
|
const ROUTE26_COOLTRAINER_F2
|
|
const ROUTE26_YOUNGSTER
|
|
const ROUTE26_FISHER
|
|
const ROUTE26_FRUIT_TREE
|
|
const ROUTE26_POKE_BALL
|
|
const ROUTE26_RITCHIE
|
|
|
|
Route26_MapScripts:
|
|
def_scene_scripts
|
|
|
|
def_callbacks
|
|
|
|
TrainerCooltrainermJake:
|
|
trainer COOLTRAINERM, JAKE, EVENT_BEAT_COOLTRAINERM_JAKE, CooltrainermJakeSeenText, CooltrainermJakeBeatenText, 0, .Script
|
|
|
|
.Script:
|
|
endifjustbattled
|
|
opentext
|
|
writetext CooltrainermJakeAfterBattleText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
; Anime reference - that one trainer Ash lost to because his Charizard decided to be funny.
|
|
; He isn't on Victory Road as this would mean Silver missed someone.
|
|
; This also means you have a pretty hefty challenge after the Heal House. For a challenge, try fighting him without using it!
|
|
TrainerCoolTrainerRitchie:
|
|
trainer COOLTRAINERM, RITCHIE, EVENT_BEAT_COOLTRAINERM_RITCHIE, CoolTrainerRitchieSeenText, CoolTrainerRitchieBeatenText, 0, .Script
|
|
|
|
.Script:
|
|
endifjustbattled
|
|
opentext
|
|
writetext CoolTrainerRitchieAfterBattleText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
CoolTrainerRitchieSeenText: ; if you can improve this go ahead
|
|
text "I want to be a"
|
|
line "#MON MASTER!"
|
|
|
|
para "That's why you're"
|
|
line "here too, right?"
|
|
done
|
|
|
|
CoolTrainerRitchieBeatenText:
|
|
text "Tough match!"
|
|
done
|
|
|
|
CoolTrainerRitchieAfterBattleText: ; A reference to Zippo being unusually obedient compared to Ash and Trevor's Charizard.
|
|
text "They say CHARIZARD"
|
|
line "are hard to train."
|
|
|
|
para "I think they just"
|
|
line "need to fight"
|
|
cont "stronger foes"
|
|
cont "regularly, though!"
|
|
done
|
|
|
|
TrainerCooltrainermGaven3:
|
|
trainer COOLTRAINERM, GAVEN3, EVENT_BEAT_COOLTRAINERM_GAVEN, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, 0, .Script
|
|
|
|
.Script:
|
|
loadvar VAR_CALLERID, PHONE_COOLTRAINERM_GAVEN
|
|
endifjustbattled
|
|
opentext
|
|
checkflag ENGINE_GAVEN_READY_FOR_REMATCH
|
|
iftrue .WantsBattle
|
|
checkcellnum PHONE_COOLTRAINERM_GAVEN
|
|
iftrue .NumberAccepted
|
|
checkevent EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER
|
|
iftrue .AskedAlready
|
|
writetext CooltrainermGavenAfterText
|
|
promptbutton
|
|
setevent EVENT_GAVEN_ASKED_FOR_PHONE_NUMBER
|
|
scall .AskNumber1
|
|
sjump .AskForNumber
|
|
|
|
.AskedAlready:
|
|
scall .AskNumber2
|
|
.AskForNumber:
|
|
askforphonenumber PHONE_COOLTRAINERM_GAVEN
|
|
ifequal PHONE_CONTACTS_FULL, .PhoneFull
|
|
ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
|
|
gettrainername STRING_BUFFER_3, COOLTRAINERM, GAVEN3
|
|
scall .RegisteredNumber
|
|
sjump .NumberAccepted
|
|
|
|
.WantsBattle:
|
|
scall .Rematch
|
|
winlosstext CooltrainermGaven3BeatenText, 0
|
|
readmem wGavenFightCount
|
|
ifequal 2, .Fight2
|
|
ifequal 1, .Fight1
|
|
ifequal 0, .LoadFight0
|
|
.Fight2:
|
|
checkevent EVENT_RESTORED_POWER_TO_KANTO
|
|
iftrue .LoadFight2
|
|
.Fight1:
|
|
checkevent EVENT_BEAT_ELITE_FOUR
|
|
iftrue .LoadFight1
|
|
.LoadFight0:
|
|
loadtrainer COOLTRAINERM, GAVEN3
|
|
startbattle
|
|
reloadmapafterbattle
|
|
loadmem wGavenFightCount, 1
|
|
clearflag ENGINE_GAVEN_READY_FOR_REMATCH
|
|
end
|
|
|
|
.LoadFight1:
|
|
loadtrainer COOLTRAINERM, GAVEN1
|
|
startbattle
|
|
reloadmapafterbattle
|
|
loadmem wGavenFightCount, 2
|
|
clearflag ENGINE_GAVEN_READY_FOR_REMATCH
|
|
end
|
|
|
|
.LoadFight2:
|
|
loadtrainer COOLTRAINERM, GAVEN2
|
|
startbattle
|
|
reloadmapafterbattle
|
|
clearflag ENGINE_GAVEN_READY_FOR_REMATCH
|
|
end
|
|
|
|
.AskNumber1:
|
|
jumpstd AskNumber1MScript
|
|
end
|
|
|
|
.AskNumber2:
|
|
jumpstd AskNumber2MScript
|
|
end
|
|
|
|
.RegisteredNumber:
|
|
jumpstd RegisteredNumberMScript
|
|
end
|
|
|
|
.NumberAccepted:
|
|
jumpstd NumberAcceptedMScript
|
|
end
|
|
|
|
.NumberDeclined:
|
|
jumpstd NumberDeclinedMScript
|
|
end
|
|
|
|
.PhoneFull:
|
|
jumpstd PhoneFullMScript
|
|
end
|
|
|
|
.Rematch:
|
|
jumpstd RematchMScript
|
|
end
|
|
|
|
TrainerCooltrainerfJoyce:
|
|
trainer COOLTRAINERF, JOYCE, EVENT_BEAT_COOLTRAINERF_JOYCE, CooltrainerfJoyceSeenText, CooltrainerfJoyceBeatenText, 0, .Script
|
|
|
|
.Script:
|
|
endifjustbattled
|
|
opentext
|
|
writetext CooltrainerfJoyceAfterBattleText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
TrainerCooltrainerfBeth1:
|
|
trainer COOLTRAINERF, BETH1, EVENT_BEAT_COOLTRAINERF_BETH, CooltrainerfBeth1SeenText, CooltrainerfBeth1BeatenText, 0, .Script
|
|
|
|
.Script:
|
|
loadvar VAR_CALLERID, PHONE_COOLTRAINERF_BETH
|
|
endifjustbattled
|
|
opentext
|
|
checkflag ENGINE_BETH_READY_FOR_REMATCH
|
|
iftrue .WantsBattle
|
|
checkcellnum PHONE_COOLTRAINERF_BETH
|
|
iftrue .NumberAccepted
|
|
checkevent EVENT_BETH_ASKED_FOR_PHONE_NUMBER
|
|
iftrue .AskedAlready
|
|
writetext CooltrainerfBethAfterText
|
|
promptbutton
|
|
setevent EVENT_BETH_ASKED_FOR_PHONE_NUMBER
|
|
scall .AskNumber1
|
|
sjump .AskForNumber
|
|
|
|
.AskedAlready:
|
|
scall .AskNumber2
|
|
.AskForNumber:
|
|
askforphonenumber PHONE_COOLTRAINERF_BETH
|
|
ifequal PHONE_CONTACTS_FULL, .PhoneFull
|
|
ifequal PHONE_CONTACT_REFUSED, .NumberDeclined
|
|
gettrainername STRING_BUFFER_3, COOLTRAINERF, BETH1
|
|
scall .RegisteredNumber
|
|
sjump .NumberAccepted
|
|
|
|
.WantsBattle:
|
|
scall .Rematch
|
|
winlosstext CooltrainerfBeth1BeatenText, 0
|
|
readmem wBethFightCount
|
|
ifequal 2, .Fight2
|
|
ifequal 1, .Fight1
|
|
ifequal 0, .LoadFight0
|
|
.Fight2:
|
|
checkevent EVENT_RESTORED_POWER_TO_KANTO
|
|
iftrue .LoadFight2
|
|
.Fight1:
|
|
checkevent EVENT_BEAT_ELITE_FOUR
|
|
iftrue .LoadFight1
|
|
.LoadFight0:
|
|
loadtrainer COOLTRAINERF, BETH1
|
|
startbattle
|
|
reloadmapafterbattle
|
|
loadmem wBethFightCount, 1
|
|
clearflag ENGINE_BETH_READY_FOR_REMATCH
|
|
end
|
|
|
|
.LoadFight1:
|
|
loadtrainer COOLTRAINERF, BETH2
|
|
startbattle
|
|
reloadmapafterbattle
|
|
loadmem wBethFightCount, 2
|
|
clearflag ENGINE_BETH_READY_FOR_REMATCH
|
|
end
|
|
|
|
.LoadFight2:
|
|
loadtrainer COOLTRAINERF, BETH3
|
|
startbattle
|
|
reloadmapafterbattle
|
|
clearflag ENGINE_BETH_READY_FOR_REMATCH
|
|
end
|
|
|
|
.AskNumber1:
|
|
jumpstd AskNumber1FScript
|
|
end
|
|
|
|
.AskNumber2:
|
|
jumpstd AskNumber2FScript
|
|
end
|
|
|
|
.RegisteredNumber:
|
|
jumpstd RegisteredNumberFScript
|
|
end
|
|
|
|
.NumberAccepted:
|
|
jumpstd NumberAcceptedFScript
|
|
end
|
|
|
|
.NumberDeclined:
|
|
jumpstd NumberDeclinedFScript
|
|
end
|
|
|
|
.PhoneFull:
|
|
jumpstd PhoneFullFScript
|
|
end
|
|
|
|
.Rematch:
|
|
jumpstd RematchFScript
|
|
end
|
|
|
|
TrainerPsychicRichard:
|
|
trainer PSYCHIC_T, RICHARD, EVENT_BEAT_PSYCHIC_RICHARD, PsychicRichardSeenText, PsychicRichardBeatenText, 0, .Script
|
|
|
|
.Script:
|
|
endifjustbattled
|
|
opentext
|
|
writetext PsychicRichardAfterBattleText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
TrainerFisherScott:
|
|
trainer FISHER, SCOTT, EVENT_BEAT_FISHER_SCOTT, FisherScottSeenText, FisherScottBeatenText, 0, .Script
|
|
|
|
.Script:
|
|
endifjustbattled
|
|
opentext
|
|
writetext FisherScottAfterBattleText
|
|
waitbutton
|
|
closetext
|
|
end
|
|
|
|
Route26Sign:
|
|
jumptext Route26SignText
|
|
|
|
Route26FruitTree:
|
|
fruittree FRUITTREE_ROUTE_26
|
|
|
|
Route26MaxElixer:
|
|
itemball MAX_ELIXER
|
|
|
|
CooltrainermJakeSeenText:
|
|
text "I'm making my"
|
|
line "final preparations"
|
|
|
|
para "for the #MON"
|
|
line "LEAGUE."
|
|
done
|
|
|
|
CooltrainermJakeBeatenText:
|
|
text "I blew it!"
|
|
done
|
|
|
|
CooltrainermJakeAfterBattleText:
|
|
text "It's going to be"
|
|
line "tough to win at"
|
|
cont "the LEAGUE."
|
|
|
|
para "I need to do some"
|
|
line "more training."
|
|
|
|
para "I hear that the"
|
|
line "LEAGUE's ELITE"
|
|
|
|
para "FOUR are tougher"
|
|
line "than GYM LEADERS."
|
|
done
|
|
|
|
CooltrainermGaven3SeenText:
|
|
text "By experiencing"
|
|
line "tough battles, you"
|
|
cont "gain power."
|
|
done
|
|
|
|
CooltrainermGaven3BeatenText:
|
|
text "Gaah! Life is even"
|
|
line "tougher!"
|
|
done
|
|
|
|
CooltrainermGavenAfterText:
|
|
text "To get to #MON"
|
|
line "LEAGUE, you have"
|
|
|
|
para "to get through"
|
|
line "VICTORY ROAD."
|
|
|
|
para "But VICTORY ROAD"
|
|
line "is tough."
|
|
|
|
para "Practically nobody"
|
|
line "goes there!"
|
|
done
|
|
|
|
CooltrainerfJoyceSeenText:
|
|
text "Since you've come"
|
|
line "this far, you must"
|
|
cont "be good."
|
|
|
|
para "I'm going to give"
|
|
line "this battle every-"
|
|
cont "thing I've got!"
|
|
done
|
|
|
|
CooltrainerfJoyceBeatenText:
|
|
text "No! I don't"
|
|
line "believe this!"
|
|
done
|
|
|
|
CooltrainerfJoyceAfterBattleText:
|
|
text "I've defeated"
|
|
line "eight GYM LEADERS,"
|
|
|
|
para "so I was feeling"
|
|
line "confident."
|
|
|
|
para "I'll have to try"
|
|
line "harder next time."
|
|
done
|
|
|
|
CooltrainerfBeth1SeenText:
|
|
text "I lost to a train-"
|
|
line "er named <RIVAL>."
|
|
|
|
para "He was really"
|
|
line "strong, but…"
|
|
|
|
para "It was as if he"
|
|
line "absolutely had to"
|
|
cont "win at any cost."
|
|
|
|
para "I felt sorry for"
|
|
line "his #MON."
|
|
done
|
|
|
|
CooltrainerfBeth1BeatenText:
|
|
text "#MON aren't"
|
|
line "tools of war."
|
|
done
|
|
|
|
CooltrainerfBethAfterText:
|
|
text "#MON are in-"
|
|
line "valuable, lifelong"
|
|
cont "partners."
|
|
done
|
|
|
|
PsychicRichardSeenText:
|
|
text "Wow, look at all"
|
|
line "those BADGES!"
|
|
cont "I'm impressed."
|
|
|
|
para "But you're not"
|
|
line "satisfied by just"
|
|
|
|
para "collecting them,"
|
|
line "right?"
|
|
done
|
|
|
|
PsychicRichardBeatenText:
|
|
text "Good battle!"
|
|
done
|
|
|
|
PsychicRichardAfterBattleText:
|
|
text "People and #MON"
|
|
line "grow from their"
|
|
cont "experiences."
|
|
|
|
para "Don't get lazy and"
|
|
line "complacent."
|
|
done
|
|
|
|
FisherScottSeenText:
|
|
text "I'm feeling great"
|
|
line "today!"
|
|
|
|
para "I feel like I"
|
|
line "could boot even"
|
|
cont "the LEAGUE CHAMP!"
|
|
done
|
|
|
|
FisherScottBeatenText:
|
|
text "No! Not in this"
|
|
line "battle!"
|
|
done
|
|
|
|
FisherScottAfterBattleText:
|
|
text "Just like in fish-"
|
|
line "ing, it's all over"
|
|
|
|
para "in #MON if you"
|
|
line "give up."
|
|
done
|
|
|
|
Route26SignText:
|
|
text "ROUTE 26"
|
|
|
|
para "#MON LEAGUE"
|
|
line "RECEPTION GATE"
|
|
done
|
|
|
|
Route26_MapEvents:
|
|
db 0, 0 ; filler
|
|
|
|
def_warp_events
|
|
warp_event 7, 5, VICTORY_ROAD_GATE, 3
|
|
warp_event 15, 57, ROUTE_26_HEAL_HOUSE, 1
|
|
warp_event 5, 71, DAY_OF_WEEK_SIBLINGS_HOUSE, 1
|
|
|
|
def_coord_events
|
|
|
|
def_bg_events
|
|
bg_event 8, 6, BGEVENT_READ, Route26Sign
|
|
|
|
def_object_events
|
|
object_event 14, 24, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 2, TrainerCooltrainermJake, -1
|
|
object_event 9, 38, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerCooltrainermGaven3, -1
|
|
object_event 10, 56, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerCooltrainerfJoyce, -1
|
|
object_event 5, 8, SPRITE_COOLTRAINER_F, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 4, TrainerCooltrainerfBeth1, -1
|
|
object_event 13, 79, SPRITE_YOUNGSTER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 2, TrainerPsychicRichard, -1
|
|
object_event 10, 92, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 3, TrainerFisherScott, -1
|
|
object_event 14, 54, SPRITE_FRUIT_TREE, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Route26FruitTree, -1
|
|
object_event 9, 15, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, Route26MaxElixer, EVENT_ROUTE_26_MAX_ELIXER
|
|
object_event 11, 8, SPRITE_COOLTRAINER_M, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_TRAINER, 1, TrainerCoolTrainerRitchie, -1
|