HGSS-style first rival fight

Now the rival doesn't awkwardly say his name is ???, using the trainer card from HGSS instead. Includes the funny lookaround gaffe among other bits. Changed the trainer class as well, making it seamless.
This commit is contained in:
Llinos Evans 2024-07-29 15:30:04 +01:00
parent a4044f0929
commit d55f848761
13 changed files with 99 additions and 23 deletions

View file

@ -53,10 +53,12 @@ DEF KRIS EQU __trainer_class__
trainerclass CLAIR ; 8
const CLAIR1
trainerclass RIVAL1 ; 9
trainerclass PASSERBY
const RIVAL1_1_CHIKORITA
const RIVAL1_1_CYNDAQUIL
const RIVAL1_1_TOTODILE
trainerclass RIVAL1 ; 9
const RIVAL1_2_CHIKORITA
const RIVAL1_2_CYNDAQUIL
const RIVAL1_2_TOTODILE

View file

@ -50,6 +50,12 @@ TrainerClassAttributes:
dw AI_BASIC | AI_SETUP | AI_SMART | AI_AGGRESSIVE | AI_CAUTIOUS | AI_STATUS | AI_RISKY
dw CONTEXT_USE | SWITCH_SOMETIMES
; Passerby
db NO_ITEM, NO_ITEM ; items
db 15 ; base reward
dw AI_BASIC | AI_SETUP | AI_SMART | AI_AGGRESSIVE | AI_CAUTIOUS | AI_STATUS | AI_RISKY
dw CONTEXT_USE | SWITCH_SOMETIMES
; Rival1
db NO_ITEM, NO_ITEM ; items
db 15 ; base reward

View file

@ -9,6 +9,7 @@ TrainerClassNames::
li "LEADER"
li "LEADER"
li "LEADER"
li "PASSERBY" ; HGSS implementation
li "RIVAL"
li "#MON PROF."
li "ELITE FOUR"

View file

@ -10,6 +10,7 @@ TrainerClassDVs:
dn 9, 8, 8, 8 ; JASMINE
dn 9, 8, 8, 8 ; CHUCK
dn 7, 12, 13, 13 ; CLAIR
dn 13, 13, 13, 13 ; PASSERBY
dn 13, 13, 13, 13 ; RIVAL1
dn 9, 8, 8, 8 ; POKEMON_PROF
dn 13, 12, 13, 13 ; WILL

View file

@ -12,6 +12,7 @@ TrainerEncounterMusic::
db MUSIC_LASS_ENCOUNTER ; jasmine
db MUSIC_OFFICER_ENCOUNTER ; chuck
db MUSIC_BEAUTY_ENCOUNTER ; clair
db MUSIC_RIVAL_ENCOUNTER ; passerby
db MUSIC_RIVAL_ENCOUNTER ; rival1
db MUSIC_HIKER_ENCOUNTER ; pokemon_prof
db MUSIC_HIKER_ENCOUNTER ; will

View file

@ -11,6 +11,7 @@ BTTrainerClassGenders:
db FEMALE ; JASMINE
db MALE ; CHUCK
db FEMALE ; CLAIR
db MALE ; PASSERBY
db MALE ; RIVAL1
db MALE ; POKEMON_PROF
db FEMALE ; WILL

View file

@ -18,6 +18,7 @@ INCBIN "gfx/trainers/pryce.gbcpal", middle_colors
INCBIN "gfx/trainers/jasmine.gbcpal", middle_colors
INCBIN "gfx/trainers/chuck.gbcpal", middle_colors
INCBIN "gfx/trainers/clair.gbcpal", middle_colors
INCBIN "gfx/trainers/rival1.gbcpal", middle_colors ; clone for the passerby class
INCBIN "gfx/trainers/rival1.gbcpal", middle_colors
INCBIN "gfx/trainers/oak.gbcpal", middle_colors
INCBIN "gfx/trainers/will.gbcpal", middle_colors

View file

@ -158,25 +158,27 @@ ClairGroup:
end_list_items
Rival1Group:
PasserbyGroup:
next_list_item ; RIVAL1 (1)
db "?@", TRAINERTYPE_NORMAL
db "BOY@", TRAINERTYPE_NORMAL
db 5
dw CHIKORITA
db -1 ; end
next_list_item ; RIVAL1 (2)
db "?@", TRAINERTYPE_NORMAL
db "BOY@", TRAINERTYPE_NORMAL
db 5
dw CYNDAQUIL
db -1 ; end
next_list_item ; RIVAL1 (3)
db "?@", TRAINERTYPE_NORMAL
db "BOY@", TRAINERTYPE_NORMAL
db 5
dw TOTODILE
db -1 ; end
end_list_items
Rival1Group:
next_list_item ; RIVAL1 (4)
db "?@", TRAINERTYPE_NORMAL
db 12

View file

@ -11,6 +11,7 @@ TrainerGroups:
dba JasmineGroup
dba ChuckGroup
dba ClairGroup
dba PasserbyGroup
dba Rival1Group
dba PokemonProfGroup
dba WillGroup

View file

@ -11,6 +11,7 @@ TrainerPicPointers::
dba JasminePic
dba ChuckPic
dba ClairPic
dba PasserbyPic
dba Rival1Pic
dba PokemonProfPic
dba WillPic

View file

@ -10,6 +10,7 @@ BTTrainerClassSprites:
db SPRITE_CHUCK
db SPRITE_CLAIR
db SPRITE_RIVAL
db SPRITE_RIVAL
db SPRITE_OAK
db SPRITE_WILL
db SPRITE_CHRIS

View file

@ -466,6 +466,7 @@ WooperFrontpic: INCBIN "gfx/pokemon/wooper/front.animated.2bpp.lz"
ClefairyBackpic: INCBIN "gfx/pokemon/clefairy/back.2bpp.lz"
VenonatBackpic: INCBIN "gfx/pokemon/venonat/back.2bpp.lz"
BellossomBackpic: INCBIN "gfx/pokemon/bellossom/back.2bpp.lz"
PasserbyPic: INCBIN "gfx/trainers/rival1.2bpp.lz"
Rival1Pic: INCBIN "gfx/trainers/rival1.2bpp.lz"
SwinubBackpic: INCBIN "gfx/pokemon/swinub/back.2bpp.lz"

View file

@ -128,7 +128,7 @@ CherrygroveRivalSceneNorth:
iftrue .Chikorita
winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText
setlasttalked CHERRYGROVECITY_RIVAL
loadtrainer RIVAL1, RIVAL1_1_TOTODILE
loadtrainer PASSERBY, RIVAL1_1_TOTODILE
loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle
dontrestartmapmusic
@ -139,7 +139,7 @@ CherrygroveRivalSceneNorth:
.Totodile:
winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText
setlasttalked CHERRYGROVECITY_RIVAL
loadtrainer RIVAL1, RIVAL1_1_CHIKORITA
loadtrainer PASSERBY, RIVAL1_1_CHIKORITA
loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle
dontrestartmapmusic
@ -150,7 +150,7 @@ CherrygroveRivalSceneNorth:
.Chikorita:
winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText
setlasttalked CHERRYGROVECITY_RIVAL
loadtrainer RIVAL1, RIVAL1_1_CYNDAQUIL
loadtrainer PASSERBY, RIVAL1_1_CYNDAQUIL
loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle
dontrestartmapmusic
@ -161,7 +161,7 @@ CherrygroveRivalSceneNorth:
.AfterVictorious:
playmusic MUSIC_RIVAL_AFTER
opentext
writetext CherrygroveRivalText_YouWon
writetext CherrygroveRivalText_AfterBattle
waitbutton
closetext
sjump .FinishRival
@ -169,14 +169,35 @@ CherrygroveRivalSceneNorth:
.AfterYourDefeat:
playmusic MUSIC_RIVAL_AFTER
opentext
writetext CherrygroveRivalText_YouLost
writetext CherrygroveRivalText_AfterBattle
waitbutton
closetext
.FinishRival:
playsound SFX_TACKLE
applymovement PLAYER, CherrygroveCity_RivalPushesYouOutOfTheWay
turnobject PLAYER, LEFT
; New HGSS-styled scene
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageOops
showemote EMOTE_SHOCK, CHERRYGROVECITY_RIVAL, 15
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageSearchForCard1
pause 10
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageSearchForCard2
pause 10
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageSearchForCard3
pause 10
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageSearchForCard4
pause 10
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageSearchForCard5
pause 10
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageCollectCard
turnobject PLAYER, UP
opentext
writetext RivalThatsMyCardText
waitbutton
closetext
applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageLeft
disappear CHERRYGROVECITY_RIVAL
setscene SCENE_CHERRYGROVECITY_NOOP
special HealParty
@ -326,6 +347,49 @@ CherrygroveCity_RivalPushesYouOutOfTheWay:
turn_head UP
step_end
CherrygroveCity_RivalExitsStageOops:
big_step LEFT
big_step LEFT
big_step LEFT
big_step LEFT
step_end
CherrygroveCity_RivalExitsStageSearchForCard1:
turn_head DOWN
step_end
CherrygroveCity_RivalExitsStageSearchForCard2:
turn_head UP
step_end
CherrygroveCity_RivalExitsStageSearchForCard3:
turn_head DOWN
step_end
CherrygroveCity_RivalExitsStageSearchForCard4:
turn_head LEFT
step_end
CherrygroveCity_RivalExitsStageSearchForCard5:
turn_head RIGHT
step_end
CherrygroveCity_RivalExitsStageCollectCard:
big_step RIGHT
big_step RIGHT
big_step RIGHT
turn_head DOWN
step_end
RivalThatsMyCardText:
text "Give that back!"
line "That's my TRAINER"
cont "CARD!"
para "Gah! You saw my"
line "name<……>"
done
CherrygroveCity_RivalExitsStageLeft:
big_step LEFT
big_step LEFT
@ -477,10 +541,14 @@ RivalCherrygroveWinText:
line "happy you won?"
done
CherrygroveRivalText_YouLost:
; merged into one due to redundancy
CherrygroveRivalText_AfterBattle:
text "<……> <……> <……>"
para "My name's ???."
para "Want to know who"
line "I am?"
para "<……>"
para "I'm going to be"
line "the world's great-"
@ -493,17 +561,6 @@ RivalCherrygroveLossText:
line "waste of time."
done
CherrygroveRivalText_YouWon:
text "<……> <……> <……>"
para "My name's ???."
para "I'm going to be"
line "the world's great-"
cont "est #MON"
cont "trainer."
done
CherrygroveTeacherText_NoMapCard:
text "Did you talk to"
line "the old man by the"