Pokemon Pagoda

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.
This commit is contained in:
Llinos Evans 2024-07-26 13:17:15 +01:00
parent 675e112bee
commit e43decef70
37 changed files with 1017 additions and 151 deletions

View file

@ -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.

View file

@ -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"

View file

@ -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@"

View file

@ -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:

View file

@ -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"

View file

@ -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

Binary file not shown.

View file

@ -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

View file

@ -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!!
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

View file

@ -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

View file

@ -92,4 +92,5 @@ TrainerClassNames::
li "EXECUTIVE"
li "EXECUTIVE"
li "PROFESSOR"
li "ELDER"
assert_list_length NUM_TRAINER_CLASSES

View file

@ -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

View file

@ -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

View file

@ -36,6 +36,7 @@ MaleTrainers:
db SOLDIER
db SPORTSMAN
db AEROFOSSIL
db ELDER
.End
FemaleTrainers:

View file

@ -94,4 +94,5 @@ BTTrainerClassGenders:
db MALE ; ARIANA
db FEMALE ; ARCHER
db MALE ; PROF.BLUE
db MALE ; ELDER
assert_table_length NUM_TRAINER_CLASSES

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -94,4 +94,5 @@ TrainerGroups:
dba ArianaGroup
dba ArcherGroup
dba ProfBlueGroup
dba ElderGroup
assert_table_length NUM_TRAINER_CLASSES

View file

@ -94,4 +94,5 @@ TrainerPicPointers::
dba ArianaPic
dba ArcherPic
dba ProfBluePic
dba SagePic ; Elder
assert_table_length NUM_TRAINER_CLASSES

View file

@ -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