diff --git a/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts b/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts index 67e778d8c4b..14530d7dd0c 100644 --- a/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts +++ b/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts @@ -16,9 +16,11 @@ import { PokemonType } from "#enums/pokemon-type"; import { SpeciesId } from "#enums/species-id"; import { TrainerType } from "#enums/trainer-type"; import type { PlayerPokemon } from "#field/pokemon"; +import type { PokemonHeldItemModifierType } from "#modifiers/modifier-type"; import { getEncounterText } from "#mystery-encounters/encounter-dialogue-utils"; import type { EnemyPartyConfig } from "#mystery-encounters/encounter-phase-utils"; import { + generateModifierType, handleMysteryEncounterBattleFailed, initBattleWithEnemyConfig, setEncounterRewards, @@ -494,7 +496,14 @@ function getPartyConfig(): EnemyPartyConfig { nature: Nature.ADAMANT, moveSet: [MoveId.FIRE_PUNCH, MoveId.ICE_PUNCH, MoveId.THUNDER_PUNCH, MoveId.METEOR_MASH], ivs: [31, 31, 31, 31, 31, 31], + modifierConfigs: [ + { + modifier: generateModifierType(modifierTypes.SOOTHE_BELL) as PokemonHeldItemModifierType, + stackCount: 3, + }, + ], tera: PokemonType.FAIRY, + friendship: 255, }, ], }; @@ -514,6 +523,13 @@ function getPartyConfig(): EnemyPartyConfig { nature: Nature.MODEST, moveSet: [MoveId.DAZZLING_GLEAM, MoveId.MYSTICAL_FIRE, MoveId.ICE_BEAM, MoveId.THUNDERBOLT], // Make this one have an item gimmick when we have more items/finish implementations ivs: [31, 31, 31, 31, 31, 31], + modifierConfigs: [ + { + modifier: generateModifierType(modifierTypes.SOOTHE_BELL) as PokemonHeldItemModifierType, + stackCount: 3, + }, + ], + friendship: 255, }, { nickname: i18next.t(`${namespace}:cleffa3Nickname`, { @@ -527,6 +543,13 @@ function getPartyConfig(): EnemyPartyConfig { nature: Nature.BOLD, moveSet: [MoveId.TRI_ATTACK, MoveId.STORED_POWER, MoveId.CALM_MIND, MoveId.MOONLIGHT], ivs: [31, 31, 31, 31, 31, 31], + modifierConfigs: [ + { + modifier: generateModifierType(modifierTypes.SOOTHE_BELL) as PokemonHeldItemModifierType, + stackCount: 3, + }, + ], + friendship: 255, }, ); } else { @@ -539,12 +562,22 @@ function getPartyConfig(): EnemyPartyConfig { { species: getPokemonSpecies(pool1Species), isBoss: false, - ivs: [31, 31, 31, 31, 31, 31], + modifierConfigs: [ + { + modifier: generateModifierType(modifierTypes.SOOTHE_BELL) as PokemonHeldItemModifierType, + stackCount: 3, + }, + ], }, { species: getPokemonSpecies(pool2Species), isBoss: false, - ivs: [31, 31, 31, 31, 31, 31], + modifierConfigs: [ + { + modifier: generateModifierType(modifierTypes.SOOTHE_BELL) as PokemonHeldItemModifierType, + stackCount: 3, + }, + ], }, ); } diff --git a/src/data/mystery-encounters/utils/encounter-phase-utils.ts b/src/data/mystery-encounters/utils/encounter-phase-utils.ts index 72b54910568..d5aecf7055a 100644 --- a/src/data/mystery-encounters/utils/encounter-phase-utils.ts +++ b/src/data/mystery-encounters/utils/encounter-phase-utils.ts @@ -108,6 +108,7 @@ export interface EnemyPokemonConfig { dataSource?: PokemonData; tera?: PokemonType; aiType?: AiType; + friendship?: number; } export interface EnemyPartyConfig { @@ -352,6 +353,11 @@ export async function initBattleWithEnemyConfig(partyConfig: EnemyPartyConfig): enemyPokemon.aiType = config.aiType; } + // Set friendship + if (config.friendship != null) { + enemyPokemon.friendship = config.friendship; + } + // Set moves if (config?.moveSet && config.moveSet.length > 0) { const moves = config.moveSet.map(m => new PokemonMove(m)); @@ -406,6 +412,7 @@ export async function initBattleWithEnemyConfig(partyConfig: EnemyPartyConfig): `| Species ID: ${enemyPokemon.species.speciesId}`, `| Level: ${enemyPokemon.level}`, `| Nature: ${getNatureName(enemyPokemon.nature, true, true, true)}`, + `| Friendship: ${enemyPokemon.friendship}`, ); console.log(`Stats (IVs): ${stats}`); console.log( diff --git a/src/data/trainers/trainer-config.ts b/src/data/trainers/trainer-config.ts index 906bf2e4aa2..73267dd7670 100644 --- a/src/data/trainers/trainer-config.ts +++ b/src/data/trainers/trainer-config.ts @@ -6078,7 +6078,7 @@ export const trainerConfigs: TrainerConfigs = { .setMoneyMultiplier(3) .setEncounterBgm(TrainerType.ACE_TRAINER) .setLocalizedName("Expert Pokemon Breeder") - .setPartyTemplates(new TrainerPartyTemplate(3, PartyMemberStrength.AVERAGE)), + .setPartyTemplates(new TrainerPartyTemplate(3, PartyMemberStrength.WEAK)), [TrainerType.FUTURE_SELF_M]: new TrainerConfig(++t) .setMoneyMultiplier(0) .setEncounterBgm("mystery_encounter_weird_dream")