mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-03 23:12:20 +02:00
Merge 3e34dd513b
into a54cd953a6
This commit is contained in:
commit
303263c81d
@ -3,7 +3,7 @@ import type { PersistentModifier } from "#app/modifier/modifier";
|
|||||||
import type { PartyMemberStrength } from "#enums/party-member-strength";
|
import type { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
import type { SpeciesId } from "#enums/species-id";
|
import type { SpeciesId } from "#enums/species-id";
|
||||||
import type { TrainerConfig } from "../data/trainers/trainer-config";
|
import type { TrainerConfig } from "../data/trainers/trainer-config";
|
||||||
import type { TrainerPartyTemplate } from "../data/trainers/TrainerPartyTemplate";
|
import type { TrainerPartyTemplate } from "../data/trainers/trainer-party-template";
|
||||||
|
|
||||||
export type PartyTemplateFunc = () => TrainerPartyTemplate;
|
export type PartyTemplateFunc = () => TrainerPartyTemplate;
|
||||||
export type PartyMemberFunc = (level: number, strength: PartyMemberStrength) => EnemyPokemon;
|
export type PartyMemberFunc = (level: number, strength: PartyMemberStrength) => EnemyPokemon;
|
||||||
|
369
src/battle.ts
369
src/battle.ts
@ -23,7 +23,6 @@ import type Pokemon from "#app/field/pokemon";
|
|||||||
import { ArenaTagType } from "#enums/arena-tag-type";
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
import { BattleSpec } from "#enums/battle-spec";
|
import { BattleSpec } from "#enums/battle-spec";
|
||||||
import type { MoveId } from "#enums/move-id";
|
import type { MoveId } from "#enums/move-id";
|
||||||
import { PlayerGender } from "#enums/player-gender";
|
|
||||||
import { MusicPreference } from "#app/system/settings/settings";
|
import { MusicPreference } from "#app/system/settings/settings";
|
||||||
import { SpeciesId } from "#enums/species-id";
|
import { SpeciesId } from "#enums/species-id";
|
||||||
import { TrainerType } from "#enums/trainer-type";
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
@ -31,10 +30,8 @@ import i18next from "#app/plugins/i18n";
|
|||||||
import type MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter";
|
import type MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter";
|
||||||
import { MysteryEncounterMode } from "#enums/mystery-encounter-mode";
|
import { MysteryEncounterMode } from "#enums/mystery-encounter-mode";
|
||||||
import type { CustomModifierSettings } from "#app/modifier/modifier-type";
|
import type { CustomModifierSettings } from "#app/modifier/modifier-type";
|
||||||
import { ModifierTier } from "#enums/modifier-tier";
|
|
||||||
import type { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
import type { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
||||||
import { BattleType } from "#enums/battle-type";
|
import { BattleType } from "#enums/battle-type";
|
||||||
import { ClassicFixedBossWaves } from "#enums/fixed-boss-waves";
|
|
||||||
import { BattlerIndex } from "#enums/battler-index";
|
import { BattlerIndex } from "#enums/battler-index";
|
||||||
|
|
||||||
export interface TurnCommand {
|
export interface TurnCommand {
|
||||||
@ -567,369 +564,3 @@ export function getRandomTrainerFunc(
|
|||||||
return new Trainer(trainerTypes[rand], trainerGender);
|
return new Trainer(trainerTypes[rand], trainerGender);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FixedBattleConfigs {
|
|
||||||
[key: number]: FixedBattleConfig;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Youngster/Lass on 5
|
|
||||||
* Rival on 8, 55, 95, 145, 195
|
|
||||||
* Evil team grunts on 35, 62, 64, and 112
|
|
||||||
* Evil team admin on 66 and 114
|
|
||||||
* Evil leader on 115, 165
|
|
||||||
* E4 on 182, 184, 186, 188
|
|
||||||
* Champion on 190
|
|
||||||
*/
|
|
||||||
export const classicFixedBattles: FixedBattleConfigs = {
|
|
||||||
[ClassicFixedBossWaves.TOWN_YOUNGSTER]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
() => new Trainer(TrainerType.YOUNGSTER, randSeedInt(2) ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.RIVAL_1]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
() =>
|
|
||||||
new Trainer(
|
|
||||||
TrainerType.RIVAL,
|
|
||||||
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.RIVAL_2]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
() =>
|
|
||||||
new Trainer(
|
|
||||||
TrainerType.RIVAL_2,
|
|
||||||
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.setCustomModifierRewards({
|
|
||||||
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.GREAT, ModifierTier.GREAT],
|
|
||||||
allowLuckUpgrades: false,
|
|
||||||
}),
|
|
||||||
[ClassicFixedBossWaves.EVIL_GRUNT_1]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc(
|
|
||||||
[
|
|
||||||
TrainerType.ROCKET_GRUNT,
|
|
||||||
TrainerType.MAGMA_GRUNT,
|
|
||||||
TrainerType.AQUA_GRUNT,
|
|
||||||
TrainerType.GALACTIC_GRUNT,
|
|
||||||
TrainerType.PLASMA_GRUNT,
|
|
||||||
TrainerType.FLARE_GRUNT,
|
|
||||||
TrainerType.AETHER_GRUNT,
|
|
||||||
TrainerType.SKULL_GRUNT,
|
|
||||||
TrainerType.MACRO_GRUNT,
|
|
||||||
TrainerType.STAR_GRUNT,
|
|
||||||
],
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.RIVAL_3]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
() =>
|
|
||||||
new Trainer(
|
|
||||||
TrainerType.RIVAL_3,
|
|
||||||
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.setCustomModifierRewards({
|
|
||||||
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.GREAT, ModifierTier.GREAT],
|
|
||||||
allowLuckUpgrades: false,
|
|
||||||
}),
|
|
||||||
[ClassicFixedBossWaves.EVIL_GRUNT_2]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc(
|
|
||||||
[
|
|
||||||
TrainerType.ROCKET_GRUNT,
|
|
||||||
TrainerType.MAGMA_GRUNT,
|
|
||||||
TrainerType.AQUA_GRUNT,
|
|
||||||
TrainerType.GALACTIC_GRUNT,
|
|
||||||
TrainerType.PLASMA_GRUNT,
|
|
||||||
TrainerType.FLARE_GRUNT,
|
|
||||||
TrainerType.AETHER_GRUNT,
|
|
||||||
TrainerType.SKULL_GRUNT,
|
|
||||||
TrainerType.MACRO_GRUNT,
|
|
||||||
TrainerType.STAR_GRUNT,
|
|
||||||
],
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.EVIL_GRUNT_3]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc(
|
|
||||||
[
|
|
||||||
TrainerType.ROCKET_GRUNT,
|
|
||||||
TrainerType.MAGMA_GRUNT,
|
|
||||||
TrainerType.AQUA_GRUNT,
|
|
||||||
TrainerType.GALACTIC_GRUNT,
|
|
||||||
TrainerType.PLASMA_GRUNT,
|
|
||||||
TrainerType.FLARE_GRUNT,
|
|
||||||
TrainerType.AETHER_GRUNT,
|
|
||||||
TrainerType.SKULL_GRUNT,
|
|
||||||
TrainerType.MACRO_GRUNT,
|
|
||||||
TrainerType.STAR_GRUNT,
|
|
||||||
],
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.EVIL_ADMIN_1]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc(
|
|
||||||
[
|
|
||||||
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL],
|
|
||||||
[TrainerType.TABITHA, TrainerType.COURTNEY],
|
|
||||||
[TrainerType.MATT, TrainerType.SHELLY],
|
|
||||||
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
|
|
||||||
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
|
|
||||||
[TrainerType.XEROSIC, TrainerType.BRYONY],
|
|
||||||
TrainerType.FABA,
|
|
||||||
TrainerType.PLUMERIA,
|
|
||||||
TrainerType.OLEANA,
|
|
||||||
[TrainerType.GIACOMO, TrainerType.MELA, TrainerType.ATTICUS, TrainerType.ORTEGA, TrainerType.ERI],
|
|
||||||
],
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.RIVAL_4]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
() =>
|
|
||||||
new Trainer(
|
|
||||||
TrainerType.RIVAL_4,
|
|
||||||
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.setCustomModifierRewards({
|
|
||||||
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.ULTRA],
|
|
||||||
allowLuckUpgrades: false,
|
|
||||||
}),
|
|
||||||
[ClassicFixedBossWaves.EVIL_GRUNT_4]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc(
|
|
||||||
[
|
|
||||||
TrainerType.ROCKET_GRUNT,
|
|
||||||
TrainerType.MAGMA_GRUNT,
|
|
||||||
TrainerType.AQUA_GRUNT,
|
|
||||||
TrainerType.GALACTIC_GRUNT,
|
|
||||||
TrainerType.PLASMA_GRUNT,
|
|
||||||
TrainerType.FLARE_GRUNT,
|
|
||||||
TrainerType.AETHER_GRUNT,
|
|
||||||
TrainerType.SKULL_GRUNT,
|
|
||||||
TrainerType.MACRO_GRUNT,
|
|
||||||
TrainerType.STAR_GRUNT,
|
|
||||||
],
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.EVIL_ADMIN_2]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc(
|
|
||||||
[
|
|
||||||
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL],
|
|
||||||
[TrainerType.TABITHA, TrainerType.COURTNEY],
|
|
||||||
[TrainerType.MATT, TrainerType.SHELLY],
|
|
||||||
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
|
|
||||||
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
|
|
||||||
[TrainerType.XEROSIC, TrainerType.BRYONY],
|
|
||||||
TrainerType.FABA,
|
|
||||||
TrainerType.PLUMERIA,
|
|
||||||
TrainerType.OLEANA,
|
|
||||||
[TrainerType.GIACOMO, TrainerType.MELA, TrainerType.ATTICUS, TrainerType.ORTEGA, TrainerType.ERI],
|
|
||||||
],
|
|
||||||
true,
|
|
||||||
1,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.EVIL_BOSS_1]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc([
|
|
||||||
TrainerType.ROCKET_BOSS_GIOVANNI_1,
|
|
||||||
TrainerType.MAXIE,
|
|
||||||
TrainerType.ARCHIE,
|
|
||||||
TrainerType.CYRUS,
|
|
||||||
TrainerType.GHETSIS,
|
|
||||||
TrainerType.LYSANDRE,
|
|
||||||
TrainerType.LUSAMINE,
|
|
||||||
TrainerType.GUZMA,
|
|
||||||
TrainerType.ROSE,
|
|
||||||
TrainerType.PENNY,
|
|
||||||
]),
|
|
||||||
)
|
|
||||||
.setCustomModifierRewards({
|
|
||||||
guaranteedModifierTiers: [
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
],
|
|
||||||
allowLuckUpgrades: false,
|
|
||||||
}),
|
|
||||||
[ClassicFixedBossWaves.RIVAL_5]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
() =>
|
|
||||||
new Trainer(
|
|
||||||
TrainerType.RIVAL_5,
|
|
||||||
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.setCustomModifierRewards({
|
|
||||||
guaranteedModifierTiers: [
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
],
|
|
||||||
allowLuckUpgrades: false,
|
|
||||||
}),
|
|
||||||
[ClassicFixedBossWaves.EVIL_BOSS_2]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc([
|
|
||||||
TrainerType.ROCKET_BOSS_GIOVANNI_2,
|
|
||||||
TrainerType.MAXIE_2,
|
|
||||||
TrainerType.ARCHIE_2,
|
|
||||||
TrainerType.CYRUS_2,
|
|
||||||
TrainerType.GHETSIS_2,
|
|
||||||
TrainerType.LYSANDRE_2,
|
|
||||||
TrainerType.LUSAMINE_2,
|
|
||||||
TrainerType.GUZMA_2,
|
|
||||||
TrainerType.ROSE_2,
|
|
||||||
TrainerType.PENNY_2,
|
|
||||||
]),
|
|
||||||
)
|
|
||||||
.setCustomModifierRewards({
|
|
||||||
guaranteedModifierTiers: [
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
],
|
|
||||||
allowLuckUpgrades: false,
|
|
||||||
}),
|
|
||||||
[ClassicFixedBossWaves.ELITE_FOUR_1]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc([
|
|
||||||
TrainerType.LORELEI,
|
|
||||||
TrainerType.WILL,
|
|
||||||
TrainerType.SIDNEY,
|
|
||||||
TrainerType.AARON,
|
|
||||||
TrainerType.SHAUNTAL,
|
|
||||||
TrainerType.MALVA,
|
|
||||||
[TrainerType.HALA, TrainerType.MOLAYNE],
|
|
||||||
TrainerType.MARNIE_ELITE,
|
|
||||||
TrainerType.RIKA,
|
|
||||||
TrainerType.CRISPIN,
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.ELITE_FOUR_2]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc([
|
|
||||||
TrainerType.BRUNO,
|
|
||||||
TrainerType.KOGA,
|
|
||||||
TrainerType.PHOEBE,
|
|
||||||
TrainerType.BERTHA,
|
|
||||||
TrainerType.MARSHAL,
|
|
||||||
TrainerType.SIEBOLD,
|
|
||||||
TrainerType.OLIVIA,
|
|
||||||
TrainerType.NESSA_ELITE,
|
|
||||||
TrainerType.POPPY,
|
|
||||||
TrainerType.AMARYS,
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.ELITE_FOUR_3]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc([
|
|
||||||
TrainerType.AGATHA,
|
|
||||||
TrainerType.BRUNO,
|
|
||||||
TrainerType.GLACIA,
|
|
||||||
TrainerType.FLINT,
|
|
||||||
TrainerType.GRIMSLEY,
|
|
||||||
TrainerType.WIKSTROM,
|
|
||||||
TrainerType.ACEROLA,
|
|
||||||
[TrainerType.BEA_ELITE, TrainerType.ALLISTER_ELITE],
|
|
||||||
TrainerType.LARRY_ELITE,
|
|
||||||
TrainerType.LACEY,
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.ELITE_FOUR_4]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc([
|
|
||||||
TrainerType.LANCE,
|
|
||||||
TrainerType.KAREN,
|
|
||||||
TrainerType.DRAKE,
|
|
||||||
TrainerType.LUCIAN,
|
|
||||||
TrainerType.CAITLIN,
|
|
||||||
TrainerType.DRASNA,
|
|
||||||
TrainerType.KAHILI,
|
|
||||||
TrainerType.RAIHAN_ELITE,
|
|
||||||
TrainerType.HASSEL,
|
|
||||||
TrainerType.DRAYTON,
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.CHAMPION]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
getRandomTrainerFunc([
|
|
||||||
TrainerType.BLUE,
|
|
||||||
[TrainerType.RED, TrainerType.LANCE_CHAMPION],
|
|
||||||
[TrainerType.STEVEN, TrainerType.WALLACE],
|
|
||||||
TrainerType.CYNTHIA,
|
|
||||||
[TrainerType.ALDER, TrainerType.IRIS],
|
|
||||||
TrainerType.DIANTHA,
|
|
||||||
[TrainerType.KUKUI, TrainerType.HAU],
|
|
||||||
[TrainerType.LEON, TrainerType.MUSTARD],
|
|
||||||
[TrainerType.GEETA, TrainerType.NEMONA],
|
|
||||||
TrainerType.KIERAN,
|
|
||||||
]),
|
|
||||||
),
|
|
||||||
[ClassicFixedBossWaves.RIVAL_6]: new FixedBattleConfig()
|
|
||||||
.setBattleType(BattleType.TRAINER)
|
|
||||||
.setGetTrainerFunc(
|
|
||||||
() =>
|
|
||||||
new Trainer(
|
|
||||||
TrainerType.RIVAL_6,
|
|
||||||
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.setCustomModifierRewards({
|
|
||||||
guaranteedModifierTiers: [
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ROGUE,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.ULTRA,
|
|
||||||
ModifierTier.GREAT,
|
|
||||||
ModifierTier.GREAT,
|
|
||||||
],
|
|
||||||
allowLuckUpgrades: false,
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
|
@ -10,8 +10,8 @@ import {
|
|||||||
transitionMysteryEncounterIntroVisuals,
|
transitionMysteryEncounterIntroVisuals,
|
||||||
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
||||||
import { getRandomPartyMemberFunc, trainerConfigs } from "#app/data/trainers/trainer-config";
|
import { getRandomPartyMemberFunc, trainerConfigs } from "#app/data/trainers/trainer-config";
|
||||||
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerSlot } from "#enums/trainer-slot";
|
import { TrainerSlot } from "#enums/trainer-slot";
|
||||||
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
||||||
import { PartyMemberStrength } from "#enums/party-member-strength";
|
import { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
|
@ -9,8 +9,8 @@ import {
|
|||||||
transitionMysteryEncounterIntroVisuals,
|
transitionMysteryEncounterIntroVisuals,
|
||||||
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
||||||
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
||||||
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { ModifierTier } from "#enums/modifier-tier";
|
import { ModifierTier } from "#enums/modifier-tier";
|
||||||
import type { PokemonHeldItemModifierType } from "#app/modifier/modifier-type";
|
import type { PokemonHeldItemModifierType } from "#app/modifier/modifier-type";
|
||||||
import { ModifierPoolType } from "#enums/modifier-pool-type";
|
import { ModifierPoolType } from "#enums/modifier-pool-type";
|
||||||
|
@ -4,9 +4,9 @@ import {
|
|||||||
setEncounterRewards,
|
setEncounterRewards,
|
||||||
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
||||||
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
||||||
import { trainerPartyTemplates } from "#app/data/trainers/TrainerPartyTemplate";
|
import { trainerPartyTemplates } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { ModifierTier } from "#enums/modifier-tier";
|
import { ModifierTier } from "#enums/modifier-tier";
|
||||||
import { modifierTypes } from "#app/data/data-lists";
|
import { modifierTypes } from "#app/data/data-lists";
|
||||||
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
||||||
|
@ -42,7 +42,7 @@ import PokemonData from "#app/system/pokemon-data";
|
|||||||
import { Nature } from "#enums/nature";
|
import { Nature } from "#enums/nature";
|
||||||
import type HeldModifierConfig from "#app/@types/held-modifier-config";
|
import type HeldModifierConfig from "#app/@types/held-modifier-config";
|
||||||
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
||||||
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { PartyMemberStrength } from "#enums/party-member-strength";
|
import { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
|
|
||||||
/** i18n namespace for encounter */
|
/** i18n namespace for encounter */
|
||||||
|
376
src/data/trainers/fixed-battle-configs.ts
Normal file
376
src/data/trainers/fixed-battle-configs.ts
Normal file
@ -0,0 +1,376 @@
|
|||||||
|
import { FixedBattleConfig, getRandomTrainerFunc } from "#app/battle";
|
||||||
|
import Trainer from "#app/field/trainer";
|
||||||
|
import { globalScene } from "#app/global-scene";
|
||||||
|
import { randSeedInt } from "#app/utils/common";
|
||||||
|
import { BattleType } from "#enums/battle-type";
|
||||||
|
import { ClassicFixedBossWaves } from "#enums/fixed-boss-waves";
|
||||||
|
import { ModifierTier } from "#enums/modifier-tier";
|
||||||
|
import { PlayerGender } from "#enums/player-gender";
|
||||||
|
import { TrainerType } from "#enums/trainer-type";
|
||||||
|
import { TrainerVariant } from "#enums/trainer-variant";
|
||||||
|
|
||||||
|
export interface FixedBattleConfigs {
|
||||||
|
[key: number]: FixedBattleConfig;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Youngster/Lass on 5
|
||||||
|
* Rival on 8, 55, 95, 145, 195
|
||||||
|
* Evil team grunts on 35, 62, 64, and 112
|
||||||
|
* Evil team admin on 66 and 114
|
||||||
|
* Evil leader on 115, 165
|
||||||
|
* E4 on 182, 184, 186, 188
|
||||||
|
* Champion on 190
|
||||||
|
*/
|
||||||
|
export const classicFixedBattles: FixedBattleConfigs = {
|
||||||
|
[ClassicFixedBossWaves.TOWN_YOUNGSTER]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
() => new Trainer(TrainerType.YOUNGSTER, randSeedInt(2) ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.RIVAL_1]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
() =>
|
||||||
|
new Trainer(
|
||||||
|
TrainerType.RIVAL,
|
||||||
|
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.RIVAL_2]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
() =>
|
||||||
|
new Trainer(
|
||||||
|
TrainerType.RIVAL_2,
|
||||||
|
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.setCustomModifierRewards({
|
||||||
|
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.GREAT, ModifierTier.GREAT],
|
||||||
|
allowLuckUpgrades: false,
|
||||||
|
}),
|
||||||
|
[ClassicFixedBossWaves.EVIL_GRUNT_1]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc(
|
||||||
|
[
|
||||||
|
TrainerType.ROCKET_GRUNT,
|
||||||
|
TrainerType.MAGMA_GRUNT,
|
||||||
|
TrainerType.AQUA_GRUNT,
|
||||||
|
TrainerType.GALACTIC_GRUNT,
|
||||||
|
TrainerType.PLASMA_GRUNT,
|
||||||
|
TrainerType.FLARE_GRUNT,
|
||||||
|
TrainerType.AETHER_GRUNT,
|
||||||
|
TrainerType.SKULL_GRUNT,
|
||||||
|
TrainerType.MACRO_GRUNT,
|
||||||
|
TrainerType.STAR_GRUNT,
|
||||||
|
],
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.RIVAL_3]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
() =>
|
||||||
|
new Trainer(
|
||||||
|
TrainerType.RIVAL_3,
|
||||||
|
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.setCustomModifierRewards({
|
||||||
|
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.GREAT, ModifierTier.GREAT],
|
||||||
|
allowLuckUpgrades: false,
|
||||||
|
}),
|
||||||
|
[ClassicFixedBossWaves.EVIL_GRUNT_2]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc(
|
||||||
|
[
|
||||||
|
TrainerType.ROCKET_GRUNT,
|
||||||
|
TrainerType.MAGMA_GRUNT,
|
||||||
|
TrainerType.AQUA_GRUNT,
|
||||||
|
TrainerType.GALACTIC_GRUNT,
|
||||||
|
TrainerType.PLASMA_GRUNT,
|
||||||
|
TrainerType.FLARE_GRUNT,
|
||||||
|
TrainerType.AETHER_GRUNT,
|
||||||
|
TrainerType.SKULL_GRUNT,
|
||||||
|
TrainerType.MACRO_GRUNT,
|
||||||
|
TrainerType.STAR_GRUNT,
|
||||||
|
],
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.EVIL_GRUNT_3]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc(
|
||||||
|
[
|
||||||
|
TrainerType.ROCKET_GRUNT,
|
||||||
|
TrainerType.MAGMA_GRUNT,
|
||||||
|
TrainerType.AQUA_GRUNT,
|
||||||
|
TrainerType.GALACTIC_GRUNT,
|
||||||
|
TrainerType.PLASMA_GRUNT,
|
||||||
|
TrainerType.FLARE_GRUNT,
|
||||||
|
TrainerType.AETHER_GRUNT,
|
||||||
|
TrainerType.SKULL_GRUNT,
|
||||||
|
TrainerType.MACRO_GRUNT,
|
||||||
|
TrainerType.STAR_GRUNT,
|
||||||
|
],
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.EVIL_ADMIN_1]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc(
|
||||||
|
[
|
||||||
|
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL],
|
||||||
|
[TrainerType.TABITHA, TrainerType.COURTNEY],
|
||||||
|
[TrainerType.MATT, TrainerType.SHELLY],
|
||||||
|
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
|
||||||
|
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
|
||||||
|
[TrainerType.XEROSIC, TrainerType.BRYONY],
|
||||||
|
TrainerType.FABA,
|
||||||
|
TrainerType.PLUMERIA,
|
||||||
|
TrainerType.OLEANA,
|
||||||
|
[TrainerType.GIACOMO, TrainerType.MELA, TrainerType.ATTICUS, TrainerType.ORTEGA, TrainerType.ERI],
|
||||||
|
],
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.RIVAL_4]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
() =>
|
||||||
|
new Trainer(
|
||||||
|
TrainerType.RIVAL_4,
|
||||||
|
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.setCustomModifierRewards({
|
||||||
|
guaranteedModifierTiers: [ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.ULTRA, ModifierTier.ULTRA],
|
||||||
|
allowLuckUpgrades: false,
|
||||||
|
}),
|
||||||
|
[ClassicFixedBossWaves.EVIL_GRUNT_4]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc(
|
||||||
|
[
|
||||||
|
TrainerType.ROCKET_GRUNT,
|
||||||
|
TrainerType.MAGMA_GRUNT,
|
||||||
|
TrainerType.AQUA_GRUNT,
|
||||||
|
TrainerType.GALACTIC_GRUNT,
|
||||||
|
TrainerType.PLASMA_GRUNT,
|
||||||
|
TrainerType.FLARE_GRUNT,
|
||||||
|
TrainerType.AETHER_GRUNT,
|
||||||
|
TrainerType.SKULL_GRUNT,
|
||||||
|
TrainerType.MACRO_GRUNT,
|
||||||
|
TrainerType.STAR_GRUNT,
|
||||||
|
],
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.EVIL_ADMIN_2]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc(
|
||||||
|
[
|
||||||
|
[TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL],
|
||||||
|
[TrainerType.TABITHA, TrainerType.COURTNEY],
|
||||||
|
[TrainerType.MATT, TrainerType.SHELLY],
|
||||||
|
[TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN],
|
||||||
|
[TrainerType.ZINZOLIN, TrainerType.COLRESS],
|
||||||
|
[TrainerType.XEROSIC, TrainerType.BRYONY],
|
||||||
|
TrainerType.FABA,
|
||||||
|
TrainerType.PLUMERIA,
|
||||||
|
TrainerType.OLEANA,
|
||||||
|
[TrainerType.GIACOMO, TrainerType.MELA, TrainerType.ATTICUS, TrainerType.ORTEGA, TrainerType.ERI],
|
||||||
|
],
|
||||||
|
true,
|
||||||
|
1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.EVIL_BOSS_1]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc([
|
||||||
|
TrainerType.ROCKET_BOSS_GIOVANNI_1,
|
||||||
|
TrainerType.MAXIE,
|
||||||
|
TrainerType.ARCHIE,
|
||||||
|
TrainerType.CYRUS,
|
||||||
|
TrainerType.GHETSIS,
|
||||||
|
TrainerType.LYSANDRE,
|
||||||
|
TrainerType.LUSAMINE,
|
||||||
|
TrainerType.GUZMA,
|
||||||
|
TrainerType.ROSE,
|
||||||
|
TrainerType.PENNY,
|
||||||
|
]),
|
||||||
|
)
|
||||||
|
.setCustomModifierRewards({
|
||||||
|
guaranteedModifierTiers: [
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
],
|
||||||
|
allowLuckUpgrades: false,
|
||||||
|
}),
|
||||||
|
[ClassicFixedBossWaves.RIVAL_5]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
() =>
|
||||||
|
new Trainer(
|
||||||
|
TrainerType.RIVAL_5,
|
||||||
|
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.setCustomModifierRewards({
|
||||||
|
guaranteedModifierTiers: [
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
],
|
||||||
|
allowLuckUpgrades: false,
|
||||||
|
}),
|
||||||
|
[ClassicFixedBossWaves.EVIL_BOSS_2]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.EVIL_GRUNT_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc([
|
||||||
|
TrainerType.ROCKET_BOSS_GIOVANNI_2,
|
||||||
|
TrainerType.MAXIE_2,
|
||||||
|
TrainerType.ARCHIE_2,
|
||||||
|
TrainerType.CYRUS_2,
|
||||||
|
TrainerType.GHETSIS_2,
|
||||||
|
TrainerType.LYSANDRE_2,
|
||||||
|
TrainerType.LUSAMINE_2,
|
||||||
|
TrainerType.GUZMA_2,
|
||||||
|
TrainerType.ROSE_2,
|
||||||
|
TrainerType.PENNY_2,
|
||||||
|
]),
|
||||||
|
)
|
||||||
|
.setCustomModifierRewards({
|
||||||
|
guaranteedModifierTiers: [
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
],
|
||||||
|
allowLuckUpgrades: false,
|
||||||
|
}),
|
||||||
|
[ClassicFixedBossWaves.ELITE_FOUR_1]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc([
|
||||||
|
TrainerType.LORELEI,
|
||||||
|
TrainerType.WILL,
|
||||||
|
TrainerType.SIDNEY,
|
||||||
|
TrainerType.AARON,
|
||||||
|
TrainerType.SHAUNTAL,
|
||||||
|
TrainerType.MALVA,
|
||||||
|
[TrainerType.HALA, TrainerType.MOLAYNE],
|
||||||
|
TrainerType.MARNIE_ELITE,
|
||||||
|
TrainerType.RIKA,
|
||||||
|
TrainerType.CRISPIN,
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.ELITE_FOUR_2]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc([
|
||||||
|
TrainerType.BRUNO,
|
||||||
|
TrainerType.KOGA,
|
||||||
|
TrainerType.PHOEBE,
|
||||||
|
TrainerType.BERTHA,
|
||||||
|
TrainerType.MARSHAL,
|
||||||
|
TrainerType.SIEBOLD,
|
||||||
|
TrainerType.OLIVIA,
|
||||||
|
TrainerType.NESSA_ELITE,
|
||||||
|
TrainerType.POPPY,
|
||||||
|
TrainerType.AMARYS,
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.ELITE_FOUR_3]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc([
|
||||||
|
TrainerType.AGATHA,
|
||||||
|
TrainerType.BRUNO,
|
||||||
|
TrainerType.GLACIA,
|
||||||
|
TrainerType.FLINT,
|
||||||
|
TrainerType.GRIMSLEY,
|
||||||
|
TrainerType.WIKSTROM,
|
||||||
|
TrainerType.ACEROLA,
|
||||||
|
[TrainerType.BEA_ELITE, TrainerType.ALLISTER_ELITE],
|
||||||
|
TrainerType.LARRY_ELITE,
|
||||||
|
TrainerType.LACEY,
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.ELITE_FOUR_4]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc([
|
||||||
|
TrainerType.LANCE,
|
||||||
|
TrainerType.KAREN,
|
||||||
|
TrainerType.DRAKE,
|
||||||
|
TrainerType.LUCIAN,
|
||||||
|
TrainerType.CAITLIN,
|
||||||
|
TrainerType.DRASNA,
|
||||||
|
TrainerType.KAHILI,
|
||||||
|
TrainerType.RAIHAN_ELITE,
|
||||||
|
TrainerType.HASSEL,
|
||||||
|
TrainerType.DRAYTON,
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.CHAMPION]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setSeedOffsetWave(ClassicFixedBossWaves.ELITE_FOUR_1)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
getRandomTrainerFunc([
|
||||||
|
TrainerType.BLUE,
|
||||||
|
[TrainerType.RED, TrainerType.LANCE_CHAMPION],
|
||||||
|
[TrainerType.STEVEN, TrainerType.WALLACE],
|
||||||
|
TrainerType.CYNTHIA,
|
||||||
|
[TrainerType.ALDER, TrainerType.IRIS],
|
||||||
|
TrainerType.DIANTHA,
|
||||||
|
[TrainerType.KUKUI, TrainerType.HAU],
|
||||||
|
[TrainerType.LEON, TrainerType.MUSTARD],
|
||||||
|
[TrainerType.GEETA, TrainerType.NEMONA],
|
||||||
|
TrainerType.KIERAN,
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
[ClassicFixedBossWaves.RIVAL_6]: new FixedBattleConfig()
|
||||||
|
.setBattleType(BattleType.TRAINER)
|
||||||
|
.setGetTrainerFunc(
|
||||||
|
() =>
|
||||||
|
new Trainer(
|
||||||
|
TrainerType.RIVAL_6,
|
||||||
|
globalScene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.setCustomModifierRewards({
|
||||||
|
guaranteedModifierTiers: [
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ROGUE,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.ULTRA,
|
||||||
|
ModifierTier.GREAT,
|
||||||
|
ModifierTier.GREAT,
|
||||||
|
],
|
||||||
|
allowLuckUpgrades: false,
|
||||||
|
}),
|
||||||
|
};
|
@ -25,7 +25,7 @@ import {
|
|||||||
TrainerPartyCompoundTemplate,
|
TrainerPartyCompoundTemplate,
|
||||||
TrainerPartyTemplate,
|
TrainerPartyTemplate,
|
||||||
trainerPartyTemplates,
|
trainerPartyTemplates,
|
||||||
} from "./TrainerPartyTemplate";
|
} from "./trainer-party-template";
|
||||||
import { evilAdminTrainerPools } from "./evil-admin-trainer-pools";
|
import { evilAdminTrainerPools } from "./evil-admin-trainer-pools";
|
||||||
|
|
||||||
// Enum imports
|
// Enum imports
|
||||||
|
@ -3,10 +3,10 @@ import { pokemonPrevolutions } from "#app/data/balance/pokemon-evolutions";
|
|||||||
import type PokemonSpecies from "#app/data/pokemon-species";
|
import type PokemonSpecies from "#app/data/pokemon-species";
|
||||||
import { getPokemonSpecies } from "#app/utils/pokemon-utils";
|
import { getPokemonSpecies } from "#app/utils/pokemon-utils";
|
||||||
import type { TrainerConfig } from "#app/data/trainers/trainer-config";
|
import type { TrainerConfig } from "#app/data/trainers/trainer-config";
|
||||||
import type { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import type { TrainerPartyTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
import { trainerConfigs } from "#app/data/trainers/trainer-config";
|
||||||
import { trainerPartyTemplates } from "#app/data/trainers/TrainerPartyTemplate";
|
import { trainerPartyTemplates } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerSlot } from "#enums/trainer-slot";
|
import { TrainerSlot } from "#enums/trainer-slot";
|
||||||
import { TrainerPoolTier } from "#enums/trainer-pool-tier";
|
import { TrainerPoolTier } from "#enums/trainer-pool-tier";
|
||||||
import { TeraAIMode } from "#enums/tera-ai-mode";
|
import { TeraAIMode } from "#enums/tera-ai-mode";
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import type { FixedBattleConfigs } from "./battle";
|
import type { FixedBattleConfigs } from "./data/trainers/fixed-battle-configs";
|
||||||
import { classicFixedBattles, FixedBattleConfig } from "./battle";
|
import { FixedBattleConfig } from "./battle";
|
||||||
|
import { classicFixedBattles } from "./data/trainers/fixed-battle-configs";
|
||||||
import type { Challenge } from "./data/challenge";
|
import type { Challenge } from "./data/challenge";
|
||||||
import { allChallenges, applyChallenges, copyChallenge } from "./data/challenge";
|
import { allChallenges, applyChallenges, copyChallenge } from "./data/challenge";
|
||||||
import { ChallengeType } from "#enums/challenge-type";
|
import { ChallengeType } from "#enums/challenge-type";
|
||||||
|
@ -17,8 +17,8 @@ import { initSceneWithoutEncounterPhase } from "#test/testUtils/gameManagerUtils
|
|||||||
import { ModifierTier } from "#enums/modifier-tier";
|
import { ModifierTier } from "#enums/modifier-tier";
|
||||||
import { MysteriousChallengersEncounter } from "#app/data/mystery-encounters/encounters/mysterious-challengers-encounter";
|
import { MysteriousChallengersEncounter } from "#app/data/mystery-encounters/encounters/mysterious-challengers-encounter";
|
||||||
import { TrainerConfig } from "#app/data/trainers/trainer-config";
|
import { TrainerConfig } from "#app/data/trainers/trainer-config";
|
||||||
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyCompoundTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { TrainerPartyTemplate } from "#app/data/trainers/TrainerPartyTemplate";
|
import { TrainerPartyTemplate } from "#app/data/trainers/trainer-party-template";
|
||||||
import { PartyMemberStrength } from "#enums/party-member-strength";
|
import { PartyMemberStrength } from "#enums/party-member-strength";
|
||||||
import { MysteryEncounterMode } from "#enums/mystery-encounter-mode";
|
import { MysteryEncounterMode } from "#enums/mystery-encounter-mode";
|
||||||
import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler";
|
import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler";
|
||||||
|
Loading…
Reference in New Issue
Block a user