From d55f84876157e41ecadf1d8865188105bbfab3a0 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:30:04 +0100 Subject: [PATCH] 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. --- constants/trainer_constants.asm | 4 +- data/trainers/attributes.asm | 6 ++ data/trainers/class_names.asm | 1 + data/trainers/dvs.asm | 1 + data/trainers/encounter_music.asm | 1 + data/trainers/genders.asm | 1 + data/trainers/palettes.asm | 1 + data/trainers/parties.asm | 10 ++-- data/trainers/party_pointers.asm | 1 + data/trainers/pic_pointers.asm | 1 + data/trainers/sprites.asm | 1 + gfx/pics.asm | 1 + maps/CherrygroveCity.asm | 93 +++++++++++++++++++++++++------ 13 files changed, 99 insertions(+), 23 deletions(-) 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"