Changes to Biker, Baker, Beauty, Cyclist, Parasol Lady, Hex Maniac

This commit is contained in:
AJ Fontaine 2025-03-11 12:06:01 -04:00
parent b298138157
commit 19bb162aad
2 changed files with 102 additions and 19 deletions

View File

@ -1680,7 +1680,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[BiomePoolTier.BOSS_ULTRA_RARE]: []
},
[Biome.METROPOLIS]: {
[BiomePoolTier.COMMON]: [ TrainerType.CLERK, TrainerType.CYCLIST, TrainerType.OFFICER, TrainerType.WAITER ],
[BiomePoolTier.COMMON]: [ TrainerType.CLERK, TrainerType.CYCLIST, TrainerType.OFFICER, TrainerType.WAITER, TrainerType.BEAUTY ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.BREEDER, TrainerType.DEPOT_AGENT, TrainerType.GUITARIST ],
[BiomePoolTier.RARE]: [ TrainerType.ARTIST ],
[BiomePoolTier.SUPER_RARE]: [],
@ -1713,7 +1713,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[BiomePoolTier.BOSS_ULTRA_RARE]: []
},
[Biome.SWAMP]: {
[BiomePoolTier.COMMON]: [],
[BiomePoolTier.COMMON]: [ TrainerType.PARASOL_LADY ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER ],
[BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ],
[BiomePoolTier.SUPER_RARE]: [],
@ -1724,7 +1724,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[BiomePoolTier.BOSS_ULTRA_RARE]: []
},
[Biome.BEACH]: {
[BiomePoolTier.COMMON]: [ TrainerType.FISHERMAN, TrainerType.PARASOL_LADY, TrainerType.SAILOR ],
[BiomePoolTier.COMMON]: [ TrainerType.FISHERMAN, TrainerType.SAILOR ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER, TrainerType.BREEDER ],
[BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ],
[BiomePoolTier.SUPER_RARE]: [],
@ -1735,7 +1735,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[BiomePoolTier.BOSS_ULTRA_RARE]: []
},
[Biome.LAKE]: {
[BiomePoolTier.COMMON]: [ TrainerType.BREEDER, TrainerType.FISHERMAN ],
[BiomePoolTier.COMMON]: [ TrainerType.BREEDER, TrainerType.FISHERMAN, TrainerType.PARASOL_LADY ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER ],
[BiomePoolTier.RARE]: [ TrainerType.BLACK_BELT ],
[BiomePoolTier.SUPER_RARE]: [],
@ -1790,7 +1790,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[BiomePoolTier.BOSS_ULTRA_RARE]: []
},
[Biome.DESERT]: {
[BiomePoolTier.COMMON]: [ TrainerType.SCIENTIST ],
[BiomePoolTier.COMMON]: [ TrainerType.SCIENTIST, TrainerType.BACKPACKER ],
[BiomePoolTier.UNCOMMON]: [],
[BiomePoolTier.RARE]: [],
[BiomePoolTier.SUPER_RARE]: [],
@ -1812,8 +1812,8 @@ export const biomeTrainerPools: BiomeTrainerPools = {
[BiomePoolTier.BOSS_ULTRA_RARE]: []
},
[Biome.MEADOW]: {
[BiomePoolTier.COMMON]: [ TrainerType.PARASOL_LADY ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER, TrainerType.BREEDER ],
[BiomePoolTier.COMMON]: [ TrainerType.PARASOL_LADY, TrainerType.BEAUTY ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER, TrainerType.BREEDER, TrainerType.BAKER ],
[BiomePoolTier.RARE]: [],
[BiomePoolTier.SUPER_RARE]: [],
[BiomePoolTier.ULTRA_RARE]: [],
@ -1879,7 +1879,7 @@ export const biomeTrainerPools: BiomeTrainerPools = {
},
[Biome.RUINS]: {
[BiomePoolTier.COMMON]: [ TrainerType.PSYCHIC, TrainerType.SCIENTIST ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER, TrainerType.BLACK_BELT ],
[BiomePoolTier.UNCOMMON]: [ TrainerType.ACE_TRAINER, TrainerType.BLACK_BELT, TrainerType.HEX_MANIAC ],
[BiomePoolTier.RARE]: [],
[BiomePoolTier.SUPER_RARE]: [],
[BiomePoolTier.ULTRA_RARE]: [],
@ -7165,14 +7165,18 @@ export function initBiomes() {
[ Biome.MOUNTAIN, BiomePoolTier.COMMON ],
[ Biome.CAVE, BiomePoolTier.COMMON ],
[ Biome.BADLANDS, BiomePoolTier.COMMON ],
[ Biome.JUNGLE, BiomePoolTier.COMMON ]
[ Biome.JUNGLE, BiomePoolTier.COMMON ],
[ Biome.DESERT, BiomePoolTier.COMMON ]
]
],
[ TrainerType.BAKER, [
[ Biome.SLUM, BiomePoolTier.UNCOMMON ]
[ Biome.SLUM, BiomePoolTier.UNCOMMON ],
[ Biome.MEADOW, BiomePoolTier.UNCOMMON ]
]
],
[ TrainerType.BEAUTY, [
[ Biome.METROPOLIS, BiomePoolTier.COMMON ],
[ Biome.MEADOW, BiomePoolTier.COMMON ],
[ Biome.FAIRY_CAVE, BiomePoolTier.COMMON ]
]],
[ TrainerType.BIKER, [
@ -7247,7 +7251,8 @@ export function initBiomes() {
]
],
[ TrainerType.PARASOL_LADY, [
[ Biome.BEACH, BiomePoolTier.COMMON ],
[ Biome.SWAMP, BiomePoolTier.COMMON ],
[ Biome.LAKE, BiomePoolTier.COMMON ],
[ Biome.MEADOW, BiomePoolTier.COMMON ]
]
],
@ -7313,6 +7318,7 @@ export function initBiomes() {
]
],
[ TrainerType.HEX_MANIAC, [
[ Biome.RUINS, BiomePoolTier.UNCOMMON ],
[ Biome.GRAVEYARD, BiomePoolTier.UNCOMMON ]
]
],

View File

@ -22,6 +22,7 @@ import { PartyMemberStrength } from "#enums/party-member-strength";
import { Species } from "#enums/species";
import { TrainerType } from "#enums/trainer-type";
import { Gender } from "#app/data/gender";
import { Abilities } from "#enums/abilities";
/** Minimum BST for Pokemon generated onto the Elite Four's teams */
const ELITE_FOUR_MINIMUM_BST = 460;
@ -1952,12 +1953,79 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.BAKER]: new TrainerConfig(++t)
.setEncounterBgm(TrainerType.CLERK)
.setMoneyMultiplier(1.35)
.setSpeciesFilter(s => s.isOfType(PokemonType.GRASS) || s.isOfType(PokemonType.FIRE)),
[TrainerType.BEAUTY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY),
.setSpeciesFilter(s =>
!![ s.ability1, s.ability2, s.abilityHidden ].find(a => !!a && [ Abilities.WHITE_SMOKE, Abilities.GLUTTONY, Abilities.HONEY_GATHER, Abilities.HARVEST, Abilities.SWEET_VEIL, Abilities.RIPEN, Abilities.WELL_BAKED_BODY, Abilities.SUPERSWEET_SYRUP, Abilities.HOSPITALITY ].includes(a)) ||
!!s.getLevelMoves().find(plm => [ Moves.SOFT_BOILED, Moves.SPORE, Moves.OVERHEAT, Moves.TEATIME, Moves.MILK_DRINK ].includes(plm[1]))), // Mons with baking related abilities or who learn Overheat, Teatime, Milk Drink, Spore, or Soft-Boiled by level
[TrainerType.BEAUTY]: new TrainerConfig(++t).setMoneyMultiplier(1.55).setEncounterBgm(TrainerType.PARASOL_LADY)
.setPartyTemplates(
trainerPartyTemplates.TWO_AVG_SAME_ONE_AVG,
trainerPartyTemplates.TWO_AVG_SAME_ONE_STRONG,
trainerPartyTemplates.THREE_AVG_SAME,
trainerPartyTemplates.THREE_AVG,
trainerPartyTemplates.FOUR_WEAK,
trainerPartyTemplates.ONE_STRONG,
)
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [
Species.MEOWTH,
Species.GOLDEEN,
Species.MAREEP,
Species.MARILL,
Species.SKITTY,
Species.GLAMEOW,
Species.PURRLOIN
],
[TrainerPoolTier.UNCOMMON]: [
Species.ROSELIA,
Species.LUVDISC,
Species.BLITZLE,
Species.SEWADDLE,
Species.PETILIL,
Species.SPRITZEE,
Species.BOUNSWEET,
Species.FLITTLE
],
[TrainerPoolTier.RARE]: [
Species.FEEBAS,
Species.FURFROU,
Species.SALANDIT,
Species.BRUXISH,
Species.SNOM,
Species.ALOLA_VULPIX
],
[TrainerPoolTier.SUPER_RARE]: [
Species.CLAMPERL,
Species.AMAURA,
Species.SYLVEON,
Species.GOOMY,
Species.POPPLIO
]
}),
[TrainerType.BIKER]: new TrainerConfig(++t)
.setMoneyMultiplier(1.4)
.setEncounterBgm(TrainerType.ROUGHNECK)
.setSpeciesFilter(s => s.isOfType(PokemonType.POISON)),
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [
Species.EKANS,
Species.KOFFING,
Species.CROAGUNK,
Species.VENIPEDE,
Species.SCRAGGY
],
[TrainerPoolTier.UNCOMMON]: [
Species.VOLTORB,
Species.MAGBY,
Species.ELECTRIKE,
Species.SKORUPI,
Species.SANDILE,
Species.PAWNIARD,
Species.SHROODLE
],
[TrainerPoolTier.RARE]: [
Species.VAROOM,
Species.CYCLIZAR
]
}),
[TrainerType.BLACK_BELT]: new TrainerConfig(++t)
.setHasGenders("Battle Girl", TrainerType.PSYCHIC)
.setHasDouble("Crush Kin")
@ -2059,9 +2127,9 @@ export const trainerConfigs: TrainerConfigs = {
.setEncounterBgm(TrainerType.CYCLIST)
.setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG)
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [Species.PICHU, Species.STARLY, Species.TAILLOW, Species.BOLTUND],
[TrainerPoolTier.UNCOMMON]: [Species.DODUO, Species.ELECTRIKE, Species.BLITZLE, Species.WATTREL],
[TrainerPoolTier.RARE]: [Species.YANMA, Species.NINJASK, Species.WHIRLIPEDE, Species.EMOLGA],
[TrainerPoolTier.COMMON]: [Species.PICHU, Species.STARLY, Species.TAILLOW, Species.YAMPER],
[TrainerPoolTier.UNCOMMON]: [Species.DODUO, Species.ELECTRIKE, Species.BLITZLE, Species.WATTREL, Species.PONYTA],
[TrainerPoolTier.RARE]: [Species.YANMA, Species.NINJASK, Species.WHIRLIPEDE, Species.EMOLGA, Species.SKIDDO],
[TrainerPoolTier.SUPER_RARE]: [Species.ACCELGOR, Species.DREEPY],
}),
[TrainerType.DANCER]: new TrainerConfig(++t)
@ -2215,7 +2283,7 @@ export const trainerConfigs: TrainerConfigs = {
trainerPartyTemplates.THREE_AVG,
trainerPartyTemplates.TWO_STRONG,
)
.setSpeciesFilter(s => s.isOfType(PokemonType.GHOST)),
.setSpeciesFilter(s => s.isOfType(PokemonType.GHOST) || s.isOfType(PokemonType.PSYCHIC)),
[TrainerType.NURSERY_AIDE]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setEncounterBgm("lass"),
[TrainerType.OFFICER]: new TrainerConfig(++t)
.setMoneyMultiplier(1.55)
@ -2245,7 +2313,16 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.PARASOL_LADY]: new TrainerConfig(++t)
.setMoneyMultiplier(1.55)
.setEncounterBgm(TrainerType.PARASOL_LADY)
.setSpeciesFilter(s => s.isOfType(PokemonType.WATER)),
.setPartyTemplates(
trainerPartyTemplates.TWO_AVG_SAME_ONE_AVG,
trainerPartyTemplates.TWO_AVG_SAME_ONE_STRONG,
trainerPartyTemplates.TWO_AVG,
trainerPartyTemplates.FOUR_WEAK,
trainerPartyTemplates.ONE_STRONG,
)
.setSpeciesFilter(s =>
!![ s.ability1, s.ability2, s.abilityHidden ].find(a => !!a && [ Abilities.DRIZZLE, Abilities.SWIFT_SWIM, Abilities.HYDRATION, Abilities.RAIN_DISH, Abilities.DRY_SKIN ].includes(a)) ||
!!s.getLevelMoves().find(plm => [ Moves.RAIN_DANCE, Moves.WEATHER_BALL ].includes(plm[1]))), // Mons with rain abilities or who learn Rain Dance or Weather Ball by level
[TrainerType.PILOT]: new TrainerConfig(++t)
.setEncounterBgm(TrainerType.CLERK)
.setSpeciesFilter(s => tmSpecies[Moves.FLY].indexOf(s.speciesId) > -1),