Move TrainerSlot enum to its own file

This commit is contained in:
Sirz Benjie 2025-03-28 19:12:19 -05:00
parent e8f79d47ac
commit 06f1b66add
No known key found for this signature in database
GPG Key ID: 4A524B4D196C759E
23 changed files with 43 additions and 78 deletions

View File

@ -72,7 +72,7 @@ import { GameModes, getGameMode } from "#app/game-mode";
import FieldSpritePipeline from "#app/pipelines/field-sprite";
import SpritePipeline from "#app/pipelines/sprite";
import PartyExpBar from "#app/ui/party-exp-bar";
import type { TrainerSlot } from "#app/data/trainers/trainer-config";
import type { TrainerSlot } from "./enums/trainer-slot";
import { trainerConfigs } from "#app/data/trainers/trainer-config";
import Trainer, { TrainerVariant } from "#app/field/trainer";
import type TrainerData from "#app/system/trainer-data";

View File

@ -31,7 +31,7 @@ import {
catchPokemon,
getHighestLevelPlayerPokemon,
} from "#app/data/mystery-encounters/utils/encounter-pokemon-utils";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { PokeballType } from "#enums/pokeball";
import type HeldModifierConfig from "#app/interfaces/held-modifier-config";
import type { BerryType } from "#enums/berry-type";

View File

@ -14,8 +14,8 @@ import {
trainerConfigs,
TrainerPartyCompoundTemplate,
TrainerPartyTemplate,
TrainerSlot,
} from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
import { PartyMemberStrength } from "#enums/party-member-strength";
import { globalScene } from "#app/global-scene";

View File

@ -20,7 +20,7 @@ import {
STANDARD_ENCOUNTER_BOOSTED_LEVEL_MODIFIER,
} from "#app/data/mystery-encounters/utils/encounter-pokemon-utils";
import { getPokemonSpecies } from "#app/data/pokemon-species";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import type { PlayerPokemon } from "#app/field/pokemon";
import type Pokemon from "#app/field/pokemon";
import { EnemyPokemon, PokemonMove } from "#app/field/pokemon";

View File

@ -10,7 +10,7 @@ import { globalScene } from "#app/global-scene";
import type MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter";
import { MysteryEncounterBuilder } from "#app/data/mystery-encounters/mystery-encounter";
import { MysteryEncounterOptionBuilder } from "#app/data/mystery-encounters/mystery-encounter-option";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import type { PlayerPokemon } from "#app/field/pokemon";
import type Pokemon from "#app/field/pokemon";
import { FieldPosition } from "#app/field/pokemon";

View File

