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 trainerclass CLAIR ; 8
const CLAIR1 const CLAIR1
trainerclass RIVAL1 ; 9 trainerclass PASSERBY
const RIVAL1_1_CHIKORITA const RIVAL1_1_CHIKORITA
const RIVAL1_1_CYNDAQUIL const RIVAL1_1_CYNDAQUIL
const RIVAL1_1_TOTODILE const RIVAL1_1_TOTODILE
trainerclass RIVAL1 ; 9
const RIVAL1_2_CHIKORITA const RIVAL1_2_CHIKORITA
const RIVAL1_2_CYNDAQUIL const RIVAL1_2_CYNDAQUIL
const RIVAL1_2_TOTODILE 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 AI_BASIC | AI_SETUP | AI_SMART | AI_AGGRESSIVE | AI_CAUTIOUS | AI_STATUS | AI_RISKY
dw CONTEXT_USE | SWITCH_SOMETIMES 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 ; Rival1
db NO_ITEM, NO_ITEM ; items db NO_ITEM, NO_ITEM ; items
db 15 ; base reward db 15 ; base reward

View file

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

View file

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

View file

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

View file

@ -11,6 +11,7 @@ BTTrainerClassGenders:
db FEMALE ; JASMINE db FEMALE ; JASMINE
db MALE ; CHUCK db MALE ; CHUCK
db FEMALE ; CLAIR db FEMALE ; CLAIR
db MALE ; PASSERBY
db MALE ; RIVAL1 db MALE ; RIVAL1
db MALE ; POKEMON_PROF db MALE ; POKEMON_PROF
db FEMALE ; WILL 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/jasmine.gbcpal", middle_colors
INCBIN "gfx/trainers/chuck.gbcpal", middle_colors INCBIN "gfx/trainers/chuck.gbcpal", middle_colors
INCBIN "gfx/trainers/clair.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/rival1.gbcpal", middle_colors
INCBIN "gfx/trainers/oak.gbcpal", middle_colors INCBIN "gfx/trainers/oak.gbcpal", middle_colors
INCBIN "gfx/trainers/will.gbcpal", middle_colors INCBIN "gfx/trainers/will.gbcpal", middle_colors

View file

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

View file

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

View file

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

View file

@ -10,6 +10,7 @@ BTTrainerClassSprites:
db SPRITE_CHUCK db SPRITE_CHUCK
db SPRITE_CLAIR db SPRITE_CLAIR
db SPRITE_RIVAL db SPRITE_RIVAL
db SPRITE_RIVAL
db SPRITE_OAK db SPRITE_OAK
db SPRITE_WILL db SPRITE_WILL
db SPRITE_CHRIS 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" ClefairyBackpic: INCBIN "gfx/pokemon/clefairy/back.2bpp.lz"
VenonatBackpic: INCBIN "gfx/pokemon/venonat/back.2bpp.lz" VenonatBackpic: INCBIN "gfx/pokemon/venonat/back.2bpp.lz"
BellossomBackpic: INCBIN "gfx/pokemon/bellossom/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" Rival1Pic: INCBIN "gfx/trainers/rival1.2bpp.lz"
SwinubBackpic: INCBIN "gfx/pokemon/swinub/back.2bpp.lz" SwinubBackpic: INCBIN "gfx/pokemon/swinub/back.2bpp.lz"

View file

@ -128,7 +128,7 @@ CherrygroveRivalSceneNorth:
iftrue .Chikorita iftrue .Chikorita
winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText
setlasttalked CHERRYGROVECITY_RIVAL setlasttalked CHERRYGROVECITY_RIVAL
loadtrainer RIVAL1, RIVAL1_1_TOTODILE loadtrainer PASSERBY, RIVAL1_1_TOTODILE
loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle startbattle
dontrestartmapmusic dontrestartmapmusic
@ -139,7 +139,7 @@ CherrygroveRivalSceneNorth:
.Totodile: .Totodile:
winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText
setlasttalked CHERRYGROVECITY_RIVAL setlasttalked CHERRYGROVECITY_RIVAL
loadtrainer RIVAL1, RIVAL1_1_CHIKORITA loadtrainer PASSERBY, RIVAL1_1_CHIKORITA
loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle startbattle
dontrestartmapmusic dontrestartmapmusic
@ -150,7 +150,7 @@ CherrygroveRivalSceneNorth:
.Chikorita: .Chikorita:
winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText winlosstext RivalCherrygroveWinText, RivalCherrygroveLossText
setlasttalked CHERRYGROVECITY_RIVAL setlasttalked CHERRYGROVECITY_RIVAL
loadtrainer RIVAL1, RIVAL1_1_CYNDAQUIL loadtrainer PASSERBY, RIVAL1_1_CYNDAQUIL
loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE loadvar VAR_BATTLETYPE, BATTLETYPE_CANLOSE
startbattle startbattle
dontrestartmapmusic dontrestartmapmusic
@ -161,7 +161,7 @@ CherrygroveRivalSceneNorth:
.AfterVictorious: .AfterVictorious:
playmusic MUSIC_RIVAL_AFTER playmusic MUSIC_RIVAL_AFTER
opentext opentext
writetext CherrygroveRivalText_YouWon writetext CherrygroveRivalText_AfterBattle
waitbutton waitbutton
closetext closetext
sjump .FinishRival sjump .FinishRival
@ -169,14 +169,35 @@ CherrygroveRivalSceneNorth:
.AfterYourDefeat: .AfterYourDefeat:
playmusic MUSIC_RIVAL_AFTER playmusic MUSIC_RIVAL_AFTER
opentext opentext
writetext CherrygroveRivalText_YouLost writetext CherrygroveRivalText_AfterBattle
waitbutton waitbutton
closetext closetext
.FinishRival: .FinishRival:
playsound SFX_TACKLE playsound SFX_TACKLE
applymovement PLAYER, CherrygroveCity_RivalPushesYouOutOfTheWay applymovement PLAYER, CherrygroveCity_RivalPushesYouOutOfTheWay
turnobject PLAYER, LEFT 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 applymovement CHERRYGROVECITY_RIVAL, CherrygroveCity_RivalExitsStageLeft
disappear CHERRYGROVECITY_RIVAL disappear CHERRYGROVECITY_RIVAL
setscene SCENE_CHERRYGROVECITY_NOOP setscene SCENE_CHERRYGROVECITY_NOOP
special HealParty special HealParty
@ -326,6 +347,49 @@ CherrygroveCity_RivalPushesYouOutOfTheWay:
turn_head UP turn_head UP
step_end 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: CherrygroveCity_RivalExitsStageLeft:
big_step LEFT big_step LEFT
big_step LEFT big_step LEFT
@ -477,10 +541,14 @@ RivalCherrygroveWinText:
line "happy you won?" line "happy you won?"
done done
CherrygroveRivalText_YouLost: ; merged into one due to redundancy
CherrygroveRivalText_AfterBattle:
text "<……> <……> <……>" text "<……> <……> <……>"
para "My name's ???." para "Want to know who"
line "I am?"
para "<……>"
para "I'm going to be" para "I'm going to be"
line "the world's great-" line "the world's great-"
@ -493,17 +561,6 @@ RivalCherrygroveLossText:
line "waste of time." line "waste of time."
done 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: CherrygroveTeacherText_NoMapCard:
text "Did you talk to" text "Did you talk to"
line "the old man by the" line "the old man by the"