diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index 8ffbead..624106a 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -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 diff --git a/data/trainers/attributes.asm b/data/trainers/attributes.asm index ef4a11c..d380acb 100644 --- a/data/trainers/attributes.asm +++ b/data/trainers/attributes.asm @@ -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 diff --git a/data/trainers/class_names.asm b/data/trainers/class_names.asm index 37e4301..4aaf2e1 100644 --- a/data/trainers/class_names.asm +++ b/data/trainers/class_names.asm @@ -9,6 +9,7 @@ TrainerClassNames:: li "LEADER" li "LEADER" li "LEADER" + li "PASSERBY" ; HGSS implementation li "RIVAL" li "#MON PROF." li "ELITE FOUR" diff --git a/data/trainers/dvs.asm b/data/trainers/dvs.asm index 3687ee5..a13a8c2 100644 --- a/data/trainers/dvs.asm +++ b/data/trainers/dvs.asm @@ -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 diff --git a/data/trainers/encounter_music.asm b/data/trainers/encounter_music.asm index 13af98e..2d71f3f 100644 --- a/data/trainers/encounter_music.asm +++ b/data/trainers/encounter_music.asm @@ -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 diff --git a/data/trainers/genders.asm b/data/trainers/genders.asm index 0a47376..9a819f6 100644 --- a/data/trainers/genders.asm +++ b/data/trainers/genders.asm @@ -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 diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm index a80dfc9..281a48a 100644 --- a/data/trainers/palettes.asm +++ b/data/trainers/palettes.asm @@ -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 diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 2f874a1..6a8e6d4 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -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 diff --git a/data/trainers/party_pointers.asm b/data/trainers/party_pointers.asm index 607e629..ad67835 100644 --- a/data/trainers/party_pointers.asm +++ b/data/trainers/party_pointers.asm @@ -11,6 +11,7 @@ TrainerGroups: dba JasmineGroup dba ChuckGroup dba ClairGroup + dba PasserbyGroup dba Rival1Group dba PokemonProfGroup dba WillGroup diff --git a/data/trainers/pic_pointers.asm b/data/trainers/pic_pointers.asm index 17fcb41..638991b 100644 --- a/data/trainers/pic_pointers.asm +++ b/data/trainers/pic_pointers.asm @@ -11,6 +11,7 @@ TrainerPicPointers:: dba JasminePic dba ChuckPic dba ClairPic + dba PasserbyPic dba Rival1Pic dba PokemonProfPic dba WillPic diff --git a/data/trainers/sprites.asm b/data/trainers/sprites.asm index add86d1..ffff8ca 100644 --- a/data/trainers/sprites.asm +++ b/data/trainers/sprites.asm @@ -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 diff --git a/gfx/pics.asm b/gfx/pics.asm index 72f0a46..a880ad3 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -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" diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index 242adf2..7756e9b 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -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"