From e43decef70a5970fb8110f4ce897d4c33a98daee Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:17:15 +0100 Subject: [PATCH] Pokemon Pagoda MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This gives Sepia City all of its locations. The pagoda uses references to the Five-Story Pagoda story from 1891, with Sages using various 成语 translated into English. This also adds the Elder class, assigning it to Li and (now) Roen. The Elder in the pagoda is not yet battle-able as I haven't really fit anything into the story. No cutscenes, etc, it's all too early. --- constants/event_flags.asm | 18 ++- constants/landmark_constants.asm | 1 + constants/map_constants.asm | 5 + constants/trainer_constants.asm | 24 +++- data/maps/attributes.asm | 5 + data/maps/blocks.asm | 15 ++ data/maps/landmarks.asm | 2 + data/maps/maps.asm | 5 + data/maps/scripts.asm | 5 + data/tilesets/nihon_old_collision.asm | 2 +- data/tilesets/tower_attributes.bin | Bin 1408 -> 1456 bytes data/tilesets/tower_collision.asm | 15 +- data/tilesets/tower_metatiles.bin | 2 +- data/trainers/attributes.asm | 6 + data/trainers/class_names.asm | 1 + data/trainers/dvs.asm | 1 + data/trainers/encounter_music.asm | 1 + data/trainers/gendered_trainers.asm | 1 + data/trainers/genders.asm | 1 + data/trainers/palettes.asm | 1 + data/trainers/parties.asm | 199 +++++++++++--------------- data/trainers/parties_new_classes.asm | 122 ++++++++++++++++ data/trainers/party_pointers.asm | 1 + data/trainers/pic_pointers.asm | 1 + data/trainers/sprites.asm | 1 + maps/OldCity.asm | 8 +- maps/PokemonPagoda1F.ablk | 1 + maps/PokemonPagoda1F.asm | 94 ++++++++++++ maps/PokemonPagoda2F.ablk | 1 + maps/PokemonPagoda2F.asm | 177 +++++++++++++++++++++++ maps/PokemonPagoda3F.ablk | 1 + maps/PokemonPagoda3F.asm | 173 ++++++++++++++++++++++ maps/PokemonPagoda4F.ablk | 1 + maps/PokemonPagoda4F.asm | 181 +++++++++++++++++++++++ maps/PokemonPagoda5F.ablk | 1 + maps/PokemonPagoda5F.asm | 67 +++++++++ maps/SproutTower3F.asm | 28 ++-- 37 files changed, 1017 insertions(+), 151 deletions(-) create mode 100644 maps/PokemonPagoda1F.ablk create mode 100644 maps/PokemonPagoda1F.asm create mode 100644 maps/PokemonPagoda2F.ablk create mode 100644 maps/PokemonPagoda2F.asm create mode 100644 maps/PokemonPagoda3F.ablk create mode 100644 maps/PokemonPagoda3F.asm create mode 100644 maps/PokemonPagoda4F.ablk create mode 100644 maps/PokemonPagoda4F.asm create mode 100644 maps/PokemonPagoda5F.ablk create mode 100644 maps/PokemonPagoda5F.asm diff --git a/constants/event_flags.asm b/constants/event_flags.asm index b61fe1b..c359ef3 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -595,7 +595,14 @@ const EVENT_BEAT_SAGE_PING const EVENT_BEAT_SAGE_EDMOND const EVENT_BEAT_SAGE_NEAL - const EVENT_BEAT_SAGE_LI + const EVENT_BEAT_SAGE_MING + const EVENT_BEAT_SAGE_WEI + const EVENT_BEAT_SAGE_LANG + const EVENT_BEAT_SAGE_HUANG + const EVENT_BEAT_SAGE_GEN + const EVENT_BEAT_SAGE_RAOH + const EVENT_BEAT_SAGE_SHUU + const EVENT_BEAT_SAGE_SHENG ; Camper const EVENT_BEAT_CAMPER_ROLAND const EVENT_BEAT_CAMPER_TODD @@ -1015,6 +1022,7 @@ const EVENT_BEAT_MEDIUM_ETHEL const EVENT_BEAT_MEDIUM_REBECCA const EVENT_BEAT_MEDIUM_DORIS + const EVENT_BEAT_MEDIUM_ELSIE ; Skier const EVENT_BEAT_SKIER_ROXANNE const EVENT_BEAT_SKIER_CLARISSA @@ -1091,6 +1099,8 @@ const EVENT_BEAT_PAINTER_DALI ; unused const EVENT_BEAT_SOLDIER_PEPPINO ; unused const EVENT_BEAT_SPORTSMAN_JACQUES ; unused + const EVENT_BEAT_ELDER_LI + const EVENT_BEAT_ELDER_ROEN ; Nihon Bosses const EVENT_BEAT_LEADER_WALKER const EVENT_BEAT_LEADER_LORELEI @@ -1109,8 +1119,7 @@ const EVENT_BEAT_ARCHER2 const EVENT_BEAT_ARCHER3 const EVENT_BEAT_PROFBLUE - const EVENT_GOT_TM47_STEEL_WING2 -; Unused: next 86 events +; Unused: next 77 events const_next 1600 ; Sprite visibility flags @@ -1538,7 +1547,8 @@ const EVENT_PALSSIO_POKEBALL_IN_BLUES_LAB ; to hide const EVENT_GONE_THROUGH_STARTER_DOOR const EVENT_BRIEFED_BY_BLUE -; Unused: next 40 events + const EVENT_GOT_TM47_STEEL_WING2 +; Unused: next 39 events const_next 2048 DEF NUM_EVENTS EQU const_value ; 800 diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index b3d7eca..8c9a3bb 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -132,6 +132,7 @@ DEF NIHON_LANDMARK EQU const_value const LANDMARK_ROUTE_49 const LANDMARK_QUIET_CAVE const LANDMARK_OLD_CITY + const LANDMARK_POKEMON_PAGODA const LANDMARK_BLUE_FOREST const LANDMARK_ROUTE_66 const LANDMARK_WHITE_CITY diff --git a/constants/map_constants.asm b/constants/map_constants.asm index c264660..253913d 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -645,6 +645,11 @@ ENDM map_const SEPIA_SCHOOL, 4, 8 ; 7 map_const OLD_CITY_GYM, 6, 10 ; 8 map_const OLD_CITY_MUSEUM, 8, 3 ; 9 + map_const POKEMON_PAGODA_1F, 5, 5 ; 10 + map_const POKEMON_PAGODA_2F, 5, 5 ; 10 + map_const POKEMON_PAGODA_3F, 5, 5 ; 10 + map_const POKEMON_PAGODA_4F, 5, 5 ; 10 + map_const POKEMON_PAGODA_5F, 3, 3 ; 10 endgroup newgroup BLUE_FOREST ; 37 diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index e7c7a42..f503655 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -635,19 +635,31 @@ DEF KRIS EQU __trainer_class__ const PING const EDMOND const NEAL - const LI const GAKU const MASA const KOJI + + ; New Sages for the Pokemon Pagoda. + ; Given Li, Chow, Jin, and Ping are Chinese names, I decided to adapt it here. + ; I also added the French Crystal Wise Trio's names; Raoh, and Shuu, which were Fist of the North Star references. Because it's just kind of cool. Ken already exists, so I instead went with Gen, the name of a Chinese Street Fighter character. + const MING + const WEI + const LANG + const HUANG + const GEN + const RAOH + const SHUU + const SHENG trainerclass MEDIUM ; 39 const MARTHA const GRACE - const BETHANY ; unused - const MARGRET ; unused - const ETHEL ; unused + const BETHANY ; unused, now Pagoda 2F Medium + const MARGRET ; unused, now Pagoda 2F Medium + const ETHEL ; unused, now Pagoda 2F Medium const REBECCA const DORIS + const ELSIE ; Pagoda 2F Mediums trainerclass BOARDER ; 3a const RONALD @@ -793,6 +805,10 @@ DEF KRIS EQU __trainer_class__ trainerclass PROFBLUE const PROFBLUE1 + + trainerclass ELDER + const LI + const KONG DEF TOPAZ EQU __trainer_class__ DEF NUM_TRAINER_CLASSES EQU __trainer_class__ - 1 diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index 6c1e445..931fcbf 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -834,6 +834,11 @@ ENDM map_attributes SepiaSchool, SEPIA_SCHOOL, $00, 0 map_attributes OldCityGym, OLD_CITY_GYM, $00, 0 map_attributes OldCityMuseum, OLD_CITY_MUSEUM, $00, 0 + map_attributes PokemonPagoda1F, POKEMON_PAGODA_1F, $00, 0 + map_attributes PokemonPagoda2F, POKEMON_PAGODA_2F, $00, 0 + map_attributes PokemonPagoda3F, POKEMON_PAGODA_3F, $00, 0 + map_attributes PokemonPagoda4F, POKEMON_PAGODA_4F, $00, 0 + map_attributes PokemonPagoda5F, POKEMON_PAGODA_5F, $00, 0 map_attributes BlueForest, BLUE_FOREST, $00, 0 ; this is on its own for now. add connections later. diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index d82b31f..6b32af0 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1246,3 +1246,18 @@ OldCityGym_Blocks: OldCityMuseum_Blocks: INCBIN "maps/OldCityMuseum.ablk" + +PokemonPagoda1F_Blocks: + INCBIN "maps/PokemonPagoda1F.ablk" + +PokemonPagoda2F_Blocks: + INCBIN "maps/PokemonPagoda2F.ablk" + +PokemonPagoda3F_Blocks: + INCBIN "maps/PokemonPagoda3F.ablk" + +PokemonPagoda4F_Blocks: + INCBIN "maps/PokemonPagoda4F.ablk" + +PokemonPagoda5F_Blocks: + INCBIN "maps/PokemonPagoda5F.ablk" diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 3b1730f..4423587 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -136,6 +136,7 @@ Landmarks: landmark 84, 108, Route49Name landmark 76, 108, QuietCaveName landmark 76, 100, OldCityName + landmark 76, 100, PokemonPagodaName landmark 140, 60, BlueForestName landmark 108, 108, Route66Name landmark 124, 108, WhiteCityName @@ -251,6 +252,7 @@ Route66Name: db "ROUTE 66@" Route49Name: db "ROUTE 49@" QuietCaveName: db "QUIET¯CAVE@" OldCityName: db "SEPIA¯CITY@" +PokemonPagodaName: db "#MON¯PAGODA@" ; High Tech will be called "Vogue City" BlueForestName: db "BLUE¯FOREST@" WhiteCityName: db "WHITE¯CITY@" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index 4af3ce1..092ab19 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -705,6 +705,11 @@ MapGroup_OldCity: map SepiaSchool, TILESET_LAB, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE map OldCityGym, TILESET_TOWER, INDOOR, LANDMARK_OLD_CITY, MUSIC_GYM, FALSE, PALETTE_DAY, FISHGROUP_NONE map OldCityMuseum, TILESET_TOWER, INDOOR, LANDMARK_OLD_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE + map PokemonPagoda1F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE + map PokemonPagoda2F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE + map PokemonPagoda3F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE + map PokemonPagoda4F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE + map PokemonPagoda5F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE assert_table_length NUM_OLD_CITY_MAPS MapGroup_BlueForest: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 3d0573f..bc6fbde 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -591,6 +591,11 @@ INCLUDE "maps/Route66WhiteCityGate.asm" SECTION "Map Scripts 30", ROMX INCLUDE "maps/OldCityGym.asm" INCLUDE "maps/OldCityMuseum.asm" +INCLUDE "maps/PokemonPagoda1F.asm" +INCLUDE "maps/PokemonPagoda2F.asm" +INCLUDE "maps/PokemonPagoda3F.asm" +INCLUDE "maps/PokemonPagoda4F.asm" +INCLUDE "maps/PokemonPagoda5F.asm" SECTION "Map Scripts 31", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" diff --git a/data/tilesets/nihon_old_collision.asm b/data/tilesets/nihon_old_collision.asm index d21bbba..cd47386 100644 --- a/data/tilesets/nihon_old_collision.asm +++ b/data/tilesets/nihon_old_collision.asm @@ -60,7 +60,7 @@ tilecoll WALL, WALL, WALL, WALL ; 3b tilecoll WALL, WALL, WALL, WALL ; 3c tilecoll WALL, DOOR, FLOOR, FLOOR ; 3d - tilecoll DOOR, WALL, FLOOR, WALL ; 3e + tilecoll DOOR, WALL, FLOOR, FLOOR ; 3e tilecoll WALL, WALL, WALL, WALL ; 3f tilecoll WALL, WALL, FLOOR, WALL ; 40 tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 41 diff --git a/data/tilesets/tower_attributes.bin b/data/tilesets/tower_attributes.bin index 4eee61e67e07537b06595c2fd3869764b6b579a9..f1af26100272f98e0c706b0d5ddb513038332662 100644 GIT binary patch delta 113 zcmZqR-oU-ViA9eW40M4cD=UZzB9SpjjF(pzh(V&04OkQeKmsrT5}e4GF`0wafk~Hl UvKOn_WCKR delta 33 jcmdnM-N3!UiDj}9ivkqOO=QiO%)#ow#L7C^i`5JOlu-xB diff --git a/data/tilesets/tower_collision.asm b/data/tilesets/tower_collision.asm index 06f26de..8c0c6fa 100644 --- a/data/tilesets/tower_collision.asm +++ b/data/tilesets/tower_collision.asm @@ -64,14 +64,14 @@ tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 3f tilecoll WALL, WALL, FLOOR, FLOOR ; 40 tilecoll WALL, WALL, FLOOR, FLOOR ; 41 - tilecoll WALL, WALL, FLOOR, FLOOR ; 42 - tilecoll WALL, WALL, FLOOR, FLOOR ; 43 - tilecoll WALL, WALL, FLOOR, FLOOR ; 44 - tilecoll WALL, WALL, FLOOR, FLOOR ; 45 - tilecoll WALL, WALL, FLOOR, FLOOR ; 46 + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 42 + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 43 + tilecoll WALL, WALL, FLOOR, WALL ; 44 + tilecoll WALL, WALL, WALL, FLOOR ; 45 + tilecoll WALL, WALL, FLOOR, WALL ; 46 tilecoll WALL, WALL, FLOOR, FLOOR ; 47 tilecoll WALL, WALL, FLOOR, FLOOR ; 48 - tilecoll WALL, WALL, FLOOR, FLOOR ; 49 + tilecoll WALL, WALL, FLOOR, WALL ; 49 tilecoll WALL, FLOOR, WALL, FLOOR ; 4a tilecoll FLOOR, WALL, FLOOR, WALL ; 4b tilecoll FLOOR, WALL, FLOOR, FLOOR ; 4c @@ -86,3 +86,6 @@ tilecoll WALL, WALL, FLOOR, FLOOR ; 55 tilecoll WALL, WALL, FLOOR, FLOOR ; 56 tilecoll WALL, WALL, FLOOR, FLOOR ; 57 + tilecoll WALL, WALL, FLOOR, WALL ; 58 + tilecoll WALL, WALL, LADDER, FLOOR ; 59 + tilecoll WALL, WALL, LADDER, FLOOR ; 5a diff --git a/data/tilesets/tower_metatiles.bin b/data/tilesets/tower_metatiles.bin index 607b4d7..b491099 100644 --- a/data/tilesets/tower_metatiles.bin +++ b/data/tilesets/tower_metatiles.bin @@ -1,4 +1,4 @@  @ !!A1A1!!!!!!@ A1A1 A1A1A1A1A1A1A1A1A1A1!!!!!!!!A1A1!!!! -.=><>MN./>?,NO()89*+:;()89*+:;MN]^NO^_A1A1@ !!A1A1!!@ !!!!^^^^"#23&'67"#23&'67PQPQPQPQPQPQPQPQ$$$$  "#23!!67"#!!2367%545%545%545%545 ^^   GHWX - GHWXFV GW PQPQRSRSBCHZ[!XL\67IBCY!Z[L\67JKZ[L\67JKZ[L\67DETU!!!!PPPPPPPPFV   GW 0123!!4501!!2345EFUV!!55EF!!UV55IJYZ!!55IJ!!YZ55KL[\!!55KL!![\556789!!5567!!8955!!^^!!^^!!!!!!!!!!!!!!!! !!!$%:;!#%'NO^_<=]]>?MM55]]<=MM>?55]]]]MMMM]]!!MM]]MM!! \ No newline at end of file + GHWXFV GW PQPQRSRSBCHZ[!XL\67IBCY!Z[L\67JKZ[L\67JKZ[L\67DETU!!!!PPPPPPPPFV   GW 0123!!4501!!2345EFUV55EFUV55IJ]]YZMM55NO^_]]MM!!NO^_KL]][\MM55NO^_KL!![\556789!!5501]]23MM45NO^_!!^^!!^^!!!!!!!!!!!!!!!! !!!$%:;!#%'NO^_<=]]>?MM5567<=89>?5555]]]]MMMM]]!!MM]]MM!!]]]]MMMMNO^_]]]]MMMM ]]]]MMMM \ No newline at end of file diff --git a/data/trainers/attributes.asm b/data/trainers/attributes.asm index 5f989ce..3096d99 100644 --- a/data/trainers/attributes.asm +++ b/data/trainers/attributes.asm @@ -549,4 +549,10 @@ TrainerClassAttributes: dw AI_BASIC | AI_SETUP | AI_SMART | AI_AGGRESSIVE | AI_CAUTIOUS | AI_STATUS | AI_RISKY dw CONTEXT_USE | SWITCH_SOMETIMES +; Elder + db NO_ITEM, NO_ITEM ; items + db 10 ; base reward + dw AI_BASIC | AI_SETUP | AI_TYPES | AI_CAUTIOUS | AI_STATUS | AI_RISKY + dw CONTEXT_USE | SWITCH_SOMETIMES + assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/class_names.asm b/data/trainers/class_names.asm index 65e5108..0097dc1 100644 --- a/data/trainers/class_names.asm +++ b/data/trainers/class_names.asm @@ -92,4 +92,5 @@ TrainerClassNames:: li "EXECUTIVE" li "EXECUTIVE" li "PROFESSOR" + li "ELDER" assert_list_length NUM_TRAINER_CLASSES diff --git a/data/trainers/dvs.asm b/data/trainers/dvs.asm index 2ee2599..eb5857c 100644 --- a/data/trainers/dvs.asm +++ b/data/trainers/dvs.asm @@ -93,4 +93,5 @@ TrainerClassDVs: dn 13, 12, 13, 13 ; ARIANA dn 13, 12, 13, 13 ; ARCHER dn 13, 12, 13, 13 ; PROF.BLUE + dn 12, 15, 13, 13 ; ELDER (HP Ground) assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/encounter_music.asm b/data/trainers/encounter_music.asm index bf2e8c3..37d85d5 100644 --- a/data/trainers/encounter_music.asm +++ b/data/trainers/encounter_music.asm @@ -95,4 +95,5 @@ TrainerEncounterMusic:: db MUSIC_ROCKET_ENCOUNTER ; ARIANA db MUSIC_ROCKET_ENCOUNTER ; ARCHER db MUSIC_OFFICER_ENCOUNTER ; PROF.BLUE + db MUSIC_SAGE_ENCOUNTER ; ELDER assert_table_length NUM_TRAINER_CLASSES + 1 diff --git a/data/trainers/gendered_trainers.asm b/data/trainers/gendered_trainers.asm index 6df0f09..f6fc843 100644 --- a/data/trainers/gendered_trainers.asm +++ b/data/trainers/gendered_trainers.asm @@ -36,6 +36,7 @@ MaleTrainers: db SOLDIER db SPORTSMAN db AEROFOSSIL + db ELDER .End FemaleTrainers: diff --git a/data/trainers/genders.asm b/data/trainers/genders.asm index 0f29913..864f597 100644 --- a/data/trainers/genders.asm +++ b/data/trainers/genders.asm @@ -94,4 +94,5 @@ BTTrainerClassGenders: db MALE ; ARIANA db FEMALE ; ARCHER db MALE ; PROF.BLUE + db MALE ; ELDER assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm index afdb27d..b123e10 100644 --- a/data/trainers/palettes.asm +++ b/data/trainers/palettes.asm @@ -101,6 +101,7 @@ INCBIN "gfx/trainers/kurt.gbcpal", middle_colors INCBIN "gfx/trainers/ariana.gbcpal", middle_colors INCBIN "gfx/trainers/archer.gbcpal", middle_colors INCBIN "gfx/trainers/blue_professor.gbcpal", middle_colors +INCBIN "gfx/trainers/sage.gbcpal", middle_colors ; elder EnbyPalette: INCLUDE "gfx/player/topaz.pal" diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 5f9826b..a4cc06d 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -4876,6 +4876,7 @@ ExecutiveFGroup: ; Ariana end_list_items +; Often seen with Hoothoot in media, so there's a few scattered around for variety. SageGroup: next_list_item ; SAGE (1) db "CHOW@", TRAINERTYPE_NORMAL @@ -4894,13 +4895,13 @@ SageGroup: db 3 dw BELLSPROUT db 3 - dw BELLSPROUT + dw HOOTHOOT db -1 ; end next_list_item ; SAGE (3) db "JIN@", TRAINERTYPE_NORMAL db 6 - dw BELLSPROUT + dw HOOTHOOT db -1 ; end next_list_item ; SAGE (4) @@ -4947,16 +4948,9 @@ SageGroup: dw BELLSPROUT db -1 ; end - next_list_item ; SAGE (9) - db "LI@", TRAINERTYPE_MOVES - db 10 - dw BELLIGNAN - dw FLASH, VINE_WHIP, GROWTH, WRAP - db -1 ; end - ; So these sages are in the Dragon's Den but end up being the Kimono Girls but again. ; Let's give them the Eeveelutions the Kimono Girls don't have! - next_list_item ; SAGE (10) + next_list_item ; SAGE (9) db "GAKU@", TRAINERTYPE_NORMAL db 42 dw NOCTOWL @@ -4964,7 +4958,7 @@ SageGroup: dw LEAFEON db -1 ; end - next_list_item ; SAGE (11) + next_list_item ; SAGE (10) db "MASA@", TRAINERTYPE_NORMAL db 42 dw NOCTOWL @@ -4972,14 +4966,71 @@ SageGroup: dw GLACEON db -1 ; end - next_list_item ; SAGE (12) + next_list_item ; SAGE (11) db "KOJI@", TRAINERTYPE_NORMAL db 42 dw NOCTOWL db 42 dw SYLVEON db -1 ; end - + + ; Pokemon Pagoda Sages + ; 3F + next_list_item ; SAGE (12) + db "MING@", TRAINERTYPE_NORMAL ; double-references this one super old clam that lived since the ming dynasty and aptly received it as an epithet before dying to trawlers. Since it's the Tentacruel floor, it felt very fitting! https://en.wikipedia.org/wiki/Ming_(clam) + db 50 + dw CLOYSTER + db 50 + dw TENTACRUEL + db -1 ; end + + next_list_item ; SAGE (13) + db "WEI@", TRAINERTYPE_NORMAL + db 50 + dw TENTACRUEL + db -1 ; end + + next_list_item ; SAGE (14) + db "LANG@", TRAINERTYPE_NORMAL + db 50 + dw TENTACRUEL + db -1 ; end + + next_list_item ; SAGE (15) + db "HUANG@", TRAINERTYPE_NORMAL + db 50 + dw NOCTOWL + db 50 + dw TENTACRUEL + db -1 ; end + + ; 4F + next_list_item ; SAGE (16) + db "GEN@", TRAINERTYPE_NORMAL + db 50 + dw FEAROW + db -1 ; end + + next_list_item ; SAGE (17) + db "RAOH@", TRAINERTYPE_NORMAL + db 50 + dw FEAROW + db -1 ; end + + next_list_item ; SAGE (18) + db "SHUU@", TRAINERTYPE_NORMAL + db 50 + dw FEAROW + db -1 ; end + + next_list_item ; SAGE (19) + db "SHENG@", TRAINERTYPE_NORMAL + db 50 + dw NOCTOWL + db 50 + dw FEAROW + db -1 ; end + end_list_items MediumGroup: @@ -5000,21 +5051,23 @@ MediumGroup: db -1 ; end next_list_item ; MEDIUM (3) - db "BETHANY@", TRAINERTYPE_NORMAL ; Unused? - db 25 - dw HAUNTER + db "BETHANY@", TRAINERTYPE_NORMAL ; unused, now Pagoda 2F Medium + db 50 + dw WISPIRIT db -1 ; end next_list_item ; MEDIUM (4) - db "MARGRET@", TRAINERTYPE_NORMAL ; unused - db 25 - dw HAUNTER + db "MARGRET@", TRAINERTYPE_NORMAL ; unused, now Pagoda 2F Medium + db 50 + dw STROMEN + db 50 + dw PHANDARIN db -1 ; end next_list_item ; MEDIUM (5) - db "ETHEL@", TRAINERTYPE_NORMAL ; unused - db 25 - dw HAUNTER + db "ETHEL@", TRAINERTYPE_NORMAL ; unused, now Pagoda 2F Medium + db 50 + dw KITSEN db -1 ; end next_list_item ; MEDIUM (6) @@ -5032,7 +5085,13 @@ MediumGroup: db 36 dw SLOWBRO db -1 ; end - + + next_list_item ; MEDIUM (8) + db "ELSIE@", TRAINERTYPE_NORMAL ; Pagoda 2F Medium + db 50 + dw WISPIRIT + db -1 ; end + end_list_items BoarderGroup: ; All in Pryce's Gym. Could expand to Ice Path and Seafoam. @@ -5263,100 +5322,6 @@ KimonoGirlGroup: end_list_items -; No rematches here, just a lot of unused dupes. -; Potential alt usage? rename a few? -; See spreadsheet for combinations. -TwinsGroup: - next_list_item ; TWINS (1) - db "AMY & MAY@", TRAINERTYPE_NORMAL - db 10 - dw SPINARAK - db 10 - dw LEDYBA - db -1 ; end - - next_list_item ; TWINS (2) - db "ANN & ANNE@", TRAINERTYPE_MOVES - db 16 - dw CLEFAIRY - dw GROWL, ENCORE, DOUBLESLAP, METRONOME - db 16 - dw JIGGLYPUFF - dw SING, DEFENSE_CURL, POUND, DISABLE - db -1 ; end - - next_list_item ; TWINS (3) - db "ANN & ANNE@", TRAINERTYPE_MOVES - db 16 - dw JIGGLYPUFF - dw SING, DEFENSE_CURL, POUND, DISABLE - db 16 - dw CLEFAIRY - dw GROWL, ENCORE, DOUBLESLAP, METRONOME - db -1 ; end - - next_list_item ; TWINS (4) - db "AMY & MAY@", TRAINERTYPE_NORMAL - db 10 - dw LEDYBA - db 10 - dw SPINARAK - db -1 ; end - - next_list_item ; TWINS (5) - db "JO & ZOE@", TRAINERTYPE_NORMAL - db 35 - dw VICTREEBEL - db 35 - dw VILEPLUME - db -1 ; end - - next_list_item ; TWINS (6) - db "JO & ZOE@", TRAINERTYPE_NORMAL - db 35 - dw VILEPLUME - db 35 - dw VICTREEBEL - db -1 ; end - - next_list_item ; TWINS (7) - db "MEG & PEG@", TRAINERTYPE_NORMAL - db 31 - dw TEDDIURSA - db 31 - dw PHANPY - db -1 ; end - - next_list_item ; TWINS (8) - db "MEG & PEG@", TRAINERTYPE_NORMAL - db 31 - dw PHANPY - db 31 - dw TEDDIURSA - db -1 ; end - - next_list_item ; TWINS (9) - db "LEA & PIA@", TRAINERTYPE_MOVES - db 35 - dw DRATINI - dw THUNDER_WAVE, TWISTER, FLAMETHROWER, HEADBUTT - db 35 - dw DRATINI - dw THUNDER_WAVE, TWISTER, ICE_BEAM, HEADBUTT - db -1 ; end - - next_list_item ; TWINS (10) - db "LEA & PIA@", TRAINERTYPE_MOVES - db 38 - dw DRATINI - dw THUNDER_WAVE, TWISTER, ICE_BEAM, HEADBUTT - db 38 - dw DRATINI - dw THUNDER_WAVE, TWISTER, FLAMETHROWER, HEADBUTT - db -1 ; end - - end_list_items - ; Added this to make room for more stuff. ; Yeah, they filled trainers to max capacity originally. Pretty impressive. SECTION "Enemy Trainer Parties 3", ROMX diff --git a/data/trainers/parties_new_classes.asm b/data/trainers/parties_new_classes.asm index 381ead1..607ece3 100644 --- a/data/trainers/parties_new_classes.asm +++ b/data/trainers/parties_new_classes.asm @@ -672,3 +672,125 @@ ProfBlueGroup: dw THUNDERBOLT, CROSS_CHOP, EARTHQUAKE, THIEF db -1 ; end end_list_items + +ElderGroup: + next_list_item ; originally SAGE (9), now adapted from HGSS + db "LI@", TRAINERTYPE_MOVES + db 10 + dw BELLIGNAN + dw FLASH, VINE_WHIP, GROWTH, WRAP + db -1 ; end + + ; Intended to be just before you fight Shi-Shi (potentially) + db "ROEN@", TRAINERTYPE_MOVES ; from Roen, an esteemed priest from The Five-Storied Pagoda by Koda Rohan. + db 65 + dw FEAROW + dw DOUBLE_EDGE, DRILL_PECK, MIRROR_MOVE, AGILITY + db 65 + dw TENTACRUEL + dw SURF, DOUBLE_EDGE, SLUDGE_BOMB, SWORDS_DANCE + db 65 + dw ALAKAZAM + dw PSYCHIC_M, THUNDERPUNCH, FIRE_PUNCH, RECOVER + db 65 + dw ARCANINE + dw FIRE_BLAST, BODY_SLAM, DIG, HIDDEN_POWER + db 65 + dw GOROCHU + dw BELLY_DRUM, THUNDERBOLT, BODY_SLAM, SUBMISSION + db -1 ; end + end_list_items + +; No rematches here, just a lot of unused dupes. +; Potential alt usage? rename a few? +; See spreadsheet for combinations. +TwinsGroup: + next_list_item ; TWINS (1) + db "AMY & MAY@", TRAINERTYPE_NORMAL + db 10 + dw SPINARAK + db 10 + dw LEDYBA + db -1 ; end + + next_list_item ; TWINS (2) + db "ANN & ANNE@", TRAINERTYPE_MOVES + db 16 + dw CLEFAIRY + dw GROWL, ENCORE, DOUBLESLAP, METRONOME + db 16 + dw JIGGLYPUFF + dw SING, DEFENSE_CURL, POUND, DISABLE + db -1 ; end + + next_list_item ; TWINS (3) + db "ANN & ANNE@", TRAINERTYPE_MOVES + db 16 + dw JIGGLYPUFF + dw SING, DEFENSE_CURL, POUND, DISABLE + db 16 + dw CLEFAIRY + dw GROWL, ENCORE, DOUBLESLAP, METRONOME + db -1 ; end + + next_list_item ; TWINS (4) + db "AMY & MAY@", TRAINERTYPE_NORMAL + db 10 + dw LEDYBA + db 10 + dw SPINARAK + db -1 ; end + + next_list_item ; TWINS (5) + db "JO & ZOE@", TRAINERTYPE_NORMAL + db 35 + dw VICTREEBEL + db 35 + dw VILEPLUME + db -1 ; end + + next_list_item ; TWINS (6) + db "JO & ZOE@", TRAINERTYPE_NORMAL + db 35 + dw VILEPLUME + db 35 + dw VICTREEBEL + db -1 ; end + + next_list_item ; TWINS (7) + db "MEG & PEG@", TRAINERTYPE_NORMAL + db 31 + dw TEDDIURSA + db 31 + dw PHANPY + db -1 ; end + + next_list_item ; TWINS (8) + db "MEG & PEG@", TRAINERTYPE_NORMAL + db 31 + dw PHANPY + db 31 + dw TEDDIURSA + db -1 ; end + + next_list_item ; TWINS (9) + db "LEA & PIA@", TRAINERTYPE_MOVES + db 35 + dw DRATINI + dw THUNDER_WAVE, TWISTER, FLAMETHROWER, HEADBUTT + db 35 + dw DRATINI + dw THUNDER_WAVE, TWISTER, ICE_BEAM, HEADBUTT + db -1 ; end + + next_list_item ; TWINS (10) + db "LEA & PIA@", TRAINERTYPE_MOVES + db 38 + dw DRATINI + dw THUNDER_WAVE, TWISTER, ICE_BEAM, HEADBUTT + db 38 + dw DRATINI + dw THUNDER_WAVE, TWISTER, FLAMETHROWER, HEADBUTT + db -1 ; end + + end_list_items diff --git a/data/trainers/party_pointers.asm b/data/trainers/party_pointers.asm index f8b2f27..061e924 100644 --- a/data/trainers/party_pointers.asm +++ b/data/trainers/party_pointers.asm @@ -94,4 +94,5 @@ TrainerGroups: dba ArianaGroup dba ArcherGroup dba ProfBlueGroup + dba ElderGroup assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/pic_pointers.asm b/data/trainers/pic_pointers.asm index 5e71c6d..c9c1fb0 100644 --- a/data/trainers/pic_pointers.asm +++ b/data/trainers/pic_pointers.asm @@ -94,4 +94,5 @@ TrainerPicPointers:: dba ArianaPic dba ArcherPic dba ProfBluePic + dba SagePic ; Elder assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/sprites.asm b/data/trainers/sprites.asm index 088d202..5fababb 100644 --- a/data/trainers/sprites.asm +++ b/data/trainers/sprites.asm @@ -92,4 +92,5 @@ BTTrainerClassSprites: db SPRITE_RED ; Ariana db SPRITE_RED ; Archer db SPRITE_RED ; Prof.Blue + db SPRITE_SAGE ; ELDER assert_table_length NUM_TRAINER_CLASSES diff --git a/maps/OldCity.asm b/maps/OldCity.asm index 5b8cab8..914ce56 100644 --- a/maps/OldCity.asm +++ b/maps/OldCity.asm @@ -201,12 +201,12 @@ OldCity_MapEvents: warp_event 27, 12, OLD_CITY_GYM, 1 ; gym right warp_event 26, 12, OLD_CITY_GYM, 1 ; gym left warp_event 5, 12, OLD_CITY_MUSEUM, 1 ; Museum(?) right - warp_event 4, 12, OLD_CITY_MUSEUM, 1 ; Museum(?) left - warp_event 12, 16, DEBUG_ROOM, 1 ; Pokemon Pagoda right - warp_event 11, 16, DEBUG_ROOM, 1 ; Pokemon Pagoda left + warp_event 4, 12, OLD_CITY_MUSEUM, 2 ; Museum(?) left + warp_event 12, 16, POKEMON_PAGODA_1F, 1 ; Pokemon Pagoda right + warp_event 11, 16, POKEMON_PAGODA_1F, 2 ; Pokemon Pagoda left warp_event 3, 31, HONEY_GRANDMAS_HOUSE, 1 warp_event 27, 28, OLD_CITY_POKECENTER_1F, 1 - warp_event 30, 20, OLD_CITY_EARLS_HOUSE, 1 + warp_event 30, 20, OLD_CITY_EARLS_HOUSE, 2 warp_event 10, 26, OLD_CITY_FAMILY_HOUSE, 1 ; considering a tearoom where the waiters are passive-aggressive. classic kyoto. def_coord_events diff --git a/maps/PokemonPagoda1F.ablk b/maps/PokemonPagoda1F.ablk new file mode 100644 index 0000000..5137005 --- /dev/null +++ b/maps/PokemonPagoda1F.ablk @@ -0,0 +1 @@ +YWXVU C&B \ No newline at end of file diff --git a/maps/PokemonPagoda1F.asm b/maps/PokemonPagoda1F.asm new file mode 100644 index 0000000..08cc1d7 --- /dev/null +++ b/maps/PokemonPagoda1F.asm @@ -0,0 +1,94 @@ +; In general, this place is almost certainly a reference to the story Gojunoto (The Five-Storied Pagoda), written in 1891. +; https://en.wikipedia.org/wiki/The_Five-Storied_Pagoda +; It's a good read! I strongly recommend it! + +; The story seems to have impacted GSC's writing in a big way, with two conflicting carpenters and the pagoda weathering a deadly storm. It seems Lugia could represent Genta, while Ho-Oh represents Jubei. However, in the final game, the towers are extremely different, and most references seem to have been removed. + +; Given this is a direct reference to the story, we'll focus squarely on it. + + object_const_def + +PokemonPagoda1F_MapScripts: + def_scene_scripts + + def_callbacks + +PokemonPagoda1FSign: + jumptext PokemonPagoda1FSignText + +PokemonPagoda1FSignText: + text "#MON PAGODA" + line "C… by JU…I…" + + para "The text is too" + line "faded to read…" + done + +PokemonPagodaSage1: + jumptextfaceplayer PokemonPagodaSage1Text + +PokemonPagodaSage2: + jumptextfaceplayer PokemonPagodaSage2Text + +PokemonPagodaSage3: + jumptextfaceplayer PokemonPagodaSage3Text + +PokemonPagodaSage4: + jumptextfaceplayer PokemonPagodaSage4Text + +PokemonPagodaSage1Text: + text "This PAGODA is one" + line "among many." + + para "If you travel" + line "west, you can see" + cont "many more." ; Refers to pagodas seen in Bhutan, Myanmar, Korea, China, etc... + done + +PokemonPagodaSage2Text: + text "My master told me" + line "these designs come" + cont "from 'the land" + cont "of TRAMPEL'…" ; Pagoda designs can be traced back to ancient India! + + para "I don't underst-" + line "and." + done + +PokemonPagodaSage3Text: + text "You can get a" + line "great view of" + para "SEPIA CITY from" + line "the top of this" + cont "place." + done + +PokemonPagodaSage4Text: + text "You wouldn't be-" + line "lieve this, but" + cont "this PAGODA was" + cont "built by a man of" + cont "no skill at all." + + para "It even survived" + line "a terrible storm!" + done + +PokemonPagoda1F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 5, 9, OLD_CITY, 9 + warp_event 4, 9, OLD_CITY, 10 + warp_event 0, 1, POKEMON_PAGODA_2F, 2 + + def_coord_events + + def_bg_events + bg_event 5, 1, BGEVENT_READ, PokemonPagoda1FSign + + def_object_events + object_event 0, 2, SPRITE_SAGE, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 5, PokemonPagodaSage1, -1 + object_event 2, 7, SPRITE_SAGE, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 5, PokemonPagodaSage2, -1 + object_event 7, 6, SPRITE_SAGE, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 5, PokemonPagodaSage3, -1 + object_event 6, 1, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 5, PokemonPagodaSage4, -1 ; By sign diff --git a/maps/PokemonPagoda2F.ablk b/maps/PokemonPagoda2F.ablk new file mode 100644 index 0000000..5043302 --- /dev/null +++ b/maps/PokemonPagoda2F.ablk @@ -0,0 +1 @@ +ZWDVU  \ No newline at end of file diff --git a/maps/PokemonPagoda2F.asm b/maps/PokemonPagoda2F.asm new file mode 100644 index 0000000..0c1117a --- /dev/null +++ b/maps/PokemonPagoda2F.asm @@ -0,0 +1,177 @@ + object_const_def + +PokemonPagoda2F_MapScripts: + def_scene_scripts + + def_callbacks + +PokemonPagoda2FStatue: + jumptext PokemonPagoda2FStatueText + +PokemonPagoda2FSign: + jumptext PokemonPagoda2FSignText + +PokemonPagoda2FStatueText: + text "It's a statue of" + line "PIKACHU." + done + +PokemonPagoda2FSignText: + text "One must not gl-" + line "orify man-made" + cont "objects." + + para "To do so loses" + line "our touch with" + cont "nature." + done + +TrainerMediumBethany: + trainer MEDIUM, BETHANY, EVENT_BEAT_MEDIUM_BETHANY, MediumBethanySeenText, MediumBethanyBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext MediumBethanyAfterBattleText + waitbutton + closetext + end + +MediumBethanySeenText: + text "Worldly pleasures" + line "are unnecessary." + done + +MediumBethanyBeatenText: + text "Kwa!" + done + +MediumBethanyAfterBattleText: + text "It is said that" + line "if you abstain" + cont "from material" + cont "things, you can" + cont "command unstop-" + cont "pable magic." + done + +TrainerMediumMargret: + trainer MEDIUM, MARGRET, EVENT_BEAT_MEDIUM_MARGRET, MediumMargretSeenText, MediumMargretBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext MediumMargretAfterBattleText + waitbutton + closetext + end + +MediumMargretSeenText: + text "Our ways have" + line "survived many an" + cont "attack!" + + para "Allow me to show" + line "you the fruits of" + cont "that past!" + done + +MediumMargretBeatenText: + text "How!?" + done + +MediumMargretAfterBattleText: ; In the Meiji era, Itako rituals were outlawed. It seems Margret is still miffed about that. + text "Our divinations" + line "were once feared" + cont "by all!" + + para "Have some pity on" + line "us!" + done + +TrainerMediumEthel: + trainer MEDIUM, ETHEL, EVENT_BEAT_MEDIUM_ETHEL, MediumEthelSeenText, MediumEthelBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext MediumEthelAfterBattleText + waitbutton + closetext + end + +; Itako are wedded to their patron spirits. In this case, Ethel is wedded to her late husband, William. +MediumEthelSeenText: + text "Hm? You want me" + line "to win, dear?" + + para "Then it shall be" + line "so!" + done + +; I decided to reference the character Ethel Skinner from Eastenders. +; She was one of the more popular characters in the show, never recovering from her husband's death and deteriorating due to cancer. +; She's eventually allowed to die with dignity, with Dot's assistance, who 22 years later is buried alongside her - in real time, mind you! +; The reference to Ethel is timely, considering she is still alive in Eastenders at this time and was going to die the year Pokemon Crystal was released in the west. +MediumEthelBeatenText: + text "WILLIAM! I'm so" + line "sorry!" + done + +MediumEthelAfterBattleText: + text "Who was I talking" + line "to?" + + para "My husband, of co-" + line "urse!" + done + +; Elsie is the maiden name of my mother. Eerily fitting! +TrainerMediumElsie: + trainer MEDIUM, ELSIE, EVENT_BEAT_MEDIUM_ELSIE, MediumElsieSeenText, MediumElsieBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext MediumElsieAfterBattleText + waitbutton + closetext + end + +MediumElsieSeenText: + text "Sight grants one" + line "many distractions." + + para "In the dark, one" + line "sees the truth!" + done + +MediumElsieBeatenText: + text "Agh! Bugger this" + line "for a lark!" + done + +MediumElsieAfterBattleText: + text "Maybe I should" + line "return home. This" + cont "isn't working!" + done + +PokemonPagoda2F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 0, 1, POKEMON_PAGODA_1F, 3 + warp_event 9, 9, POKEMON_PAGODA_3F, 2 + + def_coord_events + + def_bg_events + bg_event 5, 1, BGEVENT_READ, PokemonPagoda2FSign + bg_event 4, 0, BGEVENT_READ, PokemonPagoda2FStatue + + def_object_events + object_event 6, 6, SPRITE_MEDIUM, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerMediumBethany, -1 + object_event 3, 6, SPRITE_MEDIUM, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerMediumMargret, -1 + object_event 6, 3, SPRITE_MEDIUM, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerMediumEthel, -1 + object_event 3, 3, SPRITE_MEDIUM, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 2, TrainerMediumElsie, -1 diff --git a/maps/PokemonPagoda3F.ablk b/maps/PokemonPagoda3F.ablk new file mode 100644 index 0000000..dec13e2 --- /dev/null +++ b/maps/PokemonPagoda3F.ablk @@ -0,0 +1 @@ +ZWFVU  \ No newline at end of file diff --git a/maps/PokemonPagoda3F.asm b/maps/PokemonPagoda3F.asm new file mode 100644 index 0000000..96dc558 --- /dev/null +++ b/maps/PokemonPagoda3F.asm @@ -0,0 +1,173 @@ + object_const_def + +PokemonPagoda3F_MapScripts: + def_scene_scripts + + def_callbacks + +PokemonPagoda3FStatue: + jumptext PokemonPagoda3FStatueText + +PokemonPagoda3FSign: + jumptext PokemonPagoda3FSignText + +PokemonPagoda3FStatueText: + text "It's a statue of" + line "TENTACRUEL." + done + +PokemonPagoda3FSignText: + text "One should pay" + line "attention to" + cont "the world." + + para "You need not" + line "cut a notch in" + cont "your boat to" + cont "find your sword." ; a reference to a story here https://www.laowaichengyuguide.com/entry/%E5%88%BB%E8%88%9F%E6%B1%82%E5%89%91 + done + +TrainerSageMing: + trainer SAGE, MING, EVENT_BEAT_SAGE_MING, SageMingSeenText, SageMingBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageMingAfterBattleText + waitbutton + closetext + end + +SageMingSeenText: + text "This PAGODA has" + line "existed for cen-" + cont "turies." + done + +SageMingBeatenText: + text "Very good!" + done + +SageMingAfterBattleText: + text "I like to live" + line "life at a leis-" + cont "urely pace." + + para "Sort of like" + line "riding in a" + cont "carriage." ; 安步当车 - a chengyu. + done + +TrainerSageWei: + trainer SAGE, WEI, EVENT_BEAT_SAGE_WEI, SageWeiSeenText, SageWeiBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageWeiAfterBattleText + waitbutton + closetext + end + +SageWeiSeenText: + text "You're as expres-" + line "sionless as a" + cont "wooden PIDGEOT." ; 呆若木鸡 - used to express whether someone is dumbstruck, either with fear or shock. Here, Pidgeot replaces the chicken. + + para "Are you not in" + line "awe?" ; so this results in very, very funny communication failure. + done + +SageWeiBeatenText: + text "You've got the" + line "wrong idea!" + done + +SageWeiAfterBattleText: + text "I was asking if" + line "you're dumbstruck!" + + para "My sincerest apo-" + line "logies! I shall" + cont "bring branches" + cont "for my punishment!" ; references 负荆请罪 - comes from a story where a misunderstanding between two generals that ended in one bringing bramble branches, shirt-off, to be whipped with, as an apology. + done + +TrainerSageLang: + trainer SAGE, LANG, EVENT_BEAT_SAGE_LANG, SageLangSeenText, SageLangBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageLangAfterBattleText + waitbutton + closetext + end + +SageLangSeenText: + text "Excuse me, could" + line "you take your" + cont "shoes off?" + done + +SageLangBeatenText: + text "Hmph!" + done + +SageLangAfterBattleText: + text "When you enter a" + line "village, do you" + cont "no comply with" + cont "its customs?" ; 入乡随俗 + + para "Then take your" + line "shoes off!" + done + +TrainerSageHuang: + trainer SAGE, HUANG, EVENT_BEAT_SAGE_HUANG, SageHuangSeenText, SageHuangBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageHuangAfterBattleText + waitbutton + closetext + end + +SageHuangSeenText: + text "Willow trees make" + line "shade, flowers" + cont "give light." ; 柳暗花明 refers to a positive turn of events after a struggle; light at the end of the tunnel. It seems Huang has been through some hardship. + done + +SageHuangBeatenText: + text "Things will get" + line "better." + done + +SageHuangAfterBattleText: + text "Sometimes, the" + line "best thing one" + cont "can do is turn" + cont "on the light." + done + +PokemonPagoda3F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 9, 9, POKEMON_PAGODA_4F, 2 + warp_event 0, 1, POKEMON_PAGODA_2F, 1 + + def_coord_events + + def_bg_events + bg_event 5, 1, BGEVENT_READ, PokemonPagoda3FSign + bg_event 4, 0, BGEVENT_READ, PokemonPagoda3FStatue + + def_object_events + object_event 4, 5, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageMing, -1 + object_event 5, 5, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageWei, -1 + object_event 6, 6, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageLang, -1 + object_event 3, 4, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageHuang, -1 diff --git a/maps/PokemonPagoda4F.ablk b/maps/PokemonPagoda4F.ablk new file mode 100644 index 0000000..68f27eb --- /dev/null +++ b/maps/PokemonPagoda4F.ablk @@ -0,0 +1 @@ +ZWIVU  \ No newline at end of file diff --git a/maps/PokemonPagoda4F.asm b/maps/PokemonPagoda4F.asm new file mode 100644 index 0000000..8f06b15 --- /dev/null +++ b/maps/PokemonPagoda4F.asm @@ -0,0 +1,181 @@ + object_const_def + +PokemonPagoda4F_MapScripts: + def_scene_scripts + + def_callbacks + +PokemonPagoda4FStatue: + jumptext PokemonPagoda4FStatueText + +PokemonPagoda4FSign: + jumptext PokemonPagoda4FSignText + +PokemonPagoda4FStatueText: + text "It's a statue of" + line "FEAROW." + done + +PokemonPagoda4FSignText: + text "Do not swallow a" ; 囫囵吞枣 + line "date with one" + cont "gulp." + + para "Engage with your" + line "surroundings." + + para "Digest its con-" + line "tents." + + para "You need not fear" ; 杞人忧天 + line "whether the sky" + cont "will fall." + done + +; Street Fighter Alpha 3 had just come out at this time, so let's reference Gen. +TrainerSageGen: + trainer SAGE, GEN, EVENT_BEAT_SAGE_GEN, SageGenSeenText, SageGenBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageGenAfterBattleText + waitbutton + closetext + end + +SageGenSeenText: + text "Death may come" + line "when one is at" + cont "their best." + done + +SageGenBeatenText: + text "Your style is" + line "pure." + done + +SageGenAfterBattleText: + text "You can't win" + line "just by battling." ; I mean, in Pokemon? You...really can. + + para "Much has to be" + line "done. Do you pull" + cont "seedlings from" + cont "the ground to" + cont "help them grow?" ; 拔苗助长 - Haste makes waste is the effectual meaning. + done + +TrainerSageRaoh: + trainer SAGE, RAOH, EVENT_BEAT_SAGE_RAOH, SageRaohSeenText, SageRaohBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageRaohAfterBattleText + waitbutton + closetext + end + +SageRaohSeenText: + text "The heavens wish" + line "for my victory!" + done + +SageRaohBeatenText: + text "My #MON no" + line "longer have the" + cont "strength." + done + +SageRaohAfterBattleText: + text "I understand." + + para "You have lived" + line "all this time by" + cont "seeing through" + cont "death." + done + +TrainerSageShuu: + trainer SAGE, SHUU, EVENT_BEAT_SAGE_SHUU, SageShuuSeenText, SageShuuBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageShuuAfterBattleText + waitbutton + closetext + end + +SageShuuSeenText: + text "Benevolence is" + line "a virtue." + done + +SageShuuBeatenText: + text "My eyes…" + done + +SageShuuAfterBattleText: + text "This loss…" + + para "It bears on me" + line "with the weight" + cont "of MT.SILVER." ; 安如泰山 - To bear down with the weight of Mt. Tai, a mountain in Shandong. This is also the Chinese name for Body Slam! + done + +TrainerSageSheng: + trainer SAGE, SHENG, EVENT_BEAT_SAGE_SHENG, SageShengSeenText, SageShengBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext SageShengAfterBattleText + waitbutton + closetext + end + +SageShengSeenText: + text "Even in one's" + line "darkest hours," + cont "defeat only comes" + cont "if they don't" + cont "fight!" + done + +SageShengBeatenText: + text "I…" + done + +SageShengAfterBattleText: + text "It seems my" + line "studies were" + cont "insufficient." + + para "I must redouble" + line "my efforts!" + + para "But some worry" + line "about my sleep" + cont "and eating! Ha!" ; 废寝忘食 while it basically says neglecting sleep and food to continue working diligently, it is a positive Chengyu... + done + +PokemonPagoda4F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 9, 9, POKEMON_PAGODA_5F, 1 + warp_event 0, 1, POKEMON_PAGODA_3F, 1 + + def_coord_events + + def_bg_events + bg_event 5, 1, BGEVENT_READ, PokemonPagoda4FSign + bg_event 4, 0, BGEVENT_READ, PokemonPagoda4FStatue + + def_object_events + object_event 4, 2, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageGen, -1 + object_event 6, 9, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageRaoh, -1 + object_event 8, 9, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageShuu, -1 + object_event 9, 1, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 4, TrainerSageSheng, -1 diff --git a/maps/PokemonPagoda5F.ablk b/maps/PokemonPagoda5F.ablk new file mode 100644 index 0000000..aa37c42 --- /dev/null +++ b/maps/PokemonPagoda5F.ablk @@ -0,0 +1 @@ +VTE  \ No newline at end of file diff --git a/maps/PokemonPagoda5F.asm b/maps/PokemonPagoda5F.asm new file mode 100644 index 0000000..7255d6f --- /dev/null +++ b/maps/PokemonPagoda5F.asm @@ -0,0 +1,67 @@ + object_const_def + +PokemonPagoda5F_MapScripts: + def_scene_scripts + + def_callbacks + +PokemonPagoda5FStatue: + jumptext PokemonPagoda5FStatueText + +PokemonPagoda5FSign: + jumptext PokemonPagoda5FSignText + +PokemonPagoda5FButsudan: + jumptext PokemonPagoda5FButsudanText + +PokemonPagoda5FStatueText: + text "It's a statue of" + line "ABRA." + done + +; Very very very much set to change. +PokemonPagoda5FSignText: ; 女娲补天 + text "There was once" + line "a beast with the" + cont "strength and" + cont "spirit to trans-" + cont "form the world." + + para "By patching a" + line "heavenly hole," + cont "it prevented our" + cont "disaster." + done + +PokemonPagoda5FButsudanText: + text "It's a butsudan!" + done + +ElderRoenScript: + faceplayer + opentext + writetext ElderRoenFirstText + waitbutton + closetext + end + +ElderRoenFirstText: + text "Comment to be" + line "written." + done + +PokemonPagoda5F_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 5, 5, POKEMON_PAGODA_4F, 2 + + def_coord_events + + def_bg_events + bg_event 4, 1, BGEVENT_READ, PokemonPagoda5FSign + bg_event 2, 0, BGEVENT_READ, PokemonPagoda5FStatue + bg_event 3, 0, BGEVENT_READ, PokemonPagoda5FButsudan + + def_object_events + object_event 2, 3, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, ElderRoenScript, -1 diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index b4388df..6dff36d 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -61,31 +61,31 @@ SproutTower3FRivalScene: special RestartMapMusic end -SageLiScript: +ElderLiScript: faceplayer opentext checkevent EVENT_GOT_HM05_FLASH iftrue .GotFlash - writetext SageLiSeenText + writetext ElderLiSeenText waitbutton closetext - winlosstext SageLiBeatenText, 0 - loadtrainer SAGE, LI + winlosstext ElderLiBeatenText, 0 + loadtrainer ELDER, LI startbattle reloadmapafterbattle opentext - writetext SageLiTakeThisFlashText + writetext ElderLiTakeThisFlashText promptbutton verbosegiveitem HM_FLASH setevent EVENT_GOT_HM05_FLASH - setevent EVENT_BEAT_SAGE_LI - writetext SageLiFlashExplanationText + setevent EVENT_BEAT_ELDER_LI + writetext ElderLiFlashExplanationText waitbutton closetext end .GotFlash: - writetext SageLiAfterBattleText + writetext ElderLiAfterBattleText waitbutton closetext end @@ -203,7 +203,7 @@ SproutTowerRivalUsedEscapeRopeText: line "ESCAPE ROPE!" done -SageLiSeenText: +ElderLiSeenText: text "So good of you to" line "come here!" @@ -226,11 +226,11 @@ SageLiSeenText: line "you!" done -SageLiBeatenText: +ElderLiBeatenText: text "Ah, excellent!" done -SageLiTakeThisFlashText: +ElderLiTakeThisFlashText: text "You and your #-" line "MON should have" @@ -241,7 +241,7 @@ SageLiTakeThisFlashText: line "HM." done -SageLiFlashExplanationText: +ElderLiFlashExplanationText: text "FLASH illuminates" line "even the darkest" cont "of all places." @@ -253,7 +253,7 @@ SageLiFlashExplanationText: line "from VIOLET's GYM." done -SageLiAfterBattleText: +ElderLiAfterBattleText: text "I hope you learn" line "and grow from your" cont "journey." @@ -347,7 +347,7 @@ SproutTower3F_MapEvents: def_object_events object_event 8, 13, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerSageJin, -1 object_event 8, 8, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 2, TrainerSageTroy, -1 - object_event 10, 2, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, SageLiScript, -1 + object_event 10, 2, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, ElderLiScript, -1 object_event 11, 11, SPRITE_SAGE, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 3, TrainerSageNeal, -1 object_event 6, 14, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, SproutTower3FPotion, EVENT_SPROUT_TOWER_3F_POTION object_event 14, 1, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_ITEMBALL, 0, SproutTower3FEscapeRope, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE