From 7e8c16c5a6e95415df51bd61d100e1b4e5ca8ab6 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sat, 15 Apr 2023 19:50:49 +0100 Subject: [PATCH] Viridian Pre-Gym populated This finishes Viridian Pre-Gym save for making trainers see you. --- constants/event_constants.asm | 4 +- data/maps/objects/ViridianPreGym.asm | 9 +++ data/tilesets/bookshelf_tile_ids.asm | 3 +- data/tilesets/tileset_headers.asm | 2 +- data/trainers/encounter_types.asm | 2 +- data/trainers/parties.asm | 2 + gfx/blocksets/pregym.bst | Bin 816 -> 816 bytes maps/ViridianPreGym.blk | 2 +- scripts/ViridianPreGym.asm | 100 ++++++++++++++++++++++----- text/ViridianPreGym.asm | 95 +++++++++++++++++++++++++ 10 files changed, 197 insertions(+), 22 deletions(-) diff --git a/constants/event_constants.asm b/constants/event_constants.asm index f3ed648c..f40d788b 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -26,7 +26,9 @@ const EVENT_VIRIDIAN_GYM_OPEN const EVENT_GOT_TM42 const EVENT_BEAT_YUJIROU - const_skip 13 + const_skip 11 + const EVENT_BEAT_VIRIDIAN_PREGYM_TRAINER_0 + const EVENT_BEAT_VIRIDIAN_PREGYM_TRAINER_1 const EVENT_OAK_GOT_PARCEL const EVENT_GOT_OAKS_PARCEL const_skip 22 diff --git a/data/maps/objects/ViridianPreGym.asm b/data/maps/objects/ViridianPreGym.asm index 3716ee67..083cd5cc 100644 --- a/data/maps/objects/ViridianPreGym.asm +++ b/data/maps/objects/ViridianPreGym.asm @@ -6,9 +6,18 @@ ViridianPreGym_Object: warp_event 4, 13, LAST_MAP, 7 def_bg_events + bg_event 2, 7, 7 ; League poster + bg_event 4, 0, 8 ; Trainer Tips 1 + bg_event 5, 0, 9 ; Trainer Tips 2 + bg_event 8, 6, 10 ; PC + bg_event 3, 7, 11 ; Rhydon Statue + bg_event 6, 7, 12 ; Rhydon Statue def_object_events object_event 5, 2, SPRITE_YOUNGSTER, STAY, NONE, 1 ; person, Yujirou object_event 5, 2, SPRITE_YOUNGSTER, STAY, NONE, 2 ; person, Yujirou 2 + object_event 6, 9, SPRITE_GIRL, STAY, LEFT, 4, OPP_STUDENT, 1 ; person, Trainer 1 + object_event 3, 8, SPRITE_GIRL, STAY, RIGHT, 5, OPP_STUDENT, 2 ; person, Trainer 2 + object_event 1, 6, SPRITE_GYM_GUIDE, STAY, DOWN, 6 ; person def_warps_to VIRIDIAN_PRE_GYM \ No newline at end of file diff --git a/data/tilesets/bookshelf_tile_ids.asm b/data/tilesets/bookshelf_tile_ids.asm index f2223c8e..43e2d2a7 100644 --- a/data/tilesets/bookshelf_tile_ids.asm +++ b/data/tilesets/bookshelf_tile_ids.asm @@ -22,5 +22,6 @@ BookshelfTileIDs: bookshelf_tile LOBBY, $50, PokemonStuffText bookshelf_tile LOBBY, $52, PokemonStuffText bookshelf_tile SHIP, $36, BookOrSculptureText - bookshelf_tile PREGYM, $57, PokemonStuffText + bookshelf_tile PREGYM, $56, BookOrSculptureText + bookshelf_tile PREGYM, $57, BookOrSculptureText db -1 ; end diff --git a/data/tilesets/tileset_headers.asm b/data/tilesets/tileset_headers.asm index 48d59ee5..ac4ff391 100644 --- a/data/tilesets/tileset_headers.asm +++ b/data/tilesets/tileset_headers.asm @@ -33,5 +33,5 @@ Tilesets: tileset Club, $07,$17, -1, -1, TILEANIM_NONE tileset Facility, $12, -1, -1, -1, TILEANIM_WATER tileset Plateau, -1, -1, -1, $45, TILEANIM_WATER - tileset PreGym, $20, -1, -1, -1, TILEANIM_NONE + tileset PreGym, $3A, $3B, -1, -1, TILEANIM_NONE assert_table_length NUM_TILESETS diff --git a/data/trainers/encounter_types.asm b/data/trainers/encounter_types.asm index 25621239..71232b41 100644 --- a/data/trainers/encounter_types.asm +++ b/data/trainers/encounter_types.asm @@ -3,10 +3,10 @@ FemaleTrainerList:: db OPP_JR_TRAINER_F db OPP_BEAUTY db OPP_COOLTRAINER_F + db OPP_STUDENT db -1 ; end EvilTrainerList:: - ;db OPP_UNUSED_JUGGLER db OPP_GAMBLER db OPP_ROCKER db OPP_JUGGLER diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 2579863c..deb1286d 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -663,6 +663,8 @@ ChannelerData: db 33, GASTLY, GASTLY, HAUNTER, 0 StudentData: + db 6, PIDGEY, HINAAZU, 0 + db 4, CLEFAIRY, 0 FirefighterData: diff --git a/gfx/blocksets/pregym.bst b/gfx/blocksets/pregym.bst index ba52dd35779df6925152884a7cf40206c0b3e570..4addd9b553b1067a39f56b7faf9d4e03907c886a 100644 GIT binary patch delta 27 ecmdnMwt;QKAx1tueQxfMPzVkS-+X~Ffe`?02nTTh delta 27 fcmdnMwt;QKAx1uKFkoS2WfKt<72AA)F@X^PRmuf@ diff --git a/maps/ViridianPreGym.blk b/maps/ViridianPreGym.blk index 9fb05063..bdd2c2b2 100644 --- a/maps/ViridianPreGym.blk +++ b/maps/ViridianPreGym.blk @@ -1,2 +1,2 @@  '%   - "#! \ No newline at end of file + "#! \ No newline at end of file diff --git a/scripts/ViridianPreGym.asm b/scripts/ViridianPreGym.asm index 6190590c..b119fab4 100644 --- a/scripts/ViridianPreGym.asm +++ b/scripts/ViridianPreGym.asm @@ -1,26 +1,11 @@ -; This code has a lot of problems with solutions that barely escape me. Many references from Erika's Gym have been taken to make a fight that cannot be done again, but with a rematch later. In other words, your average gym. -; SetEvent EVENT_BEAT_YUJIROU does not seem to be applying. -; It's very easy to cause an infinite loop where you somehow get catapulted into the rematch fight -; And much more. -; Commit on 30-3-23 has a somewhat stable version of the fight. - ViridianPreGym_Script: + call EnableAutoTextBoxDrawing + ld hl, ViridianPreGymTrainerHeaders ld de, ViridianPreGym_ScriptPointers ld a, [wViridianPreGymCurScript] call ExecuteCurMapScriptInTable ld [wViridianPreGymCurScript], a ret - -.LoadNames: - ld hl, .CityName - ld de, .LeaderName - jp LoadGymLeaderAndCityName - -.CityName: - db "VIRIDIAN PRE-GYM@" - -.LeaderName: - db "YUJIROU@" ViridianPreGymResetScripts: xor a @@ -50,6 +35,23 @@ ViridianPreGym_TextPointers: dw YujirouText dw YujirouHasBeenBeaten dw YujirouRematch + dw ViridianPreGymText1 + dw ViridianPreGymText2 + dw ViridianPreGymGuide + dw ViridianPreGymSign1 + dw ViridianPreGymSign2 + dw ViridianPreGymSign3 + dw ViridianPreGymSign4 + dw ViridianPreGymStatue1 + dw ViridianPreGymStatue2 + +ViridianPreGymTrainerHeaders: + def_trainers 6 +ViridianPreGymTrainerHeader0: + trainer EVENT_BEAT_VIRIDIAN_PREGYM_TRAINER_0, 1, ViridianPreGymBattleText1, ViridianPreGymEndBattleText1, ViridianPreGymAfterBattleText1 +ViridianPreGymTrainerHeader1: + trainer EVENT_BEAT_VIRIDIAN_PREGYM_TRAINER_1, 2, ViridianPreGymBattleText2, ViridianPreGymEndBattleText2, ViridianPreGymAfterBattleText2 + db -1 ;end YujirouText: text_asm @@ -145,4 +147,68 @@ YujirouAfterBattleText2:: text_far _YujirouAfterBattleText2 text_end +ViridianPreGymText1: + text_asm + ld hl, ViridianPreGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +ViridianPreGymBattleText1: + text_far _ViridianPreGymBattleText1 + text_end + +ViridianPreGymEndBattleText1: + text_far _ViridianPreGymEndBattleText1 + text_end + +ViridianPreGymAfterBattleText1: + text_far _ViridianPreGymAfterBattleText1 + text_end + +ViridianPreGymText2: + text_asm + ld hl, ViridianPreGymTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +ViridianPreGymBattleText2: + text_far _ViridianPreGymBattleText2 + text_end + +ViridianPreGymEndBattleText2: + text_far _ViridianPreGymEndBattleText2 + text_end + +ViridianPreGymAfterBattleText2: + text_far _ViridianPreGymAfterBattleText2 + text_end + +ViridianPreGymGuide: + text_far _ViridianPreGymGuide + text_end + +ViridianPreGymSign1: + text_far _ViridianPreGymSign1 + text_end + +ViridianPreGymSign2: + text_far _ViridianPreGymSign2 + text_end + +ViridianPreGymSign3: + text_far _ViridianPreGymSign3 + text_end + +ViridianPreGymSign4: + text_far _ViridianPreGymSign4 + text_end + +ViridianPreGymStatue1: + text_far _PreGymStatueText + text_end + +ViridianPreGymStatue2: + text_far _PreGymStatueText + text_end + text_end ; unused diff --git a/text/ViridianPreGym.asm b/text/ViridianPreGym.asm index 2a46a1df..e2dd860b 100644 --- a/text/ViridianPreGym.asm +++ b/text/ViridianPreGym.asm @@ -71,3 +71,98 @@ _YujirouAfterBattleText2:: para "Maybe it's me?" done + +_ViridianPreGymBattleText1:: + text "Did you know that" + line "the best #MON" + cont "are NORMAL-type?" + done + +_ViridianPreGymEndBattleText1:: + text "Mine" + line "aren't!" + prompt + +_ViridianPreGymAfterBattleText1:: + text "Maybe I should" + line "go to the SAFARI" + cont "ZONE." + done + +_ViridianPreGymBattleText2:: + text "CLEFAIRY and I" + line "are on a journey!" + done + +_ViridianPreGymEndBattleText2:: + text "CLEFAIRY!" + line "No!" + prompt + +_ViridianPreGymAfterBattleText2:: + text "We still have a" + line "lot to learn..." + done + +_ViridianPreGymGuide:: + text "Sigh..." + + para "The GYM LEADER" + line "of VIRIDIAN has" + cont "disappeared." + + para "We opened this" + line "PRE-GYM to find" + cont "new candidates," + cont "but..." + + para "This kid seems" + line "to be a little" + cont "too into it..." + done + +_ViridianPreGymSign1:: + text "#MON LEAGUE!" + line "Today's winners" + cont "are tomorrow's" + cont "#MON MASTERS!" + done + +_ViridianPreGymSign2:: + text "TRAINER TIPS" + + para "#MON cannot" + line "sustain ailments" + cont "from attacks with" + cont "types they have!" + done + +_ViridianPreGymSign3:: + text "TRAINER TIPS" + + para "Paralysis lowers" + line "a #MON's SPEED!" + + para "Burns lower a" + line "#MON's ATTACK!" + + para "Cure them with" + line "PARALYZ HEAL and" + cont "BURN HEAL!" + done + +_ViridianPreGymSign4:: + text "PRE-GYM tryout" + line "grades..." + + para "YUJIROU seems" + line "to have scored" + cont "poorly." + done + +_PreGymStatueText:: + text "VIRIDIAN PRE-GYM" + + para "CANDIDATE:" + line "YUJIROU" + done