From c287584bf1fb872bacc9c0ef4bb25712fe477544 Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Tue, 1 Oct 2024 11:33:25 -0700 Subject: [PATCH] move: `SpeciesFormKey` into enum there was an issue with circular dependencies --- .../mystery-encounter-requirements.ts | 2 +- src/data/pokemon-evolutions.ts | 2 +- src/data/pokemon-forms.ts | 2 +- src/data/pokemon-species.ts | 15 +-------------- src/enums/species-form-key.ts | 13 +++++++++++++ src/field/pokemon.ts | 3 ++- src/modifier/modifier-type.ts | 2 +- src/phases/form-change-phase.ts | 2 +- 8 files changed, 21 insertions(+), 20 deletions(-) create mode 100644 src/enums/species-form-key.ts diff --git a/src/data/mystery-encounters/mystery-encounter-requirements.ts b/src/data/mystery-encounters/mystery-encounter-requirements.ts index 1b14aa91847..e8f173f0932 100644 --- a/src/data/mystery-encounters/mystery-encounter-requirements.ts +++ b/src/data/mystery-encounters/mystery-encounter-requirements.ts @@ -8,13 +8,13 @@ import { TimeOfDay } from "#enums/time-of-day"; import { Nature } from "../nature"; import { EvolutionItem, pokemonEvolutions } from "../pokemon-evolutions"; import { FormChangeItem, pokemonFormChanges, SpeciesFormChangeItemTrigger } from "../pokemon-forms"; -import { SpeciesFormKey } from "../pokemon-species"; import { StatusEffect } from "../status-effect"; import { Type } from "../type"; import { WeatherType } from "../weather"; import { MysteryEncounterType } from "#enums/mystery-encounter-type"; import { AttackTypeBoosterModifier } from "#app/modifier/modifier"; import { AttackTypeBoosterModifierType } from "#app/modifier/modifier-type"; +import { SpeciesFormKey } from "#app/enums/species-form-key"; export interface EncounterRequirement { meetsRequirement(scene: BattleScene): boolean; // Boolean to see if a requirement is met diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index 698bbb8e9c9..f1932eed36a 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -4,7 +4,6 @@ import Pokemon from "../field/pokemon"; import { Stat } from "#enums/stat"; import { Type } from "./type"; import * as Utils from "../utils"; -import { SpeciesFormKey } from "./pokemon-species"; import { WeatherType } from "./weather"; import { Nature } from "./nature"; import { Biome } from "#enums/biome"; @@ -12,6 +11,7 @@ import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import { TimeOfDay } from "#enums/time-of-day"; import { DamageMoneyRewardModifier, ExtraModifierModifier, MoneyMultiplierModifier } from "#app/modifier/modifier"; +import { SpeciesFormKey } from "#app/enums/species-form-key"; export enum SpeciesWildEvolutionDelay { NONE, diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts index 5c2dd06f7b3..dd387bbb0dd 100644 --- a/src/data/pokemon-forms.ts +++ b/src/data/pokemon-forms.ts @@ -1,6 +1,5 @@ import { PokemonFormChangeItemModifier, TerastallizeModifier } from "../modifier/modifier"; import Pokemon from "../field/pokemon"; -import { SpeciesFormKey } from "./pokemon-species"; import { StatusEffect } from "./status-effect"; import { MoveCategory, allMoves } from "./move"; import { Type } from "./type"; @@ -13,6 +12,7 @@ import { getPokemonNameWithAffix } from "#app/messages"; import i18next from "i18next"; import { WeatherType } from "./weather"; import { Challenges } from "#app/enums/challenges"; +import { SpeciesFormKey } from "#app/enums/species-form-key"; export enum FormChangeItem { NONE, diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 94dbba958b5..84bc7954867 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -16,6 +16,7 @@ import { Type } from "./type"; import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves"; import { Stat } from "#enums/stat"; import { Variant, VariantSet, variantColorCache, variantData } from "./variant"; +import { SpeciesFormKey } from "#app/enums/species-form-key"; export enum Region { NORMAL, @@ -928,20 +929,6 @@ export class PokemonForm extends PokemonSpeciesForm { } } -export enum SpeciesFormKey { - MEGA = "mega", - MEGA_X = "mega-x", - MEGA_Y = "mega-y", - PRIMAL = "primal", - ORIGIN = "origin", - INCARNATE = "incarnate", - THERIAN = "therian", - GIGANTAMAX = "gigantamax", - GIGANTAMAX_SINGLE = "gigantamax-single", - GIGANTAMAX_RAPID = "gigantamax-rapid", - ETERNAMAX = "eternamax" -} - export const allSpecies: PokemonSpecies[] = []; export function initSpecies() { diff --git a/src/enums/species-form-key.ts b/src/enums/species-form-key.ts new file mode 100644 index 00000000000..b324c876b87 --- /dev/null +++ b/src/enums/species-form-key.ts @@ -0,0 +1,13 @@ +export enum SpeciesFormKey { + MEGA = "mega", + MEGA_X = "mega-x", + MEGA_Y = "mega-y", + PRIMAL = "primal", + ORIGIN = "origin", + INCARNATE = "incarnate", + THERIAN = "therian", + GIGANTAMAX = "gigantamax", + GIGANTAMAX_SINGLE = "gigantamax-single", + GIGANTAMAX_RAPID = "gigantamax-rapid", + ETERNAMAX = "eternamax", +} diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index c66da0572ad..b8e854fc3cb 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -4,7 +4,7 @@ import { Variant, VariantSet, variantColorCache } from "#app/data/variant"; import { variantData } from "#app/data/variant"; import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from "../ui/battle-info"; import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, VariableMoveTypeAttr, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatStagesAttr, SacrificialAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatStageChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit, OneHitKOAccuracyAttr, RespectAttackTypeImmunityAttr, MoveTarget } from "../data/move"; -import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species"; +import { default as PokemonSpecies, PokemonSpeciesForm, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species"; import { Constructor, isNullOrUndefined, randSeedInt } from "#app/utils"; import * as Utils from "../utils"; import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from "../data/type"; @@ -62,6 +62,7 @@ import { PokemonAnimType } from "#app/enums/pokemon-anim-type"; import { PLAYER_PARTY_MAX_SIZE } from "#app/constants"; import { MysteryEncounterPokemonData } from "#app/data/mystery-encounters/mystery-encounter-pokemon-data"; import { SwitchType } from "#enums/switch-type"; +import { SpeciesFormKey } from "#app/enums/species-form-key"; /** `64/65536 -> 1/1024` */ const BASE_SHINY_CHANCE = 64; diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index fb69a96448a..431169020a0 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -11,7 +11,6 @@ import * as Utils from "../utils"; import { getBerryEffectDescription, getBerryName } from "../data/berry"; import { Unlockables } from "../system/unlockables"; import { getStatusEffectDescriptor, StatusEffect } from "../data/status-effect"; -import { SpeciesFormKey } from "../data/pokemon-species"; import BattleScene from "../battle-scene"; import { getVoucherTypeIcon, getVoucherTypeName, VoucherType } from "../system/voucher"; import { FormChangeItem, pokemonFormChanges, SpeciesFormChangeCondition, SpeciesFormChangeItemTrigger } from "../data/pokemon-forms"; @@ -27,6 +26,7 @@ import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import { getPokemonNameWithAffix } from "#app/messages"; import { PermanentStat, TEMP_BATTLE_STATS, TempBattleStat, Stat, getStatKey } from "#app/enums/stat"; +import { SpeciesFormKey } from "#app/enums/species-form-key"; const outputModifierData = false; const useMaxWeightForOutput = false; diff --git a/src/phases/form-change-phase.ts b/src/phases/form-change-phase.ts index 1f18457146d..cf4e01f9c79 100644 --- a/src/phases/form-change-phase.ts +++ b/src/phases/form-change-phase.ts @@ -1,6 +1,5 @@ import BattleScene from "../battle-scene"; import * as Utils from "../utils"; -import { SpeciesFormKey } from "../data/pokemon-species"; import { achvs } from "../system/achv"; import { SpeciesFormChange, getSpeciesFormChangeMessage } from "../data/pokemon-forms"; import { PlayerPokemon } from "../field/pokemon"; @@ -10,6 +9,7 @@ import { getPokemonNameWithAffix } from "../messages"; import { EndEvolutionPhase } from "./end-evolution-phase"; import { EvolutionPhase } from "./evolution-phase"; import { BattlerTagType } from "#app/enums/battler-tag-type"; +import { SpeciesFormKey } from "#app/enums/species-form-key"; export class FormChangePhase extends EvolutionPhase { private formChange: SpeciesFormChange;