11 new trainer classes

This adds the lost RBY trainer classes and a few unused ones. No sprites because I keep messing up the alpha channels among other things. I shall simply ask Martha.

Also spruced up the readme slightly.
This commit is contained in:
Llinos Evans 2024-07-08 00:14:17 +01:00
parent f53559e4e4
commit 1e629ebc1a
24 changed files with 290 additions and 9 deletions

View file

@ -25,6 +25,12 @@ The Fairy-type does exist.
- There is a new Nihon region, based on the 1998 version before it got scrapped for Johto.
- The Fairy-type is now available, though Pokemon are not retroactively changed, per the Kanto Expansion Pak philosophy (you wouldn't want a Fairy-type Granbull pre-split, would you?)
## New Things
- 11 new Trainer classes, including;
- RBY classes not in GSC, such as the Rocker, Channeler, and even the beta Firefighter
- Prototype GSC classes such as the Male Teacher, Sportsman, and Soldier
- The Painter from FRLG!
## QoL Changes
- A Trader NPC is available in a new Lake of Rage town area, allowing you to access trade evolutions natively.
- Kurt now makes Apricorn Balls instantly. He's had his coffee and is listening to his favourite music.
@ -32,6 +38,8 @@ The Fairy-type does exist.
- Clock reset procedure is now like vanilla GS, requiring just Down + B.
- Tilesets now handle up to 255 titles (from 192), allowing for slightly nicer maps.
- Can now have up to 17 object events.
- Gen 6 Experience System!
- Poke Balls now all have unique palettes.
## Map Changes
In general, there have been many wild encounter tweaks. View this document for details. (will link when hack is in a playable state)
@ -44,10 +52,12 @@ In general, there have been many wild encounter tweaks. View this document for d
- Cerulean Cave has been restored, complete with a Mewtwo fight!
- The Kanto Safari Zone map from the prototype has been restored.
- The prototype Lake of Rage village has been restored, complete with an Evolution Stone shop and Trader NPC! In general, it's themed around Pokemon evolution.
- The Pokemon Communications Centre from JP GSC has been added and tweaked into a Regional Variant Trade hub, increasing with badge count.
## Item Changes
- Many evolution stones have been added to accomodate the Pokemon featured here, including the Heart and Poison Stones from the SpaceWorld demo!
- The Fairy Feather from Scarlet and Violet has been added to accomodate the Fairy type.
- The Antique Pot has been added to accomodate a Shuckle evolution!
# Credits
- Plague von Karma (Director, Kanto Expansion Pak Founder, Programming, Maps)

View file

@ -711,5 +711,35 @@ DEF KRIS EQU __trainer_class__
trainerclass MYSTICALMAN ; 43
const EUSINE
trainerclass CHANNELER ; 44
const SHANNA
trainerclass CUE_BALL ; 45
const KIRBY ; That one Cleffa trainer.
trainerclass ENGINEER ; 46
const DASHU ; From Mandarin 大叔, literally meaning "uncle". Affectionately refers to middle-aged men, and is the name for the class in Chinese.
trainerclass ROCKER ; 47
const BOWIE ; David Bowie!
trainerclass TAMER ; 48
const MOE ; Ace Attorney reference
trainerclass FIREFIGHTER ; 49
const REMY ; I am in France and larping at the time of doing this
trainerclass TEACHERM ; 50
const DORNYEI ; Zoltan Dornyei, famous ELT teacher
trainerclass PAINTER ; 51
const RACHEL ; Could use Salvador Dali later, a surrealist painter.
trainerclass SOLDIER ; 52
const PEPPINO ; come on. COME ON.
trainerclass SPORTSMAN ; 53
const JACQUES ; also an ace attorney reference.
DEF TOPAZ EQU __trainer_class__
DEF NUM_TRAINER_CLASSES EQU __trainer_class__ - 1

View file

@ -404,4 +404,64 @@ TrainerClassAttributes:
dw AI_BASIC | AI_SETUP | AI_SMART | AI_AGGRESSIVE | AI_CAUTIOUS | AI_STATUS | AI_RISKY
dw CONTEXT_USE | SWITCH_SOMETIMES
; Channeler
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS
dw CONTEXT_USE | SWITCH_SOMETIMES
; Cue Ball
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS
dw CONTEXT_USE | SWITCH_SOMETIMES
; ENGINEER
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS
dw CONTEXT_USE | SWITCH_SOMETIMES
; Rocker
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS
dw CONTEXT_USE | SWITCH_SOMETIMES
; Tamer
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS | AI_AGGRESSIVE
dw CONTEXT_USE | SWITCH_OFTEN
; Firefighter
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS | AI_TYPES
dw CONTEXT_USE | SWITCH_SOMETIMES
; Male Teacher
db NO_ITEM, NO_ITEM ; items
db 18 ; base reward
dw AI_BASIC | AI_OPPORTUNIST | AI_AGGRESSIVE | AI_STATUS
dw CONTEXT_USE | SWITCH_SOMETIMES
; Painter
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS | AI_SMART
dw CONTEXT_USE | SWITCH_SOMETIMES
; Soldier
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS | AI_RISKY
dw CONTEXT_USE | SWITCH_SOMETIMES
; SPORTSMAN
db NO_ITEM, NO_ITEM ; items
db 10 ; base reward
dw AI_BASIC | AI_CAUTIOUS | AI_STATUS
dw CONTEXT_USE | SWITCH_SOMETIMES
assert_table_length NUM_TRAINER_CLASSES

View file

@ -34,7 +34,7 @@ TrainerClassNames::
li "ROCKET"
li "GENTLEMAN"
li "SKIER"
li "TEACHER"
li "TEACHER"
li "LEADER"
li "BUG CATCHER"
li "FISHER"
@ -68,4 +68,14 @@ TrainerClassNames::
li "OFFICER"
li "ROCKET"
li "MYSTICALMAN"
li "CHANNELER"
li "CUE BALL"
li "ENGINEER"
li "ROCKER"
li "TAMER"
li "FIREFIGHTER"
li "TEACHER♂"
li "PAINTER"
li "SOLDIER"
li "SPORTSMAN"
assert_list_length NUM_TRAINER_CLASSES

View file

@ -43,8 +43,7 @@ TrainerClassDVs:
dn 7, 8, 8, 8 ; SWIMMERF
dn 9, 8, 8, 8 ; SAILOR
dn 9, 8, 8, 8 ; SUPER_NERD
; BUG: RIVAL2 has lower DVs than RIVAL1 (see docs/bugs_and_glitches.md)
dn 9, 8, 8, 8 ; RIVAL2
dn 13, 13, 13, 13 ; RIVAL2
dn 9, 8, 8, 8 ; GUITARIST
dn 10, 8, 8, 8 ; HIKER
dn 9, 8, 8, 8 ; BIKER
@ -70,4 +69,14 @@ TrainerClassDVs:
dn 9, 8, 8, 8 ; OFFICER
dn 7, 14, 10, 8 ; GRUNTF
dn 9, 8, 8, 8 ; MYSTICALMAN
dn 7, 8, 8, 8 ; CHANNELER
dn 9, 8, 8, 8 ; CUE_BALL
dn 9, 8, 8, 8 ; ENGINEER
dn 9, 8, 8, 8 ; ROCKER
dn 9, 8, 8, 8 ; TAMER
dn 9, 8, 8, 8 ; FIREFIGHTER
dn 6, 8, 8, 8 ; TEACHERM
dn 9, 8, 8, 8 ; PAINTER
dn 9, 8, 8, 8 ; SOLDIER
dn 9, 8, 8, 8 ; SPORTSMAN
assert_table_length NUM_TRAINER_CLASSES

View file

@ -71,7 +71,14 @@ TrainerEncounterMusic::
db MUSIC_HIKER_ENCOUNTER ; officer
db MUSIC_ROCKET_ENCOUNTER ; gruntf
db MUSIC_HIKER_ENCOUNTER ; mysticalman
db MUSIC_SAGE_ENCOUNTER ; channeler
db MUSIC_HIKER_ENCOUNTER ; cue ball
db MUSIC_HIKER_ENCOUNTER ; engineer
db MUSIC_HIKER_ENCOUNTER ; rocker
db MUSIC_HIKER_ENCOUNTER ; tamer
db MUSIC_HIKER_ENCOUNTER ; firefighter
db MUSIC_HIKER_ENCOUNTER ; teacherm
db MUSIC_LASS_ENCOUNTER ; painter
db MUSIC_HIKER_ENCOUNTER ; soldier
db MUSIC_HIKER_ENCOUNTER ; sportsman
assert_table_length NUM_TRAINER_CLASSES + 1
db MUSIC_HIKER_ENCOUNTER ; unused
db MUSIC_HIKER_ENCOUNTER ; unused
db MUSIC_HIKER_ENCOUNTER ; unused

View file

@ -26,6 +26,15 @@ MaleTrainers:
db SAGE
db BIKER
db SCIENTIST
db MYSTICALMAN ; required when adding more trainers - imo though, they transcend gender
db CUE_BALL
db ENGINEER
db ROCKER
db TAMER
db FIREFIGHTER
db TEACHERM
db SOLDIER
db SPORTSMAN
.End
FemaleTrainers:
@ -39,4 +48,6 @@ FemaleTrainers:
db KIMONO_GIRL
db POKEFANF
db COOLTRAINERF
db CHANNELER
db PAINTER
.End

View file

@ -69,4 +69,15 @@ BTTrainerClassGenders:
db MALE ; BLUE
db MALE ; OFFICER
db FEMALE ; GRUNTF
assert_table_length NUM_TRAINER_CLASSES - 1 ; exclude MYSTICALMAN
db MALE ; MYSTICALMAN sorry gamer
db FEMALE ; CHANNELER
db MALE ; CUE_BALL
db MALE ; ENGINEER
db MALE ; ROCKER
db MALE ; TAMER
db MALE ; FIREFIGHTER
db MALE ; TEACHERM
db FEMALE ; PAINTER
db MALE ; SOLDIER
db MALE ; SPORTSMAN
assert_table_length NUM_TRAINER_CLASSES

View file

@ -77,6 +77,16 @@ INCBIN "gfx/trainers/blue.gbcpal", middle_colors
INCBIN "gfx/trainers/officer.gbcpal", middle_colors
INCBIN "gfx/trainers/grunt_f.gbcpal", middle_colors
INCBIN "gfx/trainers/mysticalman.gbcpal", middle_colors
INCBIN "gfx/trainers/channeler.gbcpal", middle_colors
INCBIN "gfx/trainers/cue_ball.gbcpal", middle_colors
INCBIN "gfx/trainers/engineer.gbcpal", middle_colors
INCBIN "gfx/trainers/rocker.gbcpal", middle_colors
INCBIN "gfx/trainers/tamer.gbcpal", middle_colors
INCBIN "gfx/trainers/firefighter.gbcpal", middle_colors
INCBIN "gfx/trainers/teacherm.gbcpal", middle_colors
INCBIN "gfx/trainers/painter.gbcpal", middle_colors
INCBIN "gfx/trainers/soldier.gbcpal", middle_colors
INCBIN "gfx/trainers/sportsman.gbcpal", middle_colors
EnbyPalette:
INCLUDE "gfx/player/topaz.pal"

View file

@ -5307,5 +5307,85 @@ MysticalmanGroup:
dw ELECTRODE
dw SCREECH, SONICBOOM, THUNDER, ROLLOUT
db -1 ; end
end_list_items
; RBY / unused trainer types. Mostly placeholders.
ChannelerGroup:
next_list_item ; CHANNELER (1)
db "SHANNA@", TRAINERTYPE_NORMAL
db 23
dw GASTLY
db -1 ; end
end_list_items
CueBallGroup:
next_list_item ; CUE_BALL (1)
db "KIRBY@", TRAINERTYPE_NORMAL
db 23
dw CLEFFA
db -1 ; end
end_list_items
EngineerGroup:
next_list_item ; ENGINEER (1)
db "DASHU@", TRAINERTYPE_NORMAL
db 23
dw MAGNEMITE
db -1 ; end
end_list_items
RockerGroup:
next_list_item ; ROCKER (1)
db "BOWIE@", TRAINERTYPE_NORMAL
db 23
dw VOLTORB
db -1 ; end
end_list_items
TamerGroup:
next_list_item ; TAMER (1)
db "MOE@", TRAINERTYPE_NORMAL
db 23
dw TAUROS
db -1 ; end
end_list_items
FirefighterGroup:
next_list_item ; FIREFIGHTER (1)
db "REMY@", TRAINERTYPE_NORMAL
db 23
dw POLIWAG
db -1 ; end
end_list_items
TeacherMGroup:
next_list_item ; TEACHERM (1)
db "DORNYEI@", TRAINERTYPE_NORMAL
db 23
dw BLISSEY
db -1 ; end
end_list_items
PainterGroup:
next_list_item ; PAINTER (1)
db "RACHEL@", TRAINERTYPE_NORMAL
db 23
dw SMEARGLE
db -1 ; end
end_list_items
SoldierGroup:
next_list_item ; SOLDIER (1)
db "PEPPINO@", TRAINERTYPE_NORMAL
db 23
dw FORRETRESS
db -1 ; end
end_list_items
SportsmanGroup:
next_list_item ; SPORTSMAN (1)
db "JACQUES@", TRAINERTYPE_NORMAL
db 23
dw DODUO
db -1 ; end
end_list_items

View file

@ -70,4 +70,14 @@ TrainerGroups:
dba OfficerGroup
dba GruntFGroup
dba MysticalmanGroup
dba ChannelerGroup
dba CueBallGroup
dba EngineerGroup
dba RockerGroup
dba TamerGroup
dba FirefighterGroup
dba TeacherMGroup
dba PainterGroup
dba SoldierGroup
dba SportsmanGroup
assert_table_length NUM_TRAINER_CLASSES

View file

@ -70,4 +70,14 @@ TrainerPicPointers::
dba OfficerPic
dba GruntfPic
dba MysticalmanPic
dba ChannelerPic
dba CueBallPic
dba EngineerPic
dba RockerPic
dba TamerPic
dba FirefighterPic
dba TeacherMPic
dba PainterPic
dba SoldierPic
dba SportsmanPic
assert_table_length NUM_TRAINER_CLASSES

View file

@ -67,4 +67,15 @@ BTTrainerClassSprites:
db SPRITE_BLUE
db SPRITE_OFFICER
db SPRITE_ROCKET_GIRL
assert_table_length NUM_TRAINER_CLASSES - 1 ; exclude MYSTICALMAN
db SPRITE_SUPER_NERD ; placeholder for mysticalman eusine
db SPRITE_KAREN ; placeholder until the channeler overworld sprite is added.
db SPRITE_BIKER ; Cue Ball
db SPRITE_POKEFAN_M ; Engineer
db SPRITE_ROCKER ; Rocker
db SPRITE_POKEFAN_M ; Tamer
db SPRITE_POKEFAN_M ; Firefighter
db SPRITE_POKEFAN_M ; Teacher M
db SPRITE_LASS ; Painter
db SPRITE_ROCKER ; Soldier
db SPRITE_SAILOR ; Sportsman uhhh
assert_table_length NUM_TRAINER_CLASSES

View file

@ -950,3 +950,15 @@ MagipreyFrontpic: INCBIN "gfx/pokemon/magiprey/front.animated.2bpp.lz"
MagipreyBackpic: INCBIN "gfx/pokemon/magiprey/back.2bpp.lz"
TerradosFrontpic: INCBIN "gfx/pokemon/terrados/front.animated.2bpp.lz"
TerradosBackpic: INCBIN "gfx/pokemon/terrados/back.2bpp.lz"
; RBY/unused trainer Pics
ChannelerPic: INCBIN "gfx/trainers/channeler.2bpp.lz"
CueBallPic: INCBIN "gfx/trainers/cue_ball.2bpp.lz"
EngineerPic: INCBIN "gfx/trainers/engineer.2bpp.lz"
RockerPic: INCBIN "gfx/trainers/rocker.2bpp.lz"
TamerPic: INCBIN "gfx/trainers/tamer.2bpp.lz"
FirefighterPic: INCBIN "gfx/trainers/firefighter.2bpp.lz"
TeacherMPic: INCBIN "gfx/trainers/teacherm.2bpp.lz"
PainterPic: INCBIN "gfx/trainers/painter.2bpp.lz"
SoldierPic: INCBIN "gfx/trainers/soldier.2bpp.lz"
SportsmanPic: INCBIN "gfx/trainers/sportsman.2bpp.lz"

BIN
gfx/trainers/channeler.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/cue_ball.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/engineer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/painter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/rocker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/soldier.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/sportsman.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/tamer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
gfx/trainers/teacherm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B