@ -3,7 +3,7 @@ import {
selectPokemonForOption,
setEncounterRewards,
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { ModifierTier } from "#app/modifier/modifier-tier";
import { MusicPreference } from "#app/system/settings/settings";
import type { ModifierTypeOption } from "#app/modifier/modifier-type";

View File

@ -10,7 +10,7 @@ import type MysteryEncounter from "#app/data/mystery-encounters/mystery-encounte
import { MysteryEncounterBuilder } from "#app/data/mystery-encounters/mystery-encounter";
import type MysteryEncounterOption from "#app/data/mystery-encounters/mystery-encounter-option";
import { MysteryEncounterOptionBuilder } from "#app/data/mystery-encounters/mystery-encounter-option";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { HiddenAbilityRateBoosterModifier, IvScannerModifier } from "#app/modifier/modifier";
import type { EnemyPokemon } from "#app/field/pokemon";
import { PokeballType } from "#enums/pokeball";

View File

@ -24,7 +24,7 @@ import { Biome } from "#enums/biome";
import { getBiomeKey } from "#app/field/arena";
import { PokemonType } from "#enums/pokemon-type";
import { getPartyLuckValue, modifierTypes } from "#app/modifier/modifier-type";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { BattlerTagType } from "#enums/battler-tag-type";
import { getPokemonNameWithAffix } from "#app/messages";
import { StatStageChangePhase } from "#app/phases/stat-stage-change-phase";

View File

@ -44,7 +44,8 @@ import { initMoveAnim, loadMoveAnimAssets } from "#app/data/battle-anims";
import { MysteryEncounterMode } from "#enums/mystery-encounter-mode";
import { Status } from "#app/data/status-effect";
import type { TrainerConfig } from "#app/data/trainers/trainer-config";
import { trainerConfigs, TrainerSlot } from "#app/data/trainers/trainer-config";
import { trainerConfigs } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import type PokemonSpecies from "#app/data/pokemon-species";
import type { IEggOptions } from "#app/data/egg";
import { Egg } from "#app/data/egg";

View File

@ -1,4 +1,4 @@
import type { TrainerTierPools } from "./typedefs";
import type { TrainerTierPools } from "#app/data/trainers/typedefs";
import { TrainerPoolTier } from "#enums/trainer-pool-tier";
import { Species } from "#enums/species";

View File

@ -13,7 +13,6 @@ import { getPokemonSpecies } from "#app/data/pokemon-species";
import { tmSpecies } from "#app/data/balance/tms";
import { PokemonType } from "#enums/pokemon-type";
import { doubleBattleDialogue } from "#app/data/dialogue";
import type { PersistentModifier } from "#app/modifier/modifier";
import { TrainerVariant } from "#app/field/trainer";
import { getIsInitialized, initI18n } from "#app/plugins/i18n";
import i18next from "i18next";
@ -26,6 +25,15 @@ import { signatureSpecies } from "../balance/signature-species";
import { Abilities } from "#enums/abilities";
import { TeraAIMode } from "#enums/tera-ai-mode";
import { TrainerPoolTier } from "#enums/trainer-pool-tier";
import { TrainerSlot } from "#enums/trainer-slot";
import type {
PartyMemberFunc,
GenModifiersFunc,
GenAIFunc,
PartyTemplateFunc,
TrainerTierPools,
TrainerConfigs,
} from "./typedefs";
/** Minimum BST for Pokemon generated onto the Elite Four's teams */
const ELITE_FOUR_MINIMUM_BST = 460;
@ -33,16 +41,6 @@ const ELITE_FOUR_MINIMUM_BST = 460;
/** The wave at which (non-Paldean) Gym Leaders start having Tera mons*/
const GYM_LEADER_TERA_WAVE = 100;
export interface TrainerTierPools {
[key: number]: Species[];
}
export enum TrainerSlot {
NONE,
TRAINER,
TRAINER_PARTNER,
}
export class TrainerPartyTemplate {
public size: number;
public strength: PartyMemberStrength;
@ -69,6 +67,10 @@ export class TrainerPartyTemplate {
}
}
export interface PartyMemberFuncs {
[key: number]: PartyMemberFunc;
}
export class TrainerPartyCompoundTemplate extends TrainerPartyTemplate {
public templates: TrainerPartyTemplate[];
@ -257,15 +259,6 @@ export const trainerPartyTemplates = {
),
};
type PartyTemplateFunc = () => TrainerPartyTemplate;
type PartyMemberFunc = (level: number, strength: PartyMemberStrength) => EnemyPokemon;
type GenModifiersFunc = (party: EnemyPokemon[]) => PersistentModifier[];
type GenAIFunc = (party: EnemyPokemon[]) => void;
export interface PartyMemberFuncs {
[key: number]: PartyMemberFunc;
}
/**
* Stores data and helper functions about a trainers AI options.
*/
@ -1625,10 +1618,6 @@ export class TrainerConfig {
let t = 0;
interface TrainerConfigs {
[key: number]: TrainerConfig;
}
/**
* The function to get variable strength grunts
* @returns the correct TrainerPartyTemplate

View File

@ -2,6 +2,7 @@ import type { EnemyPokemon } from "#app/field/pokemon";
import type { PersistentModifier } from "#app/modifier/modifier";
import type { PartyMemberStrength } from "#enums/party-member-strength";
import type { Species } from "#enums/species";
import type { TrainerPartyTemplate, TrainerConfig } from "./trainer-config";
export type PartyTemplateFunc = () => TrainerPartyTemplate;
export type PartyMemberFunc = (level: number, strength: PartyMemberStrength) => EnemyPokemon;
@ -11,33 +12,6 @@ export type GenAIFunc = (party: EnemyPokemon[]) => void;
export interface TrainerTierPools {
[key: number]: Species[];
}
export interface PartyMemberFuncs {
[key: number]: PartyMemberFunc;
}
export class TrainerPartyTemplate {
public size: number;
public strength: PartyMemberStrength;
public sameSpecies: boolean;
public balanced: boolean;
constructor(size: number, strength: PartyMemberStrength, sameSpecies?: boolean, balanced?: boolean) {
this.size = size;
this.strength = strength;
this.sameSpecies = !!sameSpecies;
this.balanced = !!balanced;
}
getStrength(_index: number): PartyMemberStrength {
return this.strength;
}
isSameSpecies(_index: number): boolean {
return this.sameSpecies;
}
isBalanced(_index: number): boolean {
return this.balanced;
}
export interface TrainerConfigs {
[key: number]: TrainerConfig;
}

View File

@ -0,0 +1,5 @@
export enum TrainerSlot {
NONE,
TRAINER,
TRAINER_PARTNER
}

View File

@ -225,7 +225,7 @@ import {
SpeciesFormChangeStatusEffectTrigger,
} from "#app/data/pokemon-forms";
import { TerrainType } from "#app/data/terrain";
import type { TrainerSlot } from "#app/data/trainers/trainer-config";
import type { TrainerSlot } from "#enums/trainer-slot";
import Overrides from "#app/overrides";
import i18next from "i18next";
import { speciesEggMoves } from "#app/data/balance/egg-moves";

View File

@ -3,12 +3,8 @@ import { pokemonPrevolutions } from "#app/data/balance/pokemon-evolutions";
import type PokemonSpecies from "#app/data/pokemon-species";
import { getPokemonSpecies } from "#app/data/pokemon-species";
import type { TrainerConfig, TrainerPartyTemplate } from "#app/data/trainers/trainer-config";
import {
TrainerPartyCompoundTemplate,
TrainerSlot,
trainerConfigs,
trainerPartyTemplates,
} from "#app/data/trainers/trainer-config";
import { TrainerPartyCompoundTemplate, trainerConfigs, trainerPartyTemplates } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { TrainerPoolTier } from "#enums/trainer-pool-tier";
import { TeraAIMode } from "#enums/tera-ai-mode";
import type { EnemyPokemon } from "#app/field/pokemon";

View File

@ -1,5 +1,5 @@
import { globalScene } from "#app/global-scene";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { Phase } from "#app/phase";
export class BattlePhase extends Phase {

View File

@ -7,7 +7,7 @@ import { getCharVariantFromDialogue } from "#app/data/dialogue";
import { getEncounterText } from "#app/data/mystery-encounters/utils/encounter-dialogue-utils";
import { doTrainerExclamation } from "#app/data/mystery-encounters/utils/encounter-phase-utils";
import { getGoldenBugNetSpecies } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { getRandomWeatherType } from "#app/data/weather";
import { EncounterPhaseEvent } from "#app/events/battle-scene";
import type Pokemon from "#app/field/pokemon";

View File

@ -22,7 +22,7 @@ import { globalScene } from "#app/global-scene";
import { getCharVariantFromDialogue } from "../data/dialogue";
import type { OptionSelectSettings } from "../data/mystery-encounters/utils/encounter-phase-utils";
import { transitionMysteryEncounterIntroVisuals } from "../data/mystery-encounters/utils/encounter-phase-utils";
import { TrainerSlot } from "../data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { IvScannerModifier } from "../modifier/modifier";
import { Phase } from "../phase";
import { Mode } from "../ui/ui";

View File

@ -1,7 +1,7 @@
import { BattleType } from "#app/battle";
import { getPokeballAtlasKey, getPokeballTintColor } from "#app/data/pokeball";
import { SpeciesFormChangeActiveTrigger } from "#app/data/pokemon-forms";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { PlayerGender } from "#app/enums/player-gender";
import { addPokeballOpenParticles } from "#app/field/anims";
import type Pokemon from "#app/field/pokemon";

View File

@ -3,7 +3,7 @@ import { applyPreSwitchOutAbAttrs, PostDamageForceSwitchAbAttr, PreSwitchOutAbAt
import { allMoves, ForceSwitchOutAttr } from "#app/data/moves/move";
import { getPokeballTintColor } from "#app/data/pokeball";
import { SpeciesFormChangeActiveTrigger } from "#app/data/pokemon-forms";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import type Pokemon from "#app/field/pokemon";
import { getPokemonNameWithAffix } from "#app/messages";
import { SwitchEffectTransferModifier } from "#app/modifier/modifier";

View File

@ -7,7 +7,7 @@ import * as Utils from "#app/utils";
import { BattlePhase } from "./battle-phase";
import { ModifierRewardPhase } from "./modifier-reward-phase";
import { MoneyRewardPhase } from "./money-reward-phase";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { globalScene } from "#app/global-scene";
import { Biome } from "#app/enums/biome";
import { achvs } from "#app/system/achv";

View File

@ -6,7 +6,7 @@ import type { PokeballType } from "#enums/pokeball";
import { getPokemonSpecies, getPokemonSpeciesForm } from "../data/pokemon-species";
import { Status } from "../data/status-effect";
import Pokemon, { EnemyPokemon, PokemonMove, PokemonSummonData } from "../field/pokemon";
import { TrainerSlot } from "../data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import type { Variant } from "#app/data/variant";
import { loadBattlerTag } from "../data/battler-tags";
import type { Biome } from "#enums/biome";

View File

@ -1,6 +1,6 @@
import { allMoves } from "#app/data/moves/move";
import { getPokemonSpecies } from "#app/data/pokemon-species";
import { TrainerSlot } from "#app/data/trainers/trainer-config";
import { TrainerSlot } from "#enums/trainer-slot";
import { PokemonType } from "#enums/pokemon-type";
import { Abilities } from "#app/enums/abilities";
import { Moves } from "#app/enums/moves";