From 9a92f98f630734fe545f902bd583f19cb07cbf7a Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Wed, 10 Sep 2025 21:09:33 +0200 Subject: [PATCH] [Refactor] Move type definitions away from `game-data.ts` (#6487) * Move type definitions away from game-data.ts * Update src/@types/data-types.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Renamed file to save-data.ts * Fixed broken import * Moved some ui files * Run biome, fix broken import * Fixed one more broken input --- src/@types/api/pokerogue-save-data-api.ts | 2 +- .../api/pokerogue-system-save-data-api.ts | 2 +- src/@types/arena-tags.ts | 2 +- src/@types/battler-tags.ts | 2 +- src/@types/save-data.ts | 143 ++++++++++++++++++ src/@types/session-save-migrator.ts | 2 +- src/@types/system-save-migrator.ts | 2 +- src/data/challenge.ts | 3 +- src/data/egg-hatch-data.ts | 2 +- src/data/pokemon-species.ts | 2 +- src/field/pokemon.ts | 2 +- src/phases/game-over-phase.ts | 2 +- src/phases/title-phase.ts | 2 +- .../api/pokerogue-session-savedata-api.ts | 2 +- src/system/game-data.ts | 142 ++--------------- .../version-migration/version-converter.ts | 2 +- .../version-migration/versions/v1_0_4.ts | 2 +- .../version-migration/versions/v1_10_0.ts | 2 +- .../version-migration/versions/v1_7_0.ts | 2 +- .../version-migration/versions/v1_8_3.ts | 2 +- .../version-migration/versions/v1_9_0.ts | 2 +- .../pokemon-hatch-info-container.ts | 2 +- src/ui/containers/pokemon-info-container.ts | 4 +- src/ui/handlers/achvs-ui-handler.ts | 2 +- src/ui/handlers/pokedex-page-ui-handler.ts | 2 +- src/ui/handlers/pokedex-ui-handler.ts | 2 +- src/ui/handlers/run-history-ui-handler.ts | 2 +- src/ui/handlers/run-info-ui-handler.ts | 2 +- .../handlers/save-slot-select-ui-handler.ts | 2 +- src/ui/handlers/starter-select-ui-handler.ts | 2 +- src/utils/challenge-utils.ts | 2 +- src/utils/data.ts | 2 +- .../pokerogue-session-savedata-api.test.ts | 2 +- .../api/pokerogue-system-savedata-api.test.ts | 2 +- test/system/game-data.test.ts | 2 +- test/system/rename-run.test.ts | 2 +- test/test-utils/game-manager-utils.ts | 2 +- test/test-utils/helpers/reload-helper.ts | 2 +- test/ui/pokedex.test.ts | 2 +- 39 files changed, 195 insertions(+), 167 deletions(-) create mode 100644 src/@types/save-data.ts diff --git a/src/@types/api/pokerogue-save-data-api.ts b/src/@types/api/pokerogue-save-data-api.ts index ebc80ac4ce0..c33d775f114 100644 --- a/src/@types/api/pokerogue-save-data-api.ts +++ b/src/@types/api/pokerogue-save-data-api.ts @@ -1,4 +1,4 @@ -import type { SessionSaveData, SystemSaveData } from "#system/game-data"; +import type { SessionSaveData, SystemSaveData } from "#types/save-data"; export interface UpdateAllSavedataRequest { system: SystemSaveData; diff --git a/src/@types/api/pokerogue-system-save-data-api.ts b/src/@types/api/pokerogue-system-save-data-api.ts index 133f9cda506..2e79b4fb92c 100644 --- a/src/@types/api/pokerogue-system-save-data-api.ts +++ b/src/@types/api/pokerogue-system-save-data-api.ts @@ -1,4 +1,4 @@ -import type { SystemSaveData } from "#system/game-data"; +import type { SystemSaveData } from "#types/save-data"; export interface GetSystemSavedataRequest { clientSessionId: string; diff --git a/src/@types/arena-tags.ts b/src/@types/arena-tags.ts index c340102e7be..73f26af052a 100644 --- a/src/@types/arena-tags.ts +++ b/src/@types/arena-tags.ts @@ -1,7 +1,7 @@ import type { ArenaTagTypeMap } from "#data/arena-tag"; import type { ArenaTagType } from "#enums/arena-tag-type"; // biome-ignore lint/correctness/noUnusedImports: TSDocs -import type { SessionSaveData } from "#system/game-data"; +import type { SessionSaveData } from "#types/save-data"; import type { ObjectValues } from "#types/type-helpers"; /** Subset of {@linkcode ArenaTagType}s that apply some negative effect to pokemon that switch in ({@link https://bulbapedia.bulbagarden.net/wiki/List_of_moves_that_cause_entry_hazards#List_of_traps | entry hazards} and Imprison. */ diff --git a/src/@types/battler-tags.ts b/src/@types/battler-tags.ts index 8e34108958e..e47b4f8cfc1 100644 --- a/src/@types/battler-tags.ts +++ b/src/@types/battler-tags.ts @@ -1,7 +1,7 @@ // biome-ignore-start lint/correctness/noUnusedImports: Used in a TSDoc comment import type { AbilityBattlerTag, BattlerTagTypeMap, SerializableBattlerTag, TypeBoostTag } from "#data/battler-tags"; import type { AbilityId } from "#enums/ability-id"; -import type { SessionSaveData } from "#system/game-data"; +import type { SessionSaveData } from "#types/save-data"; // biome-ignore-end lint/correctness/noUnusedImports: Used in a TSDoc comment import type { BattlerTagType } from "#enums/battler-tag-type"; diff --git a/src/@types/save-data.ts b/src/@types/save-data.ts new file mode 100644 index 00000000000..4c20d63da53 --- /dev/null +++ b/src/@types/save-data.ts @@ -0,0 +1,143 @@ +import type { PokeballCounts } from "#app/battle-scene"; +import type { Tutorial } from "#app/tutorial"; +import type { BattleType } from "#enums/battle-type"; +import type { GameModes } from "#enums/game-modes"; +import type { MoveId } from "#enums/move-id"; +import type { MysteryEncounterType } from "#enums/mystery-encounter-type"; +import type { PlayerGender } from "#enums/player-gender"; +import type { PokemonType } from "#enums/pokemon-type"; +import type { MysteryEncounterSaveData } from "#mystery-encounters/mystery-encounter-save-data"; +import type { Variant } from "#sprites/variant"; +import type { ArenaData } from "#system/arena-data"; +import type { ChallengeData } from "#system/challenge-data"; +import type { EggData } from "#system/egg-data"; +import type { GameStats } from "#system/game-stats"; +import type { ModifierData } from "#system/modifier-data"; +import type { PokemonData } from "#system/pokemon-data"; +import type { TrainerData } from "#system/trainer-data"; +import type { DexData } from "./dex-data"; + +export interface SystemSaveData { + trainerId: number; + secretId: number; + gender: PlayerGender; + dexData: DexData; + starterData: StarterData; + gameStats: GameStats; + unlocks: Unlocks; + achvUnlocks: AchvUnlocks; + voucherUnlocks: VoucherUnlocks; + voucherCounts: VoucherCounts; + eggs: EggData[]; + gameVersion: string; + timestamp: number; + eggPity: number[]; + unlockPity: number[]; +} + +export interface SessionSaveData { + seed: string; + playTime: number; + gameMode: GameModes; + party: PokemonData[]; + enemyParty: PokemonData[]; + modifiers: ModifierData[]; + enemyModifiers: ModifierData[]; + arena: ArenaData; + pokeballCounts: PokeballCounts; + money: number; + score: number; + waveIndex: number; + battleType: BattleType; + trainer: TrainerData; + gameVersion: string; + /** The player-chosen name of the run */ + name: string; + timestamp: number; + challenges: ChallengeData[]; + mysteryEncounterType: MysteryEncounterType | -1; // Only defined when current wave is ME, + mysteryEncounterSaveData: MysteryEncounterSaveData; + /** + * Counts the amount of pokemon fainted in your party during the current arena encounter. + */ + playerFaints: number; +} + +export interface Unlocks { + [key: number]: boolean; +} + +export interface AchvUnlocks { + [key: string]: number; +} + +export interface VoucherUnlocks { + [key: string]: number; +} + +export interface VoucherCounts { + [type: string]: number; +} + +export type StarterMoveset = [MoveId] | [MoveId, MoveId] | [MoveId, MoveId, MoveId] | [MoveId, MoveId, MoveId, MoveId]; + +export interface StarterFormMoveData { + [key: number]: StarterMoveset; +} + +export interface StarterMoveData { + [key: number]: StarterMoveset | StarterFormMoveData; +} + +export interface StarterAttributes { + nature?: number; + ability?: number; + variant?: number; + form?: number; + female?: boolean; + shiny?: boolean; + favorite?: boolean; + nickname?: string; + tera?: PokemonType; +} + +export interface DexAttrProps { + shiny: boolean; + female: boolean; + variant: Variant; + formIndex: number; +} + +export type RunHistoryData = Record; + +export interface RunEntry { + entry: SessionSaveData; + isVictory: boolean; + /*Automatically set to false at the moment - implementation TBD*/ + isFavorite: boolean; +} + +export interface StarterDataEntry { + moveset: StarterMoveset | StarterFormMoveData | null; + eggMoves: number; + candyCount: number; + friendship: number; + abilityAttr: number; + passiveAttr: number; + valueReduction: number; + classicWinCount: number; +} + +export interface StarterData { + [key: number]: StarterDataEntry; +} + +// TODO: Rework into a bitmask +export type TutorialFlags = { + [key in Tutorial]: boolean; +}; + +// TODO: Rework into a bitmask +export interface SeenDialogues { + [key: string]: boolean; +} diff --git a/src/@types/session-save-migrator.ts b/src/@types/session-save-migrator.ts index 56518eaa8b7..c8f53236c63 100644 --- a/src/@types/session-save-migrator.ts +++ b/src/@types/session-save-migrator.ts @@ -1,4 +1,4 @@ -import type { SessionSaveData } from "#system/game-data"; +import type { SessionSaveData } from "./save-data"; export interface SessionSaveMigrator { version: string; diff --git a/src/@types/system-save-migrator.ts b/src/@types/system-save-migrator.ts index 80fff9c7848..4cbcc4c3e15 100644 --- a/src/@types/system-save-migrator.ts +++ b/src/@types/system-save-migrator.ts @@ -1,4 +1,4 @@ -import type { SystemSaveData } from "#system/game-data"; +import type { SystemSaveData } from "./save-data"; export interface SystemSaveMigrator { version: string; diff --git a/src/data/challenge.ts b/src/data/challenge.ts index 1822fb9ca1f..64a88bc8be2 100644 --- a/src/data/challenge.ts +++ b/src/data/challenge.ts @@ -21,9 +21,10 @@ import type { EnemyPokemon, PlayerPokemon, Pokemon } from "#field/pokemon"; import { Trainer } from "#field/trainer"; import type { ModifierTypeOption } from "#modifiers/modifier-type"; import { PokemonMove } from "#moves/pokemon-move"; -import type { DexAttrProps, GameData, StarterDataEntry } from "#system/game-data"; +import type { GameData } from "#system/game-data"; import { RibbonData, type RibbonFlag } from "#system/ribbons/ribbon-data"; import type { DexEntry } from "#types/dex-data"; +import type { DexAttrProps, StarterDataEntry } from "#types/save-data"; import { type BooleanHolder, isBetween, type NumberHolder, randSeedItem } from "#utils/common"; import { deepCopy } from "#utils/data"; import { getPokemonSpecies, getPokemonSpeciesForm } from "#utils/pokemon-utils"; diff --git a/src/data/egg-hatch-data.ts b/src/data/egg-hatch-data.ts index e78dc4d7984..efe06d5a504 100644 --- a/src/data/egg-hatch-data.ts +++ b/src/data/egg-hatch-data.ts @@ -1,7 +1,7 @@ import { globalScene } from "#app/global-scene"; import type { PlayerPokemon } from "#field/pokemon"; -import type { StarterDataEntry } from "#system/game-data"; import type { DexEntry } from "#types/dex-data"; +import type { StarterDataEntry } from "#types/save-data"; /** * Stores data associated with a specific egg and the hatched pokemon diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 97f02b59764..2d76c2c0400 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -26,8 +26,8 @@ import { loadPokemonVariantAssets } from "#sprites/pokemon-sprite"; import { hasExpSprite } from "#sprites/sprite-utils"; import type { Variant, VariantSet } from "#sprites/variant"; import { populateVariantColorCache, variantColorCache, variantData } from "#sprites/variant"; -import type { StarterMoveset } from "#system/game-data"; import type { Localizable } from "#types/locales"; +import type { StarterMoveset } from "#types/save-data"; import { isNullOrUndefined, randSeedFloat, randSeedGauss, randSeedInt } from "#utils/common"; import { getPokemonSpecies } from "#utils/pokemon-utils"; import { toCamelCase, toPascalCase } from "#utils/strings"; diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index aebea28ca8d..84ed3de6166 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -137,13 +137,13 @@ import { loadMoveAnimations } from "#sprites/pokemon-asset-loader"; import type { Variant } from "#sprites/variant"; import { populateVariantColors, variantColorCache, variantData } from "#sprites/variant"; import { achvs } from "#system/achv"; -import type { StarterDataEntry, StarterMoveset } from "#system/game-data"; import type { PokemonData } from "#system/pokemon-data"; import { RibbonData } from "#system/ribbons/ribbon-data"; import { awardRibbonsToSpeciesLine } from "#system/ribbons/ribbon-methods"; import type { AbAttrMap, AbAttrString, TypeMultiplierAbAttrParams } from "#types/ability-types"; import type { DamageCalculationResult, DamageResult } from "#types/damage-result"; import type { IllusionData } from "#types/illusion-data"; +import type { StarterDataEntry, StarterMoveset } from "#types/save-data"; import type { TurnMove } from "#types/turn-move"; import { BattleInfo } from "#ui/battle-info"; import { EnemyBattleInfo } from "#ui/enemy-battle-info"; diff --git a/src/phases/game-over-phase.ts b/src/phases/game-over-phase.ts index 57ebd40b559..dd29b97d590 100644 --- a/src/phases/game-over-phase.ts +++ b/src/phases/game-over-phase.ts @@ -16,13 +16,13 @@ import type { EndCardPhase } from "#phases/end-card-phase"; import { achvs, ChallengeAchv } from "#system/achv"; import { ArenaData } from "#system/arena-data"; import { ChallengeData } from "#system/challenge-data"; -import type { SessionSaveData } from "#system/game-data"; import { ModifierData as PersistentModifierData } from "#system/modifier-data"; import { PokemonData } from "#system/pokemon-data"; import { RibbonData, type RibbonFlag } from "#system/ribbons/ribbon-data"; import { awardRibbonsToSpeciesLine } from "#system/ribbons/ribbon-methods"; import { TrainerData } from "#system/trainer-data"; import { trainerConfigs } from "#trainers/trainer-config"; +import type { SessionSaveData } from "#types/save-data"; import { checkSpeciesValidForChallenge, isNuzlockeChallenge } from "#utils/challenge-utils"; import { isLocal, isLocalServerConnected } from "#utils/common"; import { getPokemonSpecies } from "#utils/pokemon-utils"; diff --git a/src/phases/title-phase.ts b/src/phases/title-phase.ts index fd12ec3bd6b..97f6bf0d837 100644 --- a/src/phases/title-phase.ts +++ b/src/phases/title-phase.ts @@ -14,8 +14,8 @@ import { Unlockables } from "#enums/unlockables"; import { getBiomeKey } from "#field/arena"; import type { Modifier } from "#modifiers/modifier"; import { getDailyRunStarterModifiers, regenerateModifierPoolThresholds } from "#modifiers/modifier-type"; -import type { SessionSaveData } from "#system/game-data"; import { vouchers } from "#system/voucher"; +import type { SessionSaveData } from "#types/save-data"; import type { OptionSelectConfig, OptionSelectItem } from "#ui/handlers/abstract-option-select-ui-handler"; import { SaveSlotUiMode } from "#ui/handlers/save-slot-select-ui-handler"; import { isLocal, isLocalServerConnected, isNullOrUndefined } from "#utils/common"; diff --git a/src/plugins/api/pokerogue-session-savedata-api.ts b/src/plugins/api/pokerogue-session-savedata-api.ts index 87960339671..e1c67ef7245 100644 --- a/src/plugins/api/pokerogue-session-savedata-api.ts +++ b/src/plugins/api/pokerogue-session-savedata-api.ts @@ -1,5 +1,4 @@ import { ApiBase } from "#api/api-base"; -import type { SessionSaveData } from "#system/game-data"; import type { ClearSessionSavedataRequest, ClearSessionSavedataResponse, @@ -8,6 +7,7 @@ import type { NewClearSessionSavedataRequest, UpdateSessionSavedataRequest, } from "#types/api/pokerogue-session-save-data-api"; +import type { SessionSaveData } from "#types/save-data"; /** * A wrapper for PokéRogue session savedata API requests. diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 08b7261c5f9..247f8c3660a 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -1,6 +1,5 @@ import { pokerogueApi } from "#api/pokerogue-api"; import { clientSessionId, loggedInUser, updateUserInfo } from "#app/account"; -import type { PokeballCounts } from "#app/battle-scene"; import { defaultStarterSpecies, saveKey } from "#app/constants"; import { getGameMode } from "#app/game-mode"; import { globalScene } from "#app/global-scene"; @@ -24,11 +23,9 @@ import { Device } from "#enums/devices"; import { DexAttr } from "#enums/dex-attr"; import { GameDataType } from "#enums/game-data-type"; import { GameModes } from "#enums/game-modes"; -import type { MoveId } from "#enums/move-id"; import type { MysteryEncounterType } from "#enums/mystery-encounter-type"; import { Nature } from "#enums/nature"; import { PlayerGender } from "#enums/player-gender"; -import type { PokemonType } from "#enums/pokemon-type"; import { SpeciesId } from "#enums/species-id"; import { StatusEffect } from "#enums/status-effect"; import { TrainerVariant } from "#enums/trainer-variant"; @@ -62,6 +59,19 @@ import { import { VoucherType, vouchers } from "#system/voucher"; import { trainerConfigs } from "#trainers/trainer-config"; import type { DexData, DexEntry } from "#types/dex-data"; +import type { + AchvUnlocks, + DexAttrProps, + RunHistoryData, + SeenDialogues, + SessionSaveData, + StarterData, + SystemSaveData, + TutorialFlags, + Unlocks, + VoucherCounts, + VoucherUnlocks, +} from "#types/save-data"; import { RUN_HISTORY_LIMIT } from "#ui/handlers/run-history-ui-handler"; import { applyChallenges } from "#utils/challenge-utils"; import { executeIf, fixedInt, isLocal, NumberHolder, randInt, randSeedItem } from "#utils/common"; @@ -94,132 +104,6 @@ function getDataTypeKey(dataType: GameDataType, slotId = 0): string { } } -// TODO: Move all these exported interfaces to @types -export interface SystemSaveData { - trainerId: number; - secretId: number; - gender: PlayerGender; - dexData: DexData; - starterData: StarterData; - gameStats: GameStats; - unlocks: Unlocks; - achvUnlocks: AchvUnlocks; - voucherUnlocks: VoucherUnlocks; - voucherCounts: VoucherCounts; - eggs: EggData[]; - gameVersion: string; - timestamp: number; - eggPity: number[]; - unlockPity: number[]; -} - -export interface SessionSaveData { - seed: string; - playTime: number; - gameMode: GameModes; - party: PokemonData[]; - enemyParty: PokemonData[]; - modifiers: PersistentModifierData[]; - enemyModifiers: PersistentModifierData[]; - arena: ArenaData; - pokeballCounts: PokeballCounts; - money: number; - score: number; - waveIndex: number; - battleType: BattleType; - trainer: TrainerData; - gameVersion: string; - /** The player-chosen name of the run */ - name: string; - timestamp: number; - challenges: ChallengeData[]; - mysteryEncounterType: MysteryEncounterType | -1; // Only defined when current wave is ME, - mysteryEncounterSaveData: MysteryEncounterSaveData; - /** - * Counts the amount of pokemon fainted in your party during the current arena encounter. - */ - playerFaints: number; -} - -interface Unlocks { - [key: number]: boolean; -} - -export interface AchvUnlocks { - [key: string]: number; -} - -export interface VoucherUnlocks { - [key: string]: number; -} - -export interface VoucherCounts { - [type: string]: number; -} - -export type StarterMoveset = [MoveId] | [MoveId, MoveId] | [MoveId, MoveId, MoveId] | [MoveId, MoveId, MoveId, MoveId]; - -export interface StarterFormMoveData { - [key: number]: StarterMoveset; -} - -export interface StarterMoveData { - [key: number]: StarterMoveset | StarterFormMoveData; -} - -export interface StarterAttributes { - nature?: number; - ability?: number; - variant?: number; - form?: number; - female?: boolean; - shiny?: boolean; - favorite?: boolean; - nickname?: string; - tera?: PokemonType; -} - -export interface DexAttrProps { - shiny: boolean; - female: boolean; - variant: Variant; - formIndex: number; -} - -export type RunHistoryData = Record; - -export interface RunEntry { - entry: SessionSaveData; - isVictory: boolean; - /*Automatically set to false at the moment - implementation TBD*/ - isFavorite: boolean; -} - -export interface StarterDataEntry { - moveset: StarterMoveset | StarterFormMoveData | null; - eggMoves: number; - candyCount: number; - friendship: number; - abilityAttr: number; - passiveAttr: number; - valueReduction: number; - classicWinCount: number; -} - -export interface StarterData { - [key: number]: StarterDataEntry; -} - -// TODO: Rework into a bitmask -export type TutorialFlags = { - [key in Tutorial]: boolean; -}; - -// TODO: Rework into a bitmask -export interface SeenDialogues { - [key: string]: boolean; -} - const systemShortKeys = { seenAttr: "$sa", caughtAttr: "$ca", diff --git a/src/system/version-migration/version-converter.ts b/src/system/version-migration/version-converter.ts index 6dde611ce84..269e577ca3f 100644 --- a/src/system/version-migration/version-converter.ts +++ b/src/system/version-migration/version-converter.ts @@ -1,7 +1,7 @@ /** biome-ignore-all lint/performance/noNamespaceImport: Convenience */ import { version } from "#package.json"; -import type { SessionSaveData, SystemSaveData } from "#system/game-data"; +import type { SessionSaveData, SystemSaveData } from "#types/save-data"; import type { SessionSaveMigrator } from "#types/session-save-migrator"; import type { SettingsSaveMigrator } from "#types/settings-save-migrator"; import type { SystemSaveMigrator } from "#types/system-save-migrator"; diff --git a/src/system/version-migration/versions/v1_0_4.ts b/src/system/version-migration/versions/v1_0_4.ts index 6d65df29970..8229b9320d5 100644 --- a/src/system/version-migration/versions/v1_0_4.ts +++ b/src/system/version-migration/versions/v1_0_4.ts @@ -3,8 +3,8 @@ import { allSpecies } from "#data/data-lists"; import { CustomPokemonData } from "#data/pokemon-data"; import { AbilityAttr } from "#enums/ability-attr"; import { DexAttr } from "#enums/dex-attr"; -import type { SessionSaveData, SystemSaveData } from "#system/game-data"; import { SettingKeys } from "#system/settings"; +import type { SessionSaveData, SystemSaveData } from "#types/save-data"; import type { SessionSaveMigrator } from "#types/session-save-migrator"; import type { SettingsSaveMigrator } from "#types/settings-save-migrator"; import type { SystemSaveMigrator } from "#types/system-save-migrator"; diff --git a/src/system/version-migration/versions/v1_10_0.ts b/src/system/version-migration/versions/v1_10_0.ts index 5c13acd4508..eab0b0cc78e 100644 --- a/src/system/version-migration/versions/v1_10_0.ts +++ b/src/system/version-migration/versions/v1_10_0.ts @@ -2,7 +2,7 @@ import type { BattlerIndex } from "#enums/battler-index"; import type { MoveId } from "#enums/move-id"; import type { MoveResult } from "#enums/move-result"; import { MoveUseMode } from "#enums/move-use-mode"; -import type { SessionSaveData } from "#system/game-data"; +import type { SessionSaveData } from "#types/save-data"; import type { SessionSaveMigrator } from "#types/session-save-migrator"; import type { TurnMove } from "#types/turn-move"; diff --git a/src/system/version-migration/versions/v1_7_0.ts b/src/system/version-migration/versions/v1_7_0.ts index 69c640756ea..6d365cf31ac 100644 --- a/src/system/version-migration/versions/v1_7_0.ts +++ b/src/system/version-migration/versions/v1_7_0.ts @@ -1,6 +1,6 @@ import { globalScene } from "#app/global-scene"; import { DexAttr } from "#enums/dex-attr"; -import type { SessionSaveData, SystemSaveData } from "#system/game-data"; +import type { SessionSaveData, SystemSaveData } from "#types/save-data"; import type { SessionSaveMigrator } from "#types/session-save-migrator"; import type { SystemSaveMigrator } from "#types/system-save-migrator"; import { isNullOrUndefined } from "#utils/common"; diff --git a/src/system/version-migration/versions/v1_8_3.ts b/src/system/version-migration/versions/v1_8_3.ts index 4907b4e5e57..0d6fd87a56c 100644 --- a/src/system/version-migration/versions/v1_8_3.ts +++ b/src/system/version-migration/versions/v1_8_3.ts @@ -1,6 +1,6 @@ import { DexAttr } from "#enums/dex-attr"; import { SpeciesId } from "#enums/species-id"; -import type { SystemSaveData } from "#system/game-data"; +import type { SystemSaveData } from "#types/save-data"; import type { SystemSaveMigrator } from "#types/system-save-migrator"; import { getPokemonSpecies } from "#utils/pokemon-utils"; diff --git a/src/system/version-migration/versions/v1_9_0.ts b/src/system/version-migration/versions/v1_9_0.ts index 60e299ed458..eee60571884 100644 --- a/src/system/version-migration/versions/v1_9_0.ts +++ b/src/system/version-migration/versions/v1_9_0.ts @@ -1,7 +1,7 @@ import { MoveId } from "#enums/move-id"; import { PokemonMove } from "#moves/pokemon-move"; -import type { SessionSaveData } from "#system/game-data"; import type { PokemonData } from "#system/pokemon-data"; +import type { SessionSaveData } from "#types/save-data"; import type { SessionSaveMigrator } from "#types/session-save-migrator"; /** diff --git a/src/ui/containers/pokemon-hatch-info-container.ts b/src/ui/containers/pokemon-hatch-info-container.ts index 8ddd9df9836..ad09eb39d42 100644 --- a/src/ui/containers/pokemon-hatch-info-container.ts +++ b/src/ui/containers/pokemon-hatch-info-container.ts @@ -9,11 +9,11 @@ import { PokemonType } from "#enums/pokemon-type"; import { SpeciesId } from "#enums/species-id"; import { TextStyle } from "#enums/text-style"; import type { PlayerPokemon } from "#field/pokemon"; -import { PokemonInfoContainer } from "#ui/containers/pokemon-info-container"; import { addTextObject } from "#ui/text"; import { padInt, rgbHexToRgba } from "#utils/common"; import { getPokemonSpeciesForm } from "#utils/pokemon-utils"; import { argbFromRgba } from "@material/material-color-utilities"; +import { PokemonInfoContainer } from "./pokemon-info-container"; /** * Class for the hatch info summary of each pokemon diff --git a/src/ui/containers/pokemon-info-container.ts b/src/ui/containers/pokemon-info-container.ts index 2b214229992..6072b610430 100644 --- a/src/ui/containers/pokemon-info-container.ts +++ b/src/ui/containers/pokemon-info-container.ts @@ -6,15 +6,15 @@ import { PokemonType } from "#enums/pokemon-type"; import { TextStyle } from "#enums/text-style"; import type { Pokemon } from "#field/pokemon"; import { getVariantTint } from "#sprites/variant"; -import type { StarterDataEntry } from "#system/game-data"; import type { DexEntry } from "#types/dex-data"; -import { StatsContainer } from "#ui/containers/stats-container"; +import type { StarterDataEntry } from "#types/save-data"; import { ConfirmUiHandler } from "#ui/handlers/confirm-ui-handler"; import { addBBCodeTextObject, addTextObject, getTextColor } from "#ui/text"; import { addWindow } from "#ui/ui-theme"; import { fixedInt, getShinyDescriptor } from "#utils/common"; import i18next from "i18next"; import type BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext"; +import { StatsContainer } from "./stats-container"; interface LanguageSetting { infoContainerTextSize: string; diff --git a/src/ui/handlers/achvs-ui-handler.ts b/src/ui/handlers/achvs-ui-handler.ts index f8f73dd2078..d7cf82e78ad 100644 --- a/src/ui/handlers/achvs-ui-handler.ts +++ b/src/ui/handlers/achvs-ui-handler.ts @@ -5,9 +5,9 @@ import { TextStyle } from "#enums/text-style"; import type { UiMode } from "#enums/ui-mode"; import type { Achv } from "#system/achv"; import { achvs, getAchievementDescription } from "#system/achv"; -import type { AchvUnlocks, VoucherUnlocks } from "#system/game-data"; import type { Voucher } from "#system/voucher"; import { getVoucherTypeIcon, getVoucherTypeName, vouchers } from "#system/voucher"; +import type { AchvUnlocks, VoucherUnlocks } from "#types/save-data"; import { ScrollBar } from "#ui/containers/scroll-bar"; import { MessageUiHandler } from "#ui/handlers/message-ui-handler"; import { addTextObject } from "#ui/text"; diff --git a/src/ui/handlers/pokedex-page-ui-handler.ts b/src/ui/handlers/pokedex-page-ui-handler.ts index ef1c1a6896c..659c3488bc1 100644 --- a/src/ui/handlers/pokedex-page-ui-handler.ts +++ b/src/ui/handlers/pokedex-page-ui-handler.ts @@ -43,9 +43,9 @@ import { TimeOfDay } from "#enums/time-of-day"; import { UiMode } from "#enums/ui-mode"; import type { Variant } from "#sprites/variant"; import { getVariantIcon, getVariantTint } from "#sprites/variant"; -import type { StarterAttributes } from "#system/game-data"; import { SettingKeyboard } from "#system/settings-keyboard"; import type { DexEntry } from "#types/dex-data"; +import type { StarterAttributes } from "#types/save-data"; import { BaseStatsOverlay } from "#ui/containers/base-stats-overlay"; import { MoveInfoOverlay } from "#ui/containers/move-info-overlay"; import { PokedexInfoOverlay } from "#ui/containers/pokedex-info-overlay"; diff --git a/src/ui/handlers/pokedex-ui-handler.ts b/src/ui/handlers/pokedex-ui-handler.ts index 93663a4090e..3e37ccba563 100644 --- a/src/ui/handlers/pokedex-ui-handler.ts +++ b/src/ui/handlers/pokedex-ui-handler.ts @@ -31,9 +31,9 @@ import { UiMode } from "#enums/ui-mode"; import { UiTheme } from "#enums/ui-theme"; import type { Variant } from "#sprites/variant"; import { getVariantIcon, getVariantTint } from "#sprites/variant"; -import type { DexAttrProps, StarterAttributes } from "#system/game-data"; import { SettingKeyboard } from "#system/settings-keyboard"; import type { DexEntry } from "#types/dex-data"; +import type { DexAttrProps, StarterAttributes } from "#types/save-data"; import { DropDown, DropDownLabel, diff --git a/src/ui/handlers/run-history-ui-handler.ts b/src/ui/handlers/run-history-ui-handler.ts index cec2b95cdd5..baf1577a2b4 100644 --- a/src/ui/handlers/run-history-ui-handler.ts +++ b/src/ui/handlers/run-history-ui-handler.ts @@ -6,8 +6,8 @@ import { PlayerGender } from "#enums/player-gender"; import { TextStyle } from "#enums/text-style"; import { TrainerVariant } from "#enums/trainer-variant"; import { UiMode } from "#enums/ui-mode"; -import type { RunEntry } from "#system/game-data"; import type { PokemonData } from "#system/pokemon-data"; +import type { RunEntry } from "#types/save-data"; import { MessageUiHandler } from "#ui/handlers/message-ui-handler"; import { RunDisplayMode } from "#ui/handlers/run-info-ui-handler"; import { addTextObject } from "#ui/text"; diff --git a/src/ui/handlers/run-info-ui-handler.ts b/src/ui/handlers/run-info-ui-handler.ts index 50f672637a7..93ace112148 100644 --- a/src/ui/handlers/run-info-ui-handler.ts +++ b/src/ui/handlers/run-info-ui-handler.ts @@ -19,9 +19,9 @@ import { UiMode } from "#enums/ui-mode"; import * as Modifier from "#modifiers/modifier"; import { getLuckString, getLuckTextTint } from "#modifiers/modifier-type"; import { getVariantTint } from "#sprites/variant"; -import type { SessionSaveData } from "#system/game-data"; import type { PokemonData } from "#system/pokemon-data"; import { SettingKeyboard } from "#system/settings-keyboard"; +import type { SessionSaveData } from "#types/save-data"; import { UiHandler } from "#ui/handlers/ui-handler"; import { addBBCodeTextObject, addTextObject, getTextColor } from "#ui/text"; import { addWindow } from "#ui/ui-theme"; diff --git a/src/ui/handlers/save-slot-select-ui-handler.ts b/src/ui/handlers/save-slot-select-ui-handler.ts index 1b062e964be..5115ab23578 100644 --- a/src/ui/handlers/save-slot-select-ui-handler.ts +++ b/src/ui/handlers/save-slot-select-ui-handler.ts @@ -6,8 +6,8 @@ import { TextStyle } from "#enums/text-style"; import { UiMode } from "#enums/ui-mode"; // biome-ignore lint/performance/noNamespaceImport: See `src/system/game-data.ts` import * as Modifier from "#modifiers/modifier"; -import type { SessionSaveData } from "#system/game-data"; import type { PokemonData } from "#system/pokemon-data"; +import type { SessionSaveData } from "#types/save-data"; import type { OptionSelectConfig } from "#ui/handlers/abstract-option-select-ui-handler"; import { MessageUiHandler } from "#ui/handlers/message-ui-handler"; import { RunDisplayMode } from "#ui/handlers/run-info-ui-handler"; diff --git a/src/ui/handlers/starter-select-ui-handler.ts b/src/ui/handlers/starter-select-ui-handler.ts index 8556ec385f3..7c67ed13d4b 100644 --- a/src/ui/handlers/starter-select-ui-handler.ts +++ b/src/ui/handlers/starter-select-ui-handler.ts @@ -46,10 +46,10 @@ import { BattleSceneEventType } from "#events/battle-scene"; import type { Variant } from "#sprites/variant"; import { getVariantIcon, getVariantTint } from "#sprites/variant"; import { achvs } from "#system/achv"; -import type { DexAttrProps, StarterAttributes, StarterDataEntry, StarterMoveset } from "#system/game-data"; import { RibbonData } from "#system/ribbons/ribbon-data"; import { SettingKeyboard } from "#system/settings-keyboard"; import type { DexEntry } from "#types/dex-data"; +import type { DexAttrProps, StarterAttributes, StarterDataEntry, StarterMoveset } from "#types/save-data"; import { DropDown, DropDownLabel, diff --git a/src/utils/challenge-utils.ts b/src/utils/challenge-utils.ts index b7027980cef..f79f48f30d2 100644 --- a/src/utils/challenge-utils.ts +++ b/src/utils/challenge-utils.ts @@ -12,8 +12,8 @@ import type { MoveSourceType } from "#enums/move-source-type"; import type { SpeciesId } from "#enums/species-id"; import type { EnemyPokemon, PlayerPokemon, Pokemon } from "#field/pokemon"; import type { ModifierTypeOption } from "#modifiers/modifier-type"; -import type { DexAttrProps, StarterDataEntry } from "#system/game-data"; import type { DexEntry } from "#types/dex-data"; +import type { DexAttrProps, StarterDataEntry } from "#types/save-data"; import { BooleanHolder, type NumberHolder } from "./common"; import { getPokemonSpecies } from "./pokemon-utils"; diff --git a/src/utils/data.ts b/src/utils/data.ts index 8ff308cde8f..1383d8e6ff2 100644 --- a/src/utils/data.ts +++ b/src/utils/data.ts @@ -1,6 +1,6 @@ import { loggedInUser } from "#app/account"; import { saveKey } from "#app/constants"; -import type { StarterAttributes } from "#system/game-data"; +import type { StarterAttributes } from "#types/save-data"; import { AES, enc } from "crypto-js"; /** diff --git a/test/plugins/api/pokerogue-session-savedata-api.test.ts b/test/plugins/api/pokerogue-session-savedata-api.test.ts index d7ee2703405..d91db4425cb 100644 --- a/test/plugins/api/pokerogue-session-savedata-api.test.ts +++ b/test/plugins/api/pokerogue-session-savedata-api.test.ts @@ -1,5 +1,4 @@ import { PokerogueSessionSavedataApi } from "#api/pokerogue-session-savedata-api"; -import type { SessionSaveData } from "#system/game-data"; import { initServerForApiTests } from "#test/test-utils/test-file-initialization"; import { getApiBaseUrl } from "#test/test-utils/test-utils"; import type { @@ -10,6 +9,7 @@ import type { NewClearSessionSavedataRequest, UpdateSessionSavedataRequest, } from "#types/api/pokerogue-session-save-data-api"; +import type { SessionSaveData } from "#types/save-data"; import { HttpResponse, http } from "msw"; import type { SetupServerApi } from "msw/node"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/test/plugins/api/pokerogue-system-savedata-api.test.ts b/test/plugins/api/pokerogue-system-savedata-api.test.ts index d6e4fe18eed..3480b00b206 100644 --- a/test/plugins/api/pokerogue-system-savedata-api.test.ts +++ b/test/plugins/api/pokerogue-system-savedata-api.test.ts @@ -1,5 +1,4 @@ import { PokerogueSystemSavedataApi } from "#api/pokerogue-system-savedata-api"; -import type { SystemSaveData } from "#system/game-data"; import { initServerForApiTests } from "#test/test-utils/test-file-initialization"; import { getApiBaseUrl } from "#test/test-utils/test-utils"; import type { @@ -8,6 +7,7 @@ import type { VerifySystemSavedataRequest, VerifySystemSavedataResponse, } from "#types/api/pokerogue-system-save-data-api"; +import type { SystemSaveData } from "#types/save-data"; import { HttpResponse, http } from "msw"; import type { SetupServerApi } from "msw/node"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/test/system/game-data.test.ts b/test/system/game-data.test.ts index 18775f310b7..42a3ac339ce 100644 --- a/test/system/game-data.test.ts +++ b/test/system/game-data.test.ts @@ -3,8 +3,8 @@ import * as account from "#app/account"; import * as bypassLoginModule from "#app/global-vars/bypass-login"; import { AbilityId } from "#enums/ability-id"; import { MoveId } from "#enums/move-id"; -import type { SessionSaveData } from "#system/game-data"; import { GameManager } from "#test/test-utils/game-manager"; +import type { SessionSaveData } from "#types/save-data"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/test/system/rename-run.test.ts b/test/system/rename-run.test.ts index 5031d84245f..038303c3254 100644 --- a/test/system/rename-run.test.ts +++ b/test/system/rename-run.test.ts @@ -1,10 +1,10 @@ import * as account from "#app/account"; import * as bypassLoginModule from "#app/global-vars/bypass-login"; import { pokerogueApi } from "#app/plugins/api/pokerogue-api"; -import type { SessionSaveData } from "#app/system/game-data"; import { AbilityId } from "#enums/ability-id"; import { MoveId } from "#enums/move-id"; import { GameManager } from "#test/test-utils/game-manager"; +import type { SessionSaveData } from "#types/save-data"; import Phaser from "phaser"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/test/test-utils/game-manager-utils.ts b/test/test-utils/game-manager-utils.ts index e9c3e9809cc..7b12251819f 100644 --- a/test/test-utils/game-manager-utils.ts +++ b/test/test-utils/game-manager-utils.ts @@ -8,7 +8,7 @@ import { GameModes } from "#enums/game-modes"; import type { MoveId } from "#enums/move-id"; import type { SpeciesId } from "#enums/species-id"; import { PlayerPokemon } from "#field/pokemon"; -import type { StarterMoveset } from "#system/game-data"; +import type { StarterMoveset } from "#types/save-data"; import type { Starter } from "#ui/handlers/starter-select-ui-handler"; import { getPokemonSpecies, getPokemonSpeciesForm } from "#utils/pokemon-utils"; diff --git a/test/test-utils/helpers/reload-helper.ts b/test/test-utils/helpers/reload-helper.ts index fa627019483..e46096f3fab 100644 --- a/test/test-utils/helpers/reload-helper.ts +++ b/test/test-utils/helpers/reload-helper.ts @@ -3,9 +3,9 @@ import { UiMode } from "#enums/ui-mode"; import { CommandPhase } from "#phases/command-phase"; import { TitlePhase } from "#phases/title-phase"; import { TurnInitPhase } from "#phases/turn-init-phase"; -import type { SessionSaveData } from "#system/game-data"; import type { GameManager } from "#test/test-utils/game-manager"; import { GameManagerHelper } from "#test/test-utils/helpers/game-manager-helper"; +import type { SessionSaveData } from "#types/save-data"; import { vi } from "vitest"; /** diff --git a/test/ui/pokedex.test.ts b/test/ui/pokedex.test.ts index 39ca0bf16d0..34539094232 100644 --- a/test/ui/pokedex.test.ts +++ b/test/ui/pokedex.test.ts @@ -6,8 +6,8 @@ import { DropDownColumn } from "#enums/drop-down-column"; import { PokemonType } from "#enums/pokemon-type"; import { SpeciesId } from "#enums/species-id"; import { UiMode } from "#enums/ui-mode"; -import type { StarterAttributes } from "#system/game-data"; import { GameManager } from "#test/test-utils/game-manager"; +import type { StarterAttributes } from "#types/save-data"; import { FilterTextRow } from "#ui/containers/filter-text"; import { PokedexPageUiHandler } from "#ui/handlers/pokedex-page-ui-handler"; import { PokedexUiHandler } from "#ui/handlers/pokedex-ui-handler